From bdfbcff62d29594e968bcae4573c4d61abc38b78 Mon Sep 17 00:00:00 2001 From: dimitri Date: Tue, 26 Mar 2019 10:03:48 +0000 Subject: [PATCH] BLOCKS: Added a method to reset to the default program --- modules/juce_blocks_basics/blocks/juce_Block.h | 3 +++ .../topology/internal/juce_BlockImplementation.cpp | 9 +++++++++ 2 files changed, 12 insertions(+) diff --git a/modules/juce_blocks_basics/blocks/juce_Block.h b/modules/juce_blocks_basics/blocks/juce_Block.h index 38a6c763fb..ff44d3f18e 100644 --- a/modules/juce_blocks_basics/blocks/juce_Block.h +++ b/modules/juce_blocks_basics/blocks/juce_Block.h @@ -304,6 +304,9 @@ public: /** Sets the current program as the block's default state. */ virtual void saveProgramAsDefault() = 0; + /** Resets the loaded program to the block's default state. */ + virtual void resetProgramToDefault() = 0; + //============================================================================== /** Metadata for a given config item */ struct ConfigMetaData diff --git a/modules/juce_blocks_basics/topology/internal/juce_BlockImplementation.cpp b/modules/juce_blocks_basics/topology/internal/juce_BlockImplementation.cpp index 7eda9cfb2a..7062bce542 100644 --- a/modules/juce_blocks_basics/topology/internal/juce_BlockImplementation.cpp +++ b/modules/juce_blocks_basics/topology/internal/juce_BlockImplementation.cpp @@ -347,6 +347,15 @@ public: doSaveProgramAsDefault(); } + void resetProgramToDefault() override + { + if (! shouldSaveProgramAsDefault) + setProgram (nullptr); + + sendCommandMessage (BlocksProtocol::endAPIMode); + sendCommandMessage (BlocksProtocol::beginAPIMode); + } + uint32 getMemorySize() override { return modelData.programAndHeapSize;