diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2010-05-03 18:58:38 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2010-05-03 18:58:38 +0000 |
commit | e33d4553b2b333c30835b00741fc5c1fd0e2b36d (patch) | |
tree | 9bf8b6839f5078f1918113191689a0535ede52ae /libs/ardour/mute_master.cc | |
parent | 1b9bf21aa40eee32eb4c7ab49d1ad8ab51d09b11 (diff) |
more solo model work, including a GUI fix for mute button state when the route is self-soloed
git-svn-id: svn://localhost/ardour2/branches/3.0@7048 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/mute_master.cc')
-rw-r--r-- | libs/ardour/mute_master.cc | 15 |
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; |