![]() |
Audacity 3.2.0
|
#include <VSTEffect.h>
Public Member Functions | |
VSTEffect (const PluginPath &path) | |
virtual | ~VSTEffect () |
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) |
int | ShowClientInterface (const EffectPlugin &plugin, wxWindow &parent, wxDialog &dialog, EffectEditor *pEditor, bool forceModal) const override |
bool | InitializePlugin () |
std::shared_ptr< EffectInstance > | MakeInstance () const override |
Make an object maintaining short-term state of an Effect. More... | |
std::shared_ptr< EffectInstance > | DoMakeInstance () |
std::unique_ptr< EffectEditor > | PopulateUI (const EffectPlugin &plugin, ShuttleGui &S, EffectInstance &instance, EffectSettingsAccess &access, const EffectOutputs *pOutputs) const override |
Adds controls to a panel that is given as the parent window of S More... | |
bool | CanExportPresets () const override |
Whether the effect supports export of presets to files, and importing too. More... | |
void | ExportPresets (const EffectPlugin &plugin, const EffectSettings &settings) const override |
OptionalMessage | ImportPresets (const EffectPlugin &plugin, EffectSettings &settings) const override |
OptionalMessage | ImportPresetsNC (EffectSettings &settings) |
bool | HasOptions () const override |
void | ShowOptions (const EffectPlugin &plugin) const override |
EffectSettings | MakeSettings () const override |
![]() | |
VSTEffectWrapper (const PluginPath &path) | |
~VSTEffectWrapper () | |
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 (VSTEffectSettings &vst3Settings, bool doFetch=true) const |
bool | StoreSettings (const VSTEffectSettings &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 | UpdateDisplay () |
virtual void | SetBufferDelay (int samples) |
std::unique_ptr< EffectInstance::Message > | MakeMessageFS (const VSTEffectSettings &settings) const |
![]() | |
virtual | ~VSTEffectLink () |
virtual intptr_t | callDispatcher (int opcode, int index, intptr_t value, void *ptr, float opt)=0 |
![]() | |
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) |
![]() | |
virtual void | NeedIdle () |
virtual void | SizeWindow (int w, int h) |
virtual void | Automate (int index, float value) |
virtual void | Flush () |
![]() | |
~StatelessPerTrackEffect () override | |
![]() | |
~PerTrackEffect () override | |
![]() | |
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... | |
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 NumericFormatSymbol | 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) |
Re-invoke DoEffect on another Effect object that implements the work. More... | |
![]() | |
EffectBase () | |
~EffectBase () override | |
void | SetTracks (TrackList *pTracks) |
bool | DoEffect (EffectSettings &settings, const InstanceFinder &finder, double projectRate, TrackList *list, WaveTrackFactory *factory, NotifyingSelectedRegion &selectedRegion, unsigned flags, const EffectSettingsAccessPtr &pAccess) override |
![]() | |
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 void | Preview (EffectSettingsAccess &access, std::function< void()> updateUI, bool dryOnly)=0 |
Calculate temporary tracks of limited length with effect applied and play. More... | |
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 |
![]() | |
virtual | ~EffectInstanceFactory () |
virtual std::shared_ptr< EffectInstance > | MakeInstance () const =0 |
Make an object maintaining short-term state of an Effect. More... | |
![]() | |
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... | |
![]() | |
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... | |
![]() | |
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 |
std::unique_ptr< EffectEditor > | PopulateUI (const EffectPlugin &plugin, ShuttleGui &S, EffectInstance &instance, EffectSettingsAccess &access, const EffectOutputs *pOutputs) const override |
Adds controls to a panel that is given as the parent window of S More... | |
virtual std::unique_ptr< EffectEditor > | MakeEditor (ShuttleGui &S, EffectInstance &instance, EffectSettingsAccess &access, const EffectOutputs *pOutputs) const =0 |
Called only from PopulateUI, to add controls to effect panel. More... | |
![]() | |
int | ShowClientInterface (const EffectPlugin &plugin, wxWindow &parent, wxDialog &dialog, EffectEditor *pEditor, bool forceModal) const override |
void | ExportPresets (const EffectPlugin &plugin, const EffectSettings &settings) const override |
OptionalMessage | ImportPresets (const EffectPlugin &plugin, EffectSettings &settings) const override |
void | ShowOptions (const EffectPlugin &plugin) const override |
bool | ValidateUI (const EffectPlugin &context, EffectSettings &) const override |
bool | CloseUI () const override |
![]() | |
virtual | ~EffectUIServices () |
virtual int | ShowHostInterface (EffectPlugin &plugin, wxWindow &parent, const EffectDialogFactory &factory, std::shared_ptr< EffectInstance > &pInstance, EffectSettingsAccess &access, bool forceModal=false) |
virtual int | ShowClientInterface (const EffectPlugin &plugin, wxWindow &parent, wxDialog &dialog, EffectEditor *pEditor, bool forceModal=false) const =0 |
virtual std::unique_ptr< EffectEditor > | PopulateUI (const EffectPlugin &plugin, ShuttleGui &S, EffectInstance &instance, EffectSettingsAccess &access, const EffectOutputs *pOutputs) const =0 |
Adds controls to a panel that is given as the parent window of S More... | |
virtual void | ExportPresets (const EffectPlugin &plugin, const EffectSettings &settings) const =0 |
virtual OptionalMessage | ImportPresets (const EffectPlugin &plugin, EffectSettings &settings) const =0 |
virtual void | ShowOptions (const EffectPlugin &plugin) const =0 |
virtual bool | ValidateUI (const EffectPlugin &context, EffectSettings &settings) const =0 |
virtual bool | CloseUI () const =0 |
Protected Member Functions | |
virtual std::unique_ptr< EffectEditor > | MakeEditor (ShuttleGui &S, EffectInstance &instance, EffectSettingsAccess &access, const EffectOutputs *pOutputs) const final |
Will never be called. More... | |
void | UpdateDisplay () override |
![]() | |
bool | DoPass1 () const |
bool | DoPass2 () const |
bool | Process (EffectInstance &instance, EffectSettings &settings) const |
![]() | |
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, const WaveTrack *pRight, sampleCount *start, sampleCount *len) |
void | CopyInputTracks (bool allSyncLockSelected=false) |
Track * | AddToOutputTracks (const std::shared_ptr< Track > &t) |
![]() | |
virtual std::any | BeginPreview (const EffectSettings &settings) |
Called when Preview() starts, to allow temporary effect state changes. More... | |
void | Preview (EffectSettingsAccess &access, std::function< void()> updateUI, bool dryOnly) final |
Calculate temporary tracks of limited length with effect applied and play. 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 TrackList * | inputTracks () const |
const AudacityProject * | FindProject () const |
Private Member Functions | |
std::vector< int > | GetEffectIDs () |
void | OnUpdateDisplay (wxCommandEvent &evt) |
void | OnProgram (wxCommandEvent &evt) |
void | OnProgramText (wxCommandEvent &evt) |
void | OnLoad (wxCommandEvent &evt) |
void | OnSave (wxCommandEvent &evt) |
void | OnSettings (wxCommandEvent &evt) |
wxSizer * | BuildProgramBar () |
Private Attributes | |
PluginID | mID |
wxSizerItem * | mContainer {} |
Friends | |
class | VSTEffectsModule |
Additional Inherited Members | |
![]() | |
using | ParameterVisitor = std::function< bool(const ParameterInfo &pi) > |
using | ModuleHandle = std::unique_ptr< wxDynamicLibrary > |
using | BundleHandle = CF_ptr< CFBundleRef > |
![]() | |
using | EffectSettingsAccessPtr = std::shared_ptr< EffectSettingsAccess > |
using | InstancePointer = std::shared_ptr< EffectInstanceEx > |
using | InstanceFinder = std::function< std::optional< InstancePointer >(EffectSettings &settings) > |
![]() | |
enum class | RealtimeSince : unsigned { Never , After_3_1 , Always } |
In which versions of Audacity was an effect realtime capable? More... | |
![]() | |
enum | : long { DefaultMessageBoxStyle = wxOK | wxCENTRE } |
![]() | |
static VSTEffectSettings & | GetSettings (EffectSettings &settings) |
static const VSTEffectSettings & | GetSettings (const EffectSettings &settings) |
static intptr_t | AudioMaster (AEffect *effect, int32_t opcode, int32_t index, intptr_t value, void *ptr, float opt) |
![]() | |
static Effect * | FetchParameters (Effect &e, EffectSettings &) |
static void | IncEffectCounter () |
![]() | |
static Identifier | GetSquashedName (const Identifier &ident) |
A utility that strips spaces and CamelCases a name. More... | |
![]() | |
static int | DoMessageBox (const EffectPlugin &plugin, const TranslatableString &message, long style=DefaultMessageBoxStyle, const TranslatableString &titleStr={}) |
![]() | |
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 } |
![]() | |
TrackList * | mTracks {} |
![]() | |
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>") |
![]() | |
sampleCount | mSampleCnt {} |
![]() | |
BasicUI::ProgressDialog * | mProgress {} |
double | mProjectRate {} |
WaveTrackFactory * | mFactory {} |
std::shared_ptr< TrackList > | mOutputTracks |
double | mT0 {} |
double | mT1 {} |
wxArrayString | mPresetNames |
unsigned | mUIFlags { 0 } |
![]() | |
static int | nEffectsDone = 0 |
VSTEffect is an Audacity effect that forwards actual audio processing via a VSTEffectLink
Definition at line 335 of file VSTEffect.h.
VSTEffect::VSTEffect | ( | const PluginPath & | path | ) |
Definition at line 786 of file VSTEffect.cpp.
References VstTimeInfo::flags, kVstNanosValid, kVstTempoValid, VSTEffectWrapper::mTimeInfo, VstTimeInfo::nanoSeconds, VstTimeInfo::samplePos, VstTimeInfo::sampleRate, VstTimeInfo::tempo, VstTimeInfo::timeSigDenominator, and VstTimeInfo::timeSigNumerator.
|
virtual |
Definition at line 799 of file VSTEffect.cpp.
|
private |
|
overridevirtual |
Whether the effect supports export of presets to files, and importing too.
Implements EffectPlugin.
Definition at line 1603 of file VSTEffect.cpp.
bool VSTEffect::DoLoadFactoryPreset | ( | int | id | ) |
Definition at line 1545 of file VSTEffect.cpp.
References VSTEffectWrapper::callSetProgram().
Referenced by LoadFactoryPreset().
std::shared_ptr< EffectInstance > VSTEffect::DoMakeInstance | ( | ) |
Definition at line 1046 of file VSTEffect.cpp.
References PluginSettings::GetConfig(), VSTEffectWrapper::mPath, PluginSettings::Shared, and wxT().
Referenced by MakeInstance().
|
overridevirtual |
Reimplemented from BasicEffectUIServices.
Definition at line 1609 of file VSTEffect.cpp.
References AudacityMessageBox(), fn, VSTEffectWrapper::GetSettings(), VSTEffectWrapper::SaveFXB(), VSTEffectWrapper::SaveFXP(), VSTEffectWrapper::SaveXML(), SelectFile(), settings(), VSTEffectWrapper::StoreSettings(), wxT(), and XO().
|
overridevirtual |
Implements ComponentInterface.
Definition at line 841 of file VSTEffect.cpp.
References VSTEffectWrapper::mAudioIns, VSTEffectWrapper::mAudioOuts, and XO().
|
private |
Definition at line 2065 of file VSTEffect.cpp.
References VSTEffectWrapper::callDispatcher(), effGetPlugCategory, effShellGetNextPlugin, kPlugCategShell, VSTEffectWrapper::mVstVersion, and name.
Referenced by VSTEffectsModule::DiscoverPluginsAtPath().
|
overridevirtual |
Report names of factory presets.
Implements EffectSettingsManager.
Definition at line 1515 of file VSTEffect.cpp.
References effGetProgramNameIndexed, VSTEffectWrapper::GetString(), VSTEffectWrapper::mAEffect, VSTEffectWrapper::mVstVersion, and AEffect::numPrograms.
|
overridevirtual |
Report identifier and user-visible name of the effect protocol.
Implements EffectDefinitionInterface.
Definition at line 874 of file VSTEffect.cpp.
References VSTPLUGINTYPE.
|
overridevirtual |
Implements ComponentInterface.
Definition at line 807 of file VSTEffect.cpp.
References VSTEffectWrapper::mPath.
|
overridevirtual |
Implements ComponentInterface.
Definition at line 812 of file VSTEffect.cpp.
References VSTEffectWrapper::GetSymbol().
|
overridevirtual |
Type determines how it behaves.
Implements EffectDefinitionInterface.
Definition at line 853 of file VSTEffect.cpp.
References EffectTypeAnalyze, EffectTypeGenerate, EffectTypeProcess, EffectTypeTool, VSTEffectWrapper::mAudioIns, and VSTEffectWrapper::mAudioOuts.
Referenced by PopulateUI().
|
overridevirtual |
Implements ComponentInterface.
Definition at line 817 of file VSTEffect.cpp.
References VSTEffectWrapper::mVendor.
|
overridevirtual |
Implements ComponentInterface.
Definition at line 822 of file VSTEffect.cpp.
References VSTEffectWrapper::mVersion, and wxT().
|
overridevirtual |
Whether there are preferences applying to the effect's family, for which a UI may be needed to change them
Implements EffectPlugin.
Definition at line 1751 of file VSTEffect.cpp.
|
overridevirtual |
Reimplemented from BasicEffectUIServices.
Definition at line 1673 of file VSTEffect.cpp.
References VSTEffectWrapper::mPath, and settings().
OptionalMessage VSTEffect::ImportPresetsNC | ( | EffectSettings & | settings | ) |
Definition at line 1682 of file VSTEffect.cpp.
References AudacityMessageBox(), VSTEffectWrapper::FetchSettings(), fn, VSTEffectWrapper::GetSettings(), VSTEffectWrapper::LoadFXB(), VSTEffectWrapper::LoadFXP(), VSTEffectWrapper::LoadXML(), VSTEffectWrapper::MakeMessageFS(), SelectFile(), settings(), wxT(), and XO().
bool VSTEffect::InitializePlugin | ( | ) |
Definition at line 903 of file VSTEffect.cpp.
References VSTEffectWrapper::Load(), and VSTEffectWrapper::mAEffect.
Referenced by VSTEffectsModule::DiscoverPluginsAtPath().
|
overridevirtual |
Whether the effect sorts "above the line" in the menus.
Implements EffectDefinitionInterface.
Definition at line 884 of file VSTEffect.cpp.
|
overridevirtual |
Whether the effect needs a dialog for entry of settings.
Implements EffectDefinitionInterface.
Definition at line 879 of file VSTEffect.cpp.
References VSTEffectWrapper::mInteractive.
|
overridevirtual |
Change settings to the preset whose name is GetFactoryPresets()[id]
Implements EffectSettingsManager.
Definition at line 1534 of file VSTEffect.cpp.
References DoLoadFactoryPreset(), VSTEffectWrapper::FetchSettings(), VSTEffectWrapper::GetSettings(), VSTEffectWrapper::MakeMessageFS(), and settings().
|
overridevirtual |
Restore settings from keys and values.
Implements EffectSettingsManager.
Definition at line 1477 of file VSTEffect.cpp.
References VSTEffectWrapper::GetSettings(), key, VSTEffectWrapper::mAEffect, VSTEffectSettings::mChunk, VSTEffectSettings::mNumParams, VSTEffectSettings::mParamsMap, VSTEffectSettings::mUniqueID, VSTEffectSettings::mVersion, VSTEffectWrapper::mVersion, AEffect::numParams, settings(), and AEffect::uniqueID.
Referenced by LoadUserPreset().
|
overridevirtual |
Change settings to a user-named preset
Implements EffectSettingsManager.
Definition at line 2100 of file VSTEffect.cpp.
References VSTEffectWrapper::callSetChunk(), Base64::Decode(), VSTEffectWrapper::FetchSettings(), VSTEffectWrapper::GetChunkInfo(), PluginSettings::GetConfig(), VSTEffectWrapper::GetSettings(), VSTEffectWrapper::IsCompatible(), LoadSettings(), VSTEffectWrapper::MakeMessageFS(), PluginSettings::Private, CommandParameters::SetParameters(), settings(), and wxT().
|
finalprotectedvirtual |
Will never be called.
Will not come here because Effect::PopulateUI is overridden
Implements StatelessEffectUIServices.
Definition at line 1594 of file VSTEffect.cpp.
|
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 1041 of file VSTEffect.cpp.
References DoMakeInstance().
|
overridevirtual |
Produce an object holding new, independent settings
Default implementation returns an empty any
Reimplemented from EffectSettingsManager.
Definition at line 3895 of file VSTEffect.cpp.
References VSTEffectWrapper::FetchSettings(), and settings().
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
overridevirtual |
Adds controls to a panel that is given as the parent window of S
S | interface for adding controls to a panel in a dialog |
instance | guaranteed to have a lifetime containing that of the returned object |
access | guaranteed to have a lifetime containing that of the returned object |
pOutputs | null, or else points to outputs with lifetime containing that of the returned object |
Reimplemented from StatelessEffectUIServices.
Definition at line 1552 of file VSTEffect.cpp.
References PluginSettings::GetConfig(), GetType(), VSTEffectWrapper::mAEffect, VSTEffectWrapper::mGui, EffectBase::mProjectRate, AEffect::numParams, S, PluginSettings::Shared, and wxT().
|
overridevirtual |
Since which version of Audacity has the effect supported realtime?
Implements EffectDefinitionInterface.
Definition at line 889 of file VSTEffect.cpp.
References EffectDefinitionInterface::Always.
|
overridevirtual |
Store settings as keys and values.
The override may assume parms
is initially empty
Implements EffectSettingsManager.
Definition at line 1455 of file VSTEffect.cpp.
References VSTEffectWrapper::GetSettings(), VSTEffectSettings::mParamsMap, name, and settings().
Referenced by SaveUserPreset().
|
overridevirtual |
Save settings in the configuration file as a user-named preset.
Implements EffectSettingsManager.
Definition at line 2159 of file VSTEffect.cpp.
References VSTEffectWrapper::constCallDispatcher(), effFlagsProgramChunks, effGetChunk, Base64::Encode(), AEffect::flags, CommandParameters::GetParameters(), VSTEffectWrapper::GetSettings(), VSTEffectWrapper::mAEffect, PluginSettings::Private, SaveSettings(), PluginSettings::SetConfig(), settings(), VSTEffectWrapper::StoreSettings(), and wxT().
|
overridevirtual |
Some history...
Before we ran into the Antress plugin problem with buffer size limitations, (see below) we just had a plain old effect loop...get the input samples, pass them to the effect, save the output samples.
But, the hack I put in to limit the buffer size to only 8k (normally 512k or so) severely impacted performance. So, Michael C. added some intermediate buffering that sped things up quite a bit and this is how things have worked for quite a while. It still didn't get the performance back to the pre-hack stage, but it was a definite benefit.
History over...
I've recently (May 2014) tried newer versions of the Antress effects and they no longer seem to have a problem with buffer size. So, I've made a bit of a compromise...I've made the buffer size user configurable. Should have done this from the beginning. I've left the default 8k, just in case, but now the user can set the buffering based on their specific setup and needs.
And at the same time I added buffer delay compensation, which allows Audacity to account for latency introduced by some effects. This is based on information provided by the effect, so it will not work with all effects since they don't all provide the information (kn0ck0ut is one).
Reimplemented from BasicEffectUIServices.
Definition at line 1426 of file VSTEffect.cpp.
References VSTEffectEditor::ShowDialog(), and EffectDefinitionInterface::SupportsRealtime().
|
overridevirtual |
Reimplemented from BasicEffectUIServices.
Definition at line 1756 of file VSTEffect.cpp.
|
overridevirtual |
Whether the effect has any automatable controls.
Implements EffectDefinitionInterface.
Definition at line 898 of file VSTEffect.cpp.
References VSTEffectWrapper::mAutomatable.
|
overrideprotectedvirtual |
Reimplemented from VSTEffectWrapper.
Definition at line 2395 of file VSTEffect.cpp.
|
friend |
Definition at line 445 of file VSTEffect.h.
|
private |
Definition at line 443 of file VSTEffect.h.
|
private |
Definition at line 441 of file VSTEffect.h.