diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2006-11-13 18:30:27 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2006-11-13 18:30:27 +0000 |
commit | 118440180e529f65f06c89364b7010c719ddad86 (patch) | |
tree | d75714290ad161e33a265b9de4fa520e226877d6 /libs/ardour/route.cc | |
parent | 55a85aa2a906d56818a35172594762a637d85f6d (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.cc | 16 |
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; } } |