42#ifndef __AUDACITY_MODULEINTERFACE_H__
43#define __AUDACITY_MODULEINTERFACE_H__
139 virtual std::unique_ptr<ComponentInterface>
147#define DECLARE_MODULE_ENTRY(name) \
148static ModuleInterface * name()
161#define DECLARE_BUILTIN_MODULE_BASE(name) \
165 name() {Register();} \
166 ~name() {Unregister();} \
170static name name ## _instance;
176#define DECLARE_BUILTIN_MODULE(name) \
177DECLARE_BUILTIN_MODULE_BASE(name) \
178void name::Register() \
180 RegisterProvider(AudacityModule); \
182void name::Unregister() \
184 UnregisterProvider(AudacityModule); \
std::vector< PluginPath > PluginPaths
wxString PluginPath
type alias for identifying a Plugin supplied by a module, each module defining its own interpretation...
ComponentInterface provides name / vendor / version functions to identify plugins....
ComponentInterfaceSymbol pairs a persistent string identifier used internally with an optional,...
virtual ~ModuleInterface()
virtual PluginPaths FindPluginPaths(PluginManagerInterface &pluginManager)=0
virtual const FileExtensions & GetFileExtensions()=0
virtual unsigned DiscoverPluginsAtPath(const PluginPath &path, TranslatableString &errMsg, const RegistrationCallback &callback)=0
std::function< const PluginID &(ModuleInterface *, ComponentInterface *) > RegistrationCallback
virtual FilePath InstallPath()=0
virtual std::unique_ptr< ComponentInterface > CreateInstance(const PluginPath &path)=0
virtual bool AutoRegisterPlugins(PluginManagerInterface &pluginManager)=0
virtual bool IsPluginValid(const PluginPath &path, bool bFast)=0
virtual bool Initialize()=0
virtual EffectFamilySymbol GetOptionalFamilySymbol()=0
virtual void Terminate()=0
Holds a msgid for the translation catalog; may also bind format arguments.
Extend wxArrayString with move operations and construction and insertion fromstd::initializer_list.