From 36dc6bdb6d9b96e2a18acbe6c681a842d1590fb6 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Thu, 4 Feb 2010 01:29:34 +0000 Subject: MIDI feedback. git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@2418 a436a847-0d15-0410-975c-d299462d15a1 --- src/engine/JackDriver.cpp | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) (limited to 'src/engine/JackDriver.cpp') diff --git a/src/engine/JackDriver.cpp b/src/engine/JackDriver.cpp index feb8d802..fc2e5e59 100644 --- a/src/engine/JackDriver.cpp +++ b/src/engine/JackDriver.cpp @@ -427,22 +427,26 @@ JackDriver::_process_cb(jack_nframes_t nframes) (*i)->context().set_time_slice(nframes, start_of_current_cycle, end_of_current_cycle); } - // Process events that came in during the last cycle - // (Aiming for jitter-free 1 block event latency, ideally) - _engine.process_events(_process_context); - // Read input for (Raul::List::iterator i = _ports.begin(); i != _ports.end(); ++i) (*i)->pre_process(_process_context); - // Process control bindings - _engine.control_bindings()->process(_process_context, + // Apply control bindings to input + _engine.control_bindings()->pre_process(_process_context, PtrCast(_root_patch->port_impl(0)->buffer(0)).get()); + // Process events that came in during the last cycle + // (Aiming for jitter-free 1 block event latency, ideally) + _engine.process_events(_process_context); + // Run root patch if (_root_patch) _root_patch->process(_process_context); + // Emit control binding feedback + _engine.control_bindings()->post_process(_process_context, + PtrCast(_root_patch->port_impl(1)->buffer(0)).get()); + // Signal message context to run if necessary if (_engine.message_context()->has_requests()) _engine.message_context()->signal(_process_context); -- cgit v1.2.1