diff --git a/libs/surfaces/mackie/pot.cc b/libs/surfaces/mackie/pot.cc index 9a3f3360d2..63b0424297 100644 --- a/libs/surfaces/mackie/pot.cc +++ b/libs/surfaces/mackie/pot.cc @@ -74,7 +74,11 @@ Pot::update_message () // position, but only if off hasn't explicitly been set if (on) { - msg += (lrintf (position * 10.0) + 1) & 0x0f; // 0b00001111 + if (mode == spread) { + msg += (lrintf (position * 6) + 1) & 0x0f; // 0b00001111 + } else { + msg += (lrintf (position * 10.0) + 1) & 0x0f; // 0b00001111 + } } /* outbound LED message requires 0x20 to be added to the LED's id diff --git a/libs/surfaces/mackie/strip.cc b/libs/surfaces/mackie/strip.cc index b3e51f5912..64d916a2a9 100644 --- a/libs/surfaces/mackie/strip.cc +++ b/libs/surfaces/mackie/strip.cc @@ -447,7 +447,7 @@ Strip::notify_panner_width_changed (bool force_update) _surface->write (_fader->set_position (pos)); do_parameter_display (PanWidthAutomation, pos); } else { - _surface->write (_vpot->set_all (pos, true, Pot::dot)); + _surface->write (_vpot->set_all (pos, true, Pot::spread)); do_parameter_display (PanWidthAutomation, pos); } @@ -853,6 +853,14 @@ Strip::flip_mode_changed (bool notify) return; } + if (_surface->mcp().flip_mode()) { + /* flip mode is on - save what it used to be */ + _preflip_vpot_mode = _vpot_mode; + } else { + /* flip mode is off - restore flip mode to what it used to be */ + _vpot_mode = _preflip_vpot_mode; + } + boost::shared_ptr fader_controllable = _fader->control (); boost::shared_ptr vpot_controllable = _vpot->control (); @@ -1067,7 +1075,7 @@ Strip::set_vpot_mode (PotMode m) /* gain to fader, pan width to vpot */ _fader->set_control (_route->gain_control()); if (pannable) { - _vpot->set_mode (Pot::dot); + _vpot->set_mode (Pot::spread); _vpot->set_control (pannable->pan_width_control); } }