Apply LV2 GUI parameter update patch from kfoltman.
git-svn-id: svn://localhost/ardour2/branches/3.0@4407 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
41716e8faa
commit
ad9913538e
@ -44,14 +44,20 @@ void
|
|||||||
LV2PluginUI::parameter_changed (uint32_t port_index, float val)
|
LV2PluginUI::parameter_changed (uint32_t port_index, float val)
|
||||||
{
|
{
|
||||||
if (val != _values[port_index]) {
|
if (val != _values[port_index]) {
|
||||||
const LV2UI_Descriptor* ui_desc = slv2_ui_instance_get_descriptor(_inst);
|
parameter_update(port_index, val);
|
||||||
LV2UI_Handle ui_handle = slv2_ui_instance_get_handle(_inst);
|
|
||||||
if (ui_desc->port_event)
|
|
||||||
ui_desc->port_event(ui_handle, port_index, 4, 0, &val);
|
|
||||||
_values[port_index] = val;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
LV2PluginUI::parameter_update (uint32_t port_index, float val)
|
||||||
|
{
|
||||||
|
const LV2UI_Descriptor* ui_desc = slv2_ui_instance_get_descriptor(_inst);
|
||||||
|
LV2UI_Handle ui_handle = slv2_ui_instance_get_handle(_inst);
|
||||||
|
if (ui_desc->port_event)
|
||||||
|
ui_desc->port_event(ui_handle, port_index, 4, 0, &val);
|
||||||
|
_values[port_index] = val;
|
||||||
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
LV2PluginUI::start_updating(GdkEventAny* event)
|
LV2PluginUI::start_updating(GdkEventAny* event)
|
||||||
{
|
{
|
||||||
@ -107,9 +113,13 @@ LV2PluginUI::LV2PluginUI (boost::shared_ptr<PluginInsert> pi, boost::shared_ptr<
|
|||||||
_values = new float[num_ports];
|
_values = new float[num_ports];
|
||||||
for (uint32_t i = 0; i < num_ports; ++i) {
|
for (uint32_t i = 0; i < num_ports; ++i) {
|
||||||
bool ok;
|
bool ok;
|
||||||
_values[i] = lv2p->nth_parameter(i, ok);
|
uint32_t port = lv2p->nth_parameter(i, ok);
|
||||||
if (ok)
|
if (ok) {
|
||||||
lv2_ui_write(this, i, 4, /* FIXME: format */0, &_values[i]);
|
_values[port] = lv2p->get_parameter(port);
|
||||||
|
if (lv2p->parameter_is_control(port) && lv2p->parameter_is_input(port)) {
|
||||||
|
parameter_update(port, _values[port]);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
_lv2->ParameterChanged.connect(mem_fun(*this, &LV2PluginUI::parameter_changed));
|
_lv2->ParameterChanged.connect(mem_fun(*this, &LV2PluginUI::parameter_changed));
|
||||||
|
@ -69,6 +69,7 @@ class LV2PluginUI : public PlugUIBase, public Gtk::VBox
|
|||||||
const void* buffer);
|
const void* buffer);
|
||||||
|
|
||||||
void parameter_changed(uint32_t, float);
|
void parameter_changed(uint32_t, float);
|
||||||
|
void parameter_update(uint32_t, float);
|
||||||
bool configure_handler (GdkEventConfigure*);
|
bool configure_handler (GdkEventConfigure*);
|
||||||
void save_plugin_setting ();
|
void save_plugin_setting ();
|
||||||
void output_update();
|
void output_update();
|
||||||
|
Loading…
Reference in New Issue
Block a user