MCP: make v-pot press work; work ongoing on general keybindings
[ardour.git] / libs / surfaces / mackie / mcp_buttons.cc
index 8dc775f0f32e317ee0b8c3545ad3f088fe184ec4..4032785a3be480bf8b2aec7ca3ad209f61f8e291 100644 (file)
@@ -67,12 +67,14 @@ LedState
 MackieControlProtocol::control_press (Button &)
 {
        _modifier_state |= MODIFIER_CONTROL;
+       DEBUG_TRACE (DEBUG::MackieControl, string_compose ("CONTROL Press: modifier state now set to %1\n", _modifier_state));
        return on;
 }
 LedState
 MackieControlProtocol::control_release (Button &)
 {
        _modifier_state &= ~MODIFIER_CONTROL;
+       DEBUG_TRACE (DEBUG::MackieControl, string_compose ("CONTROL Release: modifier state now set to %1\n", _modifier_state));
        return on;
 }
 LedState
@@ -229,7 +231,7 @@ MackieControlProtocol::cursor_up_press (Button&)
 {
        if (_zoom_mode) {
                
-               if (_modifier_state & MODIFIER_OPTION) {
+               if (_modifier_state & MODIFIER_CONTROL) {
                        VerticalZoomInSelected (); /* EMIT SIGNAL */
                } else {
                        VerticalZoomInAll (); /* EMIT SIGNAL */
@@ -498,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;
 }
 
@@ -528,7 +530,6 @@ MackieControlProtocol::record_release (Button &)
 LedState 
 MackieControlProtocol::rewind_press (Button &)
 {
-       DEBUG_TRACE (DEBUG::MackieControl, "REWIND PRESS\n");
        rewind ();
        return none;
 }
@@ -662,6 +663,17 @@ MackieControlProtocol::enter_release (Button &)
 { 
        return off;
 }
+
+void
+MackieControlProtocol::f_press (uint32_t fn)
+{
+#if 0
+       string action = f_action (0);
+       if (!action.empty()) {
+               access_action (action);
+       }
+#endif
+}
 LedState
 MackieControlProtocol::F1_press (Button &) 
 { 
@@ -819,17 +831,8 @@ MackieControlProtocol::dyn_release (Button &)
 LedState
 MackieControlProtocol::flip_press (Button &) 
 { 
-       if (_modifier_state == 0) {
-               if (_flip_mode != Normal) {
-                       _flip_mode = Normal;
-               } else {
-                       _flip_mode = Swap;
-               }
-       } else if (_modifier_state & MODIFIER_CONTROL) {
-               _flip_mode = Zero;
-       }
-
-       return (_flip_mode != Normal ? on : off);
+       set_flip_mode (!_flip_mode);
+       return (_flip_mode ? on : off);
 }
 LedState
 MackieControlProtocol::flip_release (Button &) 
@@ -989,6 +992,7 @@ MackieControlProtocol::mixer_release (Button &)
 LedState
 MackieControlProtocol::user_a_press (Button &) 
 { 
+       transport_play (session->transport_speed() == 1.0);
        return off; 
 }
 LedState
@@ -999,6 +1003,7 @@ MackieControlProtocol::user_a_release (Button &)
 LedState
 MackieControlProtocol::user_b_press (Button &) 
 { 
+       transport_stop();
        return off; 
 }
 LedState
@@ -1006,3 +1011,224 @@ MackieControlProtocol::user_b_release (Button &)
 { 
        return off; 
 }
+
+Mackie::LedState 
+MackieControlProtocol::snapshot_press (Mackie::Button&) 
+{
+       return none;
+}
+Mackie::LedState 
+MackieControlProtocol::snapshot_release (Mackie::Button&) 
+{
+       return none;
+}
+Mackie::LedState 
+MackieControlProtocol::read_press (Mackie::Button&) 
+{
+       return none;
+}
+Mackie::LedState 
+MackieControlProtocol::read_release (Mackie::Button&) 
+{
+       return none;
+}
+Mackie::LedState 
+MackieControlProtocol::write_press (Mackie::Button&) 
+{
+       return none;
+}
+Mackie::LedState 
+MackieControlProtocol::write_release (Mackie::Button&) 
+{
+       return none;
+}
+Mackie::LedState 
+MackieControlProtocol::fdrgroup_press (Mackie::Button&) 
+{
+       return none;
+}
+Mackie::LedState 
+MackieControlProtocol::fdrgroup_release (Mackie::Button&) 
+{
+       return none;
+}
+Mackie::LedState 
+MackieControlProtocol::clearsolo_press (Mackie::Button&) 
+{
+       return none;
+}
+Mackie::LedState 
+MackieControlProtocol::clearsolo_release (Mackie::Button&) 
+{
+       return none;
+}
+Mackie::LedState 
+MackieControlProtocol::track_press (Mackie::Button&) 
+{
+       return none;
+}
+Mackie::LedState 
+MackieControlProtocol::track_release (Mackie::Button&) 
+{
+       return none;
+}
+Mackie::LedState 
+MackieControlProtocol::send_press (Mackie::Button&) 
+{
+       return none;
+}
+Mackie::LedState 
+MackieControlProtocol::send_release (Mackie::Button&) 
+{
+       return none;
+}
+Mackie::LedState 
+MackieControlProtocol::miditracks_press (Mackie::Button&) 
+{
+       return none;
+}
+Mackie::LedState 
+MackieControlProtocol::miditracks_release (Mackie::Button&) 
+{
+       return none;
+}
+Mackie::LedState 
+MackieControlProtocol::inputs_press (Mackie::Button&) 
+{
+       return none;
+}
+Mackie::LedState 
+MackieControlProtocol::inputs_release (Mackie::Button&) 
+{
+       return none;
+}
+Mackie::LedState 
+MackieControlProtocol::audiotracks_press (Mackie::Button&) 
+{
+       return none;
+}
+Mackie::LedState 
+MackieControlProtocol::audiotracks_release (Mackie::Button&) 
+{
+       return none;
+}
+Mackie::LedState 
+MackieControlProtocol::audioinstruments_press (Mackie::Button&) 
+{
+       return none;
+}
+Mackie::LedState 
+MackieControlProtocol::audioinstruments_release (Mackie::Button&) 
+{
+       return none;
+}
+Mackie::LedState 
+MackieControlProtocol::aux_press (Mackie::Button&) 
+{
+       return none;
+}
+Mackie::LedState 
+MackieControlProtocol::aux_release (Mackie::Button&) 
+{
+       return none;
+}
+Mackie::LedState 
+MackieControlProtocol::busses_press (Mackie::Button&) 
+{
+       return none;
+}
+Mackie::LedState 
+MackieControlProtocol::busses_release (Mackie::Button&) 
+{
+       return none;
+}
+Mackie::LedState 
+MackieControlProtocol::outputs_press (Mackie::Button&) 
+{
+       return none;
+}
+Mackie::LedState 
+MackieControlProtocol::outputs_release (Mackie::Button&) 
+{
+       return none;
+}
+Mackie::LedState 
+MackieControlProtocol::user_press (Mackie::Button&) 
+{
+       return none;
+}
+Mackie::LedState 
+MackieControlProtocol::user_release (Mackie::Button&) 
+{
+       return none;
+}
+Mackie::LedState 
+MackieControlProtocol::trim_press (Mackie::Button&) 
+{
+       return none;
+}
+Mackie::LedState 
+MackieControlProtocol::trim_release (Mackie::Button&) 
+{
+       return none;
+}
+Mackie::LedState 
+MackieControlProtocol::latch_press (Mackie::Button&) 
+{
+       return none;
+}
+Mackie::LedState 
+MackieControlProtocol::latch_release (Mackie::Button&) 
+{
+       return none;
+}
+Mackie::LedState 
+MackieControlProtocol::grp_press (Mackie::Button&) 
+{
+       return none;
+}
+Mackie::LedState 
+MackieControlProtocol::grp_release (Mackie::Button&) 
+{
+       return none;
+}
+Mackie::LedState 
+MackieControlProtocol::nudge_press (Mackie::Button&) 
+{
+       return none;
+}
+Mackie::LedState 
+MackieControlProtocol::nudge_release (Mackie::Button&) 
+{
+       return none;
+}
+Mackie::LedState 
+MackieControlProtocol::replace_press (Mackie::Button&) 
+{
+       return none;
+}
+Mackie::LedState 
+MackieControlProtocol::replace_release (Mackie::Button&) 
+{
+       return none;
+}
+Mackie::LedState 
+MackieControlProtocol::click_press (Mackie::Button&) 
+{
+       return none;
+}
+Mackie::LedState 
+MackieControlProtocol::click_release (Mackie::Button&) 
+{
+       return none;
+}
+Mackie::LedState 
+MackieControlProtocol::view_press (Mackie::Button&) 
+{
+       return none;
+}
+Mackie::LedState 
+MackieControlProtocol::view_release (Mackie::Button&) 
+{
+       return none;
+}