Audacity 3.2.0
LV2Effect.h
Go to the documentation of this file.
1/**********************************************************************
2
3 Audacity: A Digital Audio Editor
4
5 LV2Effect.h
6
7 Audacity(R) is copyright (c) 1999-2013 Audacity Team.
8 License: GPL v2 or later. See License.txt.
9
10*********************************************************************/
11
12#ifndef __AUDACITY_LV2_EFFECT__
13#define __AUDACITY_LV2_EFFECT__
14
15#if USE_LV2
16
17class wxArrayString;
18
19#include "LV2EffectBase.h"
20
21#include "ShuttleGui.h"
22#include "../StatelessPerTrackEffect.h"
23
24// We use deprecated LV2 interfaces to remain compatible with older
25// plug-ins, so disable warnings
26LV2_DISABLE_DEPRECATION_WARNINGS
27
28#define LV2EFFECTS_VERSION wxT("1.0.0.0")
29/* i18n-hint: abbreviates
30 "Linux Audio Developer's Simple Plugin API (LADSPA) version 2" */
31#define LV2EFFECTS_FAMILY XO("LV2")
32
33class LV2Editor;
34
35class LV2Effect final
37 , public LV2EffectBase
38{
39public:
41 ~LV2Effect() override;
42
43 int ShowClientInterface(const EffectPlugin &plugin, wxWindow &parent,
44 wxDialog &dialog, EffectEditor *pEditor, bool forceModal)
45 const override;
46
47 std::unique_ptr<EffectEditor> PopulateUI(const EffectPlugin &plugin,
49 const EffectOutputs *pOutputs) const override;
50 bool CloseUI() const override;
51
52 void ExportPresets(
53 const EffectPlugin &plugin, const EffectSettings &settings)
54 const override;
56 const EffectPlugin &plugin, EffectSettings &settings) const override;
57
58 void ShowOptions(const EffectPlugin &plugin) const override;
59
60private:
62 virtual std::unique_ptr<EffectEditor> MakeEditor(
63 ShuttleGui & S, EffectInstance &instance, EffectSettingsAccess &access,
64 const EffectOutputs *pOutputs) const final;
65};
66
67#endif
68#endif
std::optional< std::unique_ptr< EffectSettingsAccess::Message > > OptionalMessage
#define S(N)
Definition: ToChars.cpp:64
static Settings & settings()
Definition: TrackInfo.cpp:69
Performs effect computation.
Hold values to send to effect output meters.
Factory of instances of an effect.
Definition: EffectPlugin.h:36
LV2EffectBase(const LilvPlugin &plug)
void ExportPresets(const EffectPlugin &plugin, const EffectSettings &settings) const override
Definition: LV2Effect.cpp:136
~LV2Effect() override
virtual std::unique_ptr< EffectEditor > MakeEditor(ShuttleGui &S, EffectInstance &instance, EffectSettingsAccess &access, const EffectOutputs *pOutputs) const final
Will never be called.
Definition: LV2Effect.cpp:116
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
Definition: LV2Effect.cpp:71
int ShowClientInterface(const EffectPlugin &plugin, wxWindow &parent, wxDialog &dialog, EffectEditor *pEditor, bool forceModal) const override
Definition: LV2Effect.cpp:50
void ShowOptions(const EffectPlugin &plugin) const override
Definition: LV2Effect.cpp:147
OptionalMessage ImportPresets(const EffectPlugin &plugin, EffectSettings &settings) const override
Definition: LV2Effect.cpp:141
bool CloseUI() const override
Definition: LV2Effect.cpp:125
Derived from ShuttleGuiBase, an Audacity specific class for shuttling data to and from GUI.
Definition: ShuttleGui.h:640
Externalized state of a plug-in.