42#ifndef __AUDACITY_PLUGININTERFACE_H__
43#define __AUDACITY_PLUGININTERFACE_H__
71template<
bool is_const,
typename...
Types>
73 using type = std::variant< std::reference_wrapper<
74 std::conditional_t<is_const, const Types, Types> >... >;
111 static const PluginID &DefaultRegistrationCallback(
113 static const PluginID &AudacityCommandRegistrationCallback(
132 bool directories =
false) = 0;
static const AudacityProject::AttachedObjects::RegisteredFactory key
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)
bool Regver_le(const PluginRegistryVersion ®ver1, const PluginRegistryVersion ®ver2)
MODULE_MANAGER_API bool Regver_lt(const PluginRegistryVersion ®ver1, const PluginRegistryVersion ®ver2)
MODULE_MANAGER_API bool Regver_eq(const PluginRegistryVersion ®ver1, const PluginRegistryVersion ®ver2)
wxString PluginRegistryVersion
Type of plugin registry version information.
Generalized interface for discovery of plug-ins for one protocol.
ComponentInterface provides name / vendor / version functions to identify plugins....
EffectDefinitionInterface is a ComponentInterface that adds some basic read-only information about ef...
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 const PluginID & RegisterPlugin(PluginProvider *provider, EffectDefinitionInterface *effect, int type)=0
virtual bool GetConfigSubgroups(ConfigurationType type, const PluginID &ID, const RegistryPath &group, RegistryPaths &subgroups)=0
PluginSettings::ConfigReference ConfigReference
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)?
PluginSettings::ConfigConstReference ConfigConstReference
virtual bool HasConfigValue(ConfigurationType type, const PluginID &ID, const RegistryPath &group, const RegistryPath &key)=0
virtual ~PluginManagerInterface()
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.
Extend wxArrayString with move operations and construction and insertion fromstd::initializer_list.
std::vector< Type > Types
std::tuple< wxString, int, bool, float, double > ConfigValueTypes
Supported types for settings.
ConfigReferenceGenerator< false, ConfigValueTypes >::type ConfigReference
ConfigReferenceGenerator< true, ConfigValueTypes >::type ConfigConstReference
std::variant< std::reference_wrapper< std::conditional_t< is_const, const Types, Types > >... > type
Define a reference to a variable of one of the types in ConfigValueTypes.