43#ifndef __AUDACITY_PLUGINPROVIDER_H__
44#define __AUDACITY_PLUGINPROVIDER_H__
138 virtual bool SupportsCustomModulePaths()
const;
187 virtual std::unique_ptr<Validator> MakeValidator()
const;
193 virtual std::unique_ptr<ComponentInterface>
201#define DECLARE_PROVIDER_ENTRY(name) \
202static std::unique_ptr<PluginProvider> name()
215#define DECLARE_BUILTIN_PROVIDER_BASE(name) \
219 name() {Register();} \
220 ~name() {Unregister();} \
224static name name ## _instance;
230#define DECLARE_BUILTIN_PROVIDER(name) \
231DECLARE_BUILTIN_PROVIDER_BASE(name) \
232void name::Register() \
234 RegisterProviderFactory(AudacityModule); \
236void name::Unregister() \
238 UnregisterProviderFactory(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 void Validate(ComponentInterface &pluginInterface)=0
virtual ~PluginProvider()
virtual EffectFamilySymbol GetOptionalFamilySymbol()=0
A symbol identifying the family of plug-ins provided by this.
virtual unsigned DiscoverPluginsAtPath(const PluginPath &path, TranslatableString &errMsg, const RegistrationCallback &callback)=0
virtual void Terminate()=0
Called just prior to deletion to allow releasing any resources.
virtual PluginPaths FindModulePaths(PluginManagerInterface &pluginManager)=0
virtual std::unique_ptr< ComponentInterface > LoadPlugin(const PluginPath &path)=0
Load the plug-in at a path reported by DiscoverPluginsAtPath.
virtual void AutoRegisterPlugins(PluginManagerInterface &pluginManager)=0
Called so that a provider of a static set of plug-ins can register them.
virtual const FileExtensions & GetFileExtensions()=0
File types associated with this protocol.
std::function< const PluginID &(PluginProvider *, ComponentInterface *) > RegistrationCallback
Further expand a path reported by FindModulePaths.
virtual bool Initialize()=0
Called immediately after creation. Let provider initialize.
virtual bool CheckPluginExist(const PluginPath &path) const =0
Performs plugin/module existence check, still plugin may fail to load. Implementation should avoid lo...
virtual FilePath InstallPath()=0
Where plug-in files should be copied to install them.
Holds a msgid for the translation catalog; may also bind format arguments.
Extend wxArrayString with move operations and construction and insertion fromstd::initializer_list.