From 08fb988e87b2d41830b390bae94810c4937675b5 Mon Sep 17 00:00:00 2001 From: Frank Gevaerts Date: Sat, 23 May 2009 14:42:54 +0000 Subject: Add HID keymap handling in usb screen. This allows to use the DAP as a keypad to control the PC. The current keymaps are audio-oriented (play/pause/volume/...) (FS#10218 by Tomer Shalev) git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21054 a1c6a512-1295-4272-9138-f99709370657 --- apps/keymaps/keymap-h10.c | 63 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) (limited to 'apps/keymaps/keymap-h10.c') diff --git a/apps/keymaps/keymap-h10.c b/apps/keymaps/keymap-h10.c index 9afca4e61c..77247d35d8 100644 --- a/apps/keymaps/keymap-h10.c +++ b/apps/keymaps/keymap-h10.c @@ -332,6 +332,61 @@ static const struct button_mapping button_context_radio[] = { }; + + + + + +static const struct button_mapping remote_button_context_wps[] = { + { ACTION_WPS_PLAY, BUTTON_RC_PLAY|BUTTON_REL, BUTTON_RC_PLAY }, + { ACTION_WPS_STOP, BUTTON_RC_PLAY|BUTTON_REPEAT,BUTTON_RC_PLAY }, + { ACTION_WPS_SKIPPREV, BUTTON_RC_REW|BUTTON_REL, BUTTON_RC_REW}, + { ACTION_WPS_SEEKBACK, BUTTON_RC_REW|BUTTON_REPEAT, BUTTON_NONE }, + { ACTION_WPS_STOPSEEK, BUTTON_RC_REW|BUTTON_REL, BUTTON_RC_REW|BUTTON_REPEAT }, + { ACTION_WPS_SKIPNEXT, BUTTON_RC_FF|BUTTON_REL, BUTTON_RC_FF }, + { ACTION_WPS_SEEKFWD, BUTTON_RC_FF|BUTTON_REPEAT, BUTTON_NONE }, + { ACTION_WPS_STOPSEEK, BUTTON_RC_FF|BUTTON_REL, BUTTON_RC_FF|BUTTON_REPEAT }, + + { ACTION_WPS_VOLDOWN, BUTTON_RC_VOL_DOWN, BUTTON_NONE }, + { ACTION_WPS_VOLDOWN, BUTTON_RC_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE }, + { ACTION_WPS_VOLUP, BUTTON_RC_VOL_UP, BUTTON_NONE }, + { ACTION_WPS_VOLUP, BUTTON_RC_VOL_UP|BUTTON_REPEAT, BUTTON_NONE }, + + { ACTION_WPS_PITCHSCREEN, BUTTON_RC_PLAY|BUTTON_LEFT, BUTTON_RC_PLAY }, + { ACTION_WPS_ID3SCREEN, BUTTON_RC_PLAY|BUTTON_RIGHT, BUTTON_RC_PLAY }, + + LAST_ITEM_IN_LIST +}; /* remote_button_context_wps */ + +#ifdef HAVE_USBSTACK +static const struct button_mapping button_context_usb_hid[] = { + { ACTION_USB_HID_PLAY, BUTTON_PLAY, BUTTON_NONE }, + { ACTION_USB_HID_STOP, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_NONE }, + { ACTION_USB_HID_SKIPPREV, BUTTON_REW, BUTTON_NONE }, + { ACTION_USB_HID_SKIPNEXT, BUTTON_FF, BUTTON_NONE }, + { ACTION_USB_HID_VOLUP, BUTTON_SCROLL_UP, BUTTON_NONE }, + { ACTION_USB_HID_VOLUP, BUTTON_SCROLL_UP|BUTTON_REPEAT, BUTTON_NONE }, + { ACTION_USB_HID_VOLDOWN, BUTTON_SCROLL_DOWN, BUTTON_NONE }, + { ACTION_USB_HID_VOLDOWN, BUTTON_SCROLL_DOWN|BUTTON_REPEAT, BUTTON_NONE }, + { ACTION_USB_HID_MENU, BUTTON_POWER, BUTTON_NONE }, + + LAST_ITEM_IN_LIST +}; /* button_context_usb_hid */ + +static const struct button_mapping remote_button_context_usb_hid[] = { + { ACTION_USB_HID_PLAY, BUTTON_RC_PLAY, BUTTON_NONE }, + { ACTION_USB_HID_STOP, BUTTON_RC_PLAY|BUTTON_REPEAT, BUTTON_NONE }, + { ACTION_USB_HID_SKIPPREV, BUTTON_RC_REW, BUTTON_NONE }, + { ACTION_USB_HID_SKIPNEXT, BUTTON_RC_FF, BUTTON_NONE }, + { ACTION_USB_HID_VOLUP, BUTTON_RC_SCROLL_UP, BUTTON_NONE }, + { ACTION_USB_HID_VOLUP, BUTTON_RC_SCROLL_UP|BUTTON_REPEAT, BUTTON_NONE }, + { ACTION_USB_HID_VOLDOWN, BUTTON_RC_SCROLL_DOWN, BUTTON_NONE }, + { ACTION_USB_HID_VOLDOWN, BUTTON_RC_SCROLL_DOWN|BUTTON_REPEAT, BUTTON_NONE }, + + LAST_ITEM_IN_LIST +}; /* remote_button_context_usb_hid */ +#endif + static const struct button_mapping* get_context_mapping_remote( int context ) { context ^= CONTEXT_REMOTE; @@ -361,6 +416,10 @@ static const struct button_mapping* get_context_mapping_remote( int context ) return remote_button_context_pitchscreen; case CONTEXT_RECSCREEN: return button_context_recscreen; +#ifdef HAVE_USBSTACK + case CONTEXT_USB_HID: + return remote_button_context_usb_hid; +#endif default: return remote_button_context_standard; @@ -415,6 +474,10 @@ const struct button_mapping* get_context_mapping(int context) return button_context_recscreen; case CONTEXT_FM: return button_context_radio; +#ifdef HAVE_USBSTACK + case CONTEXT_USB_HID: + return button_context_usb_hid; +#endif default: return button_context_standard; } -- cgit v1.2.3