![]() |
Audacity 3.2.0
|
PluginManager maintains a list of all plug ins. That covers modules, effects, generators, analysis-effects, commands. It also has functions for shared and private configs - which need to move out. More...
#include <PluginManager.h>
Classes | |
class | Iterator |
struct | Range |
Public Types | |
using | FileConfigFactory = std::function< std::unique_ptr< FileConfig >(const FilePath &localFilename) > |
![]() | |
using | ConfigurationType = PluginSettings::ConfigurationType |
using | ConfigReference = PluginSettings::ConfigReference |
using | ConfigConstReference = PluginSettings::ConfigConstReference |
![]() | |
using | message_type = PluginsChangedMessage |
using | CallbackReturn = std::conditional_t< true, void, bool > |
using | Callback = std::function< CallbackReturn(const PluginsChangedMessage &) > |
Type of functions that can be connected to the Publisher. More... | |
Public Member Functions | |
RegistryPath | GetPluginEnabledSetting (const PluginID &ID) const |
RegistryPath | GetPluginEnabledSetting (const PluginDescriptor &desc) const |
bool | IsPluginRegistered (const PluginPath &path, const TranslatableString *pSymbol) override |
Was the plugin registry already populated for a path (maybe from loading the config file)? More... | |
bool | IsPluginLoaded (const wxString &ID) const |
void | RegisterPlugin (PluginDescriptor &&desc) |
const PluginID & | RegisterPlugin (PluginProvider *provider) override |
const PluginID & | RegisterPlugin (PluginProvider *provider, ComponentInterface *command) |
const PluginID & | RegisterPlugin (PluginProvider *provider, EffectDefinitionInterface *effect, int type) override |
void | FindFilesInPathList (const wxString &pattern, const FilePaths &pathList, FilePaths &files, bool directories=false) override |
bool | HasConfigGroup (ConfigurationType type, const PluginID &ID, const RegistryPath &group) |
bool | GetConfigSubgroups (ConfigurationType type, const PluginID &ID, const RegistryPath &group, RegistryPaths &subgroups) override |
bool | HasConfigValue (ConfigurationType type, const PluginID &ID, const RegistryPath &group, const RegistryPath &key) override |
bool | GetConfigValue (ConfigurationType type, const PluginID &ID, const RegistryPath &group, const RegistryPath &key, ConfigReference var, ConfigConstReference defval) override |
bool | SetConfigValue (ConfigurationType type, const PluginID &ID, const RegistryPath &group, const RegistryPath &key, ConfigConstReference value) override |
bool | RemoveConfigSubgroup (ConfigurationType type, const PluginID &ID, const RegistryPath &group) override |
bool | RemoveConfig (ConfigurationType type, const PluginID &ID, const RegistryPath &group, const RegistryPath &key) override |
void | Initialize (FileConfigFactory factory) |
void | Terminate () |
bool | DropFile (const wxString &fileName) |
int | GetPluginCount (PluginType type) |
const PluginDescriptor * | GetPlugin (const PluginID &ID) const |
bool | IsPluginEnabled (const PluginID &ID) |
void | EnablePlugin (const PluginID &ID, bool enable) |
const ComponentInterfaceSymbol & | GetSymbol (const PluginID &ID) |
ComponentInterface * | Load (const PluginID &ID) |
void | ClearEffectPlugins () |
std::map< wxString, std::vector< wxString > > | CheckPluginUpdates () |
Ensures that all currently registered plugins still exist and scans for new ones. More... | |
const PluginID & | RegisterPlugin (std::unique_ptr< EffectDefinitionInterface > effect, PluginType type) |
Used only by Nyquist Workbench module. More... | |
void | UnregisterPlugin (const PluginID &ID) |
void | Load () |
Load from preferences. More... | |
void | Save () |
Save to preferences. More... | |
void | NotifyPluginsChanged () |
const PluginRegistryVersion & | GetRegistryVersion () const override |
iteration over plugins of certain types, supporting range-for syntax | |
Range | AllPlugins () |
Range | PluginsOfType (int type) |
Range | EffectsOfType (EffectType type) |
![]() | |
virtual | ~PluginManagerInterface () |
virtual bool | IsPluginRegistered (const PluginPath &path, const TranslatableString *pName=nullptr)=0 |
Was the plugin registry already populated for a path (maybe from loading the config file)? More... | |
virtual const PluginID & | RegisterPlugin (PluginProvider *provider)=0 |
virtual const PluginID & | RegisterPlugin (PluginProvider *provider, EffectDefinitionInterface *effect, int type)=0 |
virtual void | FindFilesInPathList (const wxString &pattern, const FilePaths &pathList, FilePaths &files, bool directories=false)=0 |
virtual bool | GetConfigSubgroups (ConfigurationType type, const PluginID &ID, const RegistryPath &group, RegistryPaths &subgroups)=0 |
virtual bool | HasConfigValue (ConfigurationType type, const PluginID &ID, const RegistryPath &group, const RegistryPath &key)=0 |
virtual bool | GetConfigValue (ConfigurationType type, const PluginID &ID, const RegistryPath &group, const RegistryPath &key, ConfigReference var, ConfigConstReference defval)=0 |
virtual bool | SetConfigValue (ConfigurationType type, const PluginID &ID, const RegistryPath &group, const RegistryPath &key, ConfigConstReference value)=0 |
virtual bool | RemoveConfigSubgroup (ConfigurationType type, const PluginID &ID, const RegistryPath &group)=0 |
virtual bool | RemoveConfig (ConfigurationType type, const PluginID &ID, const RegistryPath &group, const RegistryPath &key)=0 |
virtual const PluginRegistryVersion & | GetRegistryVersion () const =0 |
What is the plugin registry version number now in the file? More... | |
![]() | |
Publisher (ExceptionPolicy *pPolicy=nullptr, Alloc a={}) | |
Constructor supporting type-erased custom allocation/deletion. More... | |
Publisher (Publisher &&)=default | |
Publisher & | operator= (Publisher &&)=default |
Subscription | Subscribe (Callback callback) |
Connect a callback to the Publisher; later-connected are called earlier. More... | |
Subscription | Subscribe (Object &obj, Return(Object::*callback)(Args...)) |
Overload of Subscribe takes an object and pointer-to-member-function. More... | |
Static Public Member Functions | |
static PluginManager & | Get () |
static PluginID | GetID (PluginProvider *provider) |
static PluginID | GetID (ComponentInterface *command) |
static PluginID | OldGetID (const EffectDefinitionInterface *effect) |
static PluginID | GetID (const EffectDefinitionInterface *effect) |
static Identifier | GetEffectNameFromID (const PluginID &ID) |
static wxString | GetPluginTypeString (PluginType type) |
static bool | IsPluginAvailable (const PluginDescriptor &plug) |
![]() | |
static const PluginID & | DefaultRegistrationCallback (PluginProvider *provider, ComponentInterface *ident) |
static const PluginID & | AudacityCommandRegistrationCallback (PluginProvider *provider, ComponentInterface *ident) |
Private Attributes | |
std::unique_ptr< FileConfig > | mSettings |
bool | mDirty |
int | mCurrentIndex |
PluginMap | mRegisteredPlugins |
std::map< PluginID, std::unique_ptr< ComponentInterface > > | mLoadedInterfaces |
std::vector< PluginDescriptor > | mEffectPluginsCleared |
PluginRegistryVersion | mRegver |
Static Private Attributes | |
static std::unique_ptr< PluginManager > | mInstance {} |
Additional Inherited Members | |
![]() | |
static constexpr bool | notifies_all |
![]() | |
CallbackReturn | Publish (const PluginsChangedMessage &message) |
Send a message to connected callbacks. More... | |
PluginManager maintains a list of all plug ins. That covers modules, effects, generators, analysis-effects, commands. It also has functions for shared and private configs - which need to move out.
Definition at line 44 of file PluginManager.h.
using PluginManager::FileConfigFactory = std::function< std::unique_ptr<FileConfig>(const FilePath &localFilename ) > |
Definition at line 96 of file PluginManager.h.
|
private |
Definition at line 330 of file PluginManager.cpp.
References mSettings.
|
private |
Definition at line 335 of file PluginManager.cpp.
References Terminate().
|
inline |
Definition at line 153 of file PluginManager.h.
Referenced by PluginRegistrationDialog::PopulateItemsList().
std::map< wxString, std::vector< wxString > > PluginManager::CheckPluginUpdates | ( | ) |
Ensures that all currently registered plugins still exist and scans for new ones.
Definition at line 1195 of file PluginManager.cpp.
References ModuleManager::Get(), PluginDescriptor::GetPath(), make_iterator_range(), mEffectPluginsCleared, mRegisteredPlugins, PluginTypeNone, and wxT().
Referenced by AudacityApp::InitPart2(), and PluginRegistrationDialog::OnRescan().
void PluginManager::ClearEffectPlugins | ( | ) |
Definition at line 1160 of file PluginManager.cpp.
References _, desc, ModuleManager::Get(), mEffectPluginsCleared, mRegisteredPlugins, PluginTypeEffect, and PluginTypeStub.
|
private |
Definition at line 1522 of file PluginManager.cpp.
References Base64::Decode(), Base64::Encode(), id, and wxT().
Referenced by LoadGroup(), SaveGroup(), and SettingsPath().
|
private |
Definition at line 1336 of file PluginManager.cpp.
References id, ident(), mRegisteredPlugins, PluginDescriptor::SetID(), PluginDescriptor::SetPath(), PluginDescriptor::SetPluginType(), PluginDescriptor::SetSymbol(), PluginDescriptor::SetVendor(), and PluginDescriptor::SetVersion().
Referenced by RegisterPlugin().
bool PluginManager::DropFile | ( | const wxString & | fileName | ) |
Definition at line 425 of file PluginManager.cpp.
References BasicUI::MessageBoxOptions::Caption(), PluginManagerInterface::DefaultRegistrationCallback(), FileNames::DoCopyFile(), ModuleManager::Get(), id, ident(), PluginProvider::InstallPath(), mRegisteredPlugins, name, names, NotifyPluginsChanged(), PluginsOfType(), PluginTypeModule, Save(), BasicUI::ShowMessageBox(), Verbatim(), wxT(), XO(), and XPC.
|
inline |
Definition at line 155 of file PluginManager.h.
Referenced by MenuHelper::PopulateEffectsMenu().
void PluginManager::EnablePlugin | ( | const PluginID & | ID, |
bool | enable | ||
) |
Definition at line 1119 of file PluginManager.cpp.
References mRegisteredPlugins.
Referenced by BuiltinEffectsModule::AutoRegisterPlugins().
|
overridevirtual |
Implements PluginManagerInterface.
Definition at line 204 of file PluginManager.cpp.
References PlatformCompatibility::GetExecutablePath(), FileNames::PlugInDir(), and wxT().
|
static |
Definition at line 379 of file PluginManager.cpp.
References mInstance, and safenew.
Referenced by anonymous_namespace{MenuHelper.cpp}::AddEffectMenuItemGroup(), MacroCommands::ApplyEffectCommand(), PluginManagerInterface::AudacityCommandRegistrationCallback(), BuiltinEffectsModule::AutoRegisterPlugins(), PluginManagerInterface::DefaultRegistrationCallback(), anonymous_namespace{PluginHost.cpp}::Discover(), CommandDispatch::DoAudacityCommand(), EffectUI::DoEffect(), anonymous_namespace{PluginMenus.cpp}::DoManagePluginsMenu(), EffectManager::GetAudacityCommand(), EffectManager::GetCommandIdentifier(), EffectManager::GetCommandSymbol(), PluginSettings::GetConfigSubgroups(), PluginSettings::GetConfigValue(), EffectManager::GetEffectByIdentifier(), EffectManager::GetEffectFamilyName(), anonymous_namespace{RealtimeEffectPanel.cpp}::RealtimeEffectControl::GetPlugin(), EffectManager::GetVendorName(), CommandDispatch::HandleTextualCommand(), PluginSettings::HasConfigGroup(), PluginSettings::HasConfigValue(), AudacityApp::InitPart2(), anonymous_namespace{MenuHelper.cpp}::IsEnabledPlugin(), anonymous_namespace{EffectManager.cpp}::LoadComponent(), MacroCommandsCatalog::MacroCommandsCatalog(), RealtimeEffectListWindow::OnAddEffectClicked(), AudacityApp::OnExit(), PluginRegistrationDialog::OnOK(), anonymous_namespace{FileMenus.cpp}::OnOpen(), PluginStartupRegistration::OnPluginFound(), PluginRegistrationDialog::OnRescan(), PluginStartupRegistration::OnValidationFinished(), ProjectFileManager::OpenFile(), MenuHelper::PopulateEffectsMenu(), PluginRegistrationDialog::PopulateOrExchange(), RealtimeEffectListWindow::RealtimeEffectListWindow(), EffectManager::RegisterEffect(), PluginSettings::RemoveConfig(), PluginSettings::RemoveConfigSubgroup(), PluginStartupRegistration::Run(), GetInfoCommand::SendCommands(), PluginSettings::SetConfigValue(), EffectManager::SupportsAutomation(), anonymous_namespace{TrackMenus.cpp}::TracksMenu(), and EffectManager::UnregisterEffect().
|
overridevirtual |
Implements PluginManagerInterface.
Definition at line 267 of file PluginManager.cpp.
References GetSubgroups(), and Group().
|
overridevirtual |
Implements PluginManagerInterface.
Definition at line 279 of file PluginManager.cpp.
References GetConfigValue(), Key(), and key.
Referenced by GetConfigValue().
|
private |
Definition at line 1431 of file PluginManager.cpp.
References GetSettings(), key, and Registry::Visit().
|
static |
Parse English effect name from the result of GetID(const EffectDefinitionInterface*)
Definition at line 1273 of file PluginManager.cpp.
Referenced by anonymous_namespace{RealtimeEffectPanel.cpp}::RealtimeEffectControl::GetEffectName().
|
static |
Definition at line 1242 of file PluginManager.cpp.
References ComponentInterface::GetPath(), GetPluginTypeString(), ComponentInterface::GetSymbol(), ComponentInterface::GetVendor(), ComponentInterfaceSymbol::Internal(), PluginTypeAudacityCommand, and wxT().
|
static |
Definition at line 1262 of file PluginManager.cpp.
References EffectDefinitionInterface::GetFamily(), ComponentInterface::GetPath(), GetPluginTypeString(), ComponentInterface::GetSymbol(), ComponentInterface::GetVendor(), ComponentInterfaceSymbol::Internal(), and PluginTypeEffect.
|
static |
Definition at line 1237 of file PluginManager.cpp.
References ModuleManager::GetID().
Referenced by GetID(), RegisterPlugin(), and RealtimeEffectState::WriteXML().
const PluginDescriptor * PluginManager::GetPlugin | ( | const PluginID & | ID | ) | const |
Definition at line 1043 of file PluginManager.cpp.
References PluginDescriptor::GetID(), make_iterator_range(), mEffectPluginsCleared, and mRegisteredPlugins.
Referenced by anonymous_namespace{MenuHelper.cpp}::AddEffectMenuItemGroup(), MacroCommands::ApplyEffectCommand(), CommandDispatch::DoAudacityCommand(), EffectUI::DoEffect(), anonymous_namespace{RealtimeEffectPanel.cpp}::RealtimeEffectControl::GetPlugin(), GetPluginEnabledSetting(), RealtimeEffectListWindow::OnAddEffectClicked(), anonymous_namespace{FileMenus.cpp}::OnOpen(), EffectManager::SupportsAutomation(), and anonymous_namespace{TrackMenus.cpp}::TracksMenu().
int PluginManager::GetPluginCount | ( | PluginType | type | ) |
Definition at line 1037 of file PluginManager.cpp.
References mRegisteredPlugins.
RegistryPath PluginManager::GetPluginEnabledSetting | ( | const PluginDescriptor & | desc | ) | const |
Definition at line 112 of file PluginManager.cpp.
References desc, GetPluginEnabledSetting(), PluginTypeEffect, PluginTypeModule, and wxT().
RegistryPath PluginManager::GetPluginEnabledSetting | ( | const PluginID & | ID | ) | const |
Definition at line 104 of file PluginManager.cpp.
References GetPlugin(), and GetPluginEnabledSetting().
Referenced by PluginManager::Iterator::Advance(), and GetPluginEnabledSetting().
|
static |
Definition at line 1283 of file PluginManager.cpp.
References ModuleManager::GetPluginTypeString(), PluginTypeAudacityCommand, PluginTypeEffect, PluginTypeExporter, PluginTypeImporter, PluginTypeModule, PluginTypeNone, PluginTypeStub, str, and wxT().
Referenced by GetID(), Load(), LoadGroup(), OldGetID(), SaveGroup(), and SettingsPath().
|
overridevirtual |
What is the plugin registry version number now in the file? (Save() updates it)
Implements PluginManagerInterface.
Definition at line 919 of file PluginManager.cpp.
References mRegver.
|
private |
Definition at line 1354 of file PluginManager.cpp.
References mSettings, FileNames::PluginSettings(), SETVERCUR, SETVERKEY, and sFactory.
Referenced by GetConfigValue(), GetSubgroups(), HasConfigValue(), HasGroup(), Initialize(), RemoveConfig(), RemoveConfigSubgroup(), and SetConfigValue().
|
private |
Definition at line 1401 of file PluginManager.cpp.
References FileConfig::GetPath(), GetSettings(), HasGroup(), name, and FileConfig::SetPath().
Referenced by GetConfigSubgroups().
const ComponentInterfaceSymbol & PluginManager::GetSymbol | ( | const PluginID & | ID | ) |
Definition at line 1127 of file PluginManager.cpp.
References mRegisteredPlugins.
Referenced by EffectManager::GetCommandIdentifier(), EffectManager::GetCommandSymbol(), and ComponentInterface::GetName().
|
private |
Definition at line 1493 of file PluginManager.cpp.
References SettingsPath().
Referenced by GetConfigSubgroups(), HasConfigGroup(), Key(), and RemoveConfigSubgroup().
bool PluginManager::HasConfigGroup | ( | ConfigurationType | type, |
const PluginID & | ID, | ||
const RegistryPath & | group | ||
) |
Definition at line 261 of file PluginManager.cpp.
References Group(), and HasGroup().
|
overridevirtual |
Implements PluginManagerInterface.
Definition at line 273 of file PluginManager.cpp.
References HasConfigValue(), Key(), and key.
Referenced by HasConfigValue().
|
private |
Definition at line 1426 of file PluginManager.cpp.
References GetSettings(), and key.
|
private |
Definition at line 1384 of file PluginManager.cpp.
References GetSettings(), and settings().
Referenced by GetSubgroups(), and HasConfigGroup().
void PluginManager::Initialize | ( | FileConfigFactory | factory | ) |
factory != nullptr
Definition at line 389 of file PluginManager.cpp.
References cloud::factory, ModuleManager::Get(), GetSettings(), InitializePlugins(), Load(), RegisterPlugin(), and sFactory.
Referenced by AudacityApp::InitPart2().
|
private |
Definition at line 341 of file PluginManager.cpp.
References ModuleManager::CheckPluginExist(), ModuleManager::Get(), mRegisteredPlugins, PluginTypeModule, PluginTypeNone, and Save().
Referenced by Initialize().
|
private |
|
static |
Definition at line 1316 of file PluginManager.cpp.
References ModuleManager::CreateProviderInstance(), ModuleManager::Get(), PluginDescriptor::GetID(), PluginDescriptor::GetPath(), and PluginDescriptor::GetProviderID().
Referenced by EffectUI::DoEffect(), RealtimeEffectListWindow::OnAddEffectClicked(), and anonymous_namespace{FileMenus.cpp}::OnOpen().
bool PluginManager::IsPluginEnabled | ( | const PluginID & | ID | ) |
Definition at line 1111 of file PluginManager.cpp.
References mRegisteredPlugins.
bool PluginManager::IsPluginLoaded | ( | const wxString & | ID | ) | const |
Definition at line 149 of file PluginManager.cpp.
References mLoadedInterfaces.
|
overridevirtual |
Was the plugin registry already populated for a path (maybe from loading the config file)?
path | an identifier for the plug-in with meaning defined by provider; not always a file path |
pName | if supplied, a correction for the user visible name associated with the plug-in, if it is registered already. (Needed because the configuration file only stores an internal name.) |
Implements PluginManagerInterface.
Definition at line 135 of file PluginManager.cpp.
References Internal, and mRegisteredPlugins.
|
private |
Definition at line 1508 of file PluginManager.cpp.
Referenced by GetConfigValue(), HasConfigValue(), RemoveConfig(), and SetConfigValue().
void PluginManager::Load | ( | ) |
Load from preferences.
Definition at line 540 of file PluginManager.cpp.
References GetPluginTypeString(), KEY_EFFECTTYPE, KEY_SYMBOL, KEY_VERSION, LoadGroup(), mRegver, NYQUIST_PROMPT_ID, FileNames::PluginRegistry(), PluginTypeAudacityCommand, PluginTypeEffect, PluginTypeExporter, PluginTypeImporter, PluginTypeModule, PluginTypeStub, REGROOT, Regver_le(), Regver_lt(), REGVERKEY, and sFactory.
Referenced by Initialize().
ComponentInterface * PluginManager::Load | ( | const PluginID & | ID | ) |
Definition at line 1137 of file PluginManager.cpp.
References ModuleManager::CreateProviderInstance(), desc, ModuleManager::Get(), PluginProvider::LoadPlugin(), mLoadedInterfaces, mRegisteredPlugins, and PluginTypeModule.
Referenced by EffectManager::GetAudacityCommand().
|
private |
Definition at line 625 of file PluginManager.cpp.
References ConvertID(), PluginDescriptor::DeserializeRealtimeSupport(), EffectTypeAnalyze, EffectTypeGenerate, EffectTypeHidden, EffectTypeNone, EffectTypeProcess, EffectTypeTool, PlatformCompatibility::GetExecutablePath(), FileConfig::GetFirstGroup(), FileConfig::GetNextGroup(), GetPluginTypeString(), KEY_DESCRIPTION, KEY_EFFECTAUTOMATABLE, KEY_EFFECTDEFAULT, KEY_EFFECTFAMILY, KEY_EFFECTINTERACTIVE, KEY_EFFECTREALTIME, KEY_EFFECTTYPE, KEY_EFFECTTYPE_ANALYZE, KEY_EFFECTTYPE_GENERATE, KEY_EFFECTTYPE_HIDDEN, KEY_EFFECTTYPE_NONE, KEY_EFFECTTYPE_PROCESS, KEY_EFFECTTYPE_TOOL, KEY_ENABLED, KEY_IMPORTEREXTENSIONS, KEY_IMPORTERIDENT, KEY_PATH, KEY_PROVIDERID, KEY_SYMBOL, KEY_VALID, KEY_VENDOR, KEY_VERSION, mRegisteredPlugins, PluginTypeEffect, PluginTypeImporter, PluginTypeModule, PluginTypeNone, PluginTypeStub, REGROOT, PluginDescriptor::SetEffectAutomatable(), PluginDescriptor::SetEffectDefault(), PluginDescriptor::SetEffectFamily(), PluginDescriptor::SetEffectInteractive(), PluginDescriptor::SetEffectType(), PluginDescriptor::SetEnabled(), PluginDescriptor::SetID(), PluginDescriptor::SetImporterExtensions(), PluginDescriptor::SetImporterIdentifier(), PluginDescriptor::SetPath(), FileConfig::SetPath(), PluginDescriptor::SetPluginType(), PluginDescriptor::SetProviderID(), PluginDescriptor::SetSymbol(), PluginDescriptor::SetValid(), PluginDescriptor::SetVendor(), PluginDescriptor::SetVersion(), and wxT().
Referenced by Load().
void PluginManager::NotifyPluginsChanged | ( | ) |
Definition at line 914 of file PluginManager.cpp.
References Observer::Publisher< PluginsChangedMessage >::Publish().
Referenced by DropFile(), PluginRegistrationDialog::OnOK(), and PluginStartupRegistration::Run().
|
static |
Definition at line 1252 of file PluginManager.cpp.
References EffectDefinitionInterface::GetFamily(), ComponentInterface::GetPath(), GetPluginTypeString(), ComponentInterface::GetSymbol(), ComponentInterface::GetVendor(), ComponentInterfaceSymbol::Internal(), PluginTypeEffect, and wxT().
|
inline |
Definition at line 154 of file PluginManager.h.
Referenced by DropFile(), EffectManager::GetEffectByIdentifier(), MacroCommandsCatalog::MacroCommandsCatalog(), and GetInfoCommand::SendCommands().
void PluginManager::RegisterPlugin | ( | PluginDescriptor && | desc | ) |
Definition at line 154 of file PluginManager.cpp.
References desc, and mRegisteredPlugins.
Referenced by PluginManagerInterface::AudacityCommandRegistrationCallback(), PluginManagerInterface::DefaultRegistrationCallback(), Initialize(), PluginStartupRegistration::OnPluginFound(), PluginStartupRegistration::OnValidationFinished(), and EffectManager::RegisterEffect().
|
overridevirtual |
Implements PluginManagerInterface.
Definition at line 159 of file PluginManager.cpp.
References CreatePlugin(), PluginDescriptor::GetID(), GetID(), PluginProvider::GetOptionalFamilySymbol(), ComponentInterfaceSymbol::Internal(), PluginTypeModule, PluginDescriptor::SetEffectFamily(), PluginDescriptor::SetEnabled(), and PluginDescriptor::SetValid().
const PluginID & PluginManager::RegisterPlugin | ( | PluginProvider * | provider, |
ComponentInterface * | command | ||
) |
Definition at line 171 of file PluginManager.cpp.
References CreatePlugin(), PluginDescriptor::GetID(), GetID(), PluginTypeAudacityCommand, PluginDescriptor::SetEnabled(), PluginDescriptor::SetProviderID(), and PluginDescriptor::SetValid().
|
overridevirtual |
Implements PluginManagerInterface.
Definition at line 184 of file PluginManager.cpp.
References CreatePlugin(), EffectDefinitionInterface::GetClassification(), EffectDefinitionInterface::GetFamily(), PluginDescriptor::GetID(), GetID(), ComponentInterfaceSymbol::Internal(), EffectDefinitionInterface::IsDefault(), EffectDefinitionInterface::IsInteractive(), EffectDefinitionInterface::RealtimeSupport(), PluginDescriptor::SetEffectAutomatable(), PluginDescriptor::SetEffectDefault(), PluginDescriptor::SetEffectFamily(), PluginDescriptor::SetEffectInteractive(), PluginDescriptor::SetEffectType(), PluginDescriptor::SetEnabled(), PluginDescriptor::SetProviderID(), PluginDescriptor::SetRealtimeSupport(), PluginDescriptor::SetValid(), and EffectDefinitionInterface::SupportsAutomation().
const PluginID & PluginManager::RegisterPlugin | ( | std::unique_ptr< EffectDefinitionInterface > | effect, |
PluginType | type | ||
) |
Used only by Nyquist Workbench module.
Definition at line 1009 of file PluginManager.cpp.
References CreatePlugin(), PluginDescriptor::GetID(), GetID(), mLoadedInterfaces, PluginDescriptor::SetEffectAutomatable(), PluginDescriptor::SetEffectDefault(), PluginDescriptor::SetEffectFamily(), PluginDescriptor::SetEffectInteractive(), PluginDescriptor::SetEffectLegacy(), PluginDescriptor::SetEffectType(), PluginDescriptor::SetEnabled(), PluginDescriptor::SetRealtimeSupport(), and PluginDescriptor::SetValid().
|
overridevirtual |
Implements PluginManagerInterface.
Definition at line 305 of file PluginManager.cpp.
References FileConfig::DeleteEntry(), FileConfig::Flush(), GetSettings(), Key(), and key.
|
overridevirtual |
Implements PluginManagerInterface.
Definition at line 293 of file PluginManager.cpp.
References FileConfig::DeleteGroup(), FileConfig::Flush(), GetSettings(), and Group().
void PluginManager::Save | ( | ) |
Save to preferences.
Definition at line 882 of file PluginManager.cpp.
References mRegver, FileNames::PluginRegistry(), PluginTypeAudacityCommand, PluginTypeEffect, PluginTypeExporter, PluginTypeImporter, PluginTypeModule, PluginTypeStub, REGVERCUR, REGVERKEY, SaveGroup(), and sFactory.
Referenced by DropFile(), InitializePlugins(), PluginRegistrationDialog::OnOK(), and PluginStartupRegistration::Run().
|
private |
Definition at line 924 of file PluginManager.cpp.
References ConvertID(), EffectTypeAnalyze, EffectTypeGenerate, EffectTypeHidden, EffectTypeNone, EffectTypeProcess, EffectTypeTool, GetPluginTypeString(), KEY_DESCRIPTION, KEY_EFFECTAUTOMATABLE, KEY_EFFECTDEFAULT, KEY_EFFECTFAMILY, KEY_EFFECTINTERACTIVE, KEY_EFFECTREALTIME, KEY_EFFECTTYPE, KEY_EFFECTTYPE_ANALYZE, KEY_EFFECTTYPE_GENERATE, KEY_EFFECTTYPE_HIDDEN, KEY_EFFECTTYPE_NONE, KEY_EFFECTTYPE_PROCESS, KEY_EFFECTTYPE_TOOL, KEY_ENABLED, KEY_IMPORTEREXTENSIONS, KEY_IMPORTERIDENT, KEY_NAME, KEY_PATH, KEY_PROVIDERID, KEY_SYMBOL, KEY_VALID, KEY_VENDOR, KEY_VERSION, mRegisteredPlugins, PluginTypeEffect, PluginTypeImporter, PluginTypeModule, REGROOT, FileConfig::SetPath(), and wxT().
Referenced by Save().
|
overridevirtual |
Implements PluginManagerInterface.
Definition at line 286 of file PluginManager.cpp.
References Key(), key, and SetConfigValue().
Referenced by SetConfigValue().
|
private |
Definition at line 1448 of file PluginManager.cpp.
References FileConfig::Flush(), GetSettings(), key, and Registry::Visit().
|
private |
|
private |
Definition at line 1461 of file PluginManager.cpp.
References ConvertID(), PluginDescriptor::GetEffectFamily(), PluginDescriptor::GetPluginType(), GetPluginTypeString(), PluginDescriptor::GetSymbol(), PluginDescriptor::GetVendor(), ComponentInterfaceSymbol::Internal(), mRegisteredPlugins, SETROOT, PluginSettings::Shared, and wxT().
Referenced by Group().
void PluginManager::Terminate | ( | ) |
Definition at line 410 of file PluginManager.cpp.
References desc, mLoadedInterfaces, mRegisteredPlugins, and PluginTypeEffect.
Referenced by AudacityApp::OnExit(), and ~PluginManager().
void PluginManager::UnregisterPlugin | ( | const PluginID & | ID | ) |
Definition at line 1031 of file PluginManager.cpp.
References mLoadedInterfaces, and mRegisteredPlugins.
Referenced by PluginRegistrationDialog::OnOK(), and EffectManager::UnregisterEffect().
|
private |
Definition at line 231 of file PluginManager.h.
|
private |
Definition at line 230 of file PluginManager.h.
|
private |
Definition at line 235 of file PluginManager.h.
Referenced by CheckPluginUpdates(), ClearEffectPlugins(), and GetPlugin().
|
staticprivate |
Definition at line 224 of file PluginManager.h.
Referenced by Get().
|
private |
Definition at line 234 of file PluginManager.h.
Referenced by IsPluginLoaded(), Load(), RegisterPlugin(), Terminate(), and UnregisterPlugin().
|
private |
Definition at line 233 of file PluginManager.h.
Referenced by PluginManager::Iterator::Advance(), CheckPluginUpdates(), ClearEffectPlugins(), CreatePlugin(), DropFile(), EnablePlugin(), GetPlugin(), GetPluginCount(), GetSymbol(), InitializePlugins(), IsPluginEnabled(), IsPluginRegistered(), Load(), LoadGroup(), RegisterPlugin(), SaveGroup(), SettingsPath(), Terminate(), and UnregisterPlugin().
|
private |
Definition at line 237 of file PluginManager.h.
Referenced by GetRegistryVersion(), Load(), and Save().
|
private |
Definition at line 228 of file PluginManager.h.
Referenced by GetSettings(), and PluginManager().