mirror of
https://github.com/Ardour/ardour.git
synced 2026-01-30 08:53:08 +01:00
more solo propagation fixes.
handle cases Track(s) -> Bus1 -> Bus2
This commit is contained in:
parent
139cb23ab9
commit
b1609b53bd
2 changed files with 9 additions and 7 deletions
|
|
@ -900,8 +900,11 @@ Route::mod_solo_by_others_upstream (int32_t delta)
|
|||
(old_sbu > 0 && _soloed_by_others_upstream == 0))) {
|
||||
|
||||
if (delta > 0 || !Config->get_exclusive_solo()) {
|
||||
DEBUG_TRACE (DEBUG::Solo, "\t ... INVERT push\n");
|
||||
DEBUG_TRACE (DEBUG::Solo, string_compose("\t ... INVERT push from %1\n", _name));
|
||||
for (FedBy::iterator i = _fed_by.begin(); i != _fed_by.end(); ++i) {
|
||||
if (i->sends_only) {
|
||||
continue;
|
||||
}
|
||||
boost::shared_ptr<Route> sr = i->r.lock();
|
||||
if (sr) {
|
||||
sr->mod_solo_by_others_downstream (-delta);
|
||||
|
|
|
|||
|
|
@ -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()));
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue