summaryrefslogtreecommitdiffstats
path: root/src/client
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2017-03-19 13:26:38 +0100
committerDavid Robillard <d@drobilla.net>2017-03-20 02:58:56 +0100
commitf1c793f7e2148b10610a09a459d9e89b39d2d87b (patch)
treeb898407dce08af0f2f978d59a85d4887d8555b54 /src/client
parentefc0fe0a973db706d9409b345ad6fae585f4388c (diff)
downloadingen-f1c793f7e2148b10610a09a459d9e89b39d2d87b.tar.gz
ingen-f1c793f7e2148b10610a09a459d9e89b39d2d87b.tar.bz2
ingen-f1c793f7e2148b10610a09a459d9e89b39d2d87b.zip
Fix round-trip preservation of property contexts
Diffstat (limited to 'src/client')
-rw-r--r--src/client/ClientStore.cpp8
-rw-r--r--src/client/PluginUI.cpp13
2 files changed, 13 insertions, 8 deletions
diff --git a/src/client/ClientStore.cpp b/src/client/ClientStore.cpp
index eac853f7..a622068c 100644
--- a/src/client/ClientStore.cpp
+++ b/src/client/ClientStore.cpp
@@ -342,7 +342,8 @@ ClientStore::put(const Raul::URI& uri,
void
ClientStore::delta(const Raul::URI& uri,
const Properties& remove,
- const Properties& add)
+ const Properties& add,
+ Resource::Graph ctx)
{
if (uri == Raul::URI("ingen:/clients/this")) {
// Client property, which we don't store (yet?)
@@ -370,7 +371,8 @@ ClientStore::delta(const Raul::URI& uri,
void
ClientStore::set_property(const Raul::URI& subject_uri,
const Raul::URI& predicate,
- const Atom& value)
+ const Atom& value,
+ Resource::Graph ctx)
{
if (subject_uri == Raul::URI("ingen:/engine")) {
_log.info(fmt("Engine property <%1%> = %2%\n")
@@ -384,7 +386,7 @@ ClientStore::set_property(const Raul::URI& subject_uri,
blinkenlights) but do not store the property. */
subject->on_property(predicate, value);
} else {
- subject->set_property(predicate, value);
+ subject->set_property(predicate, value, ctx);
}
} else {
SPtr<PluginModel> plugin = _plugin(subject_uri);
diff --git a/src/client/PluginUI.cpp b/src/client/PluginUI.cpp
index b4631f0d..d4558ed4 100644
--- a/src/client/PluginUI.cpp
+++ b/src/client/PluginUI.cpp
@@ -73,7 +73,8 @@ lv2_ui_write(SuilController controller,
ui->signal_property_changed()(
port->uri(),
uris.ingen_value,
- ui->world()->forge().make(value));
+ ui->world()->forge().make(value),
+ Resource::Graph::DEFAULT);
} else if (format == uris.atom_eventTransfer.urid.get<LV2_URID>()) {
const LV2_Atom* atom = (const LV2_Atom*)buffer;
@@ -81,8 +82,8 @@ lv2_ui_write(SuilController controller,
atom->size, atom->type, LV2_ATOM_BODY_CONST(atom));
ui->signal_property_changed()(port->uri(),
uris.ingen_activity,
- val);
-
+ val,
+ Resource::Graph::DEFAULT);
} else {
ui->world()->log().warn(
fmt("Unknown value format %1% from LV2 UI\n")
@@ -119,7 +120,8 @@ lv2_ui_subscribe(SuilController controller,
ui->signal_property_changed()(
ui->block()->ports()[port_index]->uri(),
ui->world()->uris().ingen_broadcast,
- ui->world()->forge().make(true));
+ ui->world()->forge().make(true),
+ Resource::Graph::DEFAULT);
return 0;
}
@@ -139,7 +141,8 @@ lv2_ui_unsubscribe(SuilController controller,
ui->signal_property_changed()(
ui->block()->ports()[port_index]->uri(),
ui->world()->uris().ingen_broadcast,
- ui->world()->forge().make(false));
+ ui->world()->forge().make(false),
+ Resource::Graph::DEFAULT);
return 0;
}