Skip to content
Snippets Groups Projects
Commit ccee770a authored by Dmitry Vedenko's avatar Dmitry Vedenko
Browse files

Fixes Apply button during the preview

parent 3641318c
No related branches found
No related tags found
No related merge requests found
...@@ -501,6 +501,9 @@ void EffectUIHost::OnPaint(wxPaintEvent & WXUNUSED(evt)) ...@@ -501,6 +501,9 @@ void EffectUIHost::OnPaint(wxPaintEvent & WXUNUSED(evt))
void EffectUIHost::OnClose(wxCloseEvent & WXUNUSED(evt)) void EffectUIHost::OnClose(wxCloseEvent & WXUNUSED(evt))
{ {
if (mPlaying)
StopPlayback();
DoCancel(); DoCancel();
CleanupRealtime(); CleanupRealtime();
...@@ -531,6 +534,9 @@ void EffectUIHost::OnApply(wxCommandEvent & evt) ...@@ -531,6 +534,9 @@ void EffectUIHost::OnApply(wxCommandEvent & evt)
return; return;
} }
if (mPlaying)
StopPlayback();
// Honor the "select all if none" preference...a little hackish, but whatcha gonna do... // Honor the "select all if none" preference...a little hackish, but whatcha gonna do...
if (!mIsBatch && if (!mIsBatch &&
mEffectUIHost.GetDefinition().GetType() != EffectTypeGenerate && mEffectUIHost.GetDefinition().GetType() != EffectTypeGenerate &&
...@@ -735,10 +741,7 @@ void EffectUIHost::OnPlay(wxCommandEvent & WXUNUSED(evt)) ...@@ -735,10 +741,7 @@ void EffectUIHost::OnPlay(wxCommandEvent & WXUNUSED(evt))
if (mPlaying) if (mPlaying)
{ {
auto gAudioIO = AudioIO::Get(); StopPlayback();
mPlayPos = gAudioIO->GetStreamTime();
auto &projectAudioManager = ProjectAudioManager::Get( mProject );
projectAudioManager.Stop();
} }
else else
{ {
...@@ -1160,6 +1163,17 @@ void EffectUIHost::CleanupRealtime() ...@@ -1160,6 +1163,17 @@ void EffectUIHost::CleanupRealtime()
} }
} }
void EffectUIHost::StopPlayback()
{
if (!mPlaying)
return;
auto gAudioIO = AudioIO::Get();
mPlayPos = gAudioIO->GetStreamTime();
auto& projectAudioManager = ProjectAudioManager::Get(mProject);
projectAudioManager.Stop();
}
DialogFactoryResults EffectUI::DialogFactory(wxWindow &parent, DialogFactoryResults EffectUI::DialogFactory(wxWindow &parent,
EffectPlugin &host, EffectUIClientInterface &client, EffectPlugin &host, EffectUIClientInterface &client,
EffectSettingsAccess &access) EffectSettingsAccess &access)
......
...@@ -110,6 +110,8 @@ private: ...@@ -110,6 +110,8 @@ private:
void CleanupRealtime(); void CleanupRealtime();
void StopPlayback();
private: private:
Observer::Subscription mAudioIOSubscription, mEffectStateSubscription; Observer::Subscription mAudioIOSubscription, mEffectStateSubscription;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment