summaryrefslogtreecommitdiff
path: root/libs/ardour/route.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2015-10-05 14:19:32 +0200
committerRobin Gareus <robin@gareus.org>2015-10-05 14:19:32 +0200
commite11ba7b79d68bc1070b170236c22123966d7bcc3 (patch)
tree496d95bf15d879c7e16b1130d5402df1ad55ad98 /libs/ardour/route.cc
parentf42ae066cc98359a9d2861b83c68dd102748fdcf (diff)
SiP and "solo overrides mutes" tweak:
Only Explicit solos should override mutes.
Diffstat (limited to 'libs/ardour/route.cc')
-rw-r--r--libs/ardour/route.cc8
1 files changed, 5 insertions, 3 deletions
diff --git a/libs/ardour/route.cc b/libs/ardour/route.cc
index 8f845bb8c9..74c00409c7 100644
--- a/libs/ardour/route.cc
+++ b/libs/ardour/route.cc
@@ -779,11 +779,12 @@ Route::set_listen (bool yn, void* src)
if (yn != _monitor_send->active()) {
if (yn) {
_monitor_send->activate ();
- _mute_master->set_soloed (true);
+ _mute_master->set_soloed_by_self (true);
} else {
_monitor_send->deactivate ();
- _mute_master->set_soloed (false);
+ _mute_master->set_soloed_by_self (false);
}
+ _mute_master->set_soloed_by_others (false);
listen_changed (src); /* EMIT SIGNAL */
}
@@ -949,7 +950,8 @@ Route::mod_solo_by_others_downstream (int32_t delta)
void
Route::set_mute_master_solo ()
{
- _mute_master->set_soloed (self_soloed() || soloed_by_others_downstream() || soloed_by_others_upstream());
+ _mute_master->set_soloed_by_self (self_soloed());
+ _mute_master->set_soloed_by_others (soloed_by_others_downstream() || soloed_by_others_upstream());
}
void