diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2016-04-15 00:38:03 -0400 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2016-05-31 15:30:41 -0400 |
commit | 6de4953be8dc5cd413b405d4801f086567923965 (patch) | |
tree | 4e428efc0668e9dc78d8cfee407042b7f976742d /gtk2_ardour/route_ui.cc | |
parent | 7d493b091ae2741db39a65cc62e9d17ef57d7606 (diff) |
a variety of changes that get closer to correctly functioning behaviour for VCA solo+mute (BUT ARE NOT DONE YET)
Diffstat (limited to 'gtk2_ardour/route_ui.cc')
-rw-r--r-- | gtk2_ardour/route_ui.cc | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/gtk2_ardour/route_ui.cc b/gtk2_ardour/route_ui.cc index 91b14d9c78..3f00966c31 100644 --- a/gtk2_ardour/route_ui.cc +++ b/gtk2_ardour/route_ui.cc @@ -415,7 +415,7 @@ RouteUI::mute_press (GdkEventButton* ev) } DisplaySuspender ds; - _session->set_controls (route_list_to_control_list (copy, &Route::mute_control), _route->muted() ? 0.0 : 1.0, Controllable::UseGroup); + _session->set_controls (route_list_to_control_list (copy, &Route::mute_control), _route->muted_by_self() ? 0.0 : 1.0, Controllable::UseGroup); } else if (Keyboard::modifier_state_equals (ev->state, Keyboard::PrimaryModifier)) { @@ -444,7 +444,7 @@ RouteUI::mute_press (GdkEventButton* ev) } DisplaySuspender ds; - _session->set_controls (route_list_to_control_list (rl, &Route::mute_control), _route->muted() ? 0.0 : 1.0, Controllable::InverseGroup); + _session->set_controls (route_list_to_control_list (rl, &Route::mute_control), _route->muted_by_self() ? 0.0 : 1.0, Controllable::InverseGroup); } } else { @@ -458,7 +458,7 @@ RouteUI::mute_press (GdkEventButton* ev) _mute_release->routes = rl; } - _session->set_control (_route->mute_control(), _route->muted() ? 0.0 : 1.0, Controllable::UseGroup); + _session->set_control (_route->mute_control(), _route->muted_by_self() ? 0.0 : 1.0, Controllable::UseGroup); } } @@ -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 ()) { - if (r->muted ()) { + std::cerr << r->name() << " self " << r->mute_control()->muted_by_self() << " others " << r->muted_by_others() << " soloing " << r->muted_by_others_soloing() << std::endl; + + if (r->mute_control()->muted_by_self ()) { /* full mute */ return Gtkmm2ext::ExplicitActive; - } else if (r->muted_by_others_soloing () || r->mute_control()->get_masters_value()) { + } else if (r->muted_by_others_soloing () || r->muted_by_others()) { /* this will reflect both solo mutes AND master mutes */ return Gtkmm2ext::ImplicitActive; } else { @@ -1238,15 +1240,11 @@ RouteUI::mute_active_state (Session* s, boost::shared_ptr<Route> r) } else { - if (r->muted()) { + if (r->mute_control()->muted_by_self()) { /* full mute */ return Gtkmm2ext::ExplicitActive; } else if (r->muted_by_others()) { - /* note the direct use of MuteMaster API here. We are - not interested in showing - others-soloed-so-this-muted status in this - conditional branch. - */ + /* this shows only master mutes, not mute-by-others-soloing */ return Gtkmm2ext::ImplicitActive; } else { /* no mute at all */ |