1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-05-01 16:19:43 +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;
}
RealtimeEffectState::RealtimeEffectState( Effect &effect )
RealtimeEffectState::RealtimeEffectState( EffectClientInterface &effect )
: mEffect{ effect }
{
}

View File

@ -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<int> mGroupProcessor;
int mCurrentProcessor;

View File

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

View File

@ -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();

View File

@ -15,13 +15,13 @@
#include <vector>
#include <wx/thread.h>
class Effect;
using EffectArray = std::vector <Effect*> ;
class EffectClientInterface;
class RealtimeEffectState;
class AUDACITY_DLL_API RealtimeEffectManager final
{
public:
using EffectArray = std::vector <EffectClientInterface*> ;
/** 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);