From 0f62046313d072a63ccc4f570acd5599d4db4d39 Mon Sep 17 00:00:00 2001 From: Paul Licameli Date: Sun, 23 Jun 2019 19:19:32 -0400 Subject: [PATCH] Define EffectClientInterface::GetBlockSize() --- include/audacity/EffectInterface.h | 2 ++ src/effects/Effect.cpp | 10 ++++++++++ src/effects/Effect.h | 1 + src/effects/VST/VSTEffect.cpp | 5 +++++ src/effects/VST/VSTEffect.h | 1 + src/effects/audiounits/AudioUnitEffect.cpp | 5 +++++ src/effects/audiounits/AudioUnitEffect.h | 1 + src/effects/ladspa/LadspaEffect.cpp | 5 +++++ src/effects/ladspa/LadspaEffect.h | 1 + src/effects/lv2/LV2Effect.cpp | 5 +++++ src/effects/lv2/LV2Effect.h | 1 + 11 files changed, 37 insertions(+) diff --git a/include/audacity/EffectInterface.h b/include/audacity/EffectInterface.h index 2f22945ea..b6c38c031 100755 --- a/include/audacity/EffectInterface.h +++ b/include/audacity/EffectInterface.h @@ -156,7 +156,9 @@ public: virtual int GetMidiOutCount() = 0; virtual void SetSampleRate(double rate) = 0; + // Suggest a block size, but the return is the size that was really set: virtual size_t SetBlockSize(size_t maxBlockSize) = 0; + virtual size_t GetBlockSize() const = 0; virtual sampleCount GetLatency() = 0; virtual size_t GetTailSize() = 0; diff --git a/src/effects/Effect.cpp b/src/effects/Effect.cpp index 425c89a2d..4ec5951c1 100644 --- a/src/effects/Effect.cpp +++ b/src/effects/Effect.cpp @@ -373,6 +373,16 @@ size_t Effect::SetBlockSize(size_t maxBlockSize) return mBlockSize; } +size_t Effect::GetBlockSize() const +{ + if (mClient) + { + return mClient->GetBlockSize(); + } + + return mBlockSize; +} + sampleCount Effect::GetLatency() { if (mClient) diff --git a/src/effects/Effect.h b/src/effects/Effect.h index 1307706e8..6a41f085d 100644 --- a/src/effects/Effect.h +++ b/src/effects/Effect.h @@ -121,6 +121,7 @@ class AUDACITY_DLL_API Effect /* not final */ : public wxEvtHandler, void SetSampleRate(double rate) override; size_t SetBlockSize(size_t maxBlockSize) override; + size_t GetBlockSize() const override; bool IsReady() override; bool ProcessInitialize(sampleCount totalLen, ChannelNames chanMap = NULL) override; diff --git a/src/effects/VST/VSTEffect.cpp b/src/effects/VST/VSTEffect.cpp index 56b531b77..cce5ff4e1 100644 --- a/src/effects/VST/VSTEffect.cpp +++ b/src/effects/VST/VSTEffect.cpp @@ -1359,6 +1359,11 @@ size_t VSTEffect::SetBlockSize(size_t maxBlockSize) return mBlockSize; } +size_t VSTEffect::GetBlockSize() const +{ + return mBlockSize; +} + void VSTEffect::SetSampleRate(double rate) { mSampleRate = (float) rate; diff --git a/src/effects/VST/VSTEffect.h b/src/effects/VST/VSTEffect.h index cb693e845..27c088aa4 100644 --- a/src/effects/VST/VSTEffect.h +++ b/src/effects/VST/VSTEffect.h @@ -132,6 +132,7 @@ class VSTEffect final : public wxEvtHandler, void SetSampleRate(double rate) override; size_t SetBlockSize(size_t maxBlockSize) override; + size_t GetBlockSize() const override; bool IsReady() override; bool ProcessInitialize(sampleCount totalLen, ChannelNames chanMap = NULL) override; diff --git a/src/effects/audiounits/AudioUnitEffect.cpp b/src/effects/audiounits/AudioUnitEffect.cpp index d184221a8..576ff9407 100644 --- a/src/effects/audiounits/AudioUnitEffect.cpp +++ b/src/effects/audiounits/AudioUnitEffect.cpp @@ -1192,6 +1192,11 @@ size_t AudioUnitEffect::SetBlockSize(size_t maxBlockSize) return mBlockSize; } +size_t AudioUnitEffect::GetBlockSize() const +{ + return mBlockSize; +} + sampleCount AudioUnitEffect::GetLatency() { // Retrieve the latency (can be updated via an event) diff --git a/src/effects/audiounits/AudioUnitEffect.h b/src/effects/audiounits/AudioUnitEffect.h index 06ddd0279..137bba299 100644 --- a/src/effects/audiounits/AudioUnitEffect.h +++ b/src/effects/audiounits/AudioUnitEffect.h @@ -79,6 +79,7 @@ public: void SetSampleRate(double rate) override; size_t SetBlockSize(size_t maxBlockSize) override; + size_t GetBlockSize() const override; sampleCount GetLatency() override; size_t GetTailSize() override; diff --git a/src/effects/ladspa/LadspaEffect.cpp b/src/effects/ladspa/LadspaEffect.cpp index 30b8131d2..ebacf1310 100644 --- a/src/effects/ladspa/LadspaEffect.cpp +++ b/src/effects/ladspa/LadspaEffect.cpp @@ -889,6 +889,11 @@ size_t LadspaEffect::SetBlockSize(size_t maxBlockSize) return mBlockSize; } +size_t LadspaEffect::GetBlockSize() const +{ + return mBlockSize; +} + sampleCount LadspaEffect::GetLatency() { if (mUseLatency && mLatencyPort >= 0 && !mLatencyDone) diff --git a/src/effects/ladspa/LadspaEffect.h b/src/effects/ladspa/LadspaEffect.h index ce8de7251..bf328242a 100644 --- a/src/effects/ladspa/LadspaEffect.h +++ b/src/effects/ladspa/LadspaEffect.h @@ -77,6 +77,7 @@ public: void SetSampleRate(double rate) override; size_t SetBlockSize(size_t maxBlockSize) override; + size_t GetBlockSize() const override; sampleCount GetLatency() override; size_t GetTailSize() override; diff --git a/src/effects/lv2/LV2Effect.cpp b/src/effects/lv2/LV2Effect.cpp index 3e19895b9..8b9c641c0 100644 --- a/src/effects/lv2/LV2Effect.cpp +++ b/src/effects/lv2/LV2Effect.cpp @@ -728,6 +728,11 @@ size_t LV2Effect::SetBlockSize(size_t maxBlockSize) return mBlockSize; } +size_t LV2Effect::GetBlockSize() const +{ + return mBlockSize; +} + sampleCount LV2Effect::GetLatency() { if (mUseLatency && mLatencyPort >= 0 && !mLatencyDone) diff --git a/src/effects/lv2/LV2Effect.h b/src/effects/lv2/LV2Effect.h index b208accf4..b77cea027 100644 --- a/src/effects/lv2/LV2Effect.h +++ b/src/effects/lv2/LV2Effect.h @@ -137,6 +137,7 @@ public: void SetSampleRate(double rate) override; size_t SetBlockSize(size_t maxBlockSize) override; + size_t GetBlockSize() const override; sampleCount GetLatency() override; size_t GetTailSize() override;