11#ifndef __AUDACITY_PLUGINMANAGER_H__
12#define __AUDACITY_PLUGINMANAGER_H__
40typedef std::map<PluginID, PluginDescriptor>
PluginMap;
62 bool IsPluginLoaded(
const wxString& ID)
const;
72 bool directories =
false)
override;
101 std::unique_ptr<audacity::BasicSettings>(
const FilePath &localFilename ) >;
106 bool DropFile(
const wxString &fileName);
121 static wxString GetPluginTypeString(
PluginType type);
141 return mIterator != mPm.mRegisteredPlugins.end();
146 void Advance(
bool incrementing);
155 int end()
const {
return 0; }
163 bool IsPluginEnabled(
const PluginID & ID);
164 void EnablePlugin(
const PluginID & ID,
bool enable);
172 void ClearEffectPlugins();
179 std::map<wxString, std::vector<wxString>> CheckPluginUpdates();
183 std::unique_ptr<EffectDefinitionInterface> effect,
PluginType type );
184 void UnregisterPlugin(
const PluginID & ID);
191 void NotifyPluginsChanged();
205 void InitializePlugins();
231 wxString ConvertID(
const PluginID & ID);
234 friend std::default_delete<PluginManager>;
254#define NYQUIST_PROMPT_ID wxT("Nyquist Prompt")
256#define NYQUIST_PROMPT_NAME XO("Nyquist Prompt")
static PluginID GetID(EffectPlugin &effect)
std::vector< PluginPath > PluginPaths
wxString PluginPath
type alias for identifying a Plugin supplied by a module, each module defining its own interpretation...
std::vector< RegistryPath > RegistryPaths
static CommandHandlerObject & ident(AudacityProject &project)
wxString PluginRegistryVersion
Type of plugin registry version information.
std::map< PluginID, PluginDescriptor > PluginMap
auto operator*(PffftAlignedCount x, Integral y) -> std::enable_if_t< std::is_unsigned_v< Integral > &&sizeof(Integral)<=sizeof(size_t), PffftAlignedCount >
static const AttachedProjectObjects::RegisteredFactory manager
bool operator!=(const WaveTrackLocation &a, const WaveTrackLocation &b)
ComponentInterface provides name / vendor / version functions to identify plugins....
ComponentInterfaceSymbol pairs a persistent string identifier used internally with an optional,...
EffectDefinitionInterface is a ComponentInterface that adds some basic read-only information about ef...
An explicitly nonlocalized string, not meant for the user to see.
An object that sends messages to an open-ended list of subscribed callbacks.
const PluginManager & mPm
PluginMap::iterator mIterator
PluginManager maintains a list of all plug ins. That covers modules, effects, generators,...
Range EffectsOfType(EffectType type)
std::vector< PluginDescriptor > mEffectPluginsCleared
PluginRegistryVersion mRegver
std::function< std::unique_ptr< audacity::BasicSettings >(const FilePath &localFilename) > ConfigFactory
Range PluginsOfType(int type)
static std::unique_ptr< PluginManager > mInstance
PluginMap mRegisteredPlugins
void SetDirty(bool dirty=true)
std::unique_ptr< audacity::BasicSettings > mSettings
std::map< PluginID, std::unique_ptr< ComponentInterface > > mLoadedInterfaces
virtual bool RemoveConfigSubgroup(ConfigurationType type, const PluginID &ID, const RegistryPath &group)=0
virtual bool GetConfigValue(ConfigurationType type, const PluginID &ID, const RegistryPath &group, const RegistryPath &key, ConfigReference var, ConfigConstReference defval)=0
virtual bool RemoveConfig(ConfigurationType type, const PluginID &ID, const RegistryPath &group, const RegistryPath &key)=0
virtual bool GetConfigSubgroups(ConfigurationType type, const PluginID &ID, const RegistryPath &group, RegistryPaths &subgroups)=0
PluginSettings::ConfigReference ConfigReference
virtual PluginPaths ReadCustomPaths(const PluginProvider &provider)=0
virtual bool SetConfigValue(ConfigurationType type, const PluginID &ID, const RegistryPath &group, const RegistryPath &key, ConfigConstReference value)=0
virtual void FindFilesInPathList(const wxString &pattern, const FilePaths &pathList, FilePaths &files, bool directories=false)=0
virtual const PluginID & RegisterPlugin(PluginProvider *provider)=0
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)?
virtual void StoreCustomPaths(const PluginProvider &provider, const PluginPaths &paths)=0
PluginSettings::ConfigConstReference ConfigConstReference
virtual bool HasConfigValue(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?
Holds a msgid for the translation catalog; may also bind format arguments.
Base class for objects that provide facility to store data persistently, and access it with string ke...
Extend wxArrayString with move operations and construction and insertion fromstd::initializer_list.
Services * Get()
Fetch the global instance, or nullptr if none is yet installed.
TypeListVisitor::VariantOfReferences_t< false, ConfigValueTypes > ConfigReference
Define a reference to a variable of one of the types in ConfigValueTypes.
TypeListVisitor::VariantOfReferences_t< true, ConfigValueTypes > ConfigConstReference
bool HasConfigGroup(const EffectDefinitionInterface &ident, PluginSettings::ConfigurationType type, const RegistryPath &group)
THEME_RESOURCES_API void Load()
DynamicRangeProcessorSettings GetSettings(EffectSettingsAccess &access)
const TranslatableString desc
const PluginDescriptor * GetPlugin(const PluginID &ID)