Audacity 3.2.0
|
#include <VSTEffectBase.h>
Public Member Functions | |
VSTEffectBase (const PluginPath &path) | |
~VSTEffectBase () override | |
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 | DoLoadFactoryPreset (int id) |
bool | InitializePlugin () |
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 |
EffectSettings | MakeSettings () const override |
std::vector< int > | GetEffectIDs () |
Public Member Functions inherited from VSTWrapper | |
VSTWrapper (const PluginPath &path) | |
~VSTWrapper () | |
intptr_t | callDispatcher (int opcode, int index, intptr_t value, void *ptr, float opt) override |
intptr_t | constCallDispatcher (int opcode, int index, intptr_t value, void *ptr, float opt) const |
float | callGetParameter (int index) const |
void | callSetChunk (bool isPgm, int len, void *buf) |
void | callSetChunk (bool isPgm, int len, void *buf, VstPatchChunkInfo *info) const |
int | GetString (wxString &outstr, int opcode, int index=0) const |
wxString | GetString (int opcode, int index=0) const |
void | ForEachParameter (ParameterVisitor visitor) const |
bool | FetchSettings (VSTSettings &vst3Settings, bool doFetch=true) const |
bool | StoreSettings (const VSTSettings &vst3settings) const |
VstPatchChunkInfo | GetChunkInfo () const |
bool | IsCompatible (const VstPatchChunkInfo &) const |
bool | LoadXML (const wxFileName &fn) |
bool | HandleXMLTag (const std::string_view &tag, const AttributesList &attrs) override |
void | HandleXMLEndTag (const std::string_view &tag) override |
void | HandleXMLContent (const std::string_view &content) override |
XMLTagHandler * | HandleXMLChild (const std::string_view &tag) override |
void | SetString (int opcode, const wxString &str, int index=0) |
ComponentInterfaceSymbol | GetSymbol () const |
void | callSetParameter (int index, float value) const |
void | SaveXML (const wxFileName &fn) const |
bool | LoadFXB (const wxFileName &fn) |
bool | LoadFXP (const wxFileName &fn) |
bool | LoadFXProgram (unsigned char **bptr, ssize_t &len, int index, bool dryrun) |
void | callSetProgram (int index) |
void | SaveFXB (const wxFileName &fn) const |
void | SaveFXP (const wxFileName &fn) const |
void | SaveFXProgram (wxMemoryBuffer &buf, int index) const |
bool | Load () |
void | Unload () |
void | ResetModuleAndHandle () |
VstTimeInfo * | GetTimeInfo () |
float | GetSampleRate () |
int | GetProcessLevel () |
virtual void | SetBufferDelay (int samples) |
std::unique_ptr< EffectInstance::Message > | MakeMessageFS (const VSTSettings &settings) const |
Public Member Functions inherited from VSTLink | |
virtual | ~VSTLink () |
virtual intptr_t | callDispatcher (int opcode, int index, intptr_t value, void *ptr, float opt)=0 |
Public Member Functions inherited from XMLTagHandler | |
XMLTagHandler () | |
virtual | ~XMLTagHandler () |
virtual bool | HandleXMLTag (const std::string_view &tag, const AttributesList &attrs)=0 |
virtual void | HandleXMLEndTag (const std::string_view &WXUNUSED(tag)) |
virtual void | HandleXMLContent (const std::string_view &WXUNUSED(content)) |
virtual XMLTagHandler * | HandleXMLChild (const std::string_view &tag)=0 |
void | ReadXMLEndTag (const char *tag) |
void | ReadXMLContent (const char *s, int len) |
XMLTagHandler * | ReadXMLChild (const char *tag) |
Public Member Functions inherited from VSTUIWrapper | |
virtual void | Idle () |
virtual void | NeedIdle () |
virtual void | SizeWindow (int w, int h) |
virtual void | Automate (int index, float value) |
virtual void | Flush () |
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 |
virtual bool | CopySettingsContents (const EffectSettings &src, EffectSettings &dst) const |
Update one settings object from another. More... | |
virtual std::unique_ptr< EffectOutputs > | MakeOutputs () 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 |
Private Attributes | |
PluginID | mID |
Additional Inherited Members | |
Public Types inherited from VSTWrapper | |
using | ParameterVisitor = std::function< bool(const ParameterInfo &pi) > |
using | ModuleHandle = std::unique_ptr< wxDynamicLibrary > |
using | BundleHandle = CF_ptr< CFBundleRef > |
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 VSTWrapper | |
static VSTSettings & | GetSettings (EffectSettings &settings) |
static const VSTSettings & | GetSettings (const EffectSettings &settings) |
static intptr_t | AudioMaster (AEffect *effect, int32_t opcode, int32_t index, intptr_t value, void *ptr, float opt) |
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 VSTWrapper | |
AEffect * | mAEffect = nullptr |
std::thread::id | mMainThreadId |
std::recursive_mutex | mDispatcherLock |
int | mVstVersion |
wxString | mName |
bool | mInSet |
bool | mInChunk |
wxString | mChunk |
long | mXMLVersion |
VstPatchChunkInfo | mXMLInfo |
intptr_t | mCurrentEffectID {} |
PluginPath | mPath |
ModuleHandle | mModule {} |
wxString | mVendor |
wxString | mDescription |
int | mVersion |
bool | mInteractive { false } |
unsigned | mAudioIns { 0 } |
unsigned | mAudioOuts { 0 } |
int | mMidiIns { 0 } |
int | mMidiOuts { 0 } |
bool | mAutomatable |
BundleHandle | mBundleRef |
ResourceHandle | mResource |
VstTimeInfo | mTimeInfo |
int | mBufferDelay { 0 } |
int | mProcessLevel { 1 } |
bool | mGui { false } |
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>") |
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 inherited from PerTrackEffect | |
sampleCount | mSampleCnt {} |
Protected Attributes inherited from EffectBase | |
double | mF0 {} |
double | mF1 {} |
wxArrayString | mPresetNames |
unsigned | mUIFlags { 0 } |
Definition at line 26 of file VSTEffectBase.h.
VSTEffectBase::VSTEffectBase | ( | const PluginPath & | path | ) |
Definition at line 30 of file VSTEffectBase.cpp.
|
overridedefault |
|
overridevirtual |
Whether the effect supports export of presets to files, and importing too.
Reimplemented from Effect.
Definition at line 267 of file VSTEffectBase.cpp.
bool VSTEffectBase::DoLoadFactoryPreset | ( | int | id | ) |
Definition at line 260 of file VSTEffectBase.cpp.
References VSTWrapper::callSetProgram().
Referenced by LoadFactoryPreset().
|
overridevirtual |
Reimplemented from Effect.
Definition at line 79 of file VSTEffectBase.cpp.
References VSTWrapper::mAudioIns, VSTWrapper::mAudioOuts, and XO().
std::vector< int > VSTEffectBase::GetEffectIDs | ( | ) |
Definition at line 277 of file VSTEffectBase.cpp.
References VSTWrapper::callDispatcher(), effGetPlugCategory, effShellGetNextPlugin, kPlugCategShell, VSTWrapper::mVstVersion, and name.
Referenced by VSTEffectsModule::DiscoverPluginsAtPath().
|
overridevirtual |
Report names of factory presets.
Reimplemented from Effect.
Definition at line 230 of file VSTEffectBase.cpp.
References effGetProgramNameIndexed, VSTWrapper::GetString(), VSTWrapper::mAEffect, VSTWrapper::mVstVersion, and AEffect::numPrograms.
|
overridevirtual |
Report identifier and user-visible name of the effect protocol.
Reimplemented from Effect.
Definition at line 112 of file VSTEffectBase.cpp.
References VSTPLUGINTYPE.
|
overridevirtual |
Reimplemented from Effect.
Definition at line 45 of file VSTEffectBase.cpp.
References VSTWrapper::mPath.
|
overridevirtual |
Reimplemented from Effect.
Definition at line 50 of file VSTEffectBase.cpp.
References VSTWrapper::GetSymbol().
|
overridevirtual |
Type determines how it behaves.
Implements EffectDefinitionInterface.
Definition at line 91 of file VSTEffectBase.cpp.
References EffectTypeAnalyze, EffectTypeGenerate, EffectTypeProcess, EffectTypeTool, VSTWrapper::mAudioIns, and VSTWrapper::mAudioOuts.
Referenced by VSTEffect::PopulateUI().
|
overridevirtual |
Reimplemented from Effect.
Definition at line 55 of file VSTEffectBase.cpp.
References VSTWrapper::mVendor.
|
overridevirtual |
Reimplemented from Effect.
Definition at line 60 of file VSTEffectBase.cpp.
References VSTWrapper::mVersion, and wxT().
|
overridevirtual |
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 272 of file VSTEffectBase.cpp.
bool VSTEffectBase::InitializePlugin | ( | ) |
Definition at line 141 of file VSTEffectBase.cpp.
References VSTWrapper::Load(), and VSTWrapper::mAEffect.
Referenced by VSTEffectsModule::DiscoverPluginsAtPath().
|
overridevirtual |
Whether the effect sorts "above the line" in the menus.
Reimplemented from Effect.
Definition at line 122 of file VSTEffectBase.cpp.
|
overridevirtual |
Whether the effect needs a dialog for entry of settings.
Reimplemented from Effect.
Definition at line 117 of file VSTEffectBase.cpp.
References VSTWrapper::mInteractive.
|
overridevirtual |
Change settings to the preset whose name is GetFactoryPresets()[id]
Reimplemented from Effect.
Definition at line 249 of file VSTEffectBase.cpp.
References DoLoadFactoryPreset(), VSTWrapper::FetchSettings(), VSTWrapper::GetSettings(), VSTWrapper::MakeMessageFS(), and settings().
|
overridevirtual |
Restore settings from keys and values.
Reimplemented from Effect.
Definition at line 192 of file VSTEffectBase.cpp.
References VSTWrapper::GetSettings(), key, VSTWrapper::mAEffect, VSTSettings::mChunk, VSTSettings::mNumParams, VSTSettings::mParamsMap, VSTSettings::mUniqueID, VSTSettings::mVersion, VSTWrapper::mVersion, AEffect::numParams, settings(), and AEffect::uniqueID.
Referenced by LoadUserPreset().
|
overridevirtual |
Change settings to a user-named preset
Reimplemented from Effect.
Definition at line 298 of file VSTEffectBase.cpp.
References VSTWrapper::callSetChunk(), Base64::Decode(), VSTWrapper::FetchSettings(), VSTWrapper::GetChunkInfo(), PluginSettings::GetConfig(), VSTWrapper::GetSettings(), VSTWrapper::IsCompatible(), LoadSettings(), VSTWrapper::MakeMessageFS(), PluginSettings::Private, CommandParameters::SetParameters(), settings(), and wxT().
|
overridevirtual |
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 156 of file VSTEffectBase.cpp.
References PluginSettings::GetConfig(), VSTWrapper::mPath, PluginSettings::Shared, and wxT().
|
overridevirtual |
Produce an object holding new, independent settings
Default implementation returns an empty any
Reimplemented from EffectSettingsManager.
Definition at line 398 of file VSTEffectBase.cpp.
References VSTWrapper::FetchSettings(), and settings().
|
overridevirtual |
Since which version of Audacity has the effect supported realtime?
Reimplemented from Effect.
Definition at line 127 of file VSTEffectBase.cpp.
References EffectDefinitionInterface::Always.
|
overridevirtual |
Store settings as keys and values.
The override may assume parms
is initially empty
Reimplemented from Effect.
Definition at line 171 of file VSTEffectBase.cpp.
References VSTWrapper::GetSettings(), VSTSettings::mParamsMap, name, and settings().
Referenced by SaveUserPreset().
|
overridevirtual |
Save settings in the configuration file as a user-named preset.
Reimplemented from Effect.
Definition at line 356 of file VSTEffectBase.cpp.
References VSTWrapper::constCallDispatcher(), effFlagsProgramChunks, effGetChunk, Base64::Encode(), AEffect::flags, CommandParameters::GetParameters(), VSTWrapper::GetSettings(), VSTWrapper::mAEffect, PluginSettings::Private, SaveSettings(), PluginSettings::SetConfig(), settings(), VSTWrapper::StoreSettings(), and wxT().
|
overridevirtual |
Whether the effect has any automatable controls.
Reimplemented from Effect.
Definition at line 136 of file VSTEffectBase.cpp.
References VSTWrapper::mAutomatable.
|
private |
Definition at line 80 of file VSTEffectBase.h.