summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
Diffstat (limited to 'gtk2_ardour')
-rw-r--r--gtk2_ardour/route_ui.cc4
-rw-r--r--gtk2_ardour/vca_master_strip.cc9
2 files changed, 8 insertions, 5 deletions
diff --git a/gtk2_ardour/route_ui.cc b/gtk2_ardour/route_ui.cc
index 730cc05514..695c2d3eaf 100644
--- a/gtk2_ardour/route_ui.cc
+++ b/gtk2_ardour/route_ui.cc
@@ -1225,10 +1225,12 @@ RouteUI::mute_active_state (Session* s, boost::shared_ptr<Route> r)
if (Config->get_show_solo_mutes() && !Config->get_solo_control_is_listen_control ()) {
+ cerr << r->name() << " muted " << r->muted () << " others-soloing " << r->muted_by_others_soloing() << " master " << r->mute_control()->get_masters_value() << endl;
+
if (r->muted ()) {
/* full mute */
return Gtkmm2ext::ExplicitActive;
- } else if (r->muted_by_others_soloing ()) {
+ } else if (r->muted_by_others_soloing () || r->mute_control()->get_masters_value()) {
/* this will reflect both solo mutes AND master mutes */
return Gtkmm2ext::ImplicitActive;
} else {
diff --git a/gtk2_ardour/vca_master_strip.cc b/gtk2_ardour/vca_master_strip.cc
index fa5ab1c345..80c981be56 100644
--- a/gtk2_ardour/vca_master_strip.cc
+++ b/gtk2_ardour/vca_master_strip.cc
@@ -198,14 +198,15 @@ VCAMasterStrip::set_selected (bool yn)
bool
VCAMasterStrip::solo_release (GdkEventButton*)
{
- _vca->solo_control()->set_value (_vca->soloed() ? 0.0 : 1.0, Controllable::NoGroup);
+ std::cerr << "VCA solo release, from " << _vca->solo_control()->get_value() << std::endl;
+ _vca->solo_control()->set_value (_vca->solo_control()->get_value() ? 0.0 : 1.0, Controllable::NoGroup);
return true;
}
bool
VCAMasterStrip::mute_release (GdkEventButton*)
{
- _vca->mute_control()->set_value (_vca->muted() ? 0.0 : 1.0, Controllable::NoGroup);
+ _vca->mute_control()->set_value (_vca->mute_control()->get_value() ? 0.0 : 1.0, Controllable::NoGroup);
return true;
}
@@ -229,7 +230,7 @@ VCAMasterStrip::set_solo_text ()
void
VCAMasterStrip::mute_changed ()
{
- if (_vca->muted()) {
+ if (_vca->mute_control()->muted()) {
mute_button.set_active_state (ExplicitActive);
} else {
mute_button.set_active_state (Gtkmm2ext::Off);
@@ -239,7 +240,7 @@ VCAMasterStrip::mute_changed ()
void
VCAMasterStrip::solo_changed ()
{
- if (_vca->soloed()) {
+ if (_vca->solo_control()->soloed()) {
solo_button.set_active_state (ExplicitActive);
} else {
solo_button.set_active_state (Gtkmm2ext::Off);