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