diff --git a/libs/surfaces/mackie/mcp_buttons.cc b/libs/surfaces/mackie/mcp_buttons.cc index 215e547604..4834d50307 100644 --- a/libs/surfaces/mackie/mcp_buttons.cc +++ b/libs/surfaces/mackie/mcp_buttons.cc @@ -500,11 +500,11 @@ MackieControlProtocol::stop_release (Button &) LedState MackieControlProtocol::play_press (Button &) { - /* if we're already rolling, and we're pressed + /* if we're already rolling at normal speed, and we're pressed again, jump back to where we started last time */ - transport_play (session->transport_rolling()); + transport_play (session->transport_rolling() == 1.0); return none; } @@ -530,7 +530,6 @@ MackieControlProtocol::record_release (Button &) LedState MackieControlProtocol::rewind_press (Button &) { - DEBUG_TRACE (DEBUG::MackieControl, "REWIND PRESS\n"); rewind (); return none; } @@ -995,6 +994,7 @@ MackieControlProtocol::mixer_release (Button &) LedState MackieControlProtocol::user_a_press (Button &) { + transport_play (session->transport_speed() == 1.0); return off; } LedState @@ -1005,6 +1005,7 @@ MackieControlProtocol::user_a_release (Button &) LedState MackieControlProtocol::user_b_press (Button &) { + transport_stop(); return off; } LedState diff --git a/libs/surfaces/mackie/strip.cc b/libs/surfaces/mackie/strip.cc index 5c5b7264e5..5c72aed496 100644 --- a/libs/surfaces/mackie/strip.cc +++ b/libs/surfaces/mackie/strip.cc @@ -392,6 +392,9 @@ Strip::handle_button (Button& button, ButtonState bs) if (_route) { _route_locked = !_route_locked; } + } else if (_surface->mcp().modifier_state() == MackieControlProtocol::MODIFIER_SHIFT) { + /* reset gain value to unity */ + _route->set_gain (1.0, this); } else { _surface->mcp().select_track (_route); }