From e33d4553b2b333c30835b00741fc5c1fd0e2b36d Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Mon, 3 May 2010 18:58:38 +0000 Subject: 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 --- libs/ardour/mute_master.cc | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) (limited to 'libs/ardour/mute_master.cc') 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; -- cgit v1.2.3