Bug2431: Enable checkbox for ALL realtime effects should work...
... not just for AudioUnits, but also WahWah, VST, etc.
This commit is contained in:
parent
c973f0d8ed
commit
3646bb8afe
|
@ -1351,7 +1351,7 @@ void EffectUIHost::Resume()
|
|||
mEnableCb->SetValue(mEnabled);
|
||||
return;
|
||||
}
|
||||
mEffect->RealtimeResume();
|
||||
RealtimeEffectManager::Get().RealtimeResumeOne( *mEffect );
|
||||
}
|
||||
|
||||
void EffectUIHost::OnEnable(wxCommandEvent & WXUNUSED(evt))
|
||||
|
@ -1364,7 +1364,7 @@ void EffectUIHost::OnEnable(wxCommandEvent & WXUNUSED(evt))
|
|||
}
|
||||
else
|
||||
{
|
||||
mEffect->RealtimeSuspend();
|
||||
RealtimeEffectManager::Get().RealtimeSuspendOne( *mEffect );
|
||||
mNeedsResume = true;
|
||||
}
|
||||
|
||||
|
|
|
@ -237,6 +237,18 @@ void RealtimeEffectManager::RealtimeSuspend()
|
|||
mRealtimeLock.Leave();
|
||||
}
|
||||
|
||||
void RealtimeEffectManager::RealtimeSuspendOne( EffectClientInterface &effect )
|
||||
{
|
||||
auto begin = mStates.begin(), end = mStates.end();
|
||||
auto found = std::find_if( begin, end,
|
||||
[&effect]( const decltype( mStates )::value_type &state ){
|
||||
return state && &state->GetEffect() == &effect;
|
||||
}
|
||||
);
|
||||
if ( found != end )
|
||||
(*found)->RealtimeSuspend();
|
||||
}
|
||||
|
||||
void RealtimeEffectManager::RealtimeResume()
|
||||
{
|
||||
mRealtimeLock.Enter();
|
||||
|
@ -258,6 +270,18 @@ void RealtimeEffectManager::RealtimeResume()
|
|||
mRealtimeLock.Leave();
|
||||
}
|
||||
|
||||
void RealtimeEffectManager::RealtimeResumeOne( EffectClientInterface &effect )
|
||||
{
|
||||
auto begin = mStates.begin(), end = mStates.end();
|
||||
auto found = std::find_if( begin, end,
|
||||
[&effect]( const decltype( mStates )::value_type &state ){
|
||||
return state && &state->GetEffect() == &effect;
|
||||
}
|
||||
);
|
||||
if ( found != end )
|
||||
(*found)->RealtimeResume();
|
||||
}
|
||||
|
||||
//
|
||||
// This will be called in a different thread than the main GUI thread.
|
||||
//
|
||||
|
|
|
@ -36,7 +36,9 @@ public:
|
|||
void RealtimeAddProcessor(int group, unsigned chans, float rate);
|
||||
void RealtimeFinalize();
|
||||
void RealtimeSuspend();
|
||||
void RealtimeSuspendOne( EffectClientInterface &effect );
|
||||
void RealtimeResume();
|
||||
void RealtimeResumeOne( EffectClientInterface &effect );
|
||||
void RealtimeProcessStart();
|
||||
size_t RealtimeProcess(int group, unsigned chans, float **buffers, size_t numSamples);
|
||||
void RealtimeProcessEnd();
|
||||
|
|
Loading…
Reference in New Issue