diff options
author | Robin Gareus <robin@gareus.org> | 2016-07-04 03:13:35 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2016-07-04 03:13:35 +0200 |
commit | 402e9cb20d134e7803c33460d22c4330cfca66d2 (patch) | |
tree | 970e7ab34400bbba38144537b33eb0abcf97fc3b /libs/ardour/route.cc | |
parent | 11d2074ee6c238cfdf06666988ad5bb4a5dd8608 (diff) |
flush output buffers after processing - fixes midi-bus chaining
Diffstat (limited to 'libs/ardour/route.cc')
-rw-r--r-- | libs/ardour/route.cc | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/libs/ardour/route.cc b/libs/ardour/route.cc index 15848df31e..89f3e862c2 100644 --- a/libs/ardour/route.cc +++ b/libs/ardour/route.cc @@ -3443,6 +3443,12 @@ Route::no_roll (pframes_t nframes, framepos_t start_frame, framepos_t end_frame, _trim->apply_gain_automation (false); passthru (bufs, start_frame, end_frame, nframes, 0); + for (ProcessorList::iterator i = _processors.begin(); i != _processors.end(); ++i) { + boost::shared_ptr<Delivery> d = boost::dynamic_pointer_cast<Delivery> (*i); + if (d) { + d->flush_buffers (nframes); + } + } return 0; } @@ -3481,6 +3487,12 @@ Route::roll (pframes_t nframes, framepos_t start_frame, framepos_t end_frame, in passthru (bufs, start_frame, end_frame, nframes, declick); + for (ProcessorList::iterator i = _processors.begin(); i != _processors.end(); ++i) { + boost::shared_ptr<Delivery> d = boost::dynamic_pointer_cast<Delivery> (*i); + if (d) { + d->flush_buffers (nframes); + } + } return 0; } |