diff options
author | Robin Gareus <robin@gareus.org> | 2015-10-06 14:14:44 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2015-10-06 14:14:44 +0200 |
commit | b1609b53bd38508068a847a0e05ac0fc7100bbc8 (patch) | |
tree | e79f13c63ac27a995adeb7a7dea2b85a11988175 /libs/ardour/session.cc | |
parent | 139cb23ab98abc2d166b74ea025719d1730dc203 (diff) |
more solo propagation fixes.
handle cases Track(s) -> Bus1 -> Bus2
Diffstat (limited to 'libs/ardour/session.cc')
-rw-r--r-- | libs/ardour/session.cc | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/libs/ardour/session.cc b/libs/ardour/session.cc index 12d53f3373..9d0c4f9662 100644 --- a/libs/ardour/session.cc +++ b/libs/ardour/session.cc @@ -3614,6 +3614,8 @@ Session::route_solo_changed (bool self_solo_change, void* /*src*/, boost::weak_p if (!via_sends_only) { if (!route->soloed_by_others_upstream()) { (*i)->mod_solo_by_others_downstream (delta); + } else { + DEBUG_TRACE (DEBUG::Solo, "\talready soloed by others upstream\n"); } } else { DEBUG_TRACE (DEBUG::Solo, string_compose ("\tthere is a send-only feed from %1\n", (*i)->name())); @@ -3638,12 +3640,9 @@ Session::route_solo_changed (bool self_solo_change, void* /*src*/, boost::weak_p route->soloed_by_others_downstream(), route->soloed_by_others_upstream())); if (!via_sends_only) { - if (!route->soloed_by_others_downstream()) { - DEBUG_TRACE (DEBUG::Solo, string_compose ("\tmod %1 by %2\n", (*i)->name(), delta)); - (*i)->mod_solo_by_others_upstream (delta); - } else { - DEBUG_TRACE (DEBUG::Solo, "\talready soloed by others downstream\n"); - } + //NB. Triggers Invert Push, which handles soloed by downstream + DEBUG_TRACE (DEBUG::Solo, string_compose ("\tmod %1 by %2\n", (*i)->name(), delta)); + (*i)->mod_solo_by_others_upstream (delta); } else { DEBUG_TRACE (DEBUG::Solo, string_compose ("\tfeed to %1 ignored, sends-only\n", (*i)->name())); } |