summaryrefslogtreecommitdiff
path: root/libs/ardour/route.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2016-07-04 03:13:35 +0200
committerRobin Gareus <robin@gareus.org>2016-07-04 03:13:35 +0200
commit402e9cb20d134e7803c33460d22c4330cfca66d2 (patch)
tree970e7ab34400bbba38144537b33eb0abcf97fc3b /libs/ardour/route.cc
parent11d2074ee6c238cfdf06666988ad5bb4a5dd8608 (diff)
flush output buffers after processing - fixes midi-bus chaining
Diffstat (limited to 'libs/ardour/route.cc')
-rw-r--r--libs/ardour/route.cc12
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;
}