+LedState
+MackieControlProtocol::marker_release (Button &)
+{
+ return off;
+}
+
+void
+jog_wheel_state_display (JogWheel::State state, SurfacePort & port)
+{
+ switch (state)
+ {
+ case JogWheel::zoom: port.write (builder.two_char_display ("Zm")); break;
+ case JogWheel::scroll: port.write (builder.two_char_display ("Sc")); break;
+ case JogWheel::scrub: port.write (builder.two_char_display ("Sb")); break;
+ case JogWheel::shuttle: port.write (builder.two_char_display ("Sh")); break;
+ case JogWheel::speed: port.write (builder.two_char_display ("Sp")); break;
+ case JogWheel::select: port.write (builder.two_char_display ("Se")); break;
+ }
+}
+
+Mackie::LedState
+MackieControlProtocol::zoom_press (Mackie::Button &)
+{
+ _jog_wheel.zoom_state_toggle();
+ update_global_button ("scrub", _jog_wheel.jog_wheel_state() == JogWheel::scrub);
+ jog_wheel_state_display (_jog_wheel.jog_wheel_state(), mcu_port());
+ return _jog_wheel.jog_wheel_state() == JogWheel::zoom;
+}
+
+Mackie::LedState
+MackieControlProtocol::zoom_release (Mackie::Button &)
+{
+ return _jog_wheel.jog_wheel_state() == JogWheel::zoom;
+}
+
+Mackie::LedState
+MackieControlProtocol::scrub_press (Mackie::Button &)
+{
+ _jog_wheel.scrub_state_cycle();
+ update_global_button ("zoom", _jog_wheel.jog_wheel_state() == JogWheel::zoom);
+ jog_wheel_state_display (_jog_wheel.jog_wheel_state(), mcu_port());
+ return
+ _jog_wheel.jog_wheel_state() == JogWheel::scrub
+ ||
+ _jog_wheel.jog_wheel_state() == JogWheel::shuttle
+ ;
+}
+
+Mackie::LedState
+MackieControlProtocol::scrub_release (Mackie::Button &)
+{
+ return
+ _jog_wheel.jog_wheel_state() == JogWheel::scrub
+ ||
+ _jog_wheel.jog_wheel_state() == JogWheel::shuttle
+ ;
+}
+
+LedState
+MackieControlProtocol::drop_press (Button &)
+{
+ session->remove_last_capture();
+ return on;
+}
+
+LedState
+MackieControlProtocol::drop_release (Button &)
+{
+ return off;
+}
+
+LedState
+MackieControlProtocol::save_press (Button &)
+{
+ session->save_state ("");
+ return on;
+}
+
+LedState
+MackieControlProtocol::save_release (Button &)