summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2015-03-08 08:30:57 +0000
committerDavid Robillard <d@drobilla.net>2015-03-08 08:30:57 +0000
commitb05bcc01029cbf01aa4bf8ab7d4e6c93458fd432 (patch)
tree47ae6b883a5f1f0df6c22add18719191e51a160e /src
parentece884c9c7c7802d92539cef7fbcc69c41ad21c5 (diff)
downloadingen-b05bcc01029cbf01aa4bf8ab7d4e6c93458fd432.tar.gz
ingen-b05bcc01029cbf01aa4bf8ab7d4e6c93458fd432.tar.bz2
ingen-b05bcc01029cbf01aa4bf8ab7d4e6c93458fd432.zip
Fix UI update on custom UI control changes.
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5623 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src')
-rw-r--r--src/client/PluginUI.cpp12
-rw-r--r--src/gui/NodeModule.cpp5
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) {