Audacity 3.2.0
Classes | Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes | List of all members
Effect Class Reference

Base class for many of the effects in Audacity. More...

#include <Effect.h>

Inheritance diagram for Effect:
[legend]
Collaboration diagram for Effect:
[legend]

Classes

class  AddedAnalysisTrack
 
class  ModifiedAnalysisTrack
 

Public Types

enum  : long { DefaultMessageBoxStyle = wxOK | wxCENTRE }
 
- Public Types inherited from EffectPlugin
using EffectSettingsAccessPtr = std::shared_ptr< EffectSettingsAccess >
 

Public Member Functions

 Effect ()
 
virtual ~Effect ()
 
PluginPath GetPath () const override
 
bool VisitSettings (SettingsVisitor &visitor, EffectSettings &settings) override
 
bool VisitSettings (ConstSettingsVisitor &visitor, const EffectSettings &settings) const override
 
ComponentInterfaceSymbol GetSymbol () const override
 
VendorSymbol GetVendor () const override
 
wxString GetVersion () const override
 
TranslatableString GetDescription () const override
 
EffectType GetType () const override
 Type determines how it behaves. More...
 
EffectFamilySymbol GetFamily () const override
 Report identifier and user-visible name of the effect protocol. More...
 
bool IsInteractive () const override
 Whether the effect needs a dialog for entry of settings. More...
 
bool IsDefault () const override
 Whether the effect sorts "above the line" in the menus. More...
 
bool SupportsRealtime () const override
 Whether the effect supports realtime previewing (while audio is playing). More...
 
bool SupportsAutomation () const override
 Whether the effect has any automatable controls. More...
 
bool SaveSettings (const EffectSettings &settings, CommandParameters &parms) const override
 Store settings as keys and values. More...
 
bool LoadSettings (const CommandParameters &parms, EffectSettings &settings) const override
 Restore settings from keys and values. More...
 
bool LoadUserPreset (const RegistryPath &name, EffectSettings &settings) const override
 Change settings to a user-named preset. More...
 
bool SaveUserPreset (const RegistryPath &name, const EffectSettings &settings) const override
 Save settings in the configuration file as a user-named preset. More...
 
RegistryPaths GetFactoryPresets () const override
 Report names of factory presets. More...
 
bool LoadFactoryPreset (int id, EffectSettings &settings) const override
 Change settings to the preset whose name is GetFactoryPresets()[id] More...
 
bool LoadFactoryDefaults (EffectSettings &settings) const override
 Change settings back to "factory default". More...
 
unsigned GetAudioInCount () const override
 How many input buffers to allocate at once. More...
 
unsigned GetAudioOutCount () const override
 How many output buffers to allocate at once. More...
 
virtual const EffectParameterMethodsParameters () const
 
int ShowClientInterface (wxWindow &parent, wxDialog &dialog, bool forceModal=false) override
 
std::unique_ptr< EffectUIValidatorPopulateUI (ShuttleGui &S, EffectInstance &instance, EffectSettingsAccess &access) override
 Adds controls to a panel that is given as the parent window of S More...
 
bool IsGraphicalUI () override
 
bool ValidateUI (EffectSettings &) override
 
bool CloseUI () override
 
bool CanExportPresets () override
 
void ExportPresets (const EffectSettings &settings) const override
 
void ImportPresets (EffectSettings &settings) override
 
bool HasOptions () override
 
void ShowOptions () override
 
const EffectSettingsManagerGetDefinition () const override
 
virtual NumericFormatSymbol GetSelectionFormat ()
 
int ShowHostInterface (wxWindow &parent, const EffectDialogFactory &factory, EffectInstance &instance, EffectSettingsAccess &access, bool forceModal=false) override
 Usually applies factory to self and given access. More...
 
bool SaveSettingsAsString (const EffectSettings &settings, wxString &parms) const override
 
bool LoadSettingsFromString (const wxString &parms, EffectSettings &settings) const override
 
bool IsBatchProcessing () const override
 
void SetBatchProcessing () override
 
void UnsetBatchProcessing () override
 
bool TransferDataToWindow (const EffectSettings &settings) override
 Update controls for the settings. More...
 
bool TransferDataFromWindow (EffectSettings &settings) override
 Update the given settings from controls. More...
 
unsigned TestUIFlags (unsigned mask)
 
bool Delegate (Effect &delegate, EffectSettings &settings)
 Re-invoke DoEffect on another Effect object that implements the work. More...
 
int MessageBox (const TranslatableString &message, long style=DefaultMessageBoxStyle, const TranslatableString &titleStr={}) const
 
bool EnableApply (bool enable=true)
 
wxWindow * GetUIParent ()
 
- Public Member Functions inherited from EffectBase
 EffectBase ()
 
 ~EffectBase () override
 
- Public Member Functions inherited from EffectUIClientInterface
virtual ~EffectUIClientInterface ()
 
virtual int ShowClientInterface (wxWindow &parent, wxDialog &dialog, bool forceModal=false)=0
 
virtual bool IsGraphicalUI ()=0
 
virtual std::unique_ptr< EffectUIValidatorPopulateUI (ShuttleGui &S, EffectInstance &instance, EffectSettingsAccess &access)=0
 Adds controls to a panel that is given as the parent window of S More...
 
virtual bool CanExportPresets ()=0
 
virtual void ExportPresets (const EffectSettings &settings) const =0
 
virtual void ImportPresets (EffectSettings &settings)=0
 
virtual bool HasOptions ()=0
 
virtual void ShowOptions ()=0
 
- Public Member Functions inherited from EffectPlugin
EffectPluginoperator= (EffectPlugin &)=delete
 
virtual ~EffectPlugin ()
 
virtual const EffectSettingsManagerGetDefinition () const =0
 
virtual int ShowHostInterface (wxWindow &parent, const EffectDialogFactory &factory, EffectInstance &instance, EffectSettingsAccess &access, bool forceModal=false)=0
 Usually applies factory to self and given access. More...
 
virtual void Preview (EffectSettingsAccess &access, bool dryOnly)=0
 
virtual bool SaveSettingsAsString (const EffectSettings &settings, wxString &parms) const =0
 
virtual bool LoadSettingsFromString (const wxString &parms, EffectSettings &settings) const =0
 
virtual bool IsBatchProcessing () const =0
 
virtual void SetBatchProcessing ()=0
 
virtual void UnsetBatchProcessing ()=0
 
virtual bool DoEffect (EffectSettings &settings, double projectRate, TrackList *list, WaveTrackFactory *factory, NotifyingSelectedRegion &selectedRegion, unsigned flags, wxWindow *pParent=nullptr, const EffectDialogFactory &dialogFactory={}, const EffectSettingsAccessPtr &pAccess=nullptr)=0
 Unfortunately complicated dual-use function. More...
 
virtual bool TransferDataToWindow (const EffectSettings &settings)=0
 Update controls for the settings. More...
 
virtual bool TransferDataFromWindow (EffectSettings &settings)=0
 Update the given settings from controls. More...
 
- Public Member Functions inherited from EffectInstanceFactory
virtual ~EffectInstanceFactory ()
 
virtual std::shared_ptr< EffectInstanceMakeInstance () const =0
 Make an object maintaining short-term state of an Effect. More...
 
virtual unsigned GetAudioInCount () const =0
 How many input buffers to allocate at once. More...
 
virtual unsigned GetAudioOutCount () const =0
 How many output buffers to allocate at once. More...
 
virtual int GetMidiInCount () const
 Function that has not yet found a use. More...
 
virtual int GetMidiOutCount () const
 Function that has not yet found a use. More...
 
- Public Member Functions inherited from EffectSettingsManager
virtual ~EffectSettingsManager ()
 
virtual bool VisitSettings (SettingsVisitor &visitor, EffectSettings &settings)
 
virtual bool VisitSettings (ConstSettingsVisitor &visitor, const EffectSettings &settings) const
 
virtual EffectSettings MakeSettings () const
 
virtual bool CopySettingsContents (const EffectSettings &src, EffectSettings &dst) const
 Update one settings object from another. More...
 
- Public Member Functions inherited from EffectDefinitionInterface
virtual ~EffectDefinitionInterface ()
 
virtual EffectType GetType () const =0
 Type determines how it behaves. More...
 
virtual EffectType GetClassification () const
 Determines which menu it appears in; default same as GetType(). More...
 
virtual EffectFamilySymbol GetFamily () const =0
 Report identifier and user-visible name of the effect protocol. More...
 
virtual bool IsInteractive () const =0
 Whether the effect needs a dialog for entry of settings. More...
 
virtual bool IsDefault () const =0
 Whether the effect sorts "above the line" in the menus. More...
 
virtual bool SupportsRealtime () const =0
 Whether the effect supports realtime previewing (while audio is playing). More...
 
virtual bool SupportsAutomation () const =0
 Whether the effect has any automatable controls. More...
 
virtual bool EnablesDebug () const
 Whether the effect dialog should have a Debug button; default, always false. More...
 
virtual ManualPageID ManualPage () const
 Name of a page in the Audacity alpha manual, default is empty. More...
 
virtual FilePath HelpPage () const
 Fully qualified local help file name, default is empty. More...
 
virtual bool IsHiddenFromMenus () const
 Default is false. More...
 
- Public Member Functions inherited from ComponentInterface
virtual ~ComponentInterface ()
 
virtual PluginPath GetPath () const =0
 
virtual ComponentInterfaceSymbol GetSymbol () const =0
 
virtual VendorSymbol GetVendor () const =0
 
virtual wxString GetVersion () const =0
 
virtual TranslatableString GetDescription () const =0
 
TranslatableString GetName () const
 

Static Public Member Functions

static EffectFetchParameters (Effect &e, EffectSettings &)
 
static void IncEffectCounter ()
 
- Static Public Member Functions inherited from EffectDefinitionInterface
static Identifier GetSquashedName (const Identifier &ident)
 A utility that strips spaces and CamelCases a name. More...
 

Protected Member Functions

bool EnablePreview (bool enable=true)
 
bool CheckWhetherSkipEffect (const EffectSettings &settings) const override
 Default implementation returns false. More...
 
double CalcPreviewInputLength (const EffectSettings &settings, double previewLength) const override
 Default implementation returns previewLength More...
 
virtual std::unique_ptr< EffectUIValidatorPopulateOrExchange (ShuttleGui &S, EffectInstance &instance, EffectSettingsAccess &access)
 Add controls to effect panel; always succeeds. More...
 
bool TotalProgress (double frac, const TranslatableString &={}) const
 
bool TrackProgress (int whichTrack, double frac, const TranslatableString &={}) const
 
bool TrackGroupProgress (int whichGroup, double frac, const TranslatableString &={}) const
 
int GetNumWaveTracks () const
 
int GetNumWaveGroups () const
 
void GetBounds (const WaveTrack &track, const WaveTrack *pRight, sampleCount *start, sampleCount *len)
 
void CopyInputTracks (bool allSyncLockSelected=false)
 
std::shared_ptr< AddedAnalysisTrackAddAnalysisTrack (const wxString &name=wxString())
 
ModifiedAnalysisTrack ModifyAnalysisTrack (const LabelTrack *pOrigTrack, const wxString &name=wxString())
 
TrackAddToOutputTracks (const std::shared_ptr< Track > &t)
 
- Protected Member Functions inherited from EffectBase
void Preview (EffectSettingsAccess &access, bool dryOnly) override
 
bool DoEffect (EffectSettings &settings, double projectRate, TrackList *list, WaveTrackFactory *factory, NotifyingSelectedRegion &selectedRegion, unsigned flags, wxWindow *pParent, const EffectDialogFactory &dialogFactory, const EffectSettingsAccessPtr &pAccess) override
 Unfortunately complicated dual-use function. More...
 
virtual bool CheckWhetherSkipEffect (const EffectSettings &settings) const =0
 After Init(), tell whether Process() should be skipped. More...
 
virtual double CalcPreviewInputLength (const EffectSettings &settings, double previewLength) const =0
 
void SetLinearEffectFlag (bool linearEffectFlag)
 
void SetPreviewFullSelectionFlag (bool previewDurationFlag)
 
bool IsPreviewing () const
 
void IncludeNotSelectedPreviewTracks (bool includeNotSelected)
 
void ReplaceProcessedTracks (const bool bGoodResult)
 
const TrackListinputTracks () const
 
const AudacityProjectFindProject () const
 
virtual bool ValidateUI (EffectSettings &settings)=0
 
virtual bool CloseUI ()=0
 

Protected Attributes

wxWeakRef< wxDialog > mHostUIDialog
 This smart pointer tracks the lifetime of the dialog. More...
 
wxWindow * mUIParent {}
 
- Protected Attributes inherited from EffectBase
BasicUI::ProgressDialogmProgress {}
 
double mProjectRate {}
 
WaveTrackFactorymFactory {}
 
std::shared_ptr< TrackListmOutputTracks
 
double mT0 {}
 
double mT1 {}
 
wxArrayString mPresetNames
 
unsigned mUIFlags { 0 }
 
- Protected Attributes inherited from EffectUIClientInterface
friend EffectUIValidator
 
friend DefaultEffectUIValidator
 

Private Member Functions

wxString GetSavedStateGroup ()
 

Private Attributes

bool mIsBatch { false }
 

Additional Inherited Members

- Static Public Attributes inherited from EffectPlugin
static const wxString kUserPresetIdent = wxT("User Preset:")
 
static const wxString kFactoryPresetIdent = wxT("Factory Preset:")
 
static const wxString kCurrentSettingsIdent = wxT("<Current Settings>")
 
static const wxString kFactoryDefaultsIdent = wxT("<Factory Defaults>")
 
- Static Protected Attributes inherited from EffectBase
static int nEffectsDone = 0
 

Detailed Description

Base class for many of the effects in Audacity.

Definition at line 145 of file Effect.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum : long
Enumerator
DefaultMessageBoxStyle 

Definition at line 259 of file Effect.h.

259: long { DefaultMessageBoxStyle = wxOK | wxCENTRE };
@ DefaultMessageBoxStyle
Definition: Effect.h:259

Constructor & Destructor Documentation

◆ Effect()

Effect::Effect ( )

Definition at line 54 of file Effect.cpp.

55{
56}

◆ ~Effect()

Effect::~Effect ( )
virtual

Definition at line 58 of file Effect.cpp.

59{
60 // Destroying what is usually the unique Effect object of its subclass,
61 // which lasts until the end of the session.
62 // Maybe there is a non-modal realtime dialog still open.
63 if (mHostUIDialog)
64 mHostUIDialog->Close();
65}
wxWeakRef< wxDialog > mHostUIDialog
This smart pointer tracks the lifetime of the dialog.
Definition: Effect.h:388

References mHostUIDialog.

Member Function Documentation

◆ AddAnalysisTrack()

auto Effect::AddAnalysisTrack ( const wxString &  name = wxString())
protected

Definition at line 802 of file Effect.cpp.

803{
804 return std::shared_ptr<AddedAnalysisTrack>
805 { safenew AddedAnalysisTrack{ this, name } };
806}
const TranslatableString name
Definition: Distortion.cpp:82
#define safenew
Definition: MemoryX.h:10

References name, and safenew.

Referenced by EffectFindClipping::Process(), and VampEffect::Process().

Here is the caller graph for this function:

◆ AddToOutputTracks()

Track * Effect::AddToOutputTracks ( const std::shared_ptr< Track > &  t)
protected

Definition at line 766 of file Effect.cpp.

767{
768 mIMap.push_back(NULL);
769 mOMap.push_back(t.get());
770 return mOutputTracks->Add(t);
771}
std::shared_ptr< TrackList > mOutputTracks
Definition: EffectBase.h:105
std::vector< Track * > mOMap
Definition: EffectBase.h:134
std::vector< Track * > mIMap
Definition: EffectBase.h:133

References EffectBase::mIMap, EffectBase::mOMap, and EffectBase::mOutputTracks.

Referenced by NyquistEffect::ProcessOne().

Here is the caller graph for this function:

◆ CalcPreviewInputLength()

double Effect::CalcPreviewInputLength ( const EffectSettings settings,
double  previewLength 
) const
overrideprotectedvirtual

Default implementation returns previewLength

Implements EffectBase.

Reimplemented in EffectPaulstretch, EffectTimeScale, and EffectTruncSilence.

Definition at line 863 of file Effect.cpp.

865{
866 return previewLength;
867}

Referenced by PerTrackEffect::ProcessTrack().

Here is the caller graph for this function:

◆ CanExportPresets()

bool Effect::CanExportPresets ( )
overridevirtual

Implements EffectUIClientInterface.

Reimplemented in LadspaEffect, LV2Effect, VSTEffect, and VST3Effect.

Definition at line 329 of file Effect.cpp.

330{
331 return true;
332}

◆ CheckWhetherSkipEffect()

bool Effect::CheckWhetherSkipEffect ( const EffectSettings settings) const
overrideprotectedvirtual

Default implementation returns false.

Implements EffectBase.

Reimplemented in EffectNoiseRemoval, and EffectNormalize.

Definition at line 858 of file Effect.cpp.

859{
860 return false;
861}

◆ CloseUI()

bool Effect::CloseUI ( )
overridevirtual

Implements EffectUIClientInterface.

Reimplemented in EffectEqualization, LV2Effect, VSTEffect, and VST3Effect.

Definition at line 318 of file Effect.cpp.

319{
320 if (mUIParent)
321 mUIParent->RemoveEventHandler(this);
322
323 mUIParent = NULL;
324 mUIDialog = NULL;
325
326 return true;
327}
wxWeakRef< wxDialog > mUIDialog
This weak pointer may be the same as mUIParent, or null.
Definition: EffectBase.h:119
wxWindow * mUIParent
Definition: Effect.h:389

References EffectBase::mUIDialog, and mUIParent.

Referenced by EffectEqualization::CloseUI().

Here is the caller graph for this function:

◆ CopyInputTracks()

void Effect::CopyInputTracks ( bool  allSyncLockSelected = false)
protected

Definition at line 739 of file Effect.cpp.

740{
741 // Reset map
742 mIMap.clear();
743 mOMap.clear();
744
746 const_cast<AudacityProject*>( FindProject() ) // how to remove this const_cast?
747 );
748
749 auto trackRange = mTracks->Any() +
750 [&] (const Track *pTrack) {
751 return allSyncLockSelected
753 : track_cast<const WaveTrack*>( pTrack ) && pTrack->GetSelected();
754 };
755
756 t2bHash added;
757
758 for (auto aTrack : trackRange)
759 {
760 Track *o = mOutputTracks->Add(aTrack->Duplicate());
761 mIMap.push_back(aTrack);
762 mOMap.push_back(o);
763 }
764}
std::unordered_map< void *, bool > t2bHash
Definition: Effect.cpp:47
std::enable_if_t< std::is_pointer_v< T >, T > track_cast(Track *track)
Encapsulate the checked down-casting of track pointers.
Definition: Track.h:959
The top-level handle to an Audacity project. It serves as a source of events that other objects can b...
Definition: Project.h:89
TrackList * mTracks
Definition: EffectBase.h:125
const AudacityProject * FindProject() const
Definition: EffectBase.cpp:303
static bool IsSelectedOrSyncLockSelected(const Track *pTrack)
Definition: SyncLock.cpp:73
Abstract base class for an object holding data associated with points on a time axis.
Definition: Track.h:225
static std::shared_ptr< TrackList > Create(AudacityProject *pOwner)
Definition: Track.cpp:483
auto Any() -> TrackIterRange< TrackType >
Definition: Track.h:1429
A Track that contains audio waveform data.
Definition: WaveTrack.h:57

References TrackList::Any(), TrackList::Create(), EffectBase::FindProject(), SyncLock::IsSelectedOrSyncLockSelected(), EffectBase::mIMap, EffectBase::mOMap, EffectBase::mOutputTracks, and EffectBase::mTracks.

Referenced by PerTrackEffect::Process(), EffectAutoDuck::Process(), EffectChangeSpeed::Process(), EffectClickRemoval::Process(), EffectEqualization::Process(), Generator::Process(), EffectLoudness::Process(), EffectNoiseReduction::Process(), EffectNoiseRemoval::Process(), EffectNormalize::Process(), NyquistEffect::Process(), EffectPaulstretch::Process(), EffectRepair::Process(), EffectRepeat::Process(), EffectReverse::Process(), EffectSBSMS::Process(), EffectSimpleMono::Process(), EffectStereoToMono::Process(), EffectTwoPassSimpleMono::Process(), EffectTruncSilence::ProcessAll(), and EffectTruncSilence::ProcessIndependently().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Delegate()

bool Effect::Delegate ( Effect delegate,
EffectSettings settings 
)

Re-invoke DoEffect on another Effect object that implements the work.

Definition at line 588 of file Effect.cpp.

589{
591 region.setTimes( mT0, mT1 );
592
593 return delegate.DoEffect(settings, mProjectRate, mTracks, mFactory,
594 region, mUIFlags, nullptr, nullptr, nullptr);
595}
static Settings & settings()
Definition: TrackInfo.cpp:87
double mT1
Definition: EffectBase.h:107
bool DoEffect(EffectSettings &settings, double projectRate, TrackList *list, WaveTrackFactory *factory, NotifyingSelectedRegion &selectedRegion, unsigned flags, wxWindow *pParent, const EffectDialogFactory &dialogFactory, const EffectSettingsAccessPtr &pAccess) override
Unfortunately complicated dual-use function.
Definition: EffectBase.cpp:60
WaveTrackFactory * mFactory
Definition: EffectBase.h:101
double mProjectRate
Definition: EffectBase.h:99
double mT0
Definition: EffectBase.h:106
unsigned mUIFlags
Definition: EffectBase.h:113
bool setTimes(double t0, double t1)
Definition: ViewInfo.cpp:51

References EffectBase::DoEffect(), EffectBase::mFactory, EffectBase::mProjectRate, EffectBase::mT0, EffectBase::mT1, EffectBase::mTracks, EffectBase::mUIFlags, NotifyingSelectedRegion::setTimes(), and settings().

Referenced by NyquistEffect::Process().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ EnableApply()

bool Effect::EnableApply ( bool  enable = true)

Definition at line 613 of file Effect.cpp.

614{
615 // May be called during initialization, so try to find the dialog
616 wxWindow *dlg = mUIDialog;
617 if (!dlg && mUIParent)
618 {
619 dlg = wxGetTopLevelParent(mUIParent);
620 }
621
622 if (dlg)
623 {
624 wxWindow *apply = dlg->FindWindow(wxID_APPLY);
625
626 // Don't allow focus to get trapped
627 if (!enable)
628 {
629 wxWindow *focus = dlg->FindFocus();
630 if (focus == apply)
631 {
632 dlg->FindWindow(wxID_CLOSE)->SetFocus();
633 }
634 }
635
636 apply->Enable(enable);
637 }
638
639 EnablePreview(enable);
640
641 return enable;
642}
bool EnablePreview(bool enable=true)
Definition: Effect.cpp:644

References EnablePreview(), EffectBase::mUIDialog, and mUIParent.

Referenced by EffectAmplify::CheckClip(), EffectRepeat::DisplayNewTime(), EffectWahwah::Validator::EnableApplyFromTransferDataToWindow(), EffectWahwah::Validator::EnableApplyFromValidate(), EffectAmplify::OnAmpText(), EffectBassTreble::OnBassSlider(), EffectBassTreble::OnBassText(), EffectTruncSilence::OnControlChange(), EffectToneGen::OnControlUpdate(), EffectScienFilter::OnCutoff(), EffectPhaser::OnDepthSlider(), EffectPhaser::OnDepthText(), EffectPhaser::OnDryWetSlider(), EffectPhaser::OnDryWetText(), EffectPhaser::OnFeedbackSlider(), EffectPhaser::OnFeedbackText(), EffectPhaser::OnFreqSlider(), EffectPhaser::OnFreqText(), EffectBassTreble::OnGainSlider(), EffectPhaser::OnGainSlider(), EffectBassTreble::OnGainText(), EffectPhaser::OnGainText(), EffectAmplify::OnPeakText(), EffectPhaser::OnPhaseSlider(), EffectPhaser::OnPhaseText(), EffectScienFilter::OnRipple(), EffectPhaser::OnStagesSlider(), EffectPhaser::OnStagesText(), EffectScienFilter::OnStopbandRipple(), EffectPaulstretch::OnText(), EffectTimeScale::OnText_PitchHalfStepsEnd(), EffectTimeScale::OnText_PitchHalfStepsStart(), EffectTimeScale::OnText_PitchPercentChangeEnd(), EffectTimeScale::OnText_PitchPercentChangeStart(), EffectTimeScale::OnText_RatePercentChangeEnd(), EffectTimeScale::OnText_RatePercentChangeStart(), EffectBassTreble::OnTrebleSlider(), EffectBassTreble::OnTrebleText(), EffectChangeSpeed::UpdateUI(), EffectLoudness::UpdateUI(), and EffectNormalize::UpdateUI().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ EnablePreview()

bool Effect::EnablePreview ( bool  enable = true)
protected

Definition at line 644 of file Effect.cpp.

645{
646 // May be called during initialization, so try to find the dialog
647 wxWindow *dlg = mUIDialog;
648 if (!dlg && mUIParent)
649 {
650 dlg = wxGetTopLevelParent(mUIParent);
651 }
652
653 if (dlg)
654 {
655 wxWindow *play = dlg->FindWindow(kPlayID);
656 if (play)
657 {
658 wxWindow *rewind = dlg->FindWindow(kRewindID);
659 wxWindow *ffwd = dlg->FindWindow(kFFwdID);
660
661 // Don't allow focus to get trapped
662 if (!enable)
663 {
664 wxWindow *focus = dlg->FindFocus();
665 if (focus && (focus == play || focus == rewind || focus == ffwd))
666 {
667 dlg->FindWindow(wxID_CLOSE)->SetFocus();
668 }
669 }
670
671 play->Enable(enable);
672 if (SupportsRealtime())
673 {
674 rewind->Enable(enable);
675 ffwd->Enable(enable);
676 }
677 }
678 }
679
680 return enable;
681}
static const int kFFwdID
Definition: Effect.cpp:45
static const int kRewindID
Definition: Effect.cpp:44
static const int kPlayID
Definition: Effect.cpp:43
bool SupportsRealtime() const override
Whether the effect supports realtime previewing (while audio is playing).
Definition: Effect.cpp:118

References kFFwdID, kPlayID, kRewindID, EffectBase::mUIDialog, mUIParent, and SupportsRealtime().

Referenced by EnableApply(), and NyquistEffect::TransferDataToWindow().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ExportPresets()

void Effect::ExportPresets ( const EffectSettings settings) const
overridevirtual

Implements EffectUIClientInterface.

Reimplemented in LadspaEffect, LV2Effect, VSTEffect, and VST3Effect.

Definition at line 343 of file Effect.cpp.

344{
345 wxString params;
347 auto commandId = GetSquashedName(GetSymbol().Internal());
348 params = commandId.GET() + ":" + params;
349
350 auto path = SelectFile(FileNames::Operation::Presets,
351 XO("Export Effect Parameters"),
352 wxEmptyString,
353 wxEmptyString,
354 wxEmptyString,
355 PresetTypes(),
356 wxFD_SAVE | wxFD_OVERWRITE_PROMPT | wxRESIZE_BORDER,
357 nullptr);
358 if (path.empty()) {
359 return;
360 }
361
362 // Create/Open the file
363 wxFFile f(path, wxT("wb"));
364 if (!f.IsOpened())
365 {
367 XO("Could not open file: \"%s\"").Format( path ),
368 XO("Error Saving Effect Presets"),
369 wxICON_EXCLAMATION,
370 NULL);
371 return;
372 }
373
374 f.Write(params);
375 if (f.Error())
376 {
378 XO("Error writing to file: \"%s\"").Format( path ),
379 XO("Error Saving Effect Presets"),
380 wxICON_EXCLAMATION,
381 NULL);
382 }
383
384 f.Close();
385
386
387 //SetWindowTitle();
388
389}
@ Internal
Indicates internal failure from Audacity.
int AudacityMessageBox(const TranslatableString &message, const TranslatableString &caption, long style, wxWindow *parent, int x, int y)
EffectDistortion::Params params
Definition: Distortion.cpp:83
static const FileNames::FileTypes & PresetTypes()
Definition: Effect.cpp:334
#define XO(s)
Definition: Internat.h:31
FilePath SelectFile(FileNames::Operation op, const TranslatableString &message, const FilePath &default_path, const FilePath &default_filename, const FileExtension &default_extension, const FileTypes &fileTypes, int flags, wxWindow *parent)
Definition: SelectFile.cpp:17
static Identifier GetSquashedName(const Identifier &ident)
A utility that strips spaces and CamelCases a name.
bool SaveSettingsAsString(const EffectSettings &settings, wxString &parms) const override
Definition: Effect.cpp:472
ComponentInterfaceSymbol GetSymbol() const override
Definition: Effect.cpp:74
Abstract base class used in importing a file.

References AudacityMessageBox(), EffectDefinitionInterface::GetSquashedName(), GetSymbol(), Internal, params, PresetTypes(), SaveSettingsAsString(), SelectFile(), settings(), and XO.

Here is the call graph for this function:

◆ FetchParameters()

static Effect * Effect::FetchParameters ( Effect e,
EffectSettings  
)
inlinestatic

Definition at line 156 of file Effect.h.

157 { return &e; }

◆ GetAudioInCount()

unsigned Effect::GetAudioInCount ( ) const
overridevirtual

How many input buffers to allocate at once.

If the effect ALWAYS processes channels independently, this can return 1

Implements EffectInstanceFactory.

Reimplemented in EffectFade, EffectInvert, LadspaEffect, LV2Effect, EffectPhaser, EffectReverb, EffectScienFilter, EffectStereoToMono, VampEffect, VSTEffect, VST3Effect, and EffectWahwah.

Definition at line 137 of file Effect.cpp.

138{
139 return 0;
140}

Referenced by PerTrackEffect::ProcessPass().

Here is the caller graph for this function:

◆ GetAudioOutCount()

unsigned Effect::GetAudioOutCount ( ) const
overridevirtual

How many output buffers to allocate at once.

Implements EffectInstanceFactory.

Reimplemented in EffectFade, EffectInvert, LadspaEffect, LV2Effect, EffectNoise, EffectPhaser, EffectReverb, EffectScienFilter, EffectStereoToMono, EffectToneGen, VSTEffect, VST3Effect, and EffectWahwah.

Definition at line 142 of file Effect.cpp.

143{
144 return 0;
145}

Referenced by PerTrackEffect::ProcessPass(), and PerTrackEffect::ProcessTrack().

Here is the caller graph for this function:

◆ GetBounds()

void Effect::GetBounds ( const WaveTrack track,
const WaveTrack pRight,
sampleCount start,
sampleCount len 
)
protected

Definition at line 709 of file Effect.cpp.

712{
713 auto t0 = std::max( mT0, track.GetStartTime() );
714 auto t1 = std::min( mT1, track.GetEndTime() );
715
716 if ( pRight ) {
717 t0 = std::min( t0, std::max( mT0, pRight->GetStartTime() ) );
718 t1 = std::max( t1, std::min( mT1, pRight->GetEndTime() ) );
719 }
720
721 if (t1 > t0) {
722 *start = track.TimeToLongSamples(t0);
723 auto end = track.TimeToLongSamples(t1);
724 *len = end - *start;
725 }
726 else {
727 *start = 0;
728 *len = 0;
729 }
730}
int min(int a, int b)
sampleCount TimeToLongSamples(double t0) const
Convert correctly between an (absolute) time in seconds and a number of samples.
Definition: SampleTrack.cpp:35
double GetStartTime() const override
Get the time at which the first clip in the track starts.
Definition: WaveTrack.cpp:1995
double GetEndTime() const override
Get the time at which the last clip in the track ends, plus recorded stuff.
Definition: WaveTrack.cpp:2015
auto end(const Ptr< Type, BaseDeleter > &p)
Enables range-for, if Traits<Type>::iterated_type is defined.
Definition: PackedArray.h:126

References PackedArray::end(), WaveTrack::GetEndTime(), WaveTrack::GetStartTime(), min(), EffectBase::mT0, EffectBase::mT1, and SampleTrack::TimeToLongSamples().

Referenced by VampEffect::Process(), and PerTrackEffect::ProcessPass().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetDefinition()

const EffectSettingsManager & Effect::GetDefinition ( ) const
overridevirtual

Implements EffectPlugin.

Definition at line 453 of file Effect.cpp.

454{
455 return *this;
456}

Referenced by LoadUserPreset(), EffectChangeSpeed::OnChoice_Vinyl(), EffectChangeSpeed::PopulateOrExchange(), SaveUserPreset(), EffectChangeSpeed::TransferDataFromWindow(), EffectChangeSpeed::Update_Vinyl(), and EffectEqualization::ValidateUI().

Here is the caller graph for this function:

◆ GetDescription()

TranslatableString Effect::GetDescription ( ) const
overridevirtual

◆ GetFactoryPresets()

RegistryPaths Effect::GetFactoryPresets ( ) const
overridevirtual

Report names of factory presets.

Implements EffectSettingsManager.

Reimplemented in EffectEqualization, LadspaEffect, LV2Effect, EffectReverb, VSTEffect, and VST3Effect.

Definition at line 270 of file Effect.cpp.

271{
272 return {};
273}

Referenced by LoadSettingsFromString().

Here is the caller graph for this function:

◆ GetFamily()

EffectFamilySymbol Effect::GetFamily ( ) const
overridevirtual

Report identifier and user-visible name of the effect protocol.

Implements EffectDefinitionInterface.

Reimplemented in LadspaEffect, LV2Effect, NyquistEffect, VampEffect, VSTEffect, and VST3Effect.

Definition at line 101 of file Effect.cpp.

102{
103 // Unusually, the internal and visible strings differ for the built-in
104 // effect family.
105 return { wxT("Audacity"), XO("Built-in") };
106}

References XO.

◆ GetNumWaveGroups()

int Effect::GetNumWaveGroups ( ) const
inlineprotected

Definition at line 307 of file Effect.h.

307{ return mNumGroups; }
int mNumGroups
Definition: EffectBase.h:137

Referenced by NyquistEffect::Process(), and VampEffect::Process().

Here is the caller graph for this function:

◆ GetNumWaveTracks()

int Effect::GetNumWaveTracks ( ) const
inlineprotected

Definition at line 306 of file Effect.h.

306{ return mNumTracks; }
int mNumTracks
Definition: EffectBase.h:136

Referenced by EffectNormalize::AnalyseTrackData(), EffectTruncSilence::Analyze(), EffectAutoDuck::ApplyDuckFade(), EffectAutoDuck::Process(), EffectNormalize::ProcessOne(), EffectTwoPassSimpleMono::ProcessOne(), EffectNoiseRemoval::ShowHostInterface(), and EffectLoudness::UpdateProgress().

Here is the caller graph for this function:

◆ GetPath()

PluginPath Effect::GetPath ( ) const
overridevirtual

Implements ComponentInterface.

Reimplemented in LadspaEffect, LV2Effect, NyquistEffect, VampEffect, VSTEffect, and VST3Effect.

Definition at line 69 of file Effect.cpp.

70{
72}
#define BUILTIN_EFFECT_PREFIX
Definition: Effect.h:19
const wxString & Internal() const

References BUILTIN_EFFECT_PREFIX, GetSymbol(), and ComponentInterfaceSymbol::Internal().

Here is the call graph for this function:

◆ GetSavedStateGroup()

wxString Effect::GetSavedStateGroup ( )
private

Definition at line 465 of file Effect.cpp.

466{
467 return wxT("SavedState");
468}

Referenced by SetBatchProcessing(), and UnsetBatchProcessing().

Here is the caller graph for this function:

◆ GetSelectionFormat()

NumericFormatSymbol Effect::GetSelectionFormat ( )
virtual

Definition at line 458 of file Effect.cpp.

459{
460 if( !IsBatchProcessing() && FindProject() )
463}
bool IsBatchProcessing() const override
Definition: Effect.cpp:562
static NumericFormatSymbol HoursMinsSecondsFormat()
static ProjectSettings & Get(AudacityProject &project)
const NumericFormatSymbol & GetSelectionFormat() const

References EffectBase::FindProject(), ProjectSettings::Get(), ProjectSettings::GetSelectionFormat(), NumericConverter::HoursMinsSecondsFormat(), and IsBatchProcessing().

Referenced by NyquistEffect::BuildEffectWindow(), and EffectRepeat::DisplayNewTime().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetSymbol()

ComponentInterfaceSymbol Effect::GetSymbol ( ) const
overridevirtual

Implements ComponentInterface.

Reimplemented in EffectEqualization, EffectFade, EffectFindClipping, EffectInvert, LadspaEffect, EffectLoudness, LV2Effect, EffectNoise, EffectNoiseReduction, EffectNormalize, NyquistEffect, EffectPaulstretch, EffectPhaser, EffectRepair, EffectRepeat, EffectReverb, EffectReverse, EffectSBSMS, EffectScienFilter, EffectSilence, EffectStereoToMono, EffectTimeScale, EffectToneGen, EffectTruncSilence, VampEffect, VSTEffect, VST3Effect, and EffectWahwah.

Definition at line 74 of file Effect.cpp.

75{
76 return {};
77}

Referenced by ExportPresets(), GetPath(), and ImportPresets().

Here is the caller graph for this function:

◆ GetType()

EffectType Effect::GetType ( ) const
overridevirtual

Type determines how it behaves.

Implements EffectDefinitionInterface.

Reimplemented in EffectEqualization, EffectFade, EffectFindClipping, EffectInvert, LadspaEffect, EffectLoudness, LV2Effect, EffectNoise, EffectNoiseReduction, EffectNoiseRemoval, EffectNormalize, NyquistEffect, EffectPaulstretch, EffectPhaser, EffectRepair, EffectRepeat, EffectReverb, EffectReverse, EffectScienFilter, EffectSilence, EffectStereoToMono, EffectTimeScale, EffectToneGen, EffectTruncSilence, VampEffect, VSTEffect, VST3Effect, and EffectWahwah.

Definition at line 96 of file Effect.cpp.

97{
98 return EffectTypeNone;
99}
@ EffectTypeNone

References EffectTypeNone.

Referenced by PerTrackEffect::ProcessPass(), and PerTrackEffect::ProcessTrack().

Here is the caller graph for this function:

◆ GetUIParent()

wxWindow * Effect::GetUIParent ( )
inline

Definition at line 392 of file Effect.h.

392{ return mUIParent; }

Referenced by EffectWahwah::Validator::EnableApplyFromTransferDataToWindow(), and EffectWahwah::Validator::EnableApplyFromValidate().

Here is the caller graph for this function:

◆ GetVendor()

VendorSymbol Effect::GetVendor ( ) const
overridevirtual

Implements ComponentInterface.

Reimplemented in LadspaEffect, LV2Effect, NyquistEffect, VampEffect, VSTEffect, and VST3Effect.

Definition at line 79 of file Effect.cpp.

80{
81 return XO("Audacity");
82}

References XO.

◆ GetVersion()

wxString Effect::GetVersion ( ) const
overridevirtual

Implements ComponentInterface.

Reimplemented in LadspaEffect, LV2Effect, NyquistEffect, VampEffect, VSTEffect, and VST3Effect.

Definition at line 84 of file Effect.cpp.

85{
86 return AUDACITY_VERSION_STRING;
87}

◆ HasOptions()

bool Effect::HasOptions ( )
overridevirtual

Implements EffectUIClientInterface.

Reimplemented in LadspaEffect, LV2Effect, VSTEffect, and VST3Effect.

Definition at line 442 of file Effect.cpp.

443{
444 return false;
445}

◆ ImportPresets()

void Effect::ImportPresets ( EffectSettings settings)
overridevirtual

Implements EffectUIClientInterface.

Reimplemented in LadspaEffect, LV2Effect, VSTEffect, and VST3Effect.

Definition at line 391 of file Effect.cpp.

392{
393 wxString params;
394
395 auto path = SelectFile(FileNames::Operation::Presets,
396 XO("Import Effect Parameters"),
397 wxEmptyString,
398 wxEmptyString,
399 wxEmptyString,
400 PresetTypes(),
401 wxFD_OPEN | wxRESIZE_BORDER,
402 nullptr);
403 if (path.empty()) {
404 return;
405 }
406
407 wxFFile f(path);
408 if (f.IsOpened()) {
409 if (f.ReadAll(&params)) {
410 wxString ident = params.BeforeFirst(':');
411 params = params.AfterFirst(':');
412
413 auto commandId = GetSquashedName(GetSymbol().Internal());
414
415 if (ident != commandId) {
416 // effect identifiers are a sensible length!
417 // must also have some params.
418 if ((params.Length() < 2 ) || (ident.Length() < 2) || (ident.Length() > 30))
419 {
421 /* i18n-hint %s will be replaced by a file name */
422 XO("%s: is not a valid presets file.\n")
423 .Format(wxFileNameFromPath(path)));
424 }
425 else
426 {
428 /* i18n-hint %s will be replaced by a file name */
429 XO("%s: is for a different Effect, Generator or Analyzer.\n")
430 .Format(wxFileNameFromPath(path)));
431 }
432 return;
433 }
435 }
436 }
437
438 //SetWindowTitle();
439
440}
static CommandHandlerObject & ident(AudacityProject &project)
int MessageBox(const TranslatableString &message, long style=DefaultMessageBoxStyle, const TranslatableString &titleStr={}) const
Definition: Effect.cpp:869
bool LoadSettingsFromString(const wxString &parms, EffectSettings &settings) const override
Definition: Effect.cpp:490

References EffectDefinitionInterface::GetSquashedName(), GetSymbol(), ident(), Internal, LoadSettingsFromString(), MessageBox(), params, PresetTypes(), SelectFile(), settings(), and XO.

Here is the call graph for this function:

◆ IncEffectCounter()

static void Effect::IncEffectCounter ( )
inlinestatic

Definition at line 264 of file Effect.h.

264{ nEffectsDone++;}
static int nEffectsDone
Definition: EffectBase.h:91

Referenced by SelectTracksCommand::Apply().

Here is the caller graph for this function:

◆ IsBatchProcessing()

bool Effect::IsBatchProcessing ( ) const
overridevirtual

Implements EffectPlugin.

Definition at line 562 of file Effect.cpp.

563{
564 return mIsBatch;
565}
bool mIsBatch
Definition: Effect.h:397

References mIsBatch.

Referenced by NyquistEffect::DoLoadSettings(), GetSelectionFormat(), EffectAmplify::Parameters(), EffectAmplify::PopulateOrExchange(), EffectEqualization::PopulateOrExchange(), NyquistEffect::Process(), and NyquistEffect::ShowHostInterface().

Here is the caller graph for this function:

◆ IsDefault()

bool Effect::IsDefault ( ) const
overridevirtual

Whether the effect sorts "above the line" in the menus.

Implements EffectDefinitionInterface.

Reimplemented in LadspaEffect, LV2Effect, NyquistEffect, VampEffect, VSTEffect, and VST3Effect.

Definition at line 113 of file Effect.cpp.

114{
115 return true;
116}

◆ IsGraphicalUI()

bool Effect::IsGraphicalUI ( )
overridevirtual

Implements EffectUIClientInterface.

Reimplemented in LadspaEffect, LV2Effect, VSTEffect, and VST3Effect.

Definition at line 308 of file Effect.cpp.

309{
310 return false;
311}

◆ IsInteractive()

bool Effect::IsInteractive ( ) const
overridevirtual

Whether the effect needs a dialog for entry of settings.

Implements EffectDefinitionInterface.

Reimplemented in EffectFade, EffectInvert, LadspaEffect, LV2Effect, NyquistEffect, EffectRepair, EffectReverse, EffectStereoToMono, VampEffect, VSTEffect, and VST3Effect.

Definition at line 108 of file Effect.cpp.

109{
110 return true;
111}

Referenced by ShowHostInterface().

Here is the caller graph for this function:

◆ LoadFactoryDefaults()

bool Effect::LoadFactoryDefaults ( EffectSettings settings) const
overridevirtual

Change settings back to "factory default".

Implements EffectSettingsManager.

Reimplemented in VST3Effect, and EffectEqualization.

Definition at line 280 of file Effect.cpp.

281{
283}
const RegistryPath & FactoryDefaultsGroup()
Component of a configuration key path, for default state of MakeSettings()
bool LoadUserPreset(const RegistryPath &name, EffectSettings &settings) const override
Change settings to a user-named preset.
Definition: Effect.cpp:245

References FactoryDefaultsGroup(), LoadUserPreset(), and settings().

Referenced by EffectChangeSpeed::DoLoadFactoryDefaults(), and EffectEqualization::DoLoadFactoryDefaults().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ LoadFactoryPreset()

bool Effect::LoadFactoryPreset ( int  id,
EffectSettings settings 
) const
overridevirtual

Change settings to the preset whose name is GetFactoryPresets()[id]

Implements EffectSettingsManager.

Reimplemented in EffectEqualization, LadspaEffect, LV2Effect, EffectReverb, VSTEffect, and VST3Effect.

Definition at line 275 of file Effect.cpp.

276{
277 return true;
278}

Referenced by LoadSettingsFromString().

Here is the caller graph for this function:

◆ LoadSettings()

bool Effect::LoadSettings ( const CommandParameters parms,
EffectSettings settings 
) const
overridevirtual

Restore settings from keys and values.

Returns
true on success

Implements EffectSettingsManager.

Reimplemented in LadspaEffect, LV2Effect, NyquistEffect, EffectTruncSilence, VampEffect, VSTEffect, and VST3Effect.

Definition at line 237 of file Effect.cpp.

239{
240 // The first argument, and with it the const_cast, will disappear when
241 // all built-in effects are stateless.
242 return Parameters().Set( *const_cast<Effect*>(this), parms, settings );
243}
Base class for many of the effects in Audacity.
Definition: Effect.h:148
virtual const EffectParameterMethods & Parameters() const
Definition: Effect.cpp:147
virtual bool Set(Effect &effect, const CommandParameters &parms, EffectSettings &settings) const =0

References Parameters(), EffectParameterMethods::Set(), and settings().

Referenced by EffectTruncSilence::LoadSettings(), and LoadSettingsFromString().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ LoadSettingsFromString()

bool Effect::LoadSettingsFromString ( const wxString &  parms,
EffectSettings settings 
) const
overridevirtual

Implements EffectPlugin.

Definition at line 490 of file Effect.cpp.

492{
493 // If the string starts with one of certain significant substrings,
494 // then the rest of the string is reinterpreted as part of a registry key,
495 // and a user or factory preset is then loaded.
496 // (Where did these prefixes come from? See EffectPresetsDialog; and
497 // ultimately the uses of it by EffectManager::GetPreset, which is used by
498 // the macro management dialog)
499 wxString preset = parms;
500 bool success = false;
501 if (preset.StartsWith(kUserPresetIdent))
502 {
503 preset.Replace(kUserPresetIdent, wxEmptyString, false);
505 }
506 else if (preset.StartsWith(kFactoryPresetIdent))
507 {
508 preset.Replace(kFactoryPresetIdent, wxEmptyString, false);
509 auto presets = GetFactoryPresets();
510 success = LoadFactoryPreset(
511 make_iterator_range( presets ).index( preset ), settings );
512 }
513 else if (preset.StartsWith(kCurrentSettingsIdent))
514 {
515 preset.Replace(kCurrentSettingsIdent, wxEmptyString, false);
517 }
518 else if (preset.StartsWith(kFactoryDefaultsIdent))
519 {
520 preset.Replace(kFactoryDefaultsIdent, wxEmptyString, false);
522 }
523 else
524 {
525 // If the string did not start with any of the significant substrings,
526 // then use VisitSettings or LoadSettings to reinterpret it,
527 // or use LoadSettings.
528 // This interprets what was written by SaveSettings, above.
529 CommandParameters eap(parms);
531 S.SetForValidating( &eap );
532 // VisitSettings returns false if not defined for this effect.
533 // To do: fix const_cast in use of VisitSettings
534 if ( !const_cast<Effect*>(this)->VisitSettings(S, settings) )
535 // the old method...
536 success = LoadSettings(eap, settings);
537 else if( !S.bOK )
538 success = false;
539 else{
540 success = true;
541 S.SetForWriting( &eap );
542 const_cast<Effect*>(this)->VisitSettings(S, settings);
543 }
544 }
545
546 if (!success)
547 {
549 XO("%s: Could not load settings below. Default settings will be used.\n\n%s")
550 .Format( GetName(), preset ) );
551 // We are using default settings and we still wish to continue.
552 return true;
553 //return false;
554 }
555 return true;
556}
RegistryPath UserPresetsGroup(const RegistryPath &name)
Compute part of a registry path, given a name which may be empty.
const RegistryPath & CurrentSettingsGroup()
Component of a configuration key path, for last-used destructive settings.
IteratorRange< Iterator > make_iterator_range(const Iterator &i1, const Iterator &i2)
Definition: MemoryX.h:423
EffectReverbSettings preset
Definition: Reverb.cpp:46
#define S(N)
Definition: ToChars.cpp:64
CommandParameters, derived from wxFileConfig, is essentially doing the same things as the SettingsVis...
TranslatableString GetName() const
bool LoadFactoryPreset(int id, EffectSettings &settings) const override
Change settings to the preset whose name is GetFactoryPresets()[id]
Definition: Effect.cpp:275
bool VisitSettings(SettingsVisitor &visitor, EffectSettings &settings) override
Definition: Effect.cpp:217
bool LoadSettings(const CommandParameters &parms, EffectSettings &settings) const override
Restore settings from keys and values.
Definition: Effect.cpp:237
RegistryPaths GetFactoryPresets() const override
Report names of factory presets.
Definition: Effect.cpp:270
static const wxString kUserPresetIdent
Definition: EffectPlugin.h:51
static const wxString kFactoryPresetIdent
Definition: EffectPlugin.h:52
static const wxString kCurrentSettingsIdent
Definition: EffectPlugin.h:53
static const wxString kFactoryDefaultsIdent
Definition: EffectPlugin.h:54
SettingsVisitor that sets parameters to a value (from a string)

References CurrentSettingsGroup(), FactoryDefaultsGroup(), GetFactoryPresets(), ComponentInterface::GetName(), EffectPlugin::kCurrentSettingsIdent, EffectPlugin::kFactoryDefaultsIdent, EffectPlugin::kFactoryPresetIdent, EffectPlugin::kUserPresetIdent, LoadFactoryPreset(), LoadSettings(), LoadUserPreset(), make_iterator_range(), MessageBox(), preset, S, settings(), UserPresetsGroup(), VisitSettings(), and XO.

Referenced by ImportPresets(), and LoadUserPreset().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ LoadUserPreset()

bool Effect::LoadUserPreset ( const RegistryPath name,
EffectSettings settings 
) const
overridevirtual

Change settings to a user-named preset.

Implements EffectSettingsManager.

Reimplemented in LadspaEffect, LV2Effect, VSTEffect, and VST3Effect.

Definition at line 245 of file Effect.cpp.

247{
248 // Find one string in the registry and then reinterpret it
249 // as complete settings
250 wxString parms;
252 name, wxT("Parameters"), parms))
253 return false;
254
255 return LoadSettingsFromString(parms, settings);
256}
const EffectSettingsManager & GetDefinition() const override
Definition: Effect.cpp:453
bool GetConfig(const EffectDefinitionInterface &ident, ConfigurationType type, const RegistryPath &group, const RegistryPath &key, Value &var, const Value &defval)

References PluginSettings::GetConfig(), GetDefinition(), LoadSettingsFromString(), name, PluginSettings::Private, and settings().

Referenced by LoadFactoryDefaults(), LoadSettingsFromString(), EffectEqualization::PopulateOrExchange(), and UnsetBatchProcessing().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ MessageBox()

int Effect::MessageBox ( const TranslatableString message,
long  style = DefaultMessageBoxStyle,
const TranslatableString titleStr = {} 
) const

Definition at line 869 of file Effect.cpp.

871{
872 auto title = titleStr.empty()
873 ? GetName()
874 : XO("%s: %s").Format( GetName(), titleStr );
875 return AudacityMessageBox( message, title, style, mUIParent );
876}
static const auto title

References AudacityMessageBox(), TranslatableString::empty(), ComponentInterface::GetName(), mUIParent, title, and XO.

Referenced by ImportPresets(), EffectAutoDuck::Init(), EffectEqualization::Init(), NyquistEffect::Init(), EffectScienFilter::Init(), VampEffect::Init(), EffectEqualization::LoadCurves(), LoadSettingsFromString(), NyquistEffect::OnLoad(), NyquistEffect::OnSave(), NyquistEffect::OnTime(), NyquistEffect::ParseProgram(), EffectClickRemoval::Process(), Generator::Process(), EffectNoiseReduction::Process(), NyquistEffect::Process(), EffectRepair::Process(), VampEffect::Process(), EffectTruncSilence::ProcessIndependently(), EffectDtmf::Instance::ProcessInitialize(), EffectEcho::Instance::ProcessInitialize(), NyquistEffect::ProcessOne(), EffectClickRemoval::ProcessOne(), EffectFindClipping::ProcessOne(), EffectPaulstretch::ProcessOne(), EffectEqualization::setCurve(), NyquistEffect::TransferDataFromEffectWindow(), and EffectEqualization::ValidateUI().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ModifyAnalysisTrack()

auto Effect::ModifyAnalysisTrack ( const LabelTrack pOrigTrack,
const wxString &  name = wxString() 
)
protected

Definition at line 852 of file Effect.cpp.

854{
855 return{ this, pOrigTrack, name };
856}

References name.

Referenced by EffectFindClipping::Process().

Here is the caller graph for this function:

◆ Parameters()

const EffectParameterMethods & Effect::Parameters ( ) const
virtual

Reimplemented in EffectAmplify, EffectAutoDuck, EffectBassTreble, EffectChangeSpeed, EffectClickRemoval, EffectCompressor, EffectDistortion, EffectDtmf, EffectEcho, EffectEqualization, EffectFindClipping, EffectLoudness, EffectNoise, EffectNormalize, EffectPaulstretch, EffectPhaser, EffectRepeat, EffectReverb, EffectScienFilter, EffectTimeScale, EffectToneGen, EffectTruncSilence, and EffectWahwah.

Definition at line 147 of file Effect.cpp.

148{
149 static const CapturedParameters<Effect> empty;
150 return empty;
151}
Generates EffectParameterMethods overrides from variadic template arguments.

Referenced by LoadSettings(), SaveSettings(), and VisitSettings().

Here is the caller graph for this function:

◆ PopulateOrExchange()

std::unique_ptr< EffectUIValidator > Effect::PopulateOrExchange ( ShuttleGui S,
EffectInstance instance,
EffectSettingsAccess access 
)
protectedvirtual

Add controls to effect panel; always succeeds.

Returns
if not null, then return it from Effect::PopulateUI instead of a DefaultEffectUIValidator; default implementation returns null

Reimplemented in EffectAmplify, EffectAutoDuck, EffectBassTreble, EffectChangeSpeed, EffectClickRemoval, EffectCompressor, EffectDistortion, EffectDtmf, EffectEcho, EffectEqualization, EffectFindClipping, LadspaEffect, EffectLoudness, EffectNoise, EffectNormalize, NyquistEffect, EffectPaulstretch, EffectPhaser, EffectRepeat, EffectReverb, EffectScienFilter, EffectSilence, EffectTimeScale, EffectToneGen, EffectTruncSilence, VampEffect, and EffectWahwah.

Definition at line 597 of file Effect.cpp.

599{
600 return nullptr;
601}

Referenced by PopulateUI().

Here is the caller graph for this function:

◆ PopulateUI()

std::unique_ptr< EffectUIValidator > Effect::PopulateUI ( ShuttleGui S,
EffectInstance instance,
EffectSettingsAccess access 
)
overridevirtual

Adds controls to a panel that is given as the parent window of S

Parameters
Sinterface for adding controls to a panel in a dialog
instanceguaranteed to have a lifetime containing that of the returned object
accessguaranteed to have a lifetime containing that of the returned object
Returns
null for failure; else an object invoked to retrieve values of UI controls; it might also hold some state needed to implement event handlers of the controls; it will exist only while the dialog continues to exist

Implements EffectUIClientInterface.

Reimplemented in LV2Effect, VSTEffect, and VST3Effect.

Definition at line 287 of file Effect.cpp.

289{
290 auto parent = S.GetParent();
291 mUIParent = parent;
292
293// LoadUserPreset(CurrentSettingsGroup());
294
295 // Let the effect subclass provide its own validator if it wants
296 auto result = PopulateOrExchange(S, instance, access);
297
298 mUIParent->SetMinSize(mUIParent->GetSizer()->GetMinSize());
299
300 if (!result) {
301 // No custom validator object? Then use the default
302 result = std::make_unique<DefaultEffectUIValidator>(*this, access);
303 }
304 mUIParent->PushEventHandler(this);
305 return result;
306}
virtual std::unique_ptr< EffectUIValidator > PopulateOrExchange(ShuttleGui &S, EffectInstance &instance, EffectSettingsAccess &access)
Add controls to effect panel; always succeeds.
Definition: Effect.cpp:597

References mUIParent, PopulateOrExchange(), and S.

Here is the call graph for this function:

◆ SaveSettings()

bool Effect::SaveSettings ( const EffectSettings settings,
CommandParameters parms 
) const
overridevirtual

Store settings as keys and values.

Returns
true on success

Implements EffectSettingsManager.

Reimplemented in LadspaEffect, LV2Effect, NyquistEffect, VampEffect, VSTEffect, and VST3Effect.

Definition at line 230 of file Effect.cpp.

232{
233 Parameters().Get( *this, settings, parms );
234 return true;
235}
virtual void Get(const Effect &effect, const EffectSettings &settings, CommandParameters &parms) const =0

References EffectParameterMethods::Get(), Parameters(), and settings().

Referenced by SaveSettingsAsString().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ SaveSettingsAsString()

bool Effect::SaveSettingsAsString ( const EffectSettings settings,
wxString &  parms 
) const
overridevirtual

Implements EffectPlugin.

Definition at line 472 of file Effect.cpp.

474{
477 S.mpEap = &eap;
478 if( VisitSettings( S, settings ) ){
479 ;// got eap value using VisitSettings.
480 }
481 // Won't be needed in future
482 else if (!SaveSettings(settings, eap))
483 {
484 return false;
485 }
486
487 return eap.GetParameters(parms);
488}
bool GetParameters(wxString &parms)
bool SaveSettings(const EffectSettings &settings, CommandParameters &parms) const override
Store settings as keys and values.
Definition: Effect.cpp:230
SettingsVisitor that gets parameter values into a string.

References CommandParameters::GetParameters(), S, SaveSettings(), settings(), and VisitSettings().

Referenced by ExportPresets(), and SaveUserPreset().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ SaveUserPreset()

bool Effect::SaveUserPreset ( const RegistryPath name,
const EffectSettings settings 
) const
overridevirtual

Save settings in the configuration file as a user-named preset.

Implements EffectSettingsManager.

Reimplemented in LadspaEffect, LV2Effect, VSTEffect, and VST3Effect.

Definition at line 258 of file Effect.cpp.

260{
261 // Save all settings as a single string value in the registry
262 wxString parms;
263 if (!SaveSettingsAsString(settings, parms))
264 return false;
265
267 name, wxT("Parameters"), parms);
268}
bool SetConfig(const EffectDefinitionInterface &ident, ConfigurationType type, const RegistryPath &group, const RegistryPath &key, const Value &value)

References GetDefinition(), name, PluginSettings::Private, SaveSettingsAsString(), PluginSettings::SetConfig(), and settings().

Referenced by SetBatchProcessing().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ SetBatchProcessing()

void Effect::SetBatchProcessing ( )
overridevirtual

Implements EffectPlugin.

Definition at line 567 of file Effect.cpp.

568{
569 mIsBatch = true;
570 // Save effect's internal state in a special registry path
571 // just for this purpose
572 // If effect is not stateful, this step doesn't really matter, and the
573 // settings object is a dummy
574 auto dummySettings = MakeSettings();
575 SaveUserPreset(GetSavedStateGroup(), dummySettings);
576}
bool SaveUserPreset(const RegistryPath &name, const EffectSettings &settings) const override
Save settings in the configuration file as a user-named preset.
Definition: Effect.cpp:258
wxString GetSavedStateGroup()
Definition: Effect.cpp:465
virtual EffectSettings MakeSettings() const

References GetSavedStateGroup(), EffectSettingsManager::MakeSettings(), mIsBatch, and SaveUserPreset().

Referenced by NyquistEffect::ShowHostInterface().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ShowClientInterface()

int Effect::ShowClientInterface ( wxWindow &  parent,
wxDialog &  dialog,
bool  forceModal = false 
)
overridevirtual
Returns
0 if destructive effect processing should not proceed (and there may be a non-modal dialog still opened); otherwise, modal dialog return code

Implements EffectUIClientInterface.

Reimplemented in LadspaEffect, LV2Effect, VSTEffect, and VST3Effect.

Definition at line 153 of file Effect.cpp.

155{
156 // Remember the dialog with a weak pointer, but don't control its lifetime
157 mUIDialog = &dialog;
158 mUIDialog->Layout();
159 mUIDialog->Fit();
160 mUIDialog->SetMinSize(mUIDialog->GetSize());
161
163 return 0;
164
165 if( SupportsRealtime() && !forceModal )
166 {
167 mUIDialog->Show();
168 // Return false to bypass effect processing
169 return 0;
170 }
171
172 return mUIDialog->ShowModal();
173}
static result_type Call(Arguments &&...arguments)
Null check of the installed function is done for you.

References GlobalHook< VetoDialogHook, bool(wxDialog *) >::Call(), EffectBase::mUIDialog, and SupportsRealtime().

Here is the call graph for this function:

◆ ShowHostInterface()

int Effect::ShowHostInterface ( wxWindow &  parent,
const EffectDialogFactory factory,
EffectInstance instance,
EffectSettingsAccess access,
bool  forceModal = false 
)
overridevirtual

Usually applies factory to self and given access.

But there are a few unusual overrides for historical reasons

Parameters
instanceis only guaranteed to have lifetime suitable for a modal dialog, unless the dialog stores instance.shared_from_this()
accessis only guaranteed to have lifetime suitable for a modal dialog, unless the dialog stores access.shared_from_this()
Returns
0 if destructive effect processing should not proceed (and there may be a non-modal dialog still opened); otherwise, modal dialog return code

Implements EffectPlugin.

Reimplemented in EffectNoiseReduction, EffectNoiseRemoval, and NyquistEffect.

Definition at line 175 of file Effect.cpp.

179{
180 if (!IsInteractive())
181 // Effect without UI just proceeds quietly to apply it destructively.
182 return wxID_APPLY;
183
184 if (mHostUIDialog)
185 {
186 // Realtime effect has shown its nonmodal dialog, now hides it, and does
187 // nothing else.
188 if ( mHostUIDialog->Close(true) )
189 mHostUIDialog = nullptr;
190 return 0;
191 }
192
193 // Create the dialog
194 // Host, not client, is responsible for invoking the factory and managing
195 // the lifetime of the dialog.
196 // The usual factory lets the client (which is this, when self-hosting)
197 // populate it. That factory function is called indirectly through a
198 // std::function to avoid source code dependency cycles.
199 EffectUIClientInterface *const client = this;
200 mHostUIDialog = factory(parent, *this, *client, instance, access);
201 if (!mHostUIDialog)
202 return 0;
203
204 // Let the client show the dialog and decide whether to keep it open
205 auto result = client->ShowClientInterface(parent, *mHostUIDialog, forceModal);
206 if (mHostUIDialog && !mHostUIDialog->IsShown())
207 // Client didn't show it, or showed it modally and closed it
208 // So destroy it.
209 // (I think mHostUIDialog only needs to be a local variable in this
210 // function -- that it is always null when the function begins -- but
211 // that may change. PRL)
212 mHostUIDialog->Destroy();
213
214 return result;
215}
static RegisteredToolbarFactory factory
bool IsInteractive() const override
Whether the effect needs a dialog for entry of settings.
Definition: Effect.cpp:108
EffectUIClientInterface is an abstract base class to populate a UI and validate UI values....
virtual int ShowClientInterface(wxWindow &parent, wxDialog &dialog, bool forceModal=false)=0

References factory, IsInteractive(), mHostUIDialog, and EffectUIClientInterface::ShowClientInterface().

Referenced by NyquistEffect::ShowHostInterface().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ShowOptions()

void Effect::ShowOptions ( )
overridevirtual

Implements EffectUIClientInterface.

Reimplemented in LadspaEffect, LV2Effect, VSTEffect, and VST3Effect.

Definition at line 447 of file Effect.cpp.

448{
449}

◆ SupportsAutomation()

bool Effect::SupportsAutomation ( ) const
overridevirtual

Whether the effect has any automatable controls.

Implements EffectDefinitionInterface.

Reimplemented in LadspaEffect, LV2Effect, EffectNoiseRemoval, VSTEffect, and VST3Effect.

Definition at line 123 of file Effect.cpp.

124{
125 return true;
126}

◆ SupportsRealtime()

bool Effect::SupportsRealtime ( ) const
overridevirtual

Whether the effect supports realtime previewing (while audio is playing).

Implements EffectDefinitionInterface.

Reimplemented in LadspaEffect, LV2Effect, EffectPhaser, VSTEffect, VST3Effect, and EffectWahwah.

Definition at line 118 of file Effect.cpp.

119{
120 return false;
121}

Referenced by EnablePreview(), and ShowClientInterface().

Here is the caller graph for this function:

◆ TestUIFlags()

unsigned Effect::TestUIFlags ( unsigned  mask)

Definition at line 558 of file Effect.cpp.

558 {
559 return mask & mUIFlags;
560}

References EffectBase::mUIFlags.

Referenced by NyquistEffect::ShowHostInterface().

Here is the caller graph for this function:

◆ TotalProgress()

bool Effect::TotalProgress ( double  frac,
const TranslatableString msg = {} 
) const
protected

Definition at line 683 of file Effect.cpp.

684{
685 auto updateResult = (mProgress ?
686 mProgress->Poll(frac * 1000, 1000, msg) :
688 return (updateResult != ProgressResult::Success);
689}
virtual ProgressResult Poll(unsigned long long numerator, unsigned long long denominator, const TranslatableString &message={})=0
Update the bar and poll for clicks. Call only on the main thread.
BasicUI::ProgressDialog * mProgress
Definition: EffectBase.h:98

References EffectBase::mProgress, BasicUI::ProgressDialog::Poll(), and BasicUI::Success.

Referenced by EffectNormalize::AnalyseTrackData(), EffectTruncSilence::Analyze(), EffectAutoDuck::ApplyDuckFade(), EffectTruncSilence::DoRemoval(), NyquistEffect::GetCallback(), EffectAutoDuck::Process(), EffectStereoToMono::ProcessOne(), EffectNormalize::ProcessOne(), EffectTwoPassSimpleMono::ProcessOne(), NyquistEffect::PutCallback(), and EffectLoudness::UpdateProgress().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ TrackGroupProgress()

bool Effect::TrackGroupProgress ( int  whichGroup,
double  frac,
const TranslatableString msg = {} 
) const
protected

Definition at line 700 of file Effect.cpp.

702{
703 auto updateResult = (mProgress ?
704 mProgress->Poll(whichGroup + frac, (double) mNumGroups, msg) :
706 return (updateResult != ProgressResult::Success);
707}

References EffectBase::mNumGroups, EffectBase::mProgress, BasicUI::ProgressDialog::Poll(), and BasicUI::Success.

Referenced by VampEffect::Process(), NyquistEffect::ProcessOne(), and PerTrackEffect::ProcessTrack().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ TrackProgress()

bool Effect::TrackProgress ( int  whichTrack,
double  frac,
const TranslatableString msg = {} 
) const
protected

Definition at line 691 of file Effect.cpp.

693{
694 auto updateResult = (mProgress ?
695 mProgress->Poll(whichTrack + frac, (double) mNumTracks, msg) :
697 return (updateResult != ProgressResult::Success);
698}

References EffectBase::mNumTracks, EffectBase::mProgress, BasicUI::ProgressDialog::Poll(), and BasicUI::Success.

Referenced by BlockGenerator::GenerateTrack(), EffectRepeat::Process(), EffectSBSMS::Process(), VampEffect::Process(), NyquistEffect::ProcessOne(), EffectEqualization::ProcessOne(), EffectClickRemoval::ProcessOne(), EffectNoiseRemoval::ProcessOne(), EffectRepair::ProcessOne(), EffectFindClipping::ProcessOne(), EffectChangeSpeed::ProcessOne(), EffectSimpleMono::ProcessOne(), EffectPaulstretch::ProcessOne(), EffectReverse::ProcessOneClip(), and PerTrackEffect::ProcessTrack().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ TransferDataFromWindow()

bool Effect::TransferDataFromWindow ( EffectSettings settings)
overridevirtual

Update the given settings from controls.

Implements EffectPlugin.

Reimplemented in EffectFindClipping, EffectNoise, NyquistEffect, EffectPhaser, EffectRepeat, EffectScienFilter, EffectSilence, EffectToneGen, and EffectTruncSilence.

Definition at line 608 of file Effect.cpp.

609{
610 return true;
611}

Referenced by EffectNoiseReduction::Dialog::OnGetProfile(), EffectNoiseReduction::Dialog::OnPreview(), and EffectNoiseReduction::Dialog::OnReduceNoise().

Here is the caller graph for this function:

◆ TransferDataToWindow()

bool Effect::TransferDataToWindow ( const EffectSettings settings)
overridevirtual

Update controls for the settings.

Implements EffectPlugin.

Reimplemented in EffectEqualization, EffectFindClipping, EffectLoudness, EffectNoise, EffectNormalize, NyquistEffect, EffectPhaser, EffectRepeat, EffectScienFilter, EffectSilence, EffectTimeScale, EffectToneGen, and VampEffect.

Definition at line 603 of file Effect.cpp.

604{
605 return true;
606}

◆ UnsetBatchProcessing()

void Effect::UnsetBatchProcessing ( )
overridevirtual

Implements EffectPlugin.

Definition at line 578 of file Effect.cpp.

579{
580 mIsBatch = false;
581 // Restore effect's internal state from registry
582 // If effect is not stateful, this call doesn't really matter, and the
583 // settings object is a dummy
584 auto dummySettings = MakeSettings();
585 LoadUserPreset(GetSavedStateGroup(), dummySettings);
586}

References GetSavedStateGroup(), LoadUserPreset(), EffectSettingsManager::MakeSettings(), and mIsBatch.

Here is the call graph for this function:

◆ ValidateUI()

bool Effect::ValidateUI ( EffectSettings )
overridevirtual

◆ VisitSettings() [1/2]

bool Effect::VisitSettings ( ConstSettingsVisitor visitor,
const EffectSettings settings 
) const
overridevirtual

Visit settings (read-only), if defined. false means no defined settings. Default implementation returns false

Reimplemented from EffectSettingsManager.

Reimplemented in EffectEqualization, and NyquistEffect.

Definition at line 223 of file Effect.cpp.

225{
226 Parameters().Visit(*this, visitor, settings);
227 return true;
228}
virtual void Visit(Effect &effect, SettingsVisitor &visitor, EffectSettings &settings) const =0

References Parameters(), settings(), and EffectParameterMethods::Visit().

Here is the call graph for this function:

◆ VisitSettings() [2/2]

bool Effect::VisitSettings ( SettingsVisitor visitor,
EffectSettings settings 
)
overridevirtual

Visit settings (and maybe change them), if defined. false means no defined settings. Default implementation returns false

Reimplemented from EffectSettingsManager.

Reimplemented in EffectEqualization, and NyquistEffect.

Definition at line 217 of file Effect.cpp.

218{
219 Parameters().Visit(*this, visitor, settings);
220 return true;
221}

References Parameters(), settings(), and EffectParameterMethods::Visit().

Referenced by LoadSettingsFromString(), SaveSettingsAsString(), and EffectEqualization::VisitSettings().

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ mHostUIDialog

wxWeakRef<wxDialog> Effect::mHostUIDialog
protected

This smart pointer tracks the lifetime of the dialog.

Definition at line 388 of file Effect.h.

Referenced by ShowHostInterface(), and ~Effect().

◆ mIsBatch

bool Effect::mIsBatch { false }
private

Definition at line 397 of file Effect.h.

Referenced by IsBatchProcessing(), SetBatchProcessing(), and UnsetBatchProcessing().

◆ mUIParent

wxWindow* Effect::mUIParent {}
protected

Definition at line 389 of file Effect.h.

Referenced by CloseUI(), EnableApply(), EnablePreview(), MessageBox(), EffectBassTreble::OnBassSlider(), EffectBassTreble::OnBassText(), EffectTruncSilence::OnControlChange(), EffectToneGen::OnControlUpdate(), EffectScienFilter::OnCutoff(), EffectPhaser::OnDepthSlider(), EffectPhaser::OnDepthText(), EffectPhaser::OnDryWetSlider(), EffectPhaser::OnDryWetText(), EffectPhaser::OnFeedbackSlider(), EffectPhaser::OnFeedbackText(), NyquistEffect::OnFileButton(), EffectPhaser::OnFreqSlider(), EffectPhaser::OnFreqText(), EffectBassTreble::OnGainSlider(), EffectPhaser::OnGainSlider(), EffectBassTreble::OnGainText(), EffectPhaser::OnGainText(), NyquistEffect::OnLoad(), EffectEqualization::OnManage(), EditCurvesDialog::OnOK(), EffectPhaser::OnPhaseSlider(), EffectPhaser::OnPhaseText(), EffectScienFilter::OnRipple(), NyquistEffect::OnSave(), EffectEqualization::OnSize(), EffectScienFilter::OnSize(), NyquistEffect::OnSlider(), EffectPhaser::OnStagesSlider(), EffectPhaser::OnStagesText(), EffectScienFilter::OnStopbandRipple(), NyquistEffect::OnText(), EffectPaulstretch::OnText(), EffectTimeScale::OnText_PitchHalfStepsEnd(), EffectTimeScale::OnText_PitchHalfStepsStart(), EffectTimeScale::OnText_PitchPercentChangeEnd(), EffectTimeScale::OnText_PitchPercentChangeStart(), EffectTimeScale::OnText_RatePercentChangeEnd(), EffectTimeScale::OnText_RatePercentChangeStart(), NyquistEffect::OnTime(), EffectBassTreble::OnTrebleSlider(), EffectBassTreble::OnTrebleText(), EffectEqualization::PopulateOrExchange(), PopulateUI(), NyquistEffect::Process(), LadspaEffect::ShowOptions(), NyquistEffect::TransferDataFromEffectWindow(), EffectFindClipping::TransferDataFromWindow(), NyquistEffect::TransferDataToEffectWindow(), EffectEqualization::TransferDataToWindow(), EffectFindClipping::TransferDataToWindow(), EffectScienFilter::TransferGraphLimitsFromWindow(), EffectEqualization::UpdateDraw(), EffectEqualization::UpdateGraphic(), EffectLoudness::UpdateUI(), and EffectNormalize::UpdateUI().


The documentation for this class was generated from the following files: