Audacity 3.2.0
|
An Effect that calls up a LADSPA plug in, i.e. many possible effects from this one class. More...
#include <LadspaEffectBase.h>
Public Member Functions | |
LadspaEffectBase (const wxString &path, int index) | |
~LadspaEffectBase () override | |
bool | InitializePlugin () |
Public Member Functions inherited from EffectWithSettings< LadspaEffectSettings, PerTrackEffect > | |
EffectSettings | MakeSettings () const override |
bool | CopySettingsContents (const EffectSettings &src, EffectSettings &dst) const override |
Public Member Functions inherited from PerTrackEffect | |
~PerTrackEffect () override | |
Public Member Functions inherited from Effect | |
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 |
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... | |
OptionalMessage | LoadUserPreset (const RegistryPath &name, EffectSettings &settings) const override |
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... | |
OptionalMessage | LoadFactoryPreset (int id, EffectSettings &settings) const override |
OptionalMessage | LoadFactoryDefaults (EffectSettings &settings) const override |
virtual const EffectParameterMethods & | Parameters () const |
bool | CanExportPresets () const override |
Whether the effect supports export of presets to files, and importing too. More... | |
bool | HasOptions () const override |
const EffectSettingsManager & | GetDefinition () const override |
virtual NumericFormatID | GetSelectionFormat () |
bool | SaveSettingsAsString (const EffectSettings &settings, wxString &parms) const override |
OptionalMessage | LoadSettingsFromString (const wxString &parms, EffectSettings &settings) const override |
bool | IsBatchProcessing () const override |
void | SetBatchProcessing () override |
void | UnsetBatchProcessing () override |
unsigned | TestUIFlags (unsigned mask) |
bool | Delegate (Effect &delegate, EffectSettings &settings, InstanceFinder finder={}) |
Re-invoke DoEffect on another Effect object that implements the work. More... | |
Public Member Functions inherited from EffectBase | |
EffectBase () | |
~EffectBase () override | |
bool | IsLinearEffect () const |
bool | PreviewsFullSelection () const |
void | SetTracks (TrackList *pTracks) |
double | GetDefaultDuration () |
virtual std::any | BeginPreview (const EffectSettings &settings) |
Called when Preview() starts, to allow temporary effect state changes. More... | |
bool | DoEffect (EffectSettings &settings, const InstanceFinder &finder, double projectRate, TrackList *list, WaveTrackFactory *factory, NotifyingSelectedRegion &selectedRegion, unsigned flags, const EffectSettingsAccessPtr &pAccess) override |
virtual double | CalcPreviewInputLength (const EffectSettings &settings, double previewLength) const =0 |
void | CountWaveTracks () |
Public Member Functions inherited from EffectPlugin | |
EffectPlugin & | operator= (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 EffectSettingsManager & | GetDefinition () 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< EffectInstance > | MakeInstance () 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 |
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 |
Protected Member Functions | |
EffectSettings | MakeSettings () const override |
bool | CopySettingsContents (const EffectSettings &src, EffectSettings &dst) const override |
Update one settings object from another. More... | |
std::unique_ptr< EffectOutputs > | MakeOutputs () const override |
Produce an object to hold values to send to effect output meters. More... | |
PluginPath | GetPath () 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... | |
OptionalMessage | LoadUserPreset (const RegistryPath &name, EffectSettings &settings) const override |
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... | |
OptionalMessage | LoadFactoryPreset (int id, EffectSettings &settings) const override |
bool | InitializeControls (LadspaEffectSettings &settings) const |
std::shared_ptr< EffectInstance > | MakeInstance () const override |
Make an object maintaining short-term state of an Effect. More... | |
bool | CanExportPresets () const override |
Whether the effect supports export of presets to files, and importing too. More... | |
bool | HasOptions () const override |
bool | Load () |
void | Unload () |
OptionalMessage | LoadParameters (const RegistryPath &group, EffectSettings &settings) const |
bool | SaveParameters (const RegistryPath &group, const EffectSettings &settings) const |
Protected Member Functions inherited from PerTrackEffect | |
bool | DoPass1 () const |
bool | DoPass2 () const |
bool | Process (EffectInstance &instance, EffectSettings &settings) const |
std::shared_ptr< EffectOutputTracks > | MakeOutputTracks () |
void | DestroyOutputTracks () const |
Protected Member Functions inherited from Effect | |
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... | |
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, sampleCount *start, sampleCount *len) |
Protected Member Functions inherited from EffectBase | |
virtual bool | CheckWhetherSkipEffect (const EffectSettings &settings) const =0 |
After Init(), tell whether Process() should be skipped. More... | |
void | SetLinearEffectFlag (bool linearEffectFlag) |
void | SetPreviewFullSelectionFlag (bool previewDurationFlag) |
bool | IsPreviewing () const |
const TrackList * | inputTracks () const |
const AudacityProject * | FindProject () const |
Protected Attributes | |
const wxString | mPath |
const int | mIndex |
wxDynamicLibrary | mLib |
const LADSPA_Descriptor * | mData {} |
wxString | pluginName |
size_t | mBlockSize { 0 } |
bool | mInteractive { false } |
unsigned | mAudioIns { 0 } |
ArrayOf< unsigned long > | mInputPorts |
unsigned | mAudioOuts { 0 } |
ArrayOf< unsigned long > | mOutputPorts |
unsigned | mNumInputControls { 0 } |
unsigned | mNumOutputControls { 0 } |
int | mLatencyPort { -1 } |
Protected Attributes inherited from PerTrackEffect | |
sampleCount | mSampleCnt {} |
Protected Attributes inherited from EffectBase | |
double | mF0 {} |
double | mF1 {} |
wxArrayString | mPresetNames |
unsigned | mUIFlags { 0 } |
Additional Inherited Members | |
Public Types inherited from EffectPlugin | |
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... | |
Static Public Member Functions inherited from EffectWithSettings< LadspaEffectSettings, PerTrackEffect > | |
static LadspaEffectSettings & | GetSettings (EffectSettings &settings) |
Assume settings originated from MakeSettings() and copies thereof. More... | |
static const LadspaEffectSettings & | GetSettings (const EffectSettings &settings) |
Assume settings originated from MakeSettings() and copies thereof. More... | |
static LadspaEffectSettings * | FetchParameters (PerTrackEffect &, EffectSettings &s) |
Static Public Member Functions inherited from Effect | |
static Effect * | FetchParameters (Effect &e, EffectSettings &) |
Static Public Member Functions inherited from EffectBase | |
static std::optional< InstancePointer > | FindInstance (EffectPlugin &plugin) |
static InstanceFinder | DefaultInstanceFinder (EffectPlugin &plugin) |
Static Public Member Functions inherited from EffectDefinitionInterface | |
static Identifier | GetSquashedName (const Identifier &ident) |
A utility that strips spaces and CamelCases a name. More... | |
Public Attributes inherited from EffectBase | |
std::shared_ptr< TrackList > | mTracks {} |
int | mNumTracks {} |
BasicUI::ProgressDialog * | mProgress {} |
double | mProjectRate {} |
WaveTrackFactory * | mFactory {} |
double | mT0 {} |
double | mT1 {} |
bool | mIsPreview { false } |
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>") |
An Effect that calls up a LADSPA plug in, i.e. many possible effects from this one class.
Definition at line 24 of file LadspaEffectBase.h.
LadspaEffectBase::LadspaEffectBase | ( | const wxString & | path, |
int | index | ||
) |
Definition at line 76 of file LadspaEffectBase.cpp.
|
overridedefault |
|
overrideprotectedvirtual |
Whether the effect supports export of presets to files, and importing too.
Reimplemented from Effect.
Definition at line 346 of file LadspaEffectBase.cpp.
|
overrideprotectedvirtual |
Update one settings object from another.
This may run in a worker thread, and should avoid memory allocations. Therefore do not copy the underlying std::any, but copy the contents of the contained objects.
Assume that src and dst were created and previously modified only by this
Default implementation does nothing and returns true
src | settings to copy from |
dst | settings to copy into |
copyDirection | direction in which copy is performed |
Reimplemented from EffectSettingsManager.
Definition at line 35 of file LadspaEffectBase.cpp.
References LadspaEffectSettings::controls, EffectWithSettings< LadspaEffectSettings, PerTrackEffect >::GetSettings(), LADSPA_IS_PORT_CONTROL, LADSPA_IS_PORT_INPUT, mData, min(), _LADSPA_Descriptor::PortCount, and _LADSPA_Descriptor::PortDescriptors.
|
overrideprotectedvirtual |
Reimplemented from Effect.
Definition at line 108 of file LadspaEffectBase.cpp.
References _LADSPA_Descriptor::Copyright, LAT1CTOWX, mData, and Verbatim().
|
overrideprotectedvirtual |
Report names of factory presets.
Reimplemented from Effect.
Definition at line 336 of file LadspaEffectBase.cpp.
|
overrideprotectedvirtual |
Report identifier and user-visible name of the effect protocol.
Reimplemented from Effect.
Definition at line 137 of file LadspaEffectBase.cpp.
References LADSPAEFFECTS_FAMILY.
|
overrideprotectedvirtual |
|
overrideprotectedvirtual |
Reimplemented from Effect.
Definition at line 93 of file LadspaEffectBase.cpp.
References LAT1CTOWX, mData, and _LADSPA_Descriptor::Name.
|
overrideprotectedvirtual |
Type determines how it behaves.
Implements EffectDefinitionInterface.
Definition at line 117 of file LadspaEffectBase.cpp.
References EffectTypeAnalyze, EffectTypeGenerate, EffectTypeProcess, EffectTypeTool, mAudioIns, and mAudioOuts.
Referenced by LadspaEffect::MakeEditor(), RealtimeSupport(), and LadspaEffect::ShowClientInterface().
|
overrideprotectedvirtual |
Reimplemented from Effect.
Definition at line 98 of file LadspaEffectBase.cpp.
References LAT1CTOWX, _LADSPA_Descriptor::Maker, and mData.
|
overrideprotectedvirtual |
Reimplemented from Effect.
Definition at line 103 of file LadspaEffectBase.cpp.
|
overrideprotectedvirtual |
Whether there are preferences applying to the effect's family, for which a UI may be needed to change them
Reimplemented from Effect.
Definition at line 351 of file LadspaEffectBase.cpp.
|
protected |
Definition at line 267 of file LadspaEffectBase.cpp.
References anonymous_namespace{LadspaEffectBase.cpp}::InputControlPortDefaultValue(), LADSPA_IS_PORT_CONTROL, LADSPA_IS_PORT_INPUT, mData, EffectBase::mProjectRate, _LADSPA_Descriptor::PortCount, _LADSPA_Descriptor::PortDescriptors, _LADSPA_Descriptor::PortRangeHints, and settings().
Referenced by LadspaEffect::LadspaEffectBase().
bool LadspaEffectBase::InitializePlugin | ( | ) |
Definition at line 229 of file LadspaEffectBase.cpp.
References LADSPA_IS_PORT_AUDIO, LADSPA_IS_PORT_CONTROL, LADSPA_IS_PORT_INPUT, LADSPA_IS_PORT_OUTPUT, Load(), mAudioIns, mAudioOuts, mData, mInputPorts, mInteractive, mLatencyPort, mNumInputControls, mNumOutputControls, mOutputPorts, _LADSPA_Descriptor::PortCount, _LADSPA_Descriptor::PortDescriptors, _LADSPA_Descriptor::PortNames, and ArrayOf< X >::reinit().
Referenced by LadspaEffectsModule::DiscoverPluginsAtPath().
|
overrideprotectedvirtual |
Whether the effect sorts "above the line" in the menus.
Reimplemented from Effect.
Definition at line 147 of file LadspaEffectBase.cpp.
|
overrideprotectedvirtual |
Whether the effect needs a dialog for entry of settings.
Reimplemented from Effect.
Definition at line 142 of file LadspaEffectBase.cpp.
References mInteractive.
|
protected |
Definition at line 360 of file LadspaEffectBase.cpp.
References mData, mIndex, mLib, mPath, and wxT().
Referenced by InitializePlugin().
|
overrideprotectedvirtual |
Change settings to the preset whose name is GetFactoryPresets()[id]
Reimplemented from Effect.
Definition at line 341 of file LadspaEffectBase.cpp.
|
protected |
Definition at line 407 of file LadspaEffectBase.cpp.
References PluginSettings::GetConfig(), LoadSettings(), PluginSettings::Private, CommandParameters::SetParameters(), settings(), and wxT().
Referenced by LoadUserPreset().
|
overrideprotectedvirtual |
Restore settings from keys and values.
Reimplemented from Effect.
Definition at line 305 of file LadspaEffectBase.cpp.
References LadspaEffectSettings::controls, EffectWithSettings< LadspaEffectSettings, PerTrackEffect >::GetSettings(), LADSPA_IS_PORT_CONTROL, LADSPA_IS_PORT_INPUT, LAT1CTOWX, mData, _LADSPA_Descriptor::PortCount, _LADSPA_Descriptor::PortDescriptors, _LADSPA_Descriptor::PortNames, and settings().
Referenced by LoadParameters().
|
overrideprotectedvirtual |
Change settings to a user-named preset
Reimplemented from Effect.
Definition at line 324 of file LadspaEffectBase.cpp.
References LoadParameters(), name, and settings().
|
overrideprotectedvirtual |
Make an object maintaining short-term state of an Effect.
One effect may have multiple instances extant simultaneously. Instances have state, may be implemented in foreign code, and are temporary, whereas EffectSettings represents persistent effect state that can be saved and reloaded from files.
settings | may be assumed to have a lifetime enclosing the instance's |
true
(no promises that the result isn't null) Implements EffectInstanceFactory.
Definition at line 285 of file LadspaEffectBase.cpp.
References mAudioIns, mAudioOuts, mData, mInputPorts, mLatencyPort, and mOutputPorts.
|
overrideprotectedvirtual |
Produce an object to hold values to send to effect output meters.
Default implementation returns nullptr
Reimplemented from EffectSettingsManager.
Definition at line 69 of file LadspaEffectBase.cpp.
References mData, and _LADSPA_Descriptor::PortCount.
|
overrideprotectedvirtual |
Produce an object holding new, independent settings
Default implementation returns an empty any
Reimplemented from EffectSettingsManager.
Definition at line 28 of file LadspaEffectBase.cpp.
|
overrideprotectedvirtual |
Since which version of Audacity has the effect supported realtime?
Reimplemented from Effect.
Definition at line 152 of file LadspaEffectBase.cpp.
References EffectDefinitionInterface::After_3_1, EffectTypeProcess, GetType(), and EffectDefinitionInterface::Never.
|
protected |
Definition at line 428 of file LadspaEffectBase.cpp.
References CommandParameters::GetParameters(), PluginSettings::Private, SaveSettings(), PluginSettings::SetConfig(), settings(), and wxT().
Referenced by SaveUserPreset().
|
overrideprotectedvirtual |
Store settings as keys and values.
The override may assume parms
is initially empty
Reimplemented from Effect.
Definition at line 292 of file LadspaEffectBase.cpp.
References LadspaEffectSettings::controls, EffectWithSettings< LadspaEffectSettings, PerTrackEffect >::GetSettings(), LADSPA_IS_PORT_CONTROL, LADSPA_IS_PORT_INPUT, LAT1CTOWX, mData, _LADSPA_Descriptor::PortCount, _LADSPA_Descriptor::PortDescriptors, _LADSPA_Descriptor::PortNames, and settings().
Referenced by SaveParameters().
|
overrideprotectedvirtual |
Save settings in the configuration file as a user-named preset.
Reimplemented from Effect.
Definition at line 330 of file LadspaEffectBase.cpp.
References name, SaveParameters(), and settings().
|
overrideprotectedvirtual |
Whether the effect has any automatable controls.
Reimplemented from Effect.
Definition at line 159 of file LadspaEffectBase.cpp.
References mNumInputControls.
|
protected |
Definition at line 399 of file LadspaEffectBase.cpp.
References mLib.
|
protected |
Definition at line 95 of file LadspaEffectBase.h.
Referenced by GetType(), InitializePlugin(), and MakeInstance().
|
protected |
Definition at line 99 of file LadspaEffectBase.h.
Referenced by GetType(), InitializePlugin(), and MakeInstance().
|
protected |
Definition at line 91 of file LadspaEffectBase.h.
|
protected |
Definition at line 87 of file LadspaEffectBase.h.
Referenced by CopySettingsContents(), GetDescription(), GetSymbol(), GetVendor(), InitializeControls(), InitializePlugin(), LadspaEffect::LadspaEffectBase(), Load(), LoadSettings(), MakeInstance(), MakeOutputs(), and SaveSettings().
|
protected |
Definition at line 84 of file LadspaEffectBase.h.
|
protected |
Definition at line 97 of file LadspaEffectBase.h.
Referenced by InitializePlugin(), and MakeInstance().
|
protected |
Definition at line 93 of file LadspaEffectBase.h.
Referenced by InitializePlugin(), and IsInteractive().
|
protected |
Definition at line 106 of file LadspaEffectBase.h.
Referenced by InitializePlugin(), and MakeInstance().
|
protected |
Definition at line 86 of file LadspaEffectBase.h.
|
protected |
Definition at line 103 of file LadspaEffectBase.h.
Referenced by InitializePlugin(), LadspaEffect::MakeEditor(), and SupportsAutomation().
|
protected |
Definition at line 104 of file LadspaEffectBase.h.
Referenced by InitializePlugin(), and LadspaEffect::MakeEditor().
|
protected |
Definition at line 101 of file LadspaEffectBase.h.
Referenced by InitializePlugin(), and MakeInstance().
|
protected |
Definition at line 83 of file LadspaEffectBase.h.
|
protected |
Definition at line 89 of file LadspaEffectBase.h.