diff --git a/libs/surfaces/mackie/mackie_control_protocol.cc b/libs/surfaces/mackie/mackie_control_protocol.cc index 829926ab99..d104d0c527 100644 --- a/libs/surfaces/mackie/mackie_control_protocol.cc +++ b/libs/surfaces/mackie/mackie_control_protocol.cc @@ -1098,6 +1098,16 @@ MackieControlProtocol::set_view_mode (ViewMode m) } +void +MackieControlProtocol::set_flip_mode (FlipMode m) +{ + _flip_mode = m; + + for (Surfaces::iterator s = surfaces.begin(); s != surfaces.end(); ++s) { + (*s)->update_flip_mode_display (); + } +} + void MackieControlProtocol::set_master_on_surface_strip (uint32_t surface, uint32_t strip_number) { @@ -1127,3 +1137,4 @@ MackieControlProtocol::force_special_route_to_strip (boost::shared_ptr r, } } } + diff --git a/libs/surfaces/mackie/mackie_control_protocol.h b/libs/surfaces/mackie/mackie_control_protocol.h index bdc943a62b..124f82993c 100644 --- a/libs/surfaces/mackie/mackie_control_protocol.h +++ b/libs/surfaces/mackie/mackie_control_protocol.h @@ -118,6 +118,7 @@ class MackieControlProtocol ViewMode view_mode () const { return _view_mode; } void set_view_mode (ViewMode); + void set_flip_mode (FlipMode); XMLNode& get_state (); int set_state (const XMLNode&, int version); diff --git a/libs/surfaces/mackie/mcp_buttons.cc b/libs/surfaces/mackie/mcp_buttons.cc index 8f60912bce..83f3d8ebd6 100644 --- a/libs/surfaces/mackie/mcp_buttons.cc +++ b/libs/surfaces/mackie/mcp_buttons.cc @@ -819,16 +819,20 @@ MackieControlProtocol::dyn_release (Button &) LedState MackieControlProtocol::flip_press (Button &) { + FlipMode m; + if (_modifier_state == 0) { if (_flip_mode != Normal) { - _flip_mode = Normal; + m = Normal; } else { - _flip_mode = Swap; + m = Swap; } } else if (_modifier_state & MODIFIER_CONTROL) { - _flip_mode = Zero; + m = Zero; } + set_flip_mode (m); + return (_flip_mode != Normal ? on : off); } LedState diff --git a/libs/surfaces/mackie/strip.cc b/libs/surfaces/mackie/strip.cc index a38c92d2c2..7304301e51 100644 --- a/libs/surfaces/mackie/strip.cc +++ b/libs/surfaces/mackie/strip.cc @@ -474,12 +474,14 @@ Strip::handle_pot (Pot& pot, float delta) case MackieControlProtocol::Mirror: /* pot + fader control pan */ case MackieControlProtocol::Zero: /* pot controls pan, faders don't move */ if (_surface->mcp().modifier_state() & MackieControlProtocol::MODIFIER_CONTROL) { + DEBUG_TRACE (DEBUG::MackieControl, "pot using control to alter width\n"); ac = pannable->pan_width_control; } else { + DEBUG_TRACE (DEBUG::MackieControl, "pot using control to alter position\n"); ac = pannable->pan_azimuth_control; } break; - case MackieControlProtocol::Swap: + case MackieControlProtocol::Swap: /* pot controls gain */ ac = _route->gain_control(); break; }