diff --git a/modules/juce_blocks_basics/blocks/juce_Block.h b/modules/juce_blocks_basics/blocks/juce_Block.h index 4bc0c3cb2e..8c7eccece5 100644 --- a/modules/juce_blocks_basics/blocks/juce_Block.h +++ b/modules/juce_blocks_basics/blocks/juce_Block.h @@ -264,9 +264,12 @@ public: virtual void removeProgramEventListener (ProgramEventListener*); //============================================================================== - /** Returns the size of the data block that setDataByte and other functions can write to. */ + /** Returns the overall memory of the block. */ virtual uint32 getMemorySize() = 0; + /** Returns the size of the data block that setDataByte and other functions can write to. */ + virtual uint32 getHeapMemorySize() = 0; + /** Sets a single byte on the littlefoot heap. */ virtual void setDataByte (size_t offset, uint8 value) = 0; diff --git a/modules/juce_blocks_basics/topology/juce_PhysicalTopologySource.cpp b/modules/juce_blocks_basics/topology/juce_PhysicalTopologySource.cpp index ef65e5f0ed..900ab64a57 100644 --- a/modules/juce_blocks_basics/topology/juce_PhysicalTopologySource.cpp +++ b/modules/juce_blocks_basics/topology/juce_PhysicalTopologySource.cpp @@ -1741,6 +1741,12 @@ struct PhysicalTopologySource::Internal return modelData.programAndHeapSize; } + uint32 getHeapMemorySize() override + { + jassert (isPositiveAndNotGreaterThan (programSize, modelData.programAndHeapSize)); + return modelData.programAndHeapSize - programSize; + } + void setDataByte (size_t offset, uint8 value) override { remoteHeap.setByte (programSize + offset, value);