Audacity 3.2.0
LadspaEditor.h
Go to the documentation of this file.
1/**********************************************************************
2
3 Audacity: A Digital Audio Editor
4
5 LadspaEditor.h
6
7 Dominic Mazzoni
8
9 Paul Licameli split from LadspaEffect.cpp
10
11**********************************************************************/
12#ifndef __AUDACITY_LADSPA_EDITOR__
13#define __AUDACITY_LADSPA_EDITOR__
14
15#include "../EffectEditor.h"
16#include "LadspaInstance.h" // for LadspaEffectSettings
17
18#include <wx/weakref.h>
19
20struct LadspaInstance;
21class NumericTextCtrl;
22class wxSlider;
23class wxTextCtrl;
24class wxStaticText;
25class wxCheckBox;
27
31 {
32 auto pSettings = settings.cast<LadspaEffectSettings>();
33 assert(pSettings);
34 return *pSettings;
35 }
37 static inline const LadspaEffectSettings &
39 {
40 return GetSettings(const_cast<EffectSettings &>(settings));
41 }
42
43 LadspaEditor(const EffectUIServices &effect,
44 const LadspaInstance &instance,
45 unsigned numInputControls, unsigned numOutputControls,
46 EffectSettingsAccess &access, double sampleRate, EffectType type,
47 const LadspaEffectOutputs *pOutputs);
48
49 bool UpdateUI() override;
50 bool ValidateUI() override;
51 void Disconnect() override;
52
53 void PopulateUI(ShuttleGui &S);
54
55 void OnCheckBox(wxCommandEvent & evt);
56 void OnSlider(wxCommandEvent & evt);
57 void OnTextCtrl(wxCommandEvent & evt);
58 void RefreshControls();
59
60 void UpdateControl(int index, float value, float epsilon);
61 void UpdateControls(const LadspaEffectSettings& src);
62
64 const unsigned mNumInputControls;
65 const unsigned mNumOutputControls;
66
67 const double mSampleRate;
71
73 wxWeakRef<wxDialog> mDialog;
74 wxWindow *mParent{};
79 std::vector<LadspaEffectMeter *> mMeters;
80};
81
82#endif
EffectType
#define S(N)
Definition: ToChars.cpp:64
static Settings & settings()
Definition: TrackInfo.cpp:69
Derived from ShuttleGuiBase, an Audacity specific class for shuttling data to and from GUI.
Definition: ShuttleGui.h:640
Externalized state of a plug-in.
const unsigned mNumInputControls
Definition: LadspaEditor.h:64
wxWindow * mParent
Definition: LadspaEditor.h:74
static const LadspaEffectSettings & GetSettings(const EffectSettings &settings)
Assume settings originated from MakeSettings() and copies thereof.
Definition: LadspaEditor.h:38
const EffectType mType
Definition: LadspaEditor.h:68
void PopulateUI(ShuttleGui &S)
ArrayOf< wxSlider * > mSliders
Definition: LadspaEditor.h:75
const double mSampleRate
Definition: LadspaEditor.h:67
wxWeakRef< wxDialog > mDialog
Definition: LadspaEditor.h:73
void Disconnect() override
On the first call only, may disconnect from further event handling.
ArrayOf< wxCheckBox * > mToggles
Definition: LadspaEditor.h:78
static LadspaEffectSettings & GetSettings(EffectSettings &settings)
Assume settings originated from MakeSettings() and copies thereof.
Definition: LadspaEditor.h:30
LadspaEffectSettings mSettings
Definition: LadspaEditor.h:69
NumericTextCtrl * mDuration
Definition: LadspaEditor.h:72
ArrayOf< wxStaticText * > mLabels
Definition: LadspaEditor.h:77
ArrayOf< wxTextCtrl * > mFields
Definition: LadspaEditor.h:76
LadspaEditor(const EffectUIServices &effect, const LadspaInstance &instance, unsigned numInputControls, unsigned numOutputControls, EffectSettingsAccess &access, double sampleRate, EffectType type, const LadspaEffectOutputs *pOutputs)
const LadspaEffectOutputs *const mpOutputs
Definition: LadspaEditor.h:70
void UpdateControls(const LadspaEffectSettings &src)
void RefreshControls()
void OnCheckBox(wxCommandEvent &evt)
void OnSlider(wxCommandEvent &evt)
void UpdateControl(int index, float value, float epsilon)
void OnTextCtrl(wxCommandEvent &evt)
bool ValidateUI() override
Get settings data from the panel; may make error dialogs and return false.
std::vector< LadspaEffectMeter * > mMeters
Definition: LadspaEditor.h:79
const unsigned mNumOutputControls
Definition: LadspaEditor.h:65
const LadspaInstance & mInstance
Definition: LadspaEditor.h:63
bool UpdateUI() override
Update appearance of the panel for changes in settings.
Carry output control port information back to main thread.