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 | ConfigFactory = std::function< std::unique_ptr< audacity::BasicSettings >(const FilePath &localFilename) > |
Public Types inherited from PluginManagerInterface | |
using | ConfigurationType = PluginSettings::ConfigurationType |
using | ConfigReference = PluginSettings::ConfigReference |
using | ConfigConstReference = PluginSettings::ConfigConstReference |
Public Types inherited from Observer::Publisher< PluginsChangedMessage > | |
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 (ConfigFactory 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) const |
TranslatableString | GetName (const PluginID &ID) const |
CommandID | GetCommandIdentifier (const PluginID &ID) const |
const PluginID & | GetByCommandIdentifier (const CommandID &strTarget) |
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 |
PluginPaths | ReadCustomPaths (const PluginProvider &provider) override |
void | StoreCustomPaths (const PluginProvider &provider, const PluginPaths &paths) override |
iteration over plugins of certain types, supporting range-for syntax | |
Range | AllPlugins () |
Range | PluginsOfType (int type) |
Range | EffectsOfType (EffectType type) |
Public Member Functions inherited from PluginManagerInterface | |
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 PluginPaths | ReadCustomPaths (const PluginProvider &provider)=0 |
virtual void | StoreCustomPaths (const PluginProvider &provider, const PluginPaths &paths)=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... | |
Public Member Functions inherited from Observer::Publisher< PluginsChangedMessage > | |
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 (const PluginProvider *provider) |
static PluginID | GetID (const 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 Public Member Functions inherited from PluginManagerInterface | |
static const PluginID & | DefaultRegistrationCallback (PluginProvider *provider, ComponentInterface *ident) |
static const PluginID & | AudacityCommandRegistrationCallback (PluginProvider *provider, ComponentInterface *ident) |
Private Attributes | |
std::unique_ptr< audacity::BasicSettings > | 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 Public Attributes inherited from Observer::Publisher< PluginsChangedMessage > | |
static constexpr bool | notifies_all |
Protected Member Functions inherited from Observer::Publisher< PluginsChangedMessage > | |
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 48 of file PluginManager.h.
using PluginManager::ConfigFactory = std::function< std::unique_ptr<audacity::BasicSettings>(const FilePath &localFilename ) > |
Definition at line 100 of file PluginManager.h.
|
private |
Definition at line 331 of file PluginManager.cpp.
References mSettings.
|
private |
Definition at line 336 of file PluginManager.cpp.
References Terminate().
|
inline |
Definition at line 158 of file PluginManager.h.
std::map< wxString, std::vector< wxString > > PluginManager::CheckPluginUpdates | ( | ) |
Ensures that all currently registered plugins still exist and scans for new ones.
Definition at line 1235 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 1200 of file PluginManager.cpp.
References _, anonymous_namespace{ExportPCM.cpp}::desc, ModuleManager::Get(), mEffectPluginsCleared, mRegisteredPlugins, PluginTypeEffect, and PluginTypeStub.
|
private |
Definition at line 1549 of file PluginManager.cpp.
References Base64::Decode(), Base64::Encode(), id, and wxT().
Referenced by LoadGroup(), SaveGroup(), and SettingsPath().
|
private |
Definition at line 1376 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 426 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 160 of file PluginManager.h.
Referenced by MenuHelper::PopulateEffectsMenu().
void PluginManager::EnablePlugin | ( | const PluginID & | ID, |
bool | enable | ||
) |
Definition at line 1126 of file PluginManager.cpp.
References mRegisteredPlugins.
Referenced by BuiltinEffectsModule::AutoRegisterPlugins().
|
overridevirtual |
Implements PluginManagerInterface.
Definition at line 205 of file PluginManager.cpp.
References PlatformCompatibility::GetExecutablePath(), FileNames::PlugInDir(), and wxT().
|
static |
Definition at line 380 of file PluginManager.cpp.
References mInstance, and safenew.
Referenced by anonymous_namespace{MenuHelper.cpp}::AddEffectMenuItemGroup(), anonymous_namespace{PluginMenus.cpp}::AnalyzeMenu(), PluginDataModel::ApplyChanges(), MacroCommands::ApplyCommand(), MacroCommands::ApplyEffectCommand(), HelpCommand::ApplyInner(), PluginManagerInterface::AudacityCommandRegistrationCallback(), BuiltinEffectsModule::AutoRegisterPlugins(), EffectsPrefs::Commit(), PluginManagerInterface::DefaultRegistrationCallback(), anonymous_namespace{PluginHost.cpp}::Discover(), CommandDispatch::DoAudacityCommand(), AudacityApplicationLogic::DoEffect(), anonymous_namespace{PluginMenus.cpp}::DoManagePluginsMenu(), anonymous_namespace{PluginMenus.cpp}::EffectMenu(), anonymous_namespace{RealtimeEffectPanel.cpp}::EffectsMenuHelper::EffectsMenuHelper(), anonymous_namespace{PluginMenus.cpp}::GenerateMenu(), EffectAndCommandPluginManager::GetAudacityCommand(), EffectAndCommandPluginManager::GetCommandDefinition(), PluginSettings::GetConfigSubgroups(), PluginSettings::GetConfigValue(), MacroCommands::GetCurrentParamsFor(), EffectManager::GetEffectFamilyName(), anonymous_namespace{RealtimeEffectPanel.cpp}::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(), anonymous_namespace{BatchProcessDialog.cpp}::OnApplyMacroDirectlyByName(), CommandDispatch::OnAudacityCommand(), AudacityApp::OnExit(), MacroCommandDialog::OnItemSelected(), MacrosWindow::OnListSelected(), anonymous_namespace{FileMenus.cpp}::OnOpen(), PluginStartupRegistration::OnPluginFound(), PluginRegistrationDialog::OnRescan(), anonymous_namespace{TrackMenus.cpp}::OnStereoToMono(), PluginStartupRegistration::OnValidationFinished(), ProjectFileManager::OpenFile(), PluginDataModel::PluginDataModel(), PluginMenuItems(), MenuHelper::PopulateEffectsMenu(), EffectsPrefs::PopulateOrExchange(), MacroCommands::PromptForParamsFor(), MacroCommands::PromptForPresetFor(), EffectManager::RegisterEffect(), PluginSettings::RemoveConfig(), PluginSettings::RemoveConfigSubgroup(), PluginStartupRegistration::Run(), GetInfoCommand::SendCommands(), MacroCommandDialog::SetCommandAndParams(), PluginSettings::SetConfigValue(), anonymous_namespace{TrackMenus.cpp}::TracksMenu(), and EffectManager::UnregisterEffect().
Definition at line 1157 of file PluginManager.cpp.
References Identifier::empty(), GetCommandIdentifier(), PluginsOfType(), PluginTypeAudacityCommand, and PluginTypeEffect.
Referenced by MacroCommands::ApplyCommand(), HelpCommand::ApplyInner(), MacroCommands::GetCurrentParamsFor(), MacroCommandDialog::OnItemSelected(), MacrosWindow::OnListSelected(), MacroCommands::PromptForParamsFor(), MacroCommands::PromptForPresetFor(), MacroCommandDialog::SetCommandAndParams(), and anonymous_namespace{TrackMenus.cpp}::TracksMenu().
Definition at line 1150 of file PluginManager.cpp.
References EffectDefinitionInterface::GetSquashedName(), GetSymbol(), ComponentInterfaceSymbol::Internal(), and name.
Referenced by GetByCommandIdentifier(), MacroCommandsCatalog::MacroCommandsCatalog(), and GetInfoCommand::SendCommands().
|
overridevirtual |
Implements PluginManagerInterface.
Definition at line 268 of file PluginManager.cpp.
References GetSubgroups(), and Group().
|
overridevirtual |
Implements PluginManagerInterface.
Definition at line 280 of file PluginManager.cpp.
References GetConfigValue(), Key(), and key.
Referenced by GetConfigValue().
|
private |
Definition at line 1456 of file PluginManager.cpp.
References GetSettings(), key, audacity::BasicSettings::Read(), and MenuRegistry::Visit().
|
static |
Parse English effect name from the result of GetID(const EffectDefinitionInterface*)
Definition at line 1313 of file PluginManager.cpp.
Referenced by anonymous_namespace{RealtimeEffectPanel.cpp}::GetEffectName().
|
static |
Definition at line 1282 of file PluginManager.cpp.
References ComponentInterface::GetPath(), GetPluginTypeString(), ComponentInterface::GetSymbol(), ComponentInterface::GetVendor(), ComponentInterfaceSymbol::Internal(), PluginTypeAudacityCommand, and wxT().
|
static |
Definition at line 1302 of file PluginManager.cpp.
References EffectDefinitionInterface::GetFamily(), ComponentInterface::GetPath(), GetPluginTypeString(), ComponentInterface::GetSymbol(), ComponentInterface::GetVendor(), ComponentInterfaceSymbol::Internal(), and PluginTypeEffect.
|
static |
Definition at line 1277 of file PluginManager.cpp.
References ModuleManager::GetID().
Referenced by GetID(), PluginRegistrationDialog::PopulateOrExchange(), ReadCustomPaths(), RegisterPlugin(), StoreCustomPaths(), and RealtimeEffectState::WriteXML().
TranslatableString PluginManager::GetName | ( | const PluginID & | ID | ) | const |
Definition at line 1145 of file PluginManager.cpp.
References GetSymbol(), and ComponentInterfaceSymbol::Msgid().
Referenced by AudacityApplicationLogic::DoEffect(), and anonymous_namespace{BatchProcessDialog.cpp}::OnApplyMacroDirectlyByName().
const PluginDescriptor * PluginManager::GetPlugin | ( | const PluginID & | ID | ) | const |
Definition at line 1050 of file PluginManager.cpp.
References PluginDescriptor::GetID(), make_iterator_range(), mEffectPluginsCleared, and mRegisteredPlugins.
Referenced by anonymous_namespace{MenuHelper.cpp}::AddEffectMenuItemGroup(), MacroCommands::ApplyEffectCommand(), CommandDispatch::DoAudacityCommand(), AudacityApplicationLogic::DoEffect(), anonymous_namespace{RealtimeEffectPanel.cpp}::GetPlugin(), GetPluginEnabledSetting(), RealtimeEffectListWindow::OnAddEffectClicked(), anonymous_namespace{FileMenus.cpp}::OnOpen(), and anonymous_namespace{TrackMenus.cpp}::TracksMenu().
int PluginManager::GetPluginCount | ( | PluginType | type | ) |
Definition at line 1044 of file PluginManager.cpp.
References mRegisteredPlugins.
RegistryPath PluginManager::GetPluginEnabledSetting | ( | const PluginDescriptor & | desc | ) | const |
Definition at line 113 of file PluginManager.cpp.
References anonymous_namespace{ExportPCM.cpp}::desc, GetPluginEnabledSetting(), PluginTypeEffect, PluginTypeModule, and wxT().
RegistryPath PluginManager::GetPluginEnabledSetting | ( | const PluginID & | ID | ) | const |
Definition at line 105 of file PluginManager.cpp.
References GetPlugin(), and GetPluginEnabledSetting().
Referenced by PluginManager::Iterator::Advance(), and GetPluginEnabledSetting().
|
static |
Definition at line 1323 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 907 of file PluginManager.cpp.
References mRegver.
|
private |
Definition at line 1394 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 1435 of file PluginManager.cpp.
References audacity::BasicSettings::BeginGroup(), GetSettings(), HasGroup(), and name.
Referenced by GetConfigSubgroups().
const ComponentInterfaceSymbol & PluginManager::GetSymbol | ( | const PluginID & | ID | ) | const |
Definition at line 1135 of file PluginManager.cpp.
References mRegisteredPlugins.
Referenced by GetCommandIdentifier(), ComponentInterface::GetName(), and GetName().
|
private |
Definition at line 1520 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 262 of file PluginManager.cpp.
References Group(), and HasGroup().
|
overridevirtual |
Implements PluginManagerInterface.
Definition at line 274 of file PluginManager.cpp.
References HasConfigValue(), Key(), and key.
Referenced by HasConfigValue().
|
private |
Definition at line 1449 of file PluginManager.cpp.
References audacity::BasicSettings::Exists(), GetSettings(), and key.
|
private |
Definition at line 1424 of file PluginManager.cpp.
References GetSettings(), and settings().
Referenced by GetSubgroups(), and HasConfigGroup().
void PluginManager::Initialize | ( | ConfigFactory | factory | ) |
factory != nullptr
Definition at line 390 of file PluginManager.cpp.
References factory, ModuleManager::Get(), GetSettings(), InitializePlugins(), Load(), RegisterPlugin(), and sFactory.
Referenced by AudacityApp::InitPart2().
|
private |
Definition at line 342 of file PluginManager.cpp.
References ModuleManager::CheckPluginExist(), ModuleManager::Get(), mRegisteredPlugins, PluginTypeModule, PluginTypeNone, and Save().
Referenced by Initialize().
|
private |
|
static |
Definition at line 1356 of file PluginManager.cpp.
References ModuleManager::CreateProviderInstance(), ModuleManager::Get(), PluginDescriptor::GetID(), PluginDescriptor::GetPath(), and PluginDescriptor::GetProviderID().
Referenced by AudacityApplicationLogic::DoEffect(), RealtimeEffectListWindow::OnAddEffectClicked(), and anonymous_namespace{FileMenus.cpp}::OnOpen().
bool PluginManager::IsPluginEnabled | ( | const PluginID & | ID | ) |
Definition at line 1118 of file PluginManager.cpp.
References mRegisteredPlugins.
bool PluginManager::IsPluginLoaded | ( | const wxString & | ID | ) | const |
Definition at line 150 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 136 of file PluginManager.cpp.
References Internal, and mRegisteredPlugins.
|
private |
Definition at line 1535 of file PluginManager.cpp.
Referenced by GetConfigValue(), HasConfigValue(), RemoveConfig(), and SetConfigValue().
void PluginManager::Load | ( | ) |
Load from preferences.
Definition at line 541 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 1177 of file PluginManager.cpp.
References ModuleManager::CreateProviderInstance(), anonymous_namespace{ExportPCM.cpp}::desc, ModuleManager::Get(), PluginProvider::LoadPlugin(), mLoadedInterfaces, mRegisteredPlugins, and PluginTypeModule.
Referenced by EffectAndCommandPluginManager::GetAudacityCommand().
|
private |
Definition at line 619 of file PluginManager.cpp.
References audacity::BasicSettings::BeginGroup(), ConvertID(), PluginDescriptor::DeserializeRealtimeSupport(), EffectTypeAnalyze, EffectTypeGenerate, EffectTypeHidden, EffectTypeNone, EffectTypeProcess, EffectTypeTool, audacity::BasicSettings::GetChildGroups(), PlatformCompatibility::GetExecutablePath(), 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, audacity::BasicSettings::Read(), REGROOT, PluginDescriptor::SetEffectAutomatable(), PluginDescriptor::SetEffectDefault(), PluginDescriptor::SetEffectFamily(), PluginDescriptor::SetEffectInteractive(), PluginDescriptor::SetEffectType(), PluginDescriptor::SetEnabled(), PluginDescriptor::SetID(), PluginDescriptor::SetImporterExtensions(), PluginDescriptor::SetImporterIdentifier(), PluginDescriptor::SetPath(), PluginDescriptor::SetPluginType(), PluginDescriptor::SetProviderID(), PluginDescriptor::SetSymbol(), PluginDescriptor::SetValid(), PluginDescriptor::SetVendor(), PluginDescriptor::SetVersion(), and wxT().
Referenced by Load().
void PluginManager::NotifyPluginsChanged | ( | ) |
Definition at line 902 of file PluginManager.cpp.
References Observer::Publisher< PluginsChangedMessage >::Publish().
Referenced by DropFile(), and PluginStartupRegistration::Run().
|
static |
Definition at line 1292 of file PluginManager.cpp.
References EffectDefinitionInterface::GetFamily(), ComponentInterface::GetPath(), GetPluginTypeString(), ComponentInterface::GetSymbol(), ComponentInterface::GetVendor(), ComponentInterfaceSymbol::Internal(), PluginTypeEffect, and wxT().
|
inline |
Definition at line 159 of file PluginManager.h.
Referenced by DropFile(), GetByCommandIdentifier(), MacroCommandsCatalog::MacroCommandsCatalog(), and GetInfoCommand::SendCommands().
|
overridevirtual |
Implements PluginManagerInterface.
Definition at line 913 of file PluginManager.cpp.
References GetID(), key, mSettings, and REGCUSTOMPATHS.
void PluginManager::RegisterPlugin | ( | PluginDescriptor && | desc | ) |
Definition at line 155 of file PluginManager.cpp.
References anonymous_namespace{ExportPCM.cpp}::desc, and mRegisteredPlugins.
Referenced by PluginManagerInterface::AudacityCommandRegistrationCallback(), PluginManagerInterface::DefaultRegistrationCallback(), Initialize(), PluginStartupRegistration::OnPluginFound(), PluginStartupRegistration::OnValidationFinished(), and EffectManager::RegisterEffect().
|
overridevirtual |
Implements PluginManagerInterface.
Definition at line 160 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 172 of file PluginManager.cpp.
References CreatePlugin(), PluginDescriptor::GetID(), GetID(), PluginTypeAudacityCommand, PluginDescriptor::SetEnabled(), PluginDescriptor::SetProviderID(), and PluginDescriptor::SetValid().
|
overridevirtual |
Implements PluginManagerInterface.
Definition at line 185 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 1016 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 306 of file PluginManager.cpp.
References audacity::BasicSettings::DeleteEntry(), audacity::BasicSettings::Flush(), GetSettings(), Key(), and key.
|
overridevirtual |
Implements PluginManagerInterface.
Definition at line 294 of file PluginManager.cpp.
References audacity::BasicSettings::DeleteGroup(), audacity::BasicSettings::Flush(), GetSettings(), and Group().
void PluginManager::Save | ( | ) |
Save to preferences.
Definition at line 870 of file PluginManager.cpp.
References mRegver, FileNames::PluginRegistry(), PluginTypeAudacityCommand, PluginTypeEffect, PluginTypeExporter, PluginTypeImporter, PluginTypeModule, PluginTypeStub, REGVERCUR, REGVERKEY, SaveGroup(), and sFactory.
Referenced by DropFile(), InitializePlugins(), and PluginStartupRegistration::Run().
|
private |
Definition at line 931 of file PluginManager.cpp.
References audacity::BasicSettings::BeginGroup(), 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, audacity::BasicSettings::Write(), and wxT().
Referenced by Save().
|
overridevirtual |
Implements PluginManagerInterface.
Definition at line 287 of file PluginManager.cpp.
References Key(), key, and SetConfigValue().
Referenced by SetConfigValue().
|
private |
Definition at line 1475 of file PluginManager.cpp.
References audacity::BasicSettings::Flush(), GetSettings(), key, MenuRegistry::Visit(), and audacity::BasicSettings::Write().
|
private |
|
private |
Definition at line 1488 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().
|
overridevirtual |
Implements PluginManagerInterface.
Definition at line 922 of file PluginManager.cpp.
References staffpad::vo::copy(), GetID(), key, mSettings, and REGCUSTOMPATHS.
void PluginManager::Terminate | ( | ) |
Definition at line 411 of file PluginManager.cpp.
References anonymous_namespace{ExportPCM.cpp}::desc, mLoadedInterfaces, mRegisteredPlugins, and PluginTypeEffect.
Referenced by AudacityApp::OnExit(), and ~PluginManager().
void PluginManager::UnregisterPlugin | ( | const PluginID & | ID | ) |
Definition at line 1038 of file PluginManager.cpp.
References mLoadedInterfaces, and mRegisteredPlugins.
Referenced by EffectManager::UnregisterEffect().
|
private |
Definition at line 242 of file PluginManager.h.
|
private |
Definition at line 241 of file PluginManager.h.
|
private |
Definition at line 246 of file PluginManager.h.
Referenced by CheckPluginUpdates(), ClearEffectPlugins(), and GetPlugin().
|
staticprivate |
Definition at line 235 of file PluginManager.h.
Referenced by Get().
|
private |
Definition at line 245 of file PluginManager.h.
Referenced by IsPluginLoaded(), Load(), RegisterPlugin(), Terminate(), and UnregisterPlugin().
|
private |
Definition at line 244 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 248 of file PluginManager.h.
Referenced by GetRegistryVersion(), Load(), and Save().
|
private |
Definition at line 239 of file PluginManager.h.
Referenced by GetSettings(), PluginManager(), ReadCustomPaths(), and StoreCustomPaths().