11#ifndef AUDACITY_AUDIOUNIT_EFFECT_H
12#define AUDACITY_AUDIOUNIT_EFFECT_H
25#include <AudioToolbox/AudioUnitUtilities.h>
26#include <AudioUnit/AudioUnitProperties.h>
28#include "../PerTrackEffect.h"
31#include <wx/weakref.h>
33#define AUDIOUNITEFFECTS_VERSION wxT("1.0.0.0")
35#define AUDIOUNITEFFECTS_FAMILY EffectFamilySymbol{ wxT("AudioUnit"), XO("Audio Unit") }
48 const wxString &
name, AudioComponent component,
97 std::shared_ptr<EffectInstance>
MakeInstance()
const override;
125 const wxString &path,
const void *blob,
size_t len,
126 bool allowEmpty =
true)
const;
137#if defined(HAVE_AUDIOUNIT_BASIC_SUPPORT)
138 bool CreatePlain(wxWindow *parent);
const TranslatableString name
std::optional< std::unique_ptr< EffectSettingsAccess::Message > > OptionalMessage
wxString PluginPath
type alias for identifying a Plugin supplied by a module, each module defining its own interpretation...
std::vector< RegistryPath > RegistryPaths
static Settings & settings()
An Effect class that handles a wide range of effects. ??Mac only??
bool HasOptions() override
TranslatableString SaveBlobToConfig(const RegistryPath &group, const wxString &path, const void *blob, size_t len, bool allowEmpty=true) const
bool SaveUserPreset(const RegistryPath &name, const EffectSettings &settings) const override
Save settings in the configuration file as a user-named preset.
bool IsDefault() const override
Whether the effect sorts "above the line" in the menus.
bool SaveSettings(const EffectSettings &settings, CommandParameters &parms) const override
Store settings as keys and values.
static RegistryPath ChoosePresetKey(const EffectSettings &settings)
static RegistryPath FindPresetKey(const CommandParameters &parms)
PluginPath GetPath() const override
RegistryPaths GetFactoryPresets() const override
Report names of factory presets.
EffectType GetType() const override
Type determines how it behaves.
OptionalMessage ImportPresets(EffectSettings &settings) override
void ShowOptions() override
TranslatableString Export(const AudioUnitEffectSettings &settings, const wxString &path) const
int ShowClientInterface(wxWindow &parent, wxDialog &dialog, EffectUIValidator *pValidator, bool forceModal) override
TranslatableString GetDescription() const override
OptionalMessage LoadFactoryPreset(int id, EffectSettings &settings) const override
std::unique_ptr< EffectUIValidator > PopulateUI(ShuttleGui &S, EffectInstance &instance, EffectSettingsAccess &access, const EffectOutputs *pOutputs) override
Adds controls to a panel that is given as the parent window of S
EffectSettings MakeSettings() const override
bool CanExportPresets() override
virtual ~AudioUnitEffect()
std::shared_ptr< EffectInstance > MakeInstance() const override
Make an object maintaining short-term state of an Effect.
EffectFamilySymbol GetFamily() const override
Report identifier and user-visible name of the effect protocol.
RealtimeSince RealtimeSupport() const override
Since which version of Audacity has the effect supported realtime?
bool MigrateOldConfigFile(const RegistryPath &group, EffectSettings &settings) const
bool LoadSettings(const CommandParameters &parms, EffectSettings &settings) const override
May allocate memory, so should be called only in the main thread.
bool CopySettingsContents(const EffectSettings &src, EffectSettings &dst) const override
Update one settings object from another.
bool SupportsAutomation() const override
Whether the effect has any automatable controls.
TranslatableString Import(AudioUnitEffectSettings &settings, const wxString &path) const
OptionalMessage LoadPreset(const RegistryPath &group, EffectSettings &settings) const
bool FullyInitializePlugin()
wxString GetVersion() const override
AudioUnitEffect(const PluginPath &path, const wxString &name, AudioComponent component, Parameters *pParameters=nullptr, AudioUnitEffect *master=nullptr)
OptionalMessage LoadUserPreset(const RegistryPath &name, EffectSettings &settings) const override
void ExportPresets(const EffectSettings &settings) const override
bool SavePreset(const RegistryPath &group, const AudioUnitEffectSettings &settings) const
VendorSymbol GetVendor() const override
ComponentInterfaceSymbol GetSymbol() const override
bool IsInteractive() const override
Whether the effect needs a dialog for entry of settings.
CommandParameters, derived from wxFileConfig, is essentially doing the same things as the SettingsVis...
ComponentInterfaceSymbol pairs a persistent string identifier used internally with an optional,...
RealtimeSince
In which versions of Audacity was an effect realtime capable?
Performs effect computation.
Hold values to send to effect output meters.
Interface for transferring values from a panel of effect controls.
Base class for many of the effects in Audacity.
Derived from ShuttleGuiBase, an Audacity specific class for shuttling data to and from GUI.
Holds a msgid for the translation catalog; may also bind format arguments.
Common base class for AudioUnitEffect and its Instance.
Externalized state of a plug-in.