Audacity 3.2.0
VSTEffectsModule.h
Go to the documentation of this file.
1/**********************************************************************
2
3 Audacity: A Digital Audio Editor
4
5 VSTEffectsModule.h
6
7 Dominic Mazzoni
8
9 Paul Licameli split from VSTEffect.h
10
11**********************************************************************/
12
13#ifndef __AUDACITY_VST_EFFECTS_MODULE__
14#define __AUDACITY_VST_EFFECTS_MODULE__
15
16#include "Callable.h"
17#include "GlobalVariable.h"
18#include "PluginProvider.h"
19#include "VSTEffectBase.h"
20
21class VST_API VSTEffectsModule final : public PluginProvider
22{
23public:
24 public:
25 struct VST_API Factory : DefaultedGlobalHook<Factory,
26 Callable::UniquePtrFactory<VSTEffectBase, const PluginPath&>::Function
27 >{};
28
30 virtual ~VSTEffectsModule();
31
32 // ComponentInterface implementation
33
34 PluginPath GetPath() const override;
35 ComponentInterfaceSymbol GetSymbol() const override;
36 VendorSymbol GetVendor() const override;
37 wxString GetVersion() const override;
38 TranslatableString GetDescription() const override;
39
40 // PluginProvider implementation
41
42 bool Initialize() override;
43 void Terminate() override;
45
46 const FileExtensions &GetFileExtensions() override;
47 FilePath InstallPath() override;
48
51 unsigned DiscoverPluginsAtPath(
52 const PluginPath & path, TranslatableString &errMsg,
53 const RegistrationCallback &callback)
54 override;
55
56 bool CheckPluginExist(const PluginPath& path) const override;
57
58 std::unique_ptr<ComponentInterface>
59 LoadPlugin(const PluginPath & path) override;
60};
61
62#endif
Functions and classes that generate callable objects.
std::vector< PluginPath > PluginPaths
Definition: Identifier.h:215
wxString PluginPath
type alias for identifying a Plugin supplied by a module, each module defining its own interpretation...
Definition: Identifier.h:214
Generalized interface for discovery of plug-ins for one protocol.
wxString FilePath
Definition: Project.h:21
virtual wxString GetVersion() const =0
virtual PluginPath GetPath() const =0
virtual VendorSymbol GetVendor() const =0
virtual ComponentInterfaceSymbol GetSymbol() const =0
virtual TranslatableString GetDescription() const =0
ComponentInterfaceSymbol pairs a persistent string identifier used internally with an optional,...
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.