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 Types inherited from EffectDefinitionInterface
enum class  RealtimeSince : unsigned { Never , Since_3_2 , Always }
 In which versions of Audacity was an effect realtime capable? More...
 

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...
 
RealtimeSince RealtimeSupport () const override
 Since which version of Audacity has the effect supported realtime? 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, EffectUIValidator *pValidator, bool forceModal) 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, std::shared_ptr< EffectInstance > &pInstance, 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, EffectUIValidator *pValidator, 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
 
virtual bool ValidateUI (EffectSettings &settings)=0
 
virtual bool CloseUI ()=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, std::shared_ptr< EffectInstance > &pInstance, 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, SettingsCopyDirection copyDirection) 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 RealtimeSince RealtimeSupport () const =0
 Since which version of Audacity has the effect supported realtime? More...
 
bool SupportsRealtime () const
 
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
 

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 }
 

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 57 of file Effect.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum : long
Enumerator
DefaultMessageBoxStyle 

Definition at line 172 of file Effect.h.

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

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:301

References mHostUIDialog.

Member Function Documentation

◆ AddAnalysisTrack()

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

Definition at line 800 of file Effect.cpp.

801{
802 return std::shared_ptr<AddedAnalysisTrack>
803 { safenew AddedAnalysisTrack{ this, name } };
804}
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 764 of file Effect.cpp.

765{
766 mIMap.push_back(NULL);
767 mOMap.push_back(t.get());
768 return mOutputTracks->Add(t);
769}
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 861 of file Effect.cpp.

863{
864 return previewLength;
865}

Referenced by PerTrackEffect::ProcessPass().

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 325 of file Effect.cpp.

326{
327 return true;
328}

◆ CheckWhetherSkipEffect()

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

Default implementation returns false.

Implements EffectBase.

Reimplemented in EffectNoiseRemoval, and EffectNormalize.

Definition at line 856 of file Effect.cpp.

857{
858 return false;
859}

◆ CloseUI()

bool Effect::CloseUI ( )
overridevirtual

Implements EffectUIClientInterface.

Reimplemented in EffectEqualization, LV2Effect, VSTEffect, and VST3Effect.

Definition at line 318 of file Effect.cpp.

319{
320 mUIParent = nullptr;
321 mUIDialog = nullptr;
322 return true;
323}
wxWeakRef< wxDialog > mUIDialog
This weak pointer may be the same as mUIParent, or null.
Definition: EffectBase.h:119
wxWindow * mUIParent
Definition: Effect.h:302

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 737 of file Effect.cpp.

738{
739 // Reset map
740 mIMap.clear();
741 mOMap.clear();
742
744 const_cast<AudacityProject*>( FindProject() ) // how to remove this const_cast?
745 );
746
747 auto trackRange = mTracks->Any() +
748 [&] (const Track *pTrack) {
749 return allSyncLockSelected
751 : track_cast<const WaveTrack*>( pTrack ) && pTrack->GetSelected();
752 };
753
754 t2bHash added;
755
756 for (auto aTrack : trackRange)
757 {
758 Track *o = mOutputTracks->Add(aTrack->Duplicate());
759 mIMap.push_back(aTrack);
760 mOMap.push_back(o);
761 }
762}
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:965
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:315
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:502
auto Any() -> TrackIterRange< TrackType >
Definition: Track.h:1435
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 584 of file Effect.cpp.

585{
587 region.setTimes( mT0, mT1 );
588
589 return delegate.DoEffect(settings, mProjectRate, mTracks, mFactory,
590 region, mUIFlags, nullptr, nullptr, nullptr);
591}
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 609 of file Effect.cpp.

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

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 640 of file Effect.cpp.

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

References kFFwdID, kPlayID, kRewindID, EffectBase::mUIDialog, mUIParent, and EffectDefinitionInterface::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 339 of file Effect.cpp.

340{
341 wxString params;
343 auto commandId = GetSquashedName(GetSymbol().Internal());
344 params = commandId.GET() + ":" + params;
345
346 auto path = SelectFile(FileNames::Operation::Presets,
347 XO("Export Effect Parameters"),
348 wxEmptyString,
349 wxEmptyString,
350 wxEmptyString,
351 PresetTypes(),
352 wxFD_SAVE | wxFD_OVERWRITE_PROMPT | wxRESIZE_BORDER,
353 nullptr);
354 if (path.empty()) {
355 return;
356 }
357
358 // Create/Open the file
359 wxFFile f(path, wxT("wb"));
360 if (!f.IsOpened())
361 {
363 XO("Could not open file: \"%s\"").Format( path ),
364 XO("Error Saving Effect Presets"),
365 wxICON_EXCLAMATION,
366 NULL);
367 return;
368 }
369
370 f.Write(params);
371 if (f.Error())
372 {
374 XO("Error writing to file: \"%s\"").Format( path ),
375 XO("Error Saving Effect Presets"),
376 wxICON_EXCLAMATION,
377 NULL);
378 }
379
380 f.Close();
381
382
383 //SetWindowTitle();
384
385}
@ 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:330
#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:468
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 68 of file Effect.h.

69 { 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().

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 707 of file Effect.cpp.

710{
711 auto t0 = std::max( mT0, track.GetStartTime() );
712 auto t1 = std::min( mT1, track.GetEndTime() );
713
714 if ( pRight ) {
715 t0 = std::min( t0, std::max( mT0, pRight->GetStartTime() ) );
716 t1 = std::max( t1, std::min( mT1, pRight->GetEndTime() ) );
717 }
718
719 if (t1 > t0) {
720 *start = track.TimeToLongSamples(t0);
721 auto end = track.TimeToLongSamples(t1);
722 *len = end - *start;
723 }
724 else {
725 *start = 0;
726 *len = 0;
727 }
728}
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:42
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.
Definition: PackedArray.h:159

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 449 of file Effect.cpp.

450{
451 return *this;
452}

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 269 of file Effect.cpp.

270{
271 return {};
272}

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 220 of file Effect.h.

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

References EffectBase::mNumGroups.

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

Here is the caller graph for this function:

◆ GetNumWaveTracks()

int Effect::GetNumWaveTracks ( ) const
inlineprotected

Definition at line 219 of file Effect.h.

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

References EffectBase::mNumTracks.

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:20
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 461 of file Effect.cpp.

462{
463 return wxT("SavedState");
464}

Referenced by SetBatchProcessing(), and UnsetBatchProcessing().

Here is the caller graph for this function:

◆ GetSelectionFormat()

NumericFormatSymbol Effect::GetSelectionFormat ( )
virtual

Definition at line 454 of file Effect.cpp.

455{
456 if( !IsBatchProcessing() && FindProject() )
459}
bool IsBatchProcessing() const override
Definition: Effect.cpp:558
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().

Here is the caller graph for this function:

◆ GetUIParent()

wxWindow * Effect::GetUIParent ( )
inline

Definition at line 305 of file Effect.h.

305{ 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 438 of file Effect.cpp.

439{
440 return false;
441}

◆ ImportPresets()

void Effect::ImportPresets ( EffectSettings settings)
overridevirtual

Implements EffectUIClientInterface.

Reimplemented in LadspaEffect, LV2Effect, VSTEffect, and VST3Effect.

Definition at line 387 of file Effect.cpp.

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

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 177 of file Effect.h.

177{ 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 558 of file Effect.cpp.

559{
560 return mIsBatch;
561}
bool mIsBatch
Definition: Effect.h:310

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
Returns
false

Implements EffectUIClientInterface.

Reimplemented in 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 EffectEqualization.

Definition at line 279 of file Effect.cpp.

280{
282}
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:244

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 274 of file Effect.cpp.

275{
276 return true;
277}

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 236 of file Effect.cpp.

238{
239 // The first argument, and with it the const_cast, will disappear when
240 // all built-in effects are stateless.
241 return Parameters().Set( *const_cast<Effect*>(this), parms, settings );
242}
Base class for many of the effects in Audacity.
Definition: Effect.h:60
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 486 of file Effect.cpp.

488{
489 // If the string starts with one of certain significant substrings,
490 // then the rest of the string is reinterpreted as part of a registry key,
491 // and a user or factory preset is then loaded.
492 // (Where did these prefixes come from? See EffectPresetsDialog; and
493 // ultimately the uses of it by EffectManager::GetPreset, which is used by
494 // the macro management dialog)
495 wxString preset = parms;
496 bool success = false;
497 if (preset.StartsWith(kUserPresetIdent))
498 {
499 preset.Replace(kUserPresetIdent, wxEmptyString, false);
501 }
502 else if (preset.StartsWith(kFactoryPresetIdent))
503 {
504 preset.Replace(kFactoryPresetIdent, wxEmptyString, false);
505 auto presets = GetFactoryPresets();
506 success = LoadFactoryPreset(
507 make_iterator_range( presets ).index( preset ), settings );
508 }
509 else if (preset.StartsWith(kCurrentSettingsIdent))
510 {
511 preset.Replace(kCurrentSettingsIdent, wxEmptyString, false);
513 }
514 else if (preset.StartsWith(kFactoryDefaultsIdent))
515 {
516 preset.Replace(kFactoryDefaultsIdent, wxEmptyString, false);
518 }
519 else
520 {
521 // If the string did not start with any of the significant substrings,
522 // then use VisitSettings or LoadSettings to reinterpret it,
523 // or use LoadSettings.
524 // This interprets what was written by SaveSettings, above.
525 CommandParameters eap(parms);
527 S.SetForValidating( &eap );
528 // VisitSettings returns false if not defined for this effect.
529 // To do: fix const_cast in use of VisitSettings
530 if ( !const_cast<Effect*>(this)->VisitSettings(S, settings) )
531 // the old method...
532 success = LoadSettings(eap, settings);
533 else if( !S.bOK )
534 success = false;
535 else{
536 success = true;
537 S.SetForWriting( &eap );
538 const_cast<Effect*>(this)->VisitSettings(S, settings);
539 }
540 }
541
542 if (!success)
543 {
545 XO("%s: Could not load settings below. Default settings will be used.\n\n%s")
546 .Format( GetName(), preset ) );
547 // We are using default settings and we still wish to continue.
548 return true;
549 //return false;
550 }
551 return true;
552}
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:274
bool VisitSettings(SettingsVisitor &visitor, EffectSettings &settings) override
Definition: Effect.cpp:216
bool LoadSettings(const CommandParameters &parms, EffectSettings &settings) const override
Restore settings from keys and values.
Definition: Effect.cpp:236
RegistryPaths GetFactoryPresets() const override
Report names of factory presets.
Definition: Effect.cpp:269
static const wxString kUserPresetIdent
Definition: EffectPlugin.h:58
static const wxString kFactoryPresetIdent
Definition: EffectPlugin.h:59
static const wxString kCurrentSettingsIdent
Definition: EffectPlugin.h:60
static const wxString kFactoryDefaultsIdent
Definition: EffectPlugin.h:61
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 244 of file Effect.cpp.

246{
247 // Find one string in the registry and then reinterpret it
248 // as complete settings
249 wxString parms;
251 name, wxT("Parameters"), parms))
252 return false;
253
254 return LoadSettingsFromString(parms, settings);
255}
const EffectSettingsManager & GetDefinition() const override
Definition: Effect.cpp:449
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 867 of file Effect.cpp.

869{
870 auto title = titleStr.empty()
871 ? GetName()
872 : XO("%s: %s").Format( GetName(), titleStr );
873 return AudacityMessageBox( message, title, style, mUIParent );
874}
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 850 of file Effect.cpp.

852{
853 return{ this, pOrigTrack, name };
854}

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 593 of file Effect.cpp.

595{
596 return nullptr;
597}

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 286 of file Effect.cpp.

288{
289 auto parent = S.GetParent();
290 mUIParent = parent;
291
292// LoadUserPreset(CurrentSettingsGroup());
293
294 // Let the effect subclass provide its own validator if it wants
295 auto result = PopulateOrExchange(S, instance, access);
296
297 mUIParent->SetMinSize(mUIParent->GetSizer()->GetMinSize());
298
299 if (!result) {
300 // No custom validator object? Then use the default
301 result = std::make_unique<DefaultEffectUIValidator>(
302 *this, access, S.GetParent());
303 mUIParent->PushEventHandler(this);
304 }
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:593

References mUIParent, PopulateOrExchange(), and S.

Here is the call graph for this function:

◆ RealtimeSupport()

auto Effect::RealtimeSupport ( ) const
overridevirtual

Since which version of Audacity has the effect supported realtime?

Implements EffectDefinitionInterface.

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

Definition at line 118 of file Effect.cpp.

References EffectDefinitionInterface::Never.

◆ SaveSettings()

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

Store settings as keys and values.

The override may assume parms is initially empty

Returns
true on success

Implements EffectSettingsManager.

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

Definition at line 229 of file Effect.cpp.

231{
232 Parameters().Get( *this, settings, parms );
233 return true;
234}
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 468 of file Effect.cpp.

470{
473 S.mpEap = &eap;
474 if( VisitSettings( S, settings ) ){
475 ;// got eap value using VisitSettings.
476 }
477 // Won't be needed in future
478 else if (!SaveSettings(settings, eap))
479 {
480 return false;
481 }
482
483 return eap.GetParameters(parms);
484}
bool GetParameters(wxString &parms)
bool SaveSettings(const EffectSettings &settings, CommandParameters &parms) const override
Store settings as keys and values.
Definition: Effect.cpp:229
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 257 of file Effect.cpp.

259{
260 // Save all settings as a single string value in the registry
261 wxString parms;
262 if (!SaveSettingsAsString(settings, parms))
263 return false;
264
266 name, wxT("Parameters"), parms);
267}
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 563 of file Effect.cpp.

564{
565 mIsBatch = true;
566 // Save effect's internal state in a special registry path
567 // just for this purpose
568 // If effect is not stateful, this step doesn't really matter, and the
569 // settings object is a dummy
570 auto dummySettings = MakeSettings();
571 SaveUserPreset(GetSavedStateGroup(), dummySettings);
572}
bool SaveUserPreset(const RegistryPath &name, const EffectSettings &settings) const override
Save settings in the configuration file as a user-named preset.
Definition: Effect.cpp:257
wxString GetSavedStateGroup()
Definition: Effect.cpp:461
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,
EffectUIValidator pValidator,
bool  forceModal 
)
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());
162 return 0;
163 if (SupportsRealtime() && !forceModal) {
164 mUIDialog->Show();
165 // Return false to bypass effect processing
166 return 0;
167 }
168 return mUIDialog->ShowModal();
169}
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 EffectDefinitionInterface::SupportsRealtime().

Here is the call graph for this function:

◆ ShowHostInterface()

int Effect::ShowHostInterface ( wxWindow &  parent,
const EffectDialogFactory factory,
std::shared_ptr< EffectInstance > &  pInstance,
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
pInstancemay be passed to factory, and is only guaranteed to have lifetime suitable for a modal dialog, unless the dialog stores a copy of pInstance
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 171 of file Effect.cpp.

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

444{
445}

◆ 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}

◆ TestUIFlags()

unsigned Effect::TestUIFlags ( unsigned  mask)

Definition at line 554 of file Effect.cpp.

554 {
555 return mask & mUIFlags;
556}

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 681 of file Effect.cpp.

682{
683 auto updateResult = (mProgress ?
684 mProgress->Poll(frac * 1000, 1000, msg) :
686 return (updateResult != ProgressResult::Success);
687}
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 698 of file Effect.cpp.

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

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

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

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 689 of file Effect.cpp.

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

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::ProcessPass().

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 604 of file Effect.cpp.

605{
606 return true;
607}

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, VampEffect, VSTEffect, and VST3Effect.

Definition at line 599 of file Effect.cpp.

600{
601 return true;
602}

◆ UnsetBatchProcessing()

void Effect::UnsetBatchProcessing ( )
overridevirtual

Implements EffectPlugin.

Definition at line 574 of file Effect.cpp.

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

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 222 of file Effect.cpp.

224{
225 Parameters().Visit(*this, visitor, settings);
226 return true;
227}
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 216 of file Effect.cpp.

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

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 301 of file Effect.h.

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

◆ mIsBatch

bool Effect::mIsBatch { false }
private

Definition at line 310 of file Effect.h.

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

◆ mUIParent

wxWindow* Effect::mUIParent {}
protected

Definition at line 302 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: