From d1ba04724f0bfbed18690316dbe5eb977a131733 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Sun, 23 Sep 2007 02:03:41 +0000 Subject: Working LV2 UI control setting (including MIDI). Klaviatur (ll-plugins virtual keyboard) is now fully functional inside Ingen. git-svn-id: http://svn.drobilla.net/lad/ingen@766 a436a847-0d15-0410-975c-d299462d15a1 --- src/libs/gui/ControlPanel.cpp | 6 ++++-- src/libs/gui/NodeMenu.cpp | 2 +- src/libs/gui/NodeModule.cpp | 4 ++-- src/libs/gui/Port.cpp | 3 ++- 4 files changed, 9 insertions(+), 6 deletions(-) (limited to 'src/libs/gui') diff --git a/src/libs/gui/ControlPanel.cpp b/src/libs/gui/ControlPanel.cpp index b12a21f5..bef5e18b 100644 --- a/src/libs/gui/ControlPanel.cpp +++ b/src/libs/gui/ControlPanel.cpp @@ -237,11 +237,13 @@ ControlPanel::value_changed(SharedPtr port, float val) * setting right away (so the value doesn't need to be echoed back) */ if (_all_voices_radio->get_active()) { - App::instance().engine()->set_port_value_immediate(port->path(), sizeof(float), &val); + App::instance().engine()->set_port_value_immediate(port->path(), "ingen:control", + sizeof(float), &val); port->value(val); } else { int voice = _voice_spinbutton->get_value_as_int(); - App::instance().engine()->set_port_value_immediate(port->path(), voice, sizeof(float), &val); + App::instance().engine()->set_port_value_immediate(port->path(), "ingen:control", + voice, sizeof(float), &val); port->value(val); } diff --git a/src/libs/gui/NodeMenu.cpp b/src/libs/gui/NodeMenu.cpp index 9c2d978e..6e4cb1d2 100644 --- a/src/libs/gui/NodeMenu.cpp +++ b/src/libs/gui/NodeMenu.cpp @@ -56,7 +56,7 @@ NodeMenu::init(SharedPtr node) sigc::mem_fun(App::instance().window_factory(), &WindowFactory::present_controls), node)); - if (node->plugin()->ui()) + if (node->plugin()->ui(App::instance().engine().get(), node.get())) _gui_menuitem->signal_activate().connect(sigc::mem_fun(this, &NodeMenu::show_gui)); //else // _gui_menuitem->hide(); diff --git a/src/libs/gui/NodeModule.cpp b/src/libs/gui/NodeModule.cpp index 25cc4aa1..d271dd2f 100644 --- a/src/libs/gui/NodeModule.cpp +++ b/src/libs/gui/NodeModule.cpp @@ -123,11 +123,11 @@ NodeModule::show_control_window() if (_node->plugin()->type() == PluginModel::LV2) { // FIXME: check type - SLV2UIInstance ui = _node->plugin()->ui(); + SLV2UIInstance ui = _node->plugin()->ui(App::instance().engine().get(), _node.get()); if (ui) { cerr << "Showing LV2 GUI" << endl; // FIXME: leak - GtkWidget* c_widget = (GtkWidget*)slv2_ui_instance_get_widget(_node->plugin()->ui()); + GtkWidget* c_widget = (GtkWidget*)slv2_ui_instance_get_widget(ui); Gtk::Window* win = new Gtk::Window(); Gtk::Widget* widget = Glib::wrap(c_widget); win->add(*widget); diff --git a/src/libs/gui/Port.cpp b/src/libs/gui/Port.cpp index 8ba43d56..b6c64cf0 100644 --- a/src/libs/gui/Port.cpp +++ b/src/libs/gui/Port.cpp @@ -90,7 +90,8 @@ void Port::set_control(float value, bool signal) { if (signal) - App::instance().engine()->set_port_value_immediate(_port_model->path(), sizeof(float), &value); + App::instance().engine()->set_port_value_immediate(_port_model->path(), "ingen:control", + sizeof(float), &value); FlowCanvas::Port::set_control(value); } -- cgit v1.2.1