12#ifndef __AUDACITY_MODULEMANAGER_H__
13#define __AUDACITY_MODULEMANAGER_H__
24class wxDynamicLibrary;
48 bool Load(wxString &deferredErrorMessage);
57 std::unique_ptr<wxDynamicLibrary>
mLib;
63 std::unique_ptr<PluginProvider>
mPtr;
96 static wxString GetPluginTypeString();
101 static void FindModules(
FilePaths &files);
103 std::vector< std::pair< std::unique_ptr<Module>, wxString > >;
104 static void TryLoadModules(
113 bool DiscoverProviders();
127 std::unique_ptr<ComponentInterface>
140 void InitializeBuiltins();
142 friend std::unique_ptr<ModuleManager> std::make_unique<ModuleManager>();
144 friend std::default_delete<ModuleManager>;
const TranslatableString name
static PluginID GetID(EffectPlugin &effect)
wxString PluginPath
type alias for identifying a Plugin supplied by a module, each module defining its own interpretation...
IteratorRange< Iterator > make_iterator_range(const Iterator &i1, const Iterator &i2)
std::map< wxString, PluginProviderUniqueHandle > PluginProviderHandlesMap
std::unique_ptr< PluginProvider >(*)() PluginProviderFactory
MODULE_MANAGER_API void UnregisterProviderFactory(PluginProviderFactory factory)
static struct Init sInitBuiltinModules
int(* fnModuleDispatch)(ModuleDispatchTypes type)
MODULE_MANAGER_API void RegisterProviderFactory(PluginProviderFactory factory)
ComponentInterface provides name / vendor / version functions to identify plugins....
void ShowLoadFailureError(const wxString &Error)
fnModuleDispatch mDispatch
std::unique_ptr< wxDynamicLibrary > mLib
Module(const FilePath &name)
void * GetSymbol(const wxString &name)
bool Load(wxString &deferredErrorMessage)
int Dispatch(ModuleDispatchTypes type)
const FilePath & GetName() const
std::vector< std::pair< std::unique_ptr< Module >, wxString > > DelayedErrors
static std::unique_ptr< ModuleManager > mInstance
PluginProviderHandlesMap mProviders
ModuleManager(const ModuleManager &)=delete
std::vector< std::unique_ptr< Module > > mModules
ModuleManager & operator=(const ModuleManager &)=delete
std::unique_ptr< PluginProvider > mPtr
PluginProviderUniqueHandle(PluginProviderUniqueHandle &&)=default
PluginProviderUniqueHandle(std::unique_ptr< PluginProvider > ptr)
PluginProvider * get() noexcept
PluginProvider * operator->() noexcept
PluginProviderUniqueHandle & operator=(const PluginProviderUniqueHandle &)=delete
PluginProviderUniqueHandle & operator=(PluginProviderUniqueHandle &&)=default
const PluginProvider * operator->() const noexcept
PluginProviderUniqueHandle()=default
PluginProviderUniqueHandle(const PluginProviderUniqueHandle &)=delete
const PluginProvider * get() const noexcept
Holds a msgid for the translation catalog; may also bind format arguments.
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.
static RegisteredToolbarFactory factory