summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libs/ardour/route.cc16
1 files changed, 14 insertions, 2 deletions
diff --git a/libs/ardour/route.cc b/libs/ardour/route.cc
index 10505053f9..01b60527f8 100644
--- a/libs/ardour/route.cc
+++ b/libs/ardour/route.cc
@@ -345,7 +345,13 @@ Route::process_output_buffers (vector<Sample*>& bufs, uint32_t nbufs,
for (i = _redirects.begin(); i != _redirects.end(); ++i) {
switch ((*i)->placement()) {
case PreFader:
- (*i)->run (bufs, nbufs, nframes, offset);
+ if (dsg == 0) {
+ if (boost::dynamic_pointer_cast<Send>(*i) || boost::dynamic_pointer_cast<PortInsert>(*i)) {
+ (*i)->silence (nframes, offset);
+ }
+ } else {
+ (*i)->run (bufs, nbufs, nframes, offset);
+ }
break;
case PostFader:
post_fader_work = true;
@@ -516,7 +522,13 @@ Route::process_output_buffers (vector<Sample*>& bufs, uint32_t nbufs,
case PreFader:
break;
case PostFader:
- (*i)->run (bufs, nbufs, nframes, offset);
+ if (dsg == 0) {
+ if (boost::dynamic_pointer_cast<Send>(*i) || boost::dynamic_pointer_cast<PortInsert>(*i)) {
+ (*i)->silence (nframes, offset);
+ }
+ } else {
+ (*i)->run (bufs, nbufs, nframes, offset);
+ }
break;
}
}