Audacity 3.2.0
Public Types | Public Member Functions | Static Public Attributes | List of all members
EffectPlugin Class Referenceabstract

Factory of instances of an effect. More...

#include <EffectPlugin.h>

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

Public Types

using EffectSettingsAccessPtr = std::shared_ptr< EffectSettingsAccess >
 
using InstancePointer = std::shared_ptr< EffectInstanceEx >
 
using InstanceFinder = std::function< std::optional< InstancePointer >(EffectSettings &settings) >
 
- Public Types inherited from EffectDefinitionInterface
enum class  RealtimeSince : unsigned { Never , After_3_1 , Always }
 In which versions of Audacity was an effect realtime capable? More...
 

Public Member Functions

EffectPluginoperator= (EffectPlugin &)=delete
 
virtual ~EffectPlugin ()
 
virtual bool HasOptions () const =0
 
virtual bool CanExportPresets () const =0
 Whether the effect supports export of presets to files, and importing too. More...
 
virtual const EffectSettingsManagerGetDefinition () const =0
 
virtual bool SaveSettingsAsString (const EffectSettings &settings, wxString &parms) const =0
 
virtual OptionalMessage 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, const InstanceFinder &finder, double projectRate, TrackList *list, WaveTrackFactory *factory, NotifyingSelectedRegion &selectedRegion, unsigned flags, const EffectSettingsAccessPtr &pAccess=nullptr)=0
 
- 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...
 
- 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...
 
virtual bool SaveSettings (const EffectSettings &settings, CommandParameters &parms) const =0
 Store settings as keys and values. More...
 
virtual bool LoadSettings (const CommandParameters &parms, EffectSettings &settings) const =0
 Restore settings from keys and values. More...
 
virtual RegistryPaths GetFactoryPresets () const =0
 Report names of factory presets. More...
 
virtual OptionalMessage LoadUserPreset (const RegistryPath &name, EffectSettings &settings) const =0
 
virtual bool SaveUserPreset (const RegistryPath &name, const EffectSettings &settings) const =0
 Save settings in the configuration file as a user-named preset. More...
 
virtual OptionalMessage LoadFactoryPreset (int id, EffectSettings &settings) const =0
 
virtual OptionalMessage LoadFactoryDefaults (EffectSettings &settings) const =0
 
virtual std::unique_ptr< EffectOutputsMakeOutputs () const
 Produce an object to hold values to send to effect output meters. 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 Attributes

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>")
 

Additional Inherited Members

- Static Public Member Functions inherited from EffectDefinitionInterface
static Identifier GetSquashedName (const Identifier &ident)
 A utility that strips spaces and CamelCases a name. More...
 

Detailed Description

Factory of instances of an effect.

Definition at line 34 of file EffectPlugin.h.

Member Typedef Documentation

◆ EffectSettingsAccessPtr

Definition at line 38 of file EffectPlugin.h.

◆ InstanceFinder

using EffectPlugin::InstanceFinder = std::function< std::optional<InstancePointer>(EffectSettings &settings) >

nullopt for failure is distinct from successful null return If a non-null pointer is returned, assume Init() also succeeded on it If a null pointer, then DoEffect will use MakeInstance()

Definition at line 70 of file EffectPlugin.h.

◆ InstancePointer

Definition at line 66 of file EffectPlugin.h.

Constructor & Destructor Documentation

◆ ~EffectPlugin()

EffectPlugin::~EffectPlugin ( )
virtualdefault

Member Function Documentation

◆ CanExportPresets()

virtual bool EffectPlugin::CanExportPresets ( ) const
pure virtual

Whether the effect supports export of presets to files, and importing too.

Implemented in AudioUnitEffectBase, Effect, LadspaEffectBase, LV2EffectBase, VSTEffectBase, and VST3EffectBase.

Referenced by EffectUIHost::OnMenu().

Here is the caller graph for this function:

◆ DoEffect()

virtual bool EffectPlugin::DoEffect ( EffectSettings settings,
const InstanceFinder finder,
double  projectRate,
TrackList list,
WaveTrackFactory factory,
NotifyingSelectedRegion selectedRegion,
unsigned  flags,
const EffectSettingsAccessPtr pAccess = nullptr 
)
pure virtual

Will only operate on tracks that have the "selected" flag set to true, which is consistent with Audacity's standard UI, and only when finder succeeds

Returns
true on success
Parameters
settingsAlways given; only for processing
pAccessSometimes given; only for UI

Implemented in EffectBase.

◆ GetDefinition()

virtual const EffectSettingsManager & EffectPlugin::GetDefinition ( ) const
pure virtual

◆ HasOptions()

virtual bool EffectPlugin::HasOptions ( ) const
pure virtual

Whether there are preferences applying to the effect's family, for which a UI may be needed to change them

Implemented in AudioUnitEffectBase, Effect, LadspaEffectBase, LV2EffectBase, VSTEffectBase, and VST3EffectBase.

Referenced by EffectUIHost::OnMenu().

Here is the caller graph for this function:

◆ IsBatchProcessing()

virtual bool EffectPlugin::IsBatchProcessing ( ) const
pure virtual

Implemented in Effect.

Referenced by EffectUIHost::Initialize().

Here is the caller graph for this function:

◆ LoadSettingsFromString()

virtual OptionalMessage EffectPlugin::LoadSettingsFromString ( const wxString &  parms,
EffectSettings settings 
) const
pure virtual

Implemented in Effect.

Referenced by BasicEffectUIServices::ImportPresets().

Here is the caller graph for this function:

◆ operator=()

EffectPlugin & EffectPlugin::operator= ( EffectPlugin )
delete

◆ SaveSettingsAsString()

virtual bool EffectPlugin::SaveSettingsAsString ( const EffectSettings settings,
wxString &  parms 
) const
pure virtual

Implemented in Effect.

Referenced by BasicEffectUIServices::ExportPresets().

Here is the caller graph for this function:

◆ SetBatchProcessing()

virtual void EffectPlugin::SetBatchProcessing ( )
pure virtual

Implemented in Effect.

◆ UnsetBatchProcessing()

virtual void EffectPlugin::UnsetBatchProcessing ( )
pure virtual

Implemented in Effect.

Member Data Documentation

◆ kCurrentSettingsIdent

const wxString EffectPlugin::kCurrentSettingsIdent = wxT("<Current Settings>")
static

◆ kFactoryDefaultsIdent

const wxString EffectPlugin::kFactoryDefaultsIdent = wxT("<Factory Defaults>")
static

◆ kFactoryPresetIdent

const wxString EffectPlugin::kFactoryPresetIdent = wxT("Factory Preset:")
static

◆ kUserPresetIdent

const wxString EffectPlugin::kUserPresetIdent = wxT("User Preset:")
static

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