From c66d7e8cf94417666332456beea1ff75e9a82ff0 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Sun, 31 Jan 2016 22:42:29 -0500 Subject: mackie: consistent use of Shift to mean "InverseGroup" --- libs/surfaces/mackie/strip.cc | 47 +++++++++++++++++++++++++++++++++++-------- 1 file changed, 39 insertions(+), 8 deletions(-) diff --git a/libs/surfaces/mackie/strip.cc b/libs/surfaces/mackie/strip.cc index da1a8be10e..805a215481 100644 --- a/libs/surfaces/mackie/strip.cc +++ b/libs/surfaces/mackie/strip.cc @@ -817,18 +817,25 @@ Strip::vselect_event (Button&, ButtonState bs) return; } + Controllable::GroupControlDisposition gcd; + if (_surface->mcp().main_modifier_state() & MackieControlProtocol::MODIFIER_SHIFT) { + gcd = Controllable::InverseGroup; + } else { + gcd = Controllable::UseGroup; + } + if (control->toggled()) { if (control->toggled()) { - control->set_value (!control->get_value(), Controllable::UseGroup); + control->set_value (!control->get_value(), gcd); } } else if (control->desc().enumeration || control->desc().integer_step) { double val = control->get_value (); if (val <= control->upper() - 1.0) { - control->set_value (val + 1.0, Controllable::UseGroup); + control->set_value (val + 1.0, gcd); } else { - control->set_value (control->lower(), Controllable::UseGroup); + control->set_value (control->lower(), gcd); } } @@ -849,7 +856,15 @@ Strip::vselect_event (Button&, ButtonState bs) if (control) { bool currently_enabled = (bool) control->get_value(); - control->set_value (!currently_enabled, Controllable::UseGroup); + Controllable::GroupControlDisposition gcd; + + if (_surface->mcp().main_modifier_state() & MackieControlProtocol::MODIFIER_SHIFT) { + gcd = Controllable::InverseGroup; + } else { + gcd = Controllable::UseGroup; + } + + control->set_value (!currently_enabled, gcd); if (currently_enabled) { /* we just turned it off */ @@ -889,8 +904,16 @@ Strip::vselect_event (Button&, ButtonState bs) if (_route) { boost::shared_ptr ac = _route->master_send_enable_controllable (); if (ac) { + Controllable::GroupControlDisposition gcd; + + if (_surface->mcp().main_modifier_state() & MackieControlProtocol::MODIFIER_SHIFT) { + gcd = Controllable::InverseGroup; + } else { + gcd = Controllable::UseGroup; + } + bool enabled = ac->get_value(); - ac->set_value (!enabled, Controllable::UseGroup); + ac->set_value (!enabled, gcd); } #else DEBUG_TRACE (DEBUG::MackieControl, "switching to next pot mode\n"); @@ -1149,7 +1172,7 @@ Strip::handle_fader (Fader& fader, float position) Controllable::GroupControlDisposition gcd = Controllable::UseGroup; if (_surface->mcp().main_modifier_state() & MackieControlProtocol::MODIFIER_SHIFT) { - gcd = Controllable::NoGroup; + gcd = Controllable::InverseGroup; } fader.set_value (position, gcd); @@ -1179,14 +1202,22 @@ Strip::handle_pot (Pot& pot, float delta) return; } + Controllable::GroupControlDisposition gcd; + + if (_surface->mcp().main_modifier_state() & MackieControlProtocol::MODIFIER_SHIFT) { + gcd = Controllable::InverseGroup; + } else { + gcd = Controllable::UseGroup; + } + if (ac->toggled()) { /* make it like a single-step, directional switch */ if (delta > 0) { - pot.set_value (1.0); + ac->set_value (1.0, gcd); } else { - pot.set_value (0.0); + ac->set_value (0.0, gcd); } } else if (ac->desc().enumeration || ac->desc().integer_step) { -- cgit v1.2.3