1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-07-04 22:49:07 +02:00

RealtimeEffectState needs only EffectClientInterface, not Effect

This commit is contained in:
Paul Licameli 2019-06-23 16:31:47 -04:00
parent 867e6a8d9e
commit 5caeaf520b
5 changed files with 13 additions and 11 deletions

View File

@ -472,7 +472,7 @@ bool Effect::RealtimeFinalize()
return false; return false;
} }
RealtimeEffectState::RealtimeEffectState( Effect &effect ) RealtimeEffectState::RealtimeEffectState( EffectClientInterface &effect )
: mEffect{ effect } : mEffect{ effect }
{ {
} }

View File

@ -550,9 +550,9 @@ private:
class RealtimeEffectState class RealtimeEffectState
{ {
public: public:
explicit RealtimeEffectState( Effect &effect ); explicit RealtimeEffectState( EffectClientInterface &effect );
Effect &GetEffect() const { return mEffect; } EffectClientInterface &GetEffect() const { return mEffect; }
bool RealtimeSuspend(); bool RealtimeSuspend();
bool RealtimeResume(); bool RealtimeResume();
@ -562,7 +562,7 @@ public:
bool IsRealtimeActive(); bool IsRealtimeActive();
private: private:
Effect &mEffect; EffectClientInterface &mEffect;
std::vector<int> mGroupProcessor; std::vector<int> mGroupProcessor;
int mCurrentProcessor; int mCurrentProcessor;

View File

@ -564,7 +564,9 @@ void EffectRack::UpdateActive()
} }
} }
RealtimeEffectManager::Get().RealtimeSetEffects(mActive); RealtimeEffectManager::Get().RealtimeSetEffects(
{ mActive.begin(), mActive.end() }
);
} }
#endif #endif

View File

@ -87,7 +87,7 @@ bool RealtimeEffectManager::RealtimeIsSuspended()
return mRealtimeSuspended; return mRealtimeSuspended;
} }
void RealtimeEffectManager::RealtimeAddEffect(Effect *effect) void RealtimeEffectManager::RealtimeAddEffect(EffectClientInterface *effect)
{ {
// Block RealtimeProcess() // Block RealtimeProcess()
RealtimeSuspend(); RealtimeSuspend();
@ -114,7 +114,7 @@ void RealtimeEffectManager::RealtimeAddEffect(Effect *effect)
RealtimeResume(); RealtimeResume();
} }
void RealtimeEffectManager::RealtimeRemoveEffect(Effect *effect) void RealtimeEffectManager::RealtimeRemoveEffect(EffectClientInterface *effect)
{ {
// Block RealtimeProcess() // Block RealtimeProcess()
RealtimeSuspend(); RealtimeSuspend();

View File

@ -15,13 +15,13 @@
#include <vector> #include <vector>
#include <wx/thread.h> #include <wx/thread.h>
class Effect; class EffectClientInterface;
using EffectArray = std::vector <Effect*> ;
class RealtimeEffectState; class RealtimeEffectState;
class AUDACITY_DLL_API RealtimeEffectManager final class AUDACITY_DLL_API RealtimeEffectManager final
{ {
public: public:
using EffectArray = std::vector <EffectClientInterface*> ;
/** Get the singleton instance of the RealtimeEffectManager. **/ /** Get the singleton instance of the RealtimeEffectManager. **/
static RealtimeEffectManager & Get(); static RealtimeEffectManager & Get();
@ -29,8 +29,8 @@ public:
// Realtime effect processing // Realtime effect processing
bool RealtimeIsActive(); bool RealtimeIsActive();
bool RealtimeIsSuspended(); bool RealtimeIsSuspended();
void RealtimeAddEffect(Effect *effect); void RealtimeAddEffect(EffectClientInterface *effect);
void RealtimeRemoveEffect(Effect *effect); void RealtimeRemoveEffect(EffectClientInterface *effect);
void RealtimeSetEffects(const EffectArray & mActive); void RealtimeSetEffects(const EffectArray & mActive);
void RealtimeInitialize(double rate); void RealtimeInitialize(double rate);
void RealtimeAddProcessor(int group, unsigned chans, float rate); void RealtimeAddProcessor(int group, unsigned chans, float rate);