Audacity 3.2.0
AudioUnitEffect.h
Go to the documentation of this file.
1/*!********************************************************************
2
3 Audacity: A Digital Audio Editor
4
5 @file AudioUnitEffect.h
6
7 Dominic Mazzoni
8 Leland Lucius
9
10**********************************************************************/
11#ifndef AUDACITY_AUDIOUNIT_EFFECT_H
12#define AUDACITY_AUDIOUNIT_EFFECT_H
13
14
15
16#if USE_AUDIO_UNITS
17
18#include "AudioUnitEffectBase.h"
19
20#include "MemoryX.h"
21#include <functional>
22#include <type_traits>
23#include <vector>
24
25#include <AudioToolbox/AudioUnitUtilities.h>
26#include <AudioUnit/AudioUnitProperties.h>
27
28#include "../StatelessPerTrackEffect.h"
29#include "PluginInterface.h"
30
31#include <wx/weakref.h>
32
33class AUControl;
34
35class AudioUnitEffect final
37 , public AudioUnitEffectBase
38{
39public:
41 ~AudioUnitEffect() override;
42
43private:
44 int ShowClientInterface(const EffectPlugin &plugin, wxWindow &parent,
45 wxDialog &dialog, EffectEditor *pEditor, bool forceModal)
46 const override;
47
48 std::unique_ptr<EffectEditor> PopulateUI(const EffectPlugin &plugin,
50 const EffectOutputs *pOutputs) const override;
51
52 bool CloseUI() const override;
53
54 void ExportPresets(
55 const EffectPlugin &plugin, const EffectSettings &settings)
56 const override;
57
59 const EffectPlugin &plugin, EffectSettings &settings) const override;
60
61 void ShowOptions(const EffectPlugin &plugin) const override;
62
64 virtual std::unique_ptr<EffectEditor> MakeEditor(
65 ShuttleGui & S, EffectInstance &instance, EffectSettingsAccess &access,
66 const EffectOutputs *pOutputs) const final;
67};
68
69#endif
70
71#endif
std::optional< std::unique_ptr< EffectSettingsAccess::Message > > OptionalMessage
#define S(N)
Definition: ToChars.cpp:64
static Settings & settings()
Definition: TrackInfo.cpp:51
An Effect class that handles a wide range of effects. ??Mac only??
AudioUnitEffectBase(const PluginPath &path, const wxString &name, AudioComponent component, Parameters *pParameters=nullptr, AudioUnitEffectBase *master=nullptr)
An Effect class that handles a wide range of effects. ??Mac only??
~AudioUnitEffect() override
void ExportPresets(const EffectPlugin &plugin, const EffectSettings &settings) const override
virtual std::unique_ptr< EffectEditor > MakeEditor(ShuttleGui &S, EffectInstance &instance, EffectSettingsAccess &access, const EffectOutputs *pOutputs) const final
Will never be called.
std::unique_ptr< EffectEditor > PopulateUI(const EffectPlugin &plugin, ShuttleGui &S, EffectInstance &instance, EffectSettingsAccess &access, const EffectOutputs *pOutputs) const override
Adds controls to a panel that is given as the parent window of S
void ShowOptions(const EffectPlugin &plugin) const override
OptionalMessage ImportPresets(const EffectPlugin &plugin, EffectSettings &settings) const override
int ShowClientInterface(const EffectPlugin &plugin, wxWindow &parent, wxDialog &dialog, EffectEditor *pEditor, bool forceModal) const override
bool CloseUI() const override
Performs effect computation.
Hold values to send to effect output meters.
Factory of instances of an effect.
Definition: EffectPlugin.h:36
Derived from ShuttleGuiBase, an Audacity specific class for shuttling data to and from GUI.
Definition: ShuttleGui.h:640
Externalized state of a plug-in.