12#ifndef __AUDACITY_EFFECTPLUGIN_H__
13#define __AUDACITY_EFFECTPLUGIN_H__
38 std::shared_ptr<EffectInstance> &,
83 bool forceModal =
false) = 0;
114 wxWindow *pParent =
nullptr,
116 const EffectSettingsAccessPtr &pAccess =
nullptr
std::function< wxDialog *(wxWindow &parent, EffectPlugin &, EffectUIClientInterface &, std::shared_ptr< EffectInstance > &, EffectSettingsAccess &) > EffectDialogFactory
Type of function that creates a dialog for an effect.
static Settings & settings()
Performs effect computation.
Factory of instances of an effect and of dialogs to control them.
static const wxString kUserPresetIdent
virtual void SetBatchProcessing()=0
virtual bool TransferDataToWindow(const EffectSettings &settings)=0
Update controls for the settings.
std::shared_ptr< EffectSettingsAccess > EffectSettingsAccessPtr
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.
static const wxString kFactoryPresetIdent
virtual bool TransferDataFromWindow(EffectSettings &settings)=0
Update the given settings from controls.
virtual void UnsetBatchProcessing()=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.
virtual bool SaveSettingsAsString(const EffectSettings &settings, wxString &parms) const =0
virtual const EffectSettingsManager & GetDefinition() const =0
virtual bool IsBatchProcessing() const =0
static const wxString kCurrentSettingsIdent
static const wxString kFactoryDefaultsIdent
virtual void Preview(EffectSettingsAccess &access, bool dryOnly)=0
virtual bool LoadSettingsFromString(const wxString &parms, EffectSettings &settings) const =0
EffectPlugin & operator=(EffectPlugin &)=delete
EffectSettingsManager is an EffectDefinitionInterface that adds a factory function for EffectSettings...
EffectUIClientInterface is an abstract base class to populate a UI and validate UI values....
A flat linked list of tracks supporting Add, Remove, Clear, and Contains, serialization of the list o...
Used to create or clone a WaveTrack, with appropriate context from the project that will own the trac...
Externalized state of a plug-in.