Audacity 3.2.0
VST3UIValidator.h
Go to the documentation of this file.
1#pragma once
2
3#include <pluginterfaces/base/smartpointer.h>
4
5#include "EffectPlugin.h"
6
7class EffectBase;
8class VST3Wrapper;
9
10namespace Steinberg
11{
12 class IPlugView;
13 class IPlugFrame;
14}
15
16class NumericTextCtrl;
18
20 : public wxEvtHandler
21 , public EffectUIValidator
22{
24 //Used if provided by the plugin and enabled in the settings
25 Steinberg::IPtr<Steinberg::IPlugView> mPlugView;
26 Steinberg::IPtr<Steinberg::IPlugFrame> mPlugFrame;
27 wxWindow* mParent { nullptr };
29 //Used if graphical plugin interface is disabled in the settings, or not provided by the plugin
31
32public:
33 VST3UIValidator(wxWindow* parent, VST3Wrapper& wrapper, EffectBase &effect, EffectSettingsAccess &access, bool useNativeUI);
34 ~VST3UIValidator() override;
35
36 bool IsGraphicalUI() override;
37 bool UpdateUI() override;
38 bool ValidateUI() override;
39 void OnClose() override;
40
41private:
42 void OnIdle(wxIdleEvent&);
43
44 bool TryLoadNativeUI(wxWindow* parent);
45};
Base class for many of the effects in Audacity.
Definition: EffectBase.h:33
Interface for transferring values from a panel of effect controls.
Definition: EffectPlugin.h:239
"Plain" plugin UI, contains a list of parameter controls and values.
bool UpdateUI() override
Update appearance of the panel for changes in settings.
VST3UIValidator(wxWindow *parent, VST3Wrapper &wrapper, EffectBase &effect, EffectSettingsAccess &access, bool useNativeUI)
void OnClose() override
bool IsGraphicalUI() override
~VST3UIValidator() override
VST3Wrapper & mWrapper
Steinberg::IPtr< Steinberg::IPlugFrame > mPlugFrame
Steinberg::IPtr< Steinberg::IPlugView > mPlugView
NumericTextCtrl * mDuration
wxWindow * mParent
VST3ParametersWindow * mPlainUI
void OnIdle(wxIdleEvent &)
bool ValidateUI() override
Get settings data from the panel; may make error dialogs and return false.
bool TryLoadNativeUI(wxWindow *parent)