diff options
author | David Robillard <d@drobilla.net> | 2011-07-07 14:46:25 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2011-07-07 14:46:25 +0000 |
commit | bce946fd0a645e42c91929494cf0c4b66b1e4cd9 (patch) | |
tree | 25de64a0503da87fea902cf89b399232f7952aa6 | |
parent | 21aec9adbce327a3ff69fe23f32950ede30bae5f (diff) | |
download | ingen-bce946fd0a645e42c91929494cf0c4b66b1e4cd9.tar.gz ingen-bce946fd0a645e42c91929494cf0c4b66b1e4cd9.tar.bz2 ingen-bce946fd0a645e42c91929494cf0c4b66b1e4cd9.zip |
Obey "special" properties on object creation (patch from Paul Giblock, ticket #723)
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@3416 a436a847-0d15-0410-975c-d299462d15a1
-rw-r--r-- | src/server/events/SetMetadata.cpp | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/src/server/events/SetMetadata.cpp b/src/server/events/SetMetadata.cpp index d9d44cc0..23109a2f 100644 --- a/src/server/events/SetMetadata.cpp +++ b/src/server/events/SetMetadata.cpp @@ -139,12 +139,13 @@ SetMetadata::pre_process() _create_event = new CreatePort(_engine, sub_request, _time, path, data_type.uri(), is_output, _properties); } - if (_create_event) + if (_create_event) { _create_event->pre_process(); - else + // Grab the object for applying properties, if the create-event succeeded + _object = _engine.engine_store()->find_object(Path(_subject.str())); + } else { _error = BAD_OBJECT_TYPE; - QueuedEvent::pre_process(); - return; + } } _types.reserve(_properties.size()); @@ -268,11 +269,7 @@ SetMetadata::execute(ProcessContext& context) } if (_create_event) { - QueuedEvent::execute(context); _create_event->execute(context); - if (_blocking) - _request->unblock(); - return; } for (SetEvents::iterator i = _set_events.begin(); i != _set_events.end(); ++i) |