diff options
author | David Robillard <d@drobilla.net> | 2012-11-18 18:46:53 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2012-11-18 18:46:53 +0000 |
commit | d358cae57b7233bf6b781686979fc4dea4d090b3 (patch) | |
tree | e60f45f73892fd62fea6caef507567c57722b5b9 /src/server/events | |
parent | c8745c6975c6173d08957c4a16bf8b95831ec05a (diff) | |
download | ingen-d358cae57b7233bf6b781686979fc4dea4d090b3.tar.gz ingen-d358cae57b7233bf6b781686979fc4dea4d090b3.tar.bz2 ingen-d358cae57b7233bf6b781686979fc4dea4d090b3.zip |
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
Diffstat (limited to 'src/server/events')
-rw-r--r-- | src/server/events/Delta.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
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<PortImpl*>(_object); + BlockImpl* block = NULL; + PortImpl* port = dynamic_cast<PortImpl*>(_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<BlockImpl*>(_object))) { + if (key == uris.ingen_controlBinding && value == uris.wildcard) { + op = CONTROL_BINDING; // Internal block learn + } } else if ((_graph = dynamic_cast<GraphImpl*>(_object))) { if (key == uris.ingen_enabled) { if (value.type() == uris.forge.Bool) { |