diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/client/PluginUI.cpp | 12 | ||||
-rw-r--r-- | src/gui/NodeModule.cpp | 5 |
2 files changed, 9 insertions, 8 deletions
diff --git a/src/client/PluginUI.cpp b/src/client/PluginUI.cpp index 31e1f9ae..b8c7c7b3 100644 --- a/src/client/PluginUI.cpp +++ b/src/client/PluginUI.cpp @@ -70,7 +70,7 @@ lv2_ui_write(SuilController controller, return; // Ignore feedback } - ui->world()->interface()->set_property( + ui->signal_property_changed()( port->uri(), uris.ingen_value, ui->world()->forge().make(value)); @@ -79,9 +79,9 @@ lv2_ui_write(SuilController controller, const LV2_Atom* atom = (const LV2_Atom*)buffer; Atom val = ui->world()->forge().alloc( atom->size, atom->type, LV2_ATOM_BODY_CONST(atom)); - ui->world()->interface()->set_property(port->uri(), - uris.ingen_activity, - val); + ui->signal_property_changed()(port->uri(), + uris.ingen_activity, + val); } else { ui->world()->log().warn( @@ -116,7 +116,7 @@ lv2_ui_subscribe(SuilController controller, return 1; } - ui->world()->interface()->set_property( + ui->signal_property_changed()( ui->block()->ports()[port_index]->uri(), ui->world()->uris().ingen_broadcast, ui->world()->forge().make(true)); @@ -136,7 +136,7 @@ lv2_ui_unsubscribe(SuilController controller, return 1; } - ui->world()->interface()->set_property( + ui->signal_property_changed()( ui->block()->ports()[port_index]->uri(), ui->world()->uris().ingen_broadcast, ui->world()->forge().make(false)); diff --git a/src/gui/NodeModule.cpp b/src/gui/NodeModule.cpp index c03618cf..528b8e0f 100644 --- a/src/gui/NodeModule.cpp +++ b/src/gui/NodeModule.cpp @@ -228,8 +228,9 @@ NodeModule::embed_gui(bool embed) } if (!_plugin_ui) { - const PluginModel* const pm = dynamic_cast<const PluginModel*>(_block->plugin()); - _plugin_ui = pm->ui(app().world(), _block); + _plugin_ui = _block->plugin_model()->ui(app().world(), _block); + _plugin_ui->signal_property_changed().connect( + sigc::mem_fun(app(), &App::set_property)); } if (_plugin_ui) { |