, _soloed (false)
, _solo_ignore (false)
{
-
+
if (Config->get_mute_affects_pre_fader ()) {
_mute_point = MutePoint (_mute_point | PreFader);
}
if (_soloed) {
gain = 1.0;
} else if (muted_by_self_at (mp)) {
- gain = Config->get_solo_mute_gain ();
+ gain = 0.0;
} else {
if (muted_by_others_at (mp)) {
- gain = 0.0;
+ gain = Config->get_solo_mute_gain ();
} else {
gain = 1.0;
}
}
} else {
if (muted_by_self_at (mp)) {
- gain = Config->get_solo_mute_gain ();
+ gain = 0.0;
} else if (_soloed) {
gain = 1.0;
} else {
if (muted_by_others_at (mp)) {
- gain = 0.0;
+ gain = Config->get_solo_mute_gain ();
} else {
gain = 1.0;
}
}
}
-
+
return gain;
}
MutePoint old = _mute_point;
_mute_point = (MutePoint) string_2_enum (mute_point, _mute_point);
-
+
if (old != _mute_point) {
MutePointChanged(); /* EMIT SIGNAL */
}
}
void
-MuteMaster::set_mute_points (MutePoint mp)
+MuteMaster::set_mute_points (MutePoint mp)
{
if (_mute_point != mp) {
_mute_point = mp;
{
return (!_solo_ignore && _session.soloing() && (_mute_point & mp));
}
-
+