Audacity 3.2.0
AudioUnitEffectsModule.h
Go to the documentation of this file.
1/*!********************************************************************
2
3 Audacity: A Digital Audio Editor
4
5 @file AudioUnitEffectsModule.h
6
7 Dominic Mazzoni
8 Leland Lucius
9
10 Paul Licameli split from AudioUnitEffect.h
11
12**********************************************************************/
13#ifndef AUDACITY_AUDIOUNIT_EFFECTS_MODULE_H
14#define AUDACITY_AUDIOUNIT_EFFECTS_MODULE_H
15
16#if USE_AUDIO_UNITS
17
18#include <AudioToolbox/AudioUnitUtilities.h>
19#include "PluginProvider.h"
20
22//
23// AudioUnitEffectsModule
24//
26
28{
29public:
32
33 // ComponentInterface implementation
34
35 PluginPath GetPath() const override;
36 ComponentInterfaceSymbol GetSymbol() const override;
37 VendorSymbol GetVendor() const override;
38 wxString GetVersion() const override;
39 TranslatableString GetDescription() const override;
40
41 // PluginProvider implementation
42
43 bool Initialize() override;
44 void Terminate() override;
46
47 const FileExtensions &GetFileExtensions() override;
48 FilePath InstallPath() override { return {}; }
49
52 unsigned DiscoverPluginsAtPath(
53 const PluginPath & path, TranslatableString &errMsg,
54 const RegistrationCallback &callback)
55 override;
56
57
58 bool CheckPluginExist(const PluginPath& path) const override;
59
60 std::unique_ptr<ComponentInterface>
61 LoadPlugin(const PluginPath & path) override;
62
63 // AudioUnitEffectModule implementation
64
65 void LoadAudioUnitsOfType(OSType inAUType, PluginPaths & effects);
66};
67
68#endif
69
70#endif
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
const FileExtensions & GetFileExtensions() override
File types associated with this protocol.
void Terminate() override
Called just prior to deletion to allow releasing any resources.
bool CheckPluginExist(const PluginPath &path) const override
Performs plugin/module existence check, still plugin may fail to load. Implementation should avoid lo...
EffectFamilySymbol GetOptionalFamilySymbol() override
A symbol identifying the family of plug-ins provided by this.
wxString GetVersion() const override
PluginPaths FindModulePaths(PluginManagerInterface &pm) override
void LoadAudioUnitsOfType(OSType inAUType, PluginPaths &effects)
bool Initialize() override
Called immediately after creation. Let provider initialize.
ComponentInterfaceSymbol GetSymbol() const override
void AutoRegisterPlugins(PluginManagerInterface &pm) override
Called so that a provider of a static set of plug-ins can register them.
PluginPath GetPath() const override
VendorSymbol GetVendor() const override
unsigned DiscoverPluginsAtPath(const PluginPath &path, TranslatableString &errMsg, const RegistrationCallback &callback) override
std::unique_ptr< ComponentInterface > LoadPlugin(const PluginPath &path) override
Load the plug-in at a path reported by DiscoverPluginsAtPath.
FilePath InstallPath() override
Where plug-in files should be copied to install them.
TranslatableString GetDescription() const override
ComponentInterfaceSymbol pairs a persistent string identifier used internally with an optional,...
std::function< const PluginID &(PluginProvider *, ComponentInterface *) > RegistrationCallback
Further expand a path reported by FindModulePaths.
Holds a msgid for the translation catalog; may also bind format arguments.
Extend wxArrayString with move operations and construction and insertion fromstd::initializer_list.