From d358cae57b7233bf6b781686979fc4dea4d090b3 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Sun, 18 Nov 2012 18:46:53 +0000 Subject: Fix learn for Trigger and Internal nodes. Set value property for inputs when a notification is sent so model is consistent (and learned values are saved correctly). Don't redundantly store value atom in PortModel, just use property directly. Fix incorrect use of lv2:integer as a predicate. git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4835 a436a847-0d15-0410-975c-d299462d15a1 --- src/server/events/Delta.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'src/server/events') diff --git a/src/server/events/Delta.cpp b/src/server/events/Delta.cpp index 6c935ce2..1c823cdd 100644 --- a/src/server/events/Delta.cpp +++ b/src/server/events/Delta.cpp @@ -166,9 +166,12 @@ Delta::pre_process() SpecialType op = NONE; if (obj) { Resource& resource = *obj; - resource.add_property(key, value, value.context()); + if (value != uris.wildcard) { + resource.add_property(key, value, value.context()); + } - PortImpl* port = dynamic_cast(_object); + BlockImpl* block = NULL; + PortImpl* port = dynamic_cast(_object); if (port) { if (key == uris.ingen_broadcast) { if (value.type() == uris.forge.Bool) { @@ -194,6 +197,10 @@ Delta::pre_process() _status = BAD_OBJECT_TYPE; } } + } else if ((block = dynamic_cast(_object))) { + if (key == uris.ingen_controlBinding && value == uris.wildcard) { + op = CONTROL_BINDING; // Internal block learn + } } else if ((_graph = dynamic_cast(_object))) { if (key == uris.ingen_enabled) { if (value.type() == uris.forge.Bool) { -- cgit v1.2.1