Audacity 3.2.0
|
Internal module to auto register all built in effects.
More...
#include <LoadEffects.h>
Classes | |
struct | Entry |
struct | Registration |
Public Types | |
using | Factory = std::function< std::unique_ptr< Effect >() > |
Public Types inherited from PluginProvider | |
using | RegistrationCallback = std::function< const PluginID &(PluginProvider *, ComponentInterface *) > |
Further expand a path reported by FindModulePaths. More... | |
Public Member Functions | |
BuiltinEffectsModule () | |
virtual | ~BuiltinEffectsModule () |
PluginPath | GetPath () const override |
ComponentInterfaceSymbol | GetSymbol () const override |
VendorSymbol | GetVendor () const override |
wxString | GetVersion () const override |
TranslatableString | GetDescription () const override |
bool | Initialize () override |
Called immediately after creation. Let provider initialize. More... | |
void | Terminate () override |
Called just prior to deletion to allow releasing any resources. More... | |
EffectFamilySymbol | GetOptionalFamilySymbol () override |
A symbol identifying the family of plug-ins provided by this. More... | |
const FileExtensions & | GetFileExtensions () override |
File types associated with this protocol. More... | |
FilePath | InstallPath () override |
Where plug-in files should be copied to install them. More... | |
void | AutoRegisterPlugins (PluginManagerInterface &pm) override |
Called so that a provider of a static set of plug-ins can register them. More... | |
PluginPaths | FindModulePaths (PluginManagerInterface &pm) override |
unsigned | DiscoverPluginsAtPath (const PluginPath &path, TranslatableString &errMsg, const RegistrationCallback &callback) override |
bool | CheckPluginExist (const PluginPath &path) const override |
Performs plugin/module existence check, still plugin may fail to load. Implementation should avoid loading plugins during this check. More... | |
std::unique_ptr< ComponentInterface > | LoadPlugin (const PluginPath &path) override |
Load the plug-in at a path reported by DiscoverPluginsAtPath. More... | |
Public Member Functions inherited from PluginProvider | |
virtual | ~PluginProvider () |
virtual bool | Initialize ()=0 |
Called immediately after creation. Let provider initialize. More... | |
virtual void | Terminate ()=0 |
Called just prior to deletion to allow releasing any resources. More... | |
virtual EffectFamilySymbol | GetOptionalFamilySymbol ()=0 |
A symbol identifying the family of plug-ins provided by this. More... | |
virtual const FileExtensions & | GetFileExtensions ()=0 |
File types associated with this protocol. More... | |
virtual FilePath | InstallPath ()=0 |
Where plug-in files should be copied to install them. More... | |
virtual void | AutoRegisterPlugins (PluginManagerInterface &pluginManager)=0 |
Called so that a provider of a static set of plug-ins can register them. More... | |
virtual bool | SupportsCustomModulePaths () const |
virtual PluginPaths | FindModulePaths (PluginManagerInterface &pluginManager)=0 |
virtual unsigned | DiscoverPluginsAtPath (const PluginPath &path, TranslatableString &errMsg, const RegistrationCallback &callback)=0 |
virtual bool | CheckPluginExist (const PluginPath &path) const =0 |
Performs plugin/module existence check, still plugin may fail to load. Implementation should avoid loading plugins during this check. More... | |
virtual std::unique_ptr< Validator > | MakeValidator () const |
virtual std::unique_ptr< ComponentInterface > | LoadPlugin (const PluginPath &path)=0 |
Load the plug-in at a path reported by DiscoverPluginsAtPath. 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 Types | |
using | EffectHash = std::unordered_map< wxString, const Entry * > |
Private Member Functions | |
std::unique_ptr< Effect > | Instantiate (const PluginPath &path) |
Static Private Member Functions | |
static void | DoRegistration (const ComponentInterfaceSymbol &name, const Factory &factory, bool excluded) |
Private Attributes | |
EffectHash | mEffects |
Internal module to auto register all built in effects.
Definition at line 29 of file LoadEffects.h.
|
private |
Definition at line 86 of file LoadEffects.h.
using BuiltinEffectsModule::Factory = std::function< std::unique_ptr<Effect> () > |
Definition at line 35 of file LoadEffects.h.
BuiltinEffectsModule::BuiltinEffectsModule | ( | ) |
Definition at line 72 of file LoadEffects.cpp.
|
virtual |
Definition at line 76 of file LoadEffects.cpp.
|
overridevirtual |
Called so that a provider of a static set of plug-ins can register them.
Implements PluginProvider.
Definition at line 143 of file LoadEffects.cpp.
References PluginManagerInterface::DefaultRegistrationCallback(), DiscoverPluginsAtPath(), PluginManager::EnablePlugin(), PluginManager::Get(), PluginManagerInterface::GetRegistryVersion(), ident(), PluginManagerInterface::IsPluginRegistered(), mEffects, Regver_eq(), and REGVERCUR.
|
overridevirtual |
Performs plugin/module existence check, still plugin may fail to load. Implementation should avoid loading plugins during this check.
path | Internal plugin path/ID discovered via DiscoverPluginsAtPath or module path returned by FindModulePaths |
Implements PluginProvider.
Definition at line 203 of file LoadEffects.cpp.
References mEffects.
|
overridevirtual |
Implements PluginProvider.
Definition at line 178 of file LoadEffects.cpp.
References Instantiate(), and XO().
Referenced by AutoRegisterPlugins().
|
staticprivate |
Definition at line 38 of file LoadEffects.cpp.
References factory, name, BuiltinEffectsModule::Entry::Registry(), and sInitialized.
|
overridevirtual |
Find available "paths", which may each be presented to the user, and then reexamined (possibly loading libraries) to find one or more plug-ins
Paths are not necessarily file system paths. Only the provider reinterprets the paths.
Modules may be associated with plug-ins, one-to-many.
Implements PluginProvider.
Definition at line 169 of file LoadEffects.cpp.
|
overridevirtual |
Implements ComponentInterface.
Definition at line 105 of file LoadEffects.cpp.
References XO().
|
overridevirtual |
File types associated with this protocol.
"Paths" returned by FindModulePaths() and passed back to DiscoverPluginsAtPath() have provider-specific meaning. They are not necessarily file system paths to existent files that could be placed in any folder and queried for plug-in information.
This function returns nonempty only when that is the case, and lists the possible extensions of such files (an empty string in a nonempty array means any file is a candidate).
Implements PluginProvider.
Definition at line 137 of file LoadEffects.cpp.
|
overridevirtual |
A symbol identifying the family of plug-ins provided by this.
If it is not empty, then the family as a whole can be enabled or disabled by the user in Preferences
Implements PluginProvider.
Definition at line 130 of file LoadEffects.cpp.
|
overridevirtual |
|
overridevirtual |
Implements ComponentInterface.
Definition at line 89 of file LoadEffects.cpp.
References XO().
|
overridevirtual |
Implements ComponentInterface.
Definition at line 94 of file LoadEffects.cpp.
References XO().
|
overridevirtual |
Implements ComponentInterface.
Definition at line 99 of file LoadEffects.cpp.
|
overridevirtual |
Called immediately after creation. Let provider initialize.
Implements PluginProvider.
Definition at line 114 of file LoadEffects.cpp.
References BUILTIN_EFFECT_PREFIX, entry, mEffects, BuiltinEffectsModule::Entry::Registry(), and sInitialized.
|
inlineoverridevirtual |
Where plug-in files should be copied to install them.
Implements PluginProvider.
Definition at line 61 of file LoadEffects.h.
|
private |
Definition at line 212 of file LoadEffects.cpp.
References BUILTIN_EFFECT_PREFIX, and mEffects.
Referenced by DiscoverPluginsAtPath(), and LoadPlugin().
|
overridevirtual |
Load the plug-in at a path reported by DiscoverPluginsAtPath.
Implements PluginProvider.
Definition at line 197 of file LoadEffects.cpp.
References Instantiate().
|
overridevirtual |
Called just prior to deletion to allow releasing any resources.
Implements PluginProvider.
Definition at line 124 of file LoadEffects.cpp.
|
private |
Definition at line 87 of file LoadEffects.h.
Referenced by AutoRegisterPlugins(), CheckPluginExist(), FindModulePaths(), Initialize(), and Instantiate().