15#ifndef __AUDACITY_LV2_VALIDATOR__
16#define __AUDACITY_LV2_VALIDATOR__
27#include <wx/windowptr.h>
37LV2_DISABLE_DEPRECATION_WARNINGS
60 const LV2Ports &ports, wxWindow *parent,
bool useGUI);
68 int ui_resize(
int width,
int height)
override;
72 static void size_request(GtkWidget *widget, GtkRequisition *requisition,
74 void SizeRequest(GtkWidget *widget, GtkRequisition *requisition);
80 bool BuildFancy(std::unique_ptr<LV2Wrapper> pWrapper,
85 uint32_t buffer_size, uint32_t protocol,
const void *buffer)
override;
93 void OnText(wxCommandEvent & evt);
96 void OnIdle(wxIdleEvent & evt);
97 void OnSize(wxSizeEvent & evt);
145#if defined(__WXGTK__)
162 DECLARE_EVENT_TABLE()
std::unique_ptr< Type, Lilv_deleter< Type, f > > Lilv_ptr
Generate classes of smart pointers to lv2 resources.
Lilv_ptr< SuilInstance, suil_instance_free > SuilInstancePtr
static Settings & settings()
Base class for many of the effects in Audacity.
Hold values to send to effect output meters.
Interface for transferring values from a panel of effect controls.
UI widget that watches a floating point location and then updates a bar.
void OnSize(wxSizeEvent &evt)
NumericTextCtrl * mDuration
const LV2UI_Idle_Interface * mUIIdleInterface
void SetSlider(const LV2ControlPortState &state, const PlainUIControl &ctrl)
std::vector< PlainUIControl > mPlainUIControls
Array in correspondence with the control ports.
bool IsGraphicalUI() override
bool BuildFancy(std::unique_ptr< LV2Wrapper > pWrapper, const EffectSettings &settings)
bool BuildPlain(EffectSettingsAccess &access)
const EffectOutputs * mpOutputs
std::shared_ptr< SuilHost > mSuilHost
void Disconnect() override
On the first call only, may disconnect from further event handling.
bool ValidateUI() override
Get settings data from the panel; may make error dialogs and return false.
bool UpdateUI() override
Update appearance of the panel for changes in settings.
void OnSlider(wxCommandEvent &evt)
void suil_port_write(uint32_t port_index, uint32_t buffer_size, uint32_t protocol, const void *buffer) override
LV2PortUIStates mPortUIStates
void OnIdle(wxIdleEvent &evt)
wxSize mNativeWinInitialSize
struct LV2Validator::UI mUI
static std::shared_ptr< SuilHost > GetSuilHost()
void OnTrigger(wxCommandEvent &evt)
int ui_resize(int width, int height) override
LV2Validator::Timer mTimer
void OnText(wxCommandEvent &evt)
void OnChoice(wxCommandEvent &evt)
wxSize mNativeWinLastSize
LV2Validator(EffectBase &effect, const LilvPlugin &plug, LV2Instance &instance, EffectSettingsAccess &access, const EffectOutputs *pOutputs, double sampleRate, const LV2FeaturesList &features, const LV2Ports &ports, wxWindow *parent, bool useGUI)
void ui_closed() override
void UpdateControlPortValue(LV2EffectSettings &settings, size_t controlPortIndex, float value)
std::optional< const LV2UIFeaturesList > mUIFeatures
const LV2UI_Show_Interface * mUIShowInterface
void OnToggle(wxCommandEvent &evt)
static void size_request(GtkWidget *widget, GtkRequisition *requisition, LV2Validator *pValidator)
std::unique_ptr< LV2Wrapper > mpWrapper
void SizeRequest(GtkWidget *widget, GtkRequisition *requisition)
wxWeakRef< wxDialog > mDialog
uint32_t suil_port_index(const char *port_symbol) override
Manager of a handle to an LV2 plug-in instantiation.
Externalized state of a plug-in.
Other UI related state of an instance of an LV2 Control port.
Storage locations to be connected to LV2 control ports.
Abstraction of host services that a plug-ins native UI needs.
This must be destroyed before mSuilInstance.
LV2_External_UI_Widget * mExternalWidget
wxWindowPtr< NativeWindow > mNativeWin
SuilInstancePtr mSuilInstance