From 5caeaf520b4e6881c066e5b9b03a02bed313d53c Mon Sep 17 00:00:00 2001 From: Paul Licameli Date: Sun, 23 Jun 2019 16:31:47 -0400 Subject: [PATCH] RealtimeEffectState needs only EffectClientInterface, not Effect --- src/effects/Effect.cpp | 2 +- src/effects/Effect.h | 6 +++--- src/effects/EffectRack.cpp | 4 +++- src/effects/RealtimeEffectManager.cpp | 4 ++-- src/effects/RealtimeEffectManager.h | 8 ++++---- 5 files changed, 13 insertions(+), 11 deletions(-) diff --git a/src/effects/Effect.cpp b/src/effects/Effect.cpp index e751c065c..05100b2f2 100644 --- a/src/effects/Effect.cpp +++ b/src/effects/Effect.cpp @@ -472,7 +472,7 @@ bool Effect::RealtimeFinalize() return false; } -RealtimeEffectState::RealtimeEffectState( Effect &effect ) +RealtimeEffectState::RealtimeEffectState( EffectClientInterface &effect ) : mEffect{ effect } { } diff --git a/src/effects/Effect.h b/src/effects/Effect.h index 4fc38e157..f718fa404 100644 --- a/src/effects/Effect.h +++ b/src/effects/Effect.h @@ -550,9 +550,9 @@ private: class RealtimeEffectState { public: - explicit RealtimeEffectState( Effect &effect ); + explicit RealtimeEffectState( EffectClientInterface &effect ); - Effect &GetEffect() const { return mEffect; } + EffectClientInterface &GetEffect() const { return mEffect; } bool RealtimeSuspend(); bool RealtimeResume(); @@ -562,7 +562,7 @@ public: bool IsRealtimeActive(); private: - Effect &mEffect; + EffectClientInterface &mEffect; std::vector mGroupProcessor; int mCurrentProcessor; diff --git a/src/effects/EffectRack.cpp b/src/effects/EffectRack.cpp index 72ee5b93a..cefbb7f30 100644 --- a/src/effects/EffectRack.cpp +++ b/src/effects/EffectRack.cpp @@ -564,7 +564,9 @@ void EffectRack::UpdateActive() } } - RealtimeEffectManager::Get().RealtimeSetEffects(mActive); + RealtimeEffectManager::Get().RealtimeSetEffects( + { mActive.begin(), mActive.end() } + ); } #endif diff --git a/src/effects/RealtimeEffectManager.cpp b/src/effects/RealtimeEffectManager.cpp index 13e4949af..15c235fd6 100644 --- a/src/effects/RealtimeEffectManager.cpp +++ b/src/effects/RealtimeEffectManager.cpp @@ -87,7 +87,7 @@ bool RealtimeEffectManager::RealtimeIsSuspended() return mRealtimeSuspended; } -void RealtimeEffectManager::RealtimeAddEffect(Effect *effect) +void RealtimeEffectManager::RealtimeAddEffect(EffectClientInterface *effect) { // Block RealtimeProcess() RealtimeSuspend(); @@ -114,7 +114,7 @@ void RealtimeEffectManager::RealtimeAddEffect(Effect *effect) RealtimeResume(); } -void RealtimeEffectManager::RealtimeRemoveEffect(Effect *effect) +void RealtimeEffectManager::RealtimeRemoveEffect(EffectClientInterface *effect) { // Block RealtimeProcess() RealtimeSuspend(); diff --git a/src/effects/RealtimeEffectManager.h b/src/effects/RealtimeEffectManager.h index 134884d35..689ede6e4 100644 --- a/src/effects/RealtimeEffectManager.h +++ b/src/effects/RealtimeEffectManager.h @@ -15,13 +15,13 @@ #include #include -class Effect; -using EffectArray = std::vector ; +class EffectClientInterface; class RealtimeEffectState; class AUDACITY_DLL_API RealtimeEffectManager final { public: + using EffectArray = std::vector ; /** Get the singleton instance of the RealtimeEffectManager. **/ static RealtimeEffectManager & Get(); @@ -29,8 +29,8 @@ public: // Realtime effect processing bool RealtimeIsActive(); bool RealtimeIsSuspended(); - void RealtimeAddEffect(Effect *effect); - void RealtimeRemoveEffect(Effect *effect); + void RealtimeAddEffect(EffectClientInterface *effect); + void RealtimeRemoveEffect(EffectClientInterface *effect); void RealtimeSetEffects(const EffectArray & mActive); void RealtimeInitialize(double rate); void RealtimeAddProcessor(int group, unsigned chans, float rate);