From 1745a63b874c296253a27ca7ad95d3a7b17822f7 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Sun, 22 Nov 2009 05:13:47 +0000 Subject: Execute cross-context events in correct increasing time order. Propagate value changes / message sends breadth first instead of deptch first. git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@2282 a436a847-0d15-0410-975c-d299462d15a1 --- src/engine/ConnectionImpl.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src/engine/ConnectionImpl.cpp') diff --git a/src/engine/ConnectionImpl.cpp b/src/engine/ConnectionImpl.cpp index 27786e00..1973397d 100644 --- a/src/engine/ConnectionImpl.cpp +++ b/src/engine/ConnectionImpl.cpp @@ -146,7 +146,8 @@ ConnectionImpl::queue(Context& context) } while (src_buf->is_valid()) { - LV2_Object* obj = src_buf->get_object(); + LV2_Event* ev = src_buf->get_event(); + LV2_Object* obj = LV2_OBJECT_FROM_EVENT(ev); /*cout << _src_port->path() << " -> " << _dst_port->path() << " QUEUE OBJECT TYPE " << obj->type << ":"; for (size_t i = 0; i < obj->size; ++i) @@ -156,7 +157,8 @@ ConnectionImpl::queue(Context& context) _queue->write(sizeof(LV2_Object) + obj->size, obj); src_buf->increment(); - context.engine().message_context()->run(_dst_port->parent_node()); + context.engine().message_context()->run(_dst_port->parent_node(), + context.start() + ev->frames); } } -- cgit v1.2.1