From e1bcd70712b1aa35fa59d812d679576c88171d0f Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Mon, 11 Apr 2016 16:37:51 -0400 Subject: a slew of as-yet incomplete work to get VCA solo+mute closer to working --- gtk2_ardour/route_ui.cc | 4 +++- gtk2_ardour/vca_master_strip.cc | 9 +++++---- 2 files changed, 8 insertions(+), 5 deletions(-) (limited to 'gtk2_ardour') 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 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); -- cgit v1.2.3