summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2010-05-04 17:45:33 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2010-05-04 17:45:33 +0000
commit6d9f6005604fb579c5559ea7a55605863724f554 (patch)
treeb79b6bcdf918ddd484f36355251b0e1d81fdcfc5 /libs
parentbf6de6da77ca8fdeda6e92ae5adffd0a9f14da1c (diff)
fix inverse solo push to work properly in both exclusive and non-exclusive solo modes
git-svn-id: svn://localhost/ardour2/branches/3.0@7053 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs')
-rw-r--r--libs/ardour/route.cc5
1 files changed, 2 insertions, 3 deletions
diff --git a/libs/ardour/route.cc b/libs/ardour/route.cc
index 29184ab940..1b938db871 100644
--- a/libs/ardour/route.cc
+++ b/libs/ardour/route.cc
@@ -616,7 +616,6 @@ Route::mod_solo_by_others_upstream (int32_t delta)
_soloed_by_others_upstream += delta;
}
-
/* push the inverse solo change to everything that feeds us.
This is important for solo-within-group. When we solo 1 track out of N that
@@ -630,7 +629,7 @@ Route::mod_solo_by_others_upstream (int32_t delta)
not in reverse.
*/
- if (delta > 0) {
+ if (Config->get_solo_latched() || delta > 0) {
for (FedBy::iterator i = _fed_by.begin(); i != _fed_by.end(); ++i) {
boost::shared_ptr<Route> sr = i->r.lock();
if (sr) {
@@ -650,7 +649,7 @@ Route::mod_solo_by_others_downstream (int32_t delta)
return;
}
- if (delta < 0) {
+ if (delta < 0) {
if (_soloed_by_others_downstream >= (uint32_t) abs (delta)) {
_soloed_by_others_downstream += delta;
} else {