parent
7a397b57ac
commit
29d1a7b7b1
|
@ -221,7 +221,7 @@ bool EffectChangePitch::Process()
|
||||||
proxy.mProxyEffectName = XO("High Quality Pitch Change");
|
proxy.mProxyEffectName = XO("High Quality Pitch Change");
|
||||||
proxy.setParameters(1.0, pitchRatio);
|
proxy.setParameters(1.0, pitchRatio);
|
||||||
|
|
||||||
return Delegate( proxy );
|
return Delegate(proxy, *mUIParent, nullptr);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -207,7 +207,7 @@ bool EffectChangeTempo::Process()
|
||||||
EffectSBSMS proxy;
|
EffectSBSMS proxy;
|
||||||
proxy.mProxyEffectName = XO("High Quality Tempo Change");
|
proxy.mProxyEffectName = XO("High Quality Tempo Change");
|
||||||
proxy.setParameters(tempoRatio, 1.0);
|
proxy.setParameters(tempoRatio, 1.0);
|
||||||
success = Delegate( proxy );
|
success = Delegate(proxy, *mUIParent, nullptr);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -1320,13 +1320,14 @@ bool Effect::DoEffect(double projectRate,
|
||||||
return returnVal;
|
return returnVal;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Effect::Delegate( Effect &delegate )
|
bool Effect::Delegate(
|
||||||
|
Effect &delegate, wxWindow &parent, const EffectDialogFactory &factory )
|
||||||
{
|
{
|
||||||
NotifyingSelectedRegion region;
|
NotifyingSelectedRegion region;
|
||||||
region.setTimes( mT0, mT1 );
|
region.setTimes( mT0, mT1 );
|
||||||
|
|
||||||
return delegate.DoEffect(
|
return delegate.DoEffect( mProjectRate, mTracks, mFactory,
|
||||||
mProjectRate, mTracks, mFactory, region );
|
region, &parent, factory );
|
||||||
}
|
}
|
||||||
|
|
||||||
// All legacy effects should have this overridden
|
// All legacy effects should have this overridden
|
||||||
|
|
|
@ -262,7 +262,8 @@ class AUDACITY_DLL_API Effect /* not final */ : public wxEvtHandler,
|
||||||
wxWindow *pParent = nullptr,
|
wxWindow *pParent = nullptr,
|
||||||
const EffectDialogFactory &dialogFactory = {} );
|
const EffectDialogFactory &dialogFactory = {} );
|
||||||
|
|
||||||
bool Delegate( Effect &delegate );
|
bool Delegate( Effect &delegate,
|
||||||
|
wxWindow &parent, const EffectDialogFactory &factory );
|
||||||
|
|
||||||
virtual bool IsHidden();
|
virtual bool IsHidden();
|
||||||
|
|
||||||
|
|
|
@ -544,8 +544,6 @@ bool NyquistEffect::SetAutomationParameters(CommandParameters & parms)
|
||||||
|
|
||||||
bool NyquistEffect::Init()
|
bool NyquistEffect::Init()
|
||||||
{
|
{
|
||||||
mDelegate.reset();
|
|
||||||
|
|
||||||
// When Nyquist Prompt spawns an effect GUI, Init() is called for Nyquist Prompt,
|
// When Nyquist Prompt spawns an effect GUI, Init() is called for Nyquist Prompt,
|
||||||
// and then again for the spawned (mExternal) effect.
|
// and then again for the spawned (mExternal) effect.
|
||||||
|
|
||||||
|
@ -620,21 +618,17 @@ bool NyquistEffect::Init()
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool NyquistEffect::CheckWhetherSkipEffect()
|
||||||
|
{
|
||||||
|
// If we're a prompt and we have controls, then we've already processed
|
||||||
|
// the audio, so skip further processing.
|
||||||
|
return (mIsPrompt && mControls.size() > 0);
|
||||||
|
}
|
||||||
|
|
||||||
static void RegisterFunctions();
|
static void RegisterFunctions();
|
||||||
|
|
||||||
bool NyquistEffect::Process()
|
bool NyquistEffect::Process()
|
||||||
{
|
{
|
||||||
if (mDelegate)
|
|
||||||
{
|
|
||||||
mProgress->Hide();
|
|
||||||
auto &effect = *mDelegate;
|
|
||||||
auto result = Delegate( effect );
|
|
||||||
mT0 = effect.mT0;
|
|
||||||
mT1 = effect.mT1;
|
|
||||||
mDelegate.reset();
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Check for reentrant Nyquist commands.
|
// Check for reentrant Nyquist commands.
|
||||||
// I'm choosing to mark skipped Nyquist commands as successful even though
|
// I'm choosing to mark skipped Nyquist commands as successful even though
|
||||||
// they are skipped. The reason is that when Nyquist calls out to a chain,
|
// they are skipped. The reason is that when Nyquist calls out to a chain,
|
||||||
|
@ -654,6 +648,10 @@ bool NyquistEffect::Process()
|
||||||
EffectManager & em = EffectManager::Get();
|
EffectManager & em = EffectManager::Get();
|
||||||
em.SetSkipStateFlag(false);
|
em.SetSkipStateFlag(false);
|
||||||
|
|
||||||
|
if (mExternal) {
|
||||||
|
mProgress->Hide();
|
||||||
|
}
|
||||||
|
|
||||||
mOutputTime = 0;
|
mOutputTime = 0;
|
||||||
mCount = 0;
|
mCount = 0;
|
||||||
mProgressIn = 0;
|
mProgressIn = 0;
|
||||||
|
@ -1016,14 +1014,14 @@ bool NyquistEffect::ShowInterface(
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Come here only in case the user entered a script into the Nyquist
|
NyquistEffect effect(NYQUIST_WORKER_ID);
|
||||||
// prompt window that included the magic comments that specify controls.
|
|
||||||
// Interpret those comments and put up a second dialog.
|
|
||||||
mDelegate = std::make_unique< NyquistEffect >( NYQUIST_WORKER_ID );
|
|
||||||
auto &effect = *mDelegate;
|
|
||||||
effect.SetCommand(mInputCmd);
|
effect.SetCommand(mInputCmd);
|
||||||
effect.mDebug = (mUIResultID == eDebugID);
|
effect.mDebug = (mUIResultID == eDebugID);
|
||||||
return effect.ShowInterface( parent, factory, forceModal );
|
bool result = Delegate(effect, parent, factory);
|
||||||
|
mT0 = effect.mT0;
|
||||||
|
mT1 = effect.mT1;
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
void NyquistEffect::PopulateOrExchange(ShuttleGui & S)
|
void NyquistEffect::PopulateOrExchange(ShuttleGui & S)
|
||||||
|
|
|
@ -97,6 +97,7 @@ public:
|
||||||
// Effect implementation
|
// Effect implementation
|
||||||
|
|
||||||
bool Init() override;
|
bool Init() override;
|
||||||
|
bool CheckWhetherSkipEffect() override;
|
||||||
bool Process() override;
|
bool Process() override;
|
||||||
bool ShowInterface( wxWindow &parent,
|
bool ShowInterface( wxWindow &parent,
|
||||||
const EffectDialogFactory &factory, bool forceModal = false) override;
|
const EffectDialogFactory &factory, bool forceModal = false) override;
|
||||||
|
@ -188,8 +189,6 @@ private:
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
std::unique_ptr<NyquistEffect> mDelegate;
|
|
||||||
|
|
||||||
wxString mXlispPath;
|
wxString mXlispPath;
|
||||||
|
|
||||||
wxFileName mFileName; ///< Name of the Nyquist script file this effect is loaded from
|
wxFileName mFileName; ///< Name of the Nyquist script file this effect is loaded from
|
||||||
|
|
Loading…
Reference in New Issue
Block a user