+ case 0x39: // F4
+ switch (bs) {
+ case press: ls = F4_press (button); break;
+ case release: ls = F4_release (button); break;
+ case neither: break;
+ }
+ break;
+
+ case 0x3a: // F5
+ switch (bs) {
+ case press: ls = F5_press (button); break;
+ case release: ls = F5_release (button); break;
+ case neither: break;
+ }
+ break;
+
+ case 0x3b: // F6
+ switch (bs) {
+ case press: ls = F6_press (button); break;
+ case release: ls = F6_release (button); break;
+ case neither: break;
+ }
+ break;
+
+ case 0x3c: // F7
+ switch (bs) {
+ case press: ls = F7_press (button); break;
+ case release: ls = F7_release (button); break;
+ case neither: break;
+ }
+ break;
+
+ case 0x3d: // F8
+ switch (bs) {
+ case press: ls = F8_press (button); break;
+ case release: ls = F8_release (button); break;
+ case neither: break;
+ }
+ break;
+
+ case 0x3e: // F9
+ switch (bs) {
+ case press: ls = F9_press (button); break;
+ case release: ls = F9_release (button); break;
+ case neither: break;
+ }
+ break;
+
+ case 0x3f: // F10
+ switch (bs) {
+ case press: ls = F10_press (button); break;
+ case release: ls = F10_release (button); break;
+ case neither: break;
+ }
+ break;
+
+ case 0x40: // F11
+ switch (bs) {
+ case press: ls = F11_press (button); break;
+ case release: ls = F11_release (button); break;
+ case neither: break;
+ }
+ break;
+
+ case 0x41: // F12
+ switch (bs) {
+ case press: ls = F12_press (button); break;
+ case release: ls = F12_release (button); break;
+ case neither: break;
+ }
+ break;
+
+ case 0x42: // F13
+ switch (bs) {
+ case press: ls = F13_press (button); break;
+ case release: ls = F13_release (button); break;
+ case neither: break;
+ }
+ break;
+
+ case 0x43: // F14
+ switch (bs) {
+ case press: ls = F14_press (button); break;
+ case release: ls = F14_release (button); break;
+ case neither: break;
+ }
+ break;
+
+ case 0x44: // F15
+ switch (bs) {
+ case press: ls = F15_press (button); break;
+ case release: ls = F15_release (button); break;
+ case neither: break;
+ }
+ break;
+
+ case 0x45: // F16
+ switch (bs) {
+ case press: ls = F16_press (button); break;
+ case release: ls = F16_release (button); break;
+ case neither: break;
+ }
+ break;
+
+ case 0x46: // shift
+ switch (bs) {
+ case press: ls = shift_press (button); break;
+ case release: ls = shift_release (button); break;
+ case neither: break;
+ }
+ break;
+
+ case 0x47: // option
+ switch (bs) {
+ case press: ls = option_press (button); break;
+ case release: ls = option_release (button); break;
+ case neither: break;
+ }
+ break;
+
+ case Button::Ctrl:
+ switch (bs) {
+ case press: ls = control_press (button); break;
+ case release: ls = control_release (button); break;
+ case neither: break;
+ }
+ break;
+
+ case 0x49: // cmd_alt
+ switch (bs) {
+ case press: ls = cmd_alt_press (button); break;
+ case release: ls = cmd_alt_release (button); break;
+ case neither: break;
+ }
+ break;
+
+ case 0x4a: // on
+ switch (bs) {
+ case press: ls = on_press (button); break;
+ case release: ls = on_release (button); break;
+ case neither: break;
+ }
+ break;
+
+ case 0x4b: // rec_ready
+ switch (bs) {
+ case press: ls = rec_ready_press (button); break;
+ case release: ls = rec_ready_release (button); break;
+ case neither: break;
+ }
+ break;
+
+ case Button::Undo: // undo
+ switch (bs) {
+ case press: ls = undo_press (button); break;
+ case release: ls = undo_release (button); break;
+ case neither: break;
+ }
+ break;
+
+ case Button::Save:
+ switch (bs) {
+ case press: ls = save_press (button); break;
+ case release: ls = save_release (button); break;
+ case neither: break;
+ }
+ break;
+
+ case Button::Touch: // touch
+ switch (bs) {
+ case press: ls = touch_press (button); break;
+ case release: ls = touch_release (button); break;
+ case neither: break;
+ }
+ break;
+
+ case Button::Redo: // redo
+ switch (bs) {
+ case press: ls = redo_press (button); break;
+ case release: ls = redo_release (button); break;
+ case neither: break;
+ }
+ break;
+
+ case Button::Marker: // marker
+ switch (bs) {
+ case press: ls = marker_press (button); break;
+ case release: ls = marker_release (button); break;
+ case neither: break;
+ }
+ break;
+
+ case Button::Enter: // enter
+ switch (bs) {
+ case press: ls = enter_press (button); break;
+ case release: ls = enter_release (button); break;
+ case neither: break;
+ }
+ break;
+
+ case 0x52: // cancel
+ switch (bs) {
+ case press: ls = cancel_press (button); break;
+ case release: ls = cancel_release (button); break;
+ case neither: break;
+ }
+ break;
+
+ case 0x53: // mixer
+ switch (bs) {
+ case press: ls = mixer_press (button); break;
+ case release: ls = mixer_release (button); break;
+ case neither: break;
+ }
+ break;
+
+ case 0x54: // frm_left
+ switch (bs) {
+ case press: ls = frm_left_press (button); break;
+ case release: ls = frm_left_release (button); break;
+ case neither: break;
+ }
+ break;
+
+ case 0x55: // frm_right
+ switch (bs) {
+ case press: ls = frm_right_press (button); break;
+ case release: ls = frm_right_release (button); break;
+ case neither: break;
+ }
+ break;
+
+ case 0x56: // loop
+ switch (bs) {
+ case press: ls = loop_press (button); break;
+ case release: ls = loop_release (button); break;
+ case neither: break;
+ }
+ break;
+
+ case 0x57: // punch_in
+ switch (bs) {
+ case press: ls = punch_in_press (button); break;
+ case release: ls = punch_in_release (button); break;
+ case neither: break;
+ }
+ break;
+
+ case 0x58: // punch_out
+ switch (bs) {
+ case press: ls = punch_out_press (button); break;
+ case release: ls = punch_out_release (button); break;
+ case neither: break;
+ }
+ break;
+
+ case 0x59: // home
+ switch (bs) {
+ case press: ls = home_press (button); break;
+ case release: ls = home_release (button); break;
+ case neither: break;
+ }
+ break;
+
+ case 0x5a: // end
+ switch (bs) {
+ case press: ls = end_press (button); break;
+ case release: ls = end_release (button); break;
+ case neither: break;
+ }
+ break;
+
+ case Button::Rewind:
+ switch (bs) {
+ case press: ls = rewind_press (button); break;
+ case release: ls = rewind_release (button); break;
+ case neither: break;
+ }
+ break;
+
+ case Button::Ffwd:
+ switch (bs) {
+ case press: ls = ffwd_press (button); break;
+ case release: ls = ffwd_release (button); break;
+ case neither: break;
+ }
+ break;
+
+ case Button::Stop:
+ switch (bs) {
+ case press: ls = stop_press (button); break;
+ case release: ls = stop_release (button); break;
+ case neither: break;
+ }
+ break;
+
+ case Button::Play:
+ switch (bs) {
+ case press: ls = play_press (button); break;
+ case release: ls = play_release (button); break;
+ case neither: break;
+ }
+ break;
+
+ case 0x5f: // record
+ switch (bs) {
+ case press: ls = record_press (button); break;
+ case release: ls = record_release (button); break;
+ case neither: break;
+ }
+ break;
+
+ case 0x60: // cursor_up
+ switch (bs) {
+ case press: ls = cursor_up_press (button); break;
+ case release: ls = cursor_up_release (button); break;
+ case neither: break;
+ }
+ break;
+
+ case 0x61: // cursor_down
+ switch (bs) {
+ case press: ls = cursor_down_press (button); break;
+ case release: ls = cursor_down_release (button); break;
+ case neither: break;
+ }
+ break;
+
+ case 0x62: // cursor_left
+ switch (bs) {
+ case press: ls = cursor_left_press (button); break;
+ case release: ls = cursor_left_release (button); break;
+ case neither: break;
+ }
+ break;
+
+ case 0x63: // cursor_right
+ switch (bs) {
+ case press: ls = cursor_right_press (button); break;
+ case release: ls = cursor_right_release (button); break;
+ case neither: break;
+ }
+ break;
+
+ case 0x64: // zoom
+ switch (bs) {
+ case press: ls = zoom_press (button); break;
+ case release: ls = zoom_release (button); break;
+ case neither: break;
+ }
+ break;
+
+ case 0x65: // scrub
+ switch (bs) {
+ case press: ls = scrub_press (button); break;
+ case release: ls = scrub_release (button); break;
+ case neither: break;
+ }
+ break;
+
+ case 0x66: // user_a
+ switch (bs) {
+ case press: ls = user_a_press (button); break;
+ case release: ls = user_a_release (button); break;
+ case neither: break;
+ }
+ break;
+
+ case 0x67: // user_b
+ switch (bs) {
+ case press: ls = user_b_press (button); break;
+ case release: ls = user_b_release (button); break;
+ case neither: break;
+ }
+ break;