+Mackie::LedState
+MackieControlProtocol::replace_press (Mackie::Button&)
+{
+ if (main_modifier_state() == MODIFIER_SHIFT) {
+ toggle_punch_out();
+ return none;
+ } else {
+ access_action ("Common/finish-range-from-playhead");
+ }
+ return none;
+}
+Mackie::LedState
+MackieControlProtocol::replace_release (Mackie::Button&)
+{
+ return none;
+}
+Mackie::LedState
+MackieControlProtocol::click_press (Mackie::Button&)
+{
+ if (main_modifier_state() & MODIFIER_SHIFT) {
+ access_action ("Common/set-punch-from-edit-range");
+ return off;
+ } else {
+ bool state = !Config->get_clicking();
+ Config->set_clicking (state);
+ return state;
+ }
+}
+Mackie::LedState
+MackieControlProtocol::click_release (Mackie::Button&)
+{
+ return none;
+}
+Mackie::LedState
+MackieControlProtocol::view_press (Mackie::Button&)
+{
+ set_view_mode (Mixer);
+ return none;
+}
+Mackie::LedState
+MackieControlProtocol::view_release (Mackie::Button&)
+{
+ return none;