summaryrefslogtreecommitdiff
path: root/libs/ardour/route.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2006-11-13 18:30:27 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2006-11-13 18:30:27 +0000
commit118440180e529f65f06c89364b7010c719ddad86 (patch)
treed75714290ad161e33a265b9de4fa520e226877d6 /libs/ardour/route.cc
parent55a85aa2a906d56818a35172594762a637d85f6d (diff)
mute sends+inserts when a route is not soloed but others are
git-svn-id: svn://localhost/ardour2/trunk@1126 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/route.cc')
-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;
}
}