-gain_t
-MuteMaster::mute_gain_at (MutePoint mp) const
-{
- gain_t gain;
- int32_t l = _solo_level;
-
- if (Config->get_solo_mute_override()) {
- if (l == 2) { // self-soloed
- gain = 1.0;
- } else if (self_muted_at (mp)) { // self-muted
- gain = Config->get_solo_mute_gain ();
- } else if (l == 1) { // soloed by others
- gain = 1.0;
- } else if (muted_by_others_at (mp)) { // muted by others
- gain = Config->get_solo_mute_gain ();
- } else {
- gain = 1.0;
- }
- } else {
- if (self_muted_at (mp)) { // self-muted
- gain = Config->get_solo_mute_gain ();
- } else if (l == 2) { // self-soloed
- gain = 1.0;
- } else if (muted_by_others_at (mp)) { // muted by others
- gain = Config->get_solo_mute_gain ();
- } else if (l == 1) { // soloed by others
- gain = 1.0;
- } else {
- gain = 1.0;
- }
- }
-
- return gain;