From 1c746982c4d1b18308ce549852d8ecd83d612db5 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Tue, 20 May 2008 00:30:50 +0000 Subject: Fix various problems with control port values. Fix control port feedback issues with LV2 plugin UIs. git-svn-id: http://svn.drobilla.net/lad/ingen@1218 a436a847-0d15-0410-975c-d299462d15a1 --- src/libs/gui/Port.cpp | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) (limited to 'src/libs/gui/Port.cpp') diff --git a/src/libs/gui/Port.cpp b/src/libs/gui/Port.cpp index 225ab7ab..df0b779c 100644 --- a/src/libs/gui/Port.cpp +++ b/src/libs/gui/Port.cpp @@ -62,13 +62,13 @@ Port::Port(boost::shared_ptr module, SharedPtr pm set_control_min(min); set_control_max(max); - pm->signal_variable.connect(sigc::mem_fun(this, &Port::variable_change)); - _port_model->signal_value_changed.connect(sigc::mem_fun(this, &Port::control_changed)); + pm->signal_variable.connect(sigc::mem_fun(this, &Port::variable_changed)); + _port_model->signal_value_changed.connect(sigc::mem_fun(this, &Port::value_changed)); } _port_model->signal_activity.connect(sigc::mem_fun(this, &Port::activity)); - control_changed(_port_model->value()); + value_changed(_port_model->value()); } @@ -92,9 +92,12 @@ Port::renamed() void -Port::control_changed(float value) +Port::value_changed(const Atom& value) { - FlowCanvas::Port::set_control(value); + if (value.type() == Atom::FLOAT) + FlowCanvas::Port::set_control(value.get_float()); + else + cerr << "WARNING: Unknown port value type " << (unsigned)value.type() << endl; } @@ -120,7 +123,7 @@ Port::set_control(float value, bool signal) void -Port::variable_change(const string& key, const Atom& value) +Port::variable_changed(const string& key, const Atom& value) { if ( (key == "ingen:minimum") && value.type() == Atom::FLOAT) set_control_min(value.get_float()); -- cgit v1.2.1