summaryrefslogtreecommitdiff
path: root/libs/ardour/mute_master.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libs/ardour/mute_master.cc')
-rw-r--r--libs/ardour/mute_master.cc15
1 files changed, 12 insertions, 3 deletions
diff --git a/libs/ardour/mute_master.cc b/libs/ardour/mute_master.cc
index df9a66ef7f..5e49a11875 100644
--- a/libs/ardour/mute_master.cc
+++ b/libs/ardour/mute_master.cc
@@ -40,6 +40,7 @@ MuteMaster::MuteMaster (Session& s, const std::string&)
, _mute_point (AllPoints)
, _self_muted (false)
, _muted_by_others (0)
+ , _solo_ignore (false)
{
}
@@ -107,7 +108,11 @@ MuteMaster::mute_gain_at (MutePoint mp) const
} else if (muted_by_others_at (mp)) { // muted by others
gain = Config->get_solo_mute_gain ();
} else {
- gain = 1.0;
+ if (!_solo_ignore && _session.soloing()) {
+ gain = 0.0;
+ } else {
+ gain = 1.0;
+ }
}
} else {
if (self_muted_at (mp)) { // self-muted
@@ -119,10 +124,14 @@ MuteMaster::mute_gain_at (MutePoint mp) const
} else if (l == UpstreamSoloed) { // soloed by others
gain = 1.0;
} else {
- gain = 1.0;
+ if (!_solo_ignore && _session.soloing()) {
+ gain = 0.0;
+ } else {
+ gain = 1.0;
+ }
}
}
-
+
// cerr << "\tgain = " << gain << endl;
return gain;