From 67aa45f75ff33e137526cc75ce141cbb225c279d Mon Sep 17 00:00:00 2001 From: hathach Date: Thu, 25 Apr 2019 21:41:21 +0700 Subject: remove CFG_TUD_HID_ASCII_TO_KEYCODE_LOOKUP --- src/class/hid/hid_device.c | 152 ----------------------------------------- src/class/hid/hid_device.h | 164 ++++++++++++++++++++++++++++++++++++++++----- 2 files changed, 149 insertions(+), 167 deletions(-) (limited to 'src/class/hid') diff --git a/src/class/hid/hid_device.c b/src/class/hid/hid_device.c index 38ad99a35..78def53f0 100644 --- a/src/class/hid/hid_device.c +++ b/src/class/hid/hid_device.c @@ -129,19 +129,6 @@ bool tud_hid_keyboard_report(uint8_t report_id, uint8_t modifier, uint8_t keycod return tud_hid_report(report_id, &report, sizeof(report)); } -#if CFG_TUD_HID_ASCII_TO_KEYCODE_LOOKUP -bool tud_hid_keyboard_key_press(uint8_t report_id, char ch) -{ - uint8_t keycode[6] = { 0 }; - uint8_t modifier = 0; - - if ( HID_ASCII_TO_KEYCODE[(uint8_t)ch].shift ) modifier = KEYBOARD_MODIFIER_LEFTSHIFT; - keycode[0] = HID_ASCII_TO_KEYCODE[(uint8_t)ch].keycode; - - return tud_hid_keyboard_report(report_id, modifier, keycode); -} -#endif // CFG_TUD_HID_ASCII_TO_KEYCODE_LOOKUP - //--------------------------------------------------------------------+ // MOUSE APPLICATION API //--------------------------------------------------------------------+ @@ -337,143 +324,4 @@ bool hidd_xfer_cb(uint8_t rhport, uint8_t ep_addr, xfer_result_t event, uint32_t return true; } - -//------------- Ascii to Keycode Lookup -------------// -#if CFG_TUD_HID_ASCII_TO_KEYCODE_LOOKUP -const hid_ascii_to_keycode_entry_t HID_ASCII_TO_KEYCODE[128] = -{ - {0, 0 }, // 0x00 Null - {0, 0 }, // 0x01 - {0, 0 }, // 0x02 - {0, 0 }, // 0x03 - {0, 0 }, // 0x04 - {0, 0 }, // 0x05 - {0, 0 }, // 0x06 - {0, 0 }, // 0x07 - {0, HID_KEY_BACKSPACE }, // 0x08 Backspace - {0, HID_KEY_TAB }, // 0x09 Horizontal Tab - {0, HID_KEY_RETURN }, // 0x0A Line Feed - {0, 0 }, // 0x0B - {0, 0 }, // 0x0C - {0, HID_KEY_RETURN }, // 0x0D Carriage return - {0, 0 }, // 0x0E - {0, 0 }, // 0x0F - {0, 0 }, // 0x10 - {0, 0 }, // 0x11 - {0, 0 }, // 0x12 - {0, 0 }, // 0x13 - {0, 0 }, // 0x14 - {0, 0 }, // 0x15 - {0, 0 }, // 0x16 - {0, 0 }, // 0x17 - {0, 0 }, // 0x18 - {0, 0 }, // 0x19 - {0, 0 }, // 0x1A - {0, HID_KEY_ESCAPE }, // 0x1B Escape - {0, 0 }, // 0x1C - {0, 0 }, // 0x1D - {0, 0 }, // 0x1E - {0, 0 }, // 0x1F - - {0, HID_KEY_SPACE }, // 0x20 - {1, HID_KEY_1 }, // 0x21 ! - {1, HID_KEY_APOSTROPHE }, // 0x22 " - {1, HID_KEY_3 }, // 0x23 # - {1, HID_KEY_4 }, // 0x24 $ - {1, HID_KEY_5 }, // 0x25 % - {1, HID_KEY_7 }, // 0x26 & - {0, HID_KEY_APOSTROPHE }, // 0x27 ' - {1, HID_KEY_9 }, // 0x28 ( - {1, HID_KEY_0 }, // 0x29 ) - {1, HID_KEY_8 }, // 0x2A * - {1, HID_KEY_EQUAL }, // 0x2B + - {0, HID_KEY_COMMA }, // 0x2C , - {0, HID_KEY_MINUS }, // 0x2D - - {0, HID_KEY_PERIOD }, // 0x2E . - {0, HID_KEY_SLASH }, // 0x2F / - {0, HID_KEY_0 }, // 0x30 0 - {0, HID_KEY_1 }, // 0x31 1 - {0, HID_KEY_2 }, // 0x32 2 - {0, HID_KEY_3 }, // 0x33 3 - {0, HID_KEY_4 }, // 0x34 4 - {0, HID_KEY_5 }, // 0x35 5 - {0, HID_KEY_6 }, // 0x36 6 - {0, HID_KEY_7 }, // 0x37 7 - {0, HID_KEY_8 }, // 0x38 8 - {0, HID_KEY_9 }, // 0x39 9 - {1, HID_KEY_SEMICOLON }, // 0x3A : - {0, HID_KEY_SEMICOLON }, // 0x3B ; - {1, HID_KEY_COMMA }, // 0x3C < - {0, HID_KEY_EQUAL }, // 0x3D = - {1, HID_KEY_PERIOD }, // 0x3E > - {1, HID_KEY_SLASH }, // 0x3F ? - - {1, HID_KEY_2 }, // 0x40 @ - {1, HID_KEY_A }, // 0x41 A - {1, HID_KEY_B }, // 0x42 B - {1, HID_KEY_C }, // 0x43 C - {1, HID_KEY_D }, // 0x44 D - {1, HID_KEY_E }, // 0x45 E - {1, HID_KEY_F }, // 0x46 F - {1, HID_KEY_G }, // 0x47 G - {1, HID_KEY_H }, // 0x48 H - {1, HID_KEY_I }, // 0x49 I - {1, HID_KEY_J }, // 0x4A J - {1, HID_KEY_K }, // 0x4B K - {1, HID_KEY_L }, // 0x4C L - {1, HID_KEY_M }, // 0x4D M - {1, HID_KEY_N }, // 0x4E N - {1, HID_KEY_O }, // 0x4F O - {1, HID_KEY_P }, // 0x50 P - {1, HID_KEY_Q }, // 0x51 Q - {1, HID_KEY_R }, // 0x52 R - {1, HID_KEY_S }, // 0x53 S - {1, HID_KEY_T }, // 0x55 T - {1, HID_KEY_U }, // 0x55 U - {1, HID_KEY_V }, // 0x56 V - {1, HID_KEY_W }, // 0x57 W - {1, HID_KEY_X }, // 0x58 X - {1, HID_KEY_Y }, // 0x59 Y - {1, HID_KEY_Z }, // 0x5A Z - {0, HID_KEY_BRACKET_LEFT }, // 0x5B [ - {0, HID_KEY_BACKSLASH }, // 0x5C '\' - {0, HID_KEY_BRACKET_RIGHT }, // 0x5D ] - {1, HID_KEY_6 }, // 0x5E ^ - {1, HID_KEY_MINUS }, // 0x5F _ - - {0, HID_KEY_GRAVE }, // 0x60 ` - {0, HID_KEY_A }, // 0x61 a - {0, HID_KEY_B }, // 0x62 b - {0, HID_KEY_C }, // 0x63 c - {0, HID_KEY_D }, // 0x66 d - {0, HID_KEY_E }, // 0x65 e - {0, HID_KEY_F }, // 0x66 f - {0, HID_KEY_G }, // 0x67 g - {0, HID_KEY_H }, // 0x68 h - {0, HID_KEY_I }, // 0x69 i - {0, HID_KEY_J }, // 0x6A j - {0, HID_KEY_K }, // 0x6B k - {0, HID_KEY_L }, // 0x6C l - {0, HID_KEY_M }, // 0x6D m - {0, HID_KEY_N }, // 0x6E n - {0, HID_KEY_O }, // 0x6F o - {0, HID_KEY_P }, // 0x70 p - {0, HID_KEY_Q }, // 0x71 q - {0, HID_KEY_R }, // 0x72 r - {0, HID_KEY_S }, // 0x73 s - {0, HID_KEY_T }, // 0x75 t - {0, HID_KEY_U }, // 0x75 u - {0, HID_KEY_V }, // 0x76 v - {0, HID_KEY_W }, // 0x77 w - {0, HID_KEY_X }, // 0x78 x - {0, HID_KEY_Y }, // 0x79 y - {0, HID_KEY_Z }, // 0x7A z - {1, HID_KEY_BRACKET_LEFT }, // 0x7B { - {1, HID_KEY_BACKSLASH }, // 0x7C | - {1, HID_KEY_BRACKET_RIGHT }, // 0x7D } - {1, HID_KEY_GRAVE }, // 0x7E ~ - {0, HID_KEY_DELETE } // 0x7F Delete -}; -#endif // CFG_TUD_HID_ASCII_TO_KEYCODE_LOOKUP - #endif diff --git a/src/class/hid/hid_device.h b/src/class/hid/hid_device.h index f72be61e2..13a213277 100644 --- a/src/class/hid/hid_device.h +++ b/src/class/hid/hid_device.h @@ -38,9 +38,7 @@ //--------------------------------------------------------------------+ // Class Driver Default Configure & Validation //--------------------------------------------------------------------+ -#ifndef CFG_TUD_HID_ASCII_TO_KEYCODE_LOOKUP -#define CFG_TUD_HID_ASCII_TO_KEYCODE_LOOKUP 0 -#endif + //--------------------------------------------------------------------+ // Application API @@ -81,16 +79,6 @@ static inline bool tud_hid_keyboard_key_release(uint8_t report_id) return tud_hid_keyboard_report(report_id, 0, NULL); } -#if CFG_TUD_HID_ASCII_TO_KEYCODE_LOOKUP -bool tud_hid_keyboard_key_press(uint8_t report_id, char ch); - -typedef struct{ - uint8_t shift; - uint8_t keycode; -}hid_ascii_to_keycode_entry_t; -extern const hid_ascii_to_keycode_entry_t HID_ASCII_TO_KEYCODE[128]; -#endif - //--------------------------------------------------------------------+ // MOUSE API // Convenient helper to send mouse report if application use standard/boot @@ -281,8 +269,154 @@ static inline bool tud_hid_mouse_button_release(uint8_t report_id) HID_INPUT ( HID_DATA | HID_VARIABLE | HID_ABSOLUTE ) ,\ HID_COLLECTION_END \ -/** @} */ -/** @} */ +/*-------------------------------------------------------------------- + * ASCII to KEYCODE Conversion + * Expand to array of [128][2] (shift, keycode) + * + * Usage: example to convert input char into keyboard report (modifier + keycode) + * + * uint8_t const conv_table[128][2] = { HID_ASCII_TO_KEYCODE }; + * + * uint8_t keycode[6] = { 0 }; + * uint8_t modifier = 0; + * + * if ( conv_table[chr][0] ) modifier = KEYBOARD_MODIFIER_LEFTSHIFT; + * keycode[0] = conv_table[chr][1]; + * tud_hid_keyboard_report(report_id, modifier, keycode); + * + *--------------------------------------------------------------------*/ +#define HID_ASCII_TO_KEYCODE \ + {0, 0 }, /* 0x00 Null */ \ + {0, 0 }, /* 0x01 */ \ + {0, 0 }, /* 0x02 */ \ + {0, 0 }, /* 0x03 */ \ + {0, 0 }, /* 0x04 */ \ + {0, 0 }, /* 0x05 */ \ + {0, 0 }, /* 0x06 */ \ + {0, 0 }, /* 0x07 */ \ + {0, HID_KEY_BACKSPACE }, /* 0x08 Backspace */ \ + {0, HID_KEY_TAB }, /* 0x09 Tab */ \ + {0, HID_KEY_RETURN }, /* 0x0A Line Feed */ \ + {0, 0 }, /* 0x0B */ \ + {0, 0 }, /* 0x0C */ \ + {0, HID_KEY_RETURN }, /* 0x0D CR */ \ + {0, 0 }, /* 0x0E */ \ + {0, 0 }, /* 0x0F */ \ + {0, 0 }, /* 0x10 */ \ + {0, 0 }, /* 0x11 */ \ + {0, 0 }, /* 0x12 */ \ + {0, 0 }, /* 0x13 */ \ + {0, 0 }, /* 0x14 */ \ + {0, 0 }, /* 0x15 */ \ + {0, 0 }, /* 0x16 */ \ + {0, 0 }, /* 0x17 */ \ + {0, 0 }, /* 0x18 */ \ + {0, 0 }, /* 0x19 */ \ + {0, 0 }, /* 0x1A */ \ + {0, HID_KEY_ESCAPE }, /* 0x1B Escape */ \ + {0, 0 }, /* 0x1C */ \ + {0, 0 }, /* 0x1D */ \ + {0, 0 }, /* 0x1E */ \ + {0, 0 }, /* 0x1F */ \ + \ + {0, HID_KEY_SPACE }, /* 0x20 */ \ + {1, HID_KEY_1 }, /* 0x21 ! */ \ + {1, HID_KEY_APOSTROPHE }, /* 0x22 " */ \ + {1, HID_KEY_3 }, /* 0x23 # */ \ + {1, HID_KEY_4 }, /* 0x24 $ */ \ + {1, HID_KEY_5 }, /* 0x25 % */ \ + {1, HID_KEY_7 }, /* 0x26 & */ \ + {0, HID_KEY_APOSTROPHE }, /* 0x27 ' */ \ + {1, HID_KEY_9 }, /* 0x28 ( */ \ + {1, HID_KEY_0 }, /* 0x29 ) */ \ + {1, HID_KEY_8 }, /* 0x2A * */ \ + {1, HID_KEY_EQUAL }, /* 0x2B + */ \ + {0, HID_KEY_COMMA }, /* 0x2C , */ \ + {0, HID_KEY_MINUS }, /* 0x2D - */ \ + {0, HID_KEY_PERIOD }, /* 0x2E . */ \ + {0, HID_KEY_SLASH }, /* 0x2F / */ \ + {0, HID_KEY_0 }, /* 0x30 0 */ \ + {0, HID_KEY_1 }, /* 0x31 1 */ \ + {0, HID_KEY_2 }, /* 0x32 2 */ \ + {0, HID_KEY_3 }, /* 0x33 3 */ \ + {0, HID_KEY_4 }, /* 0x34 4 */ \ + {0, HID_KEY_5 }, /* 0x35 5 */ \ + {0, HID_KEY_6 }, /* 0x36 6 */ \ + {0, HID_KEY_7 }, /* 0x37 7 */ \ + {0, HID_KEY_8 }, /* 0x38 8 */ \ + {0, HID_KEY_9 }, /* 0x39 9 */ \ + {1, HID_KEY_SEMICOLON }, /* 0x3A : */ \ + {0, HID_KEY_SEMICOLON }, /* 0x3B ; */ \ + {1, HID_KEY_COMMA }, /* 0x3C < */ \ + {0, HID_KEY_EQUAL }, /* 0x3D = */ \ + {1, HID_KEY_PERIOD }, /* 0x3E > */ \ + {1, HID_KEY_SLASH }, /* 0x3F ? */ \ + \ + {1, HID_KEY_2 }, /* 0x40 @ */ \ + {1, HID_KEY_A }, /* 0x41 A */ \ + {1, HID_KEY_B }, /* 0x42 B */ \ + {1, HID_KEY_C }, /* 0x43 C */ \ + {1, HID_KEY_D }, /* 0x44 D */ \ + {1, HID_KEY_E }, /* 0x45 E */ \ + {1, HID_KEY_F }, /* 0x46 F */ \ + {1, HID_KEY_G }, /* 0x47 G */ \ + {1, HID_KEY_H }, /* 0x48 H */ \ + {1, HID_KEY_I }, /* 0x49 I */ \ + {1, HID_KEY_J }, /* 0x4A J */ \ + {1, HID_KEY_K }, /* 0x4B K */ \ + {1, HID_KEY_L }, /* 0x4C L */ \ + {1, HID_KEY_M }, /* 0x4D M */ \ + {1, HID_KEY_N }, /* 0x4E N */ \ + {1, HID_KEY_O }, /* 0x4F O */ \ + {1, HID_KEY_P }, /* 0x50 P */ \ + {1, HID_KEY_Q }, /* 0x51 Q */ \ + {1, HID_KEY_R }, /* 0x52 R */ \ + {1, HID_KEY_S }, /* 0x53 S */ \ + {1, HID_KEY_T }, /* 0x55 T */ \ + {1, HID_KEY_U }, /* 0x55 U */ \ + {1, HID_KEY_V }, /* 0x56 V */ \ + {1, HID_KEY_W }, /* 0x57 W */ \ + {1, HID_KEY_X }, /* 0x58 X */ \ + {1, HID_KEY_Y }, /* 0x59 Y */ \ + {1, HID_KEY_Z }, /* 0x5A Z */ \ + {0, HID_KEY_BRACKET_LEFT }, /* 0x5B [ */ \ + {0, HID_KEY_BACKSLASH }, /* 0x5C '\' */ \ + {0, HID_KEY_BRACKET_RIGHT }, /* 0x5D ] */ \ + {1, HID_KEY_6 }, /* 0x5E ^ */ \ + {1, HID_KEY_MINUS }, /* 0x5F _ */ \ + \ + {0, HID_KEY_GRAVE }, /* 0x60 ` */ \ + {0, HID_KEY_A }, /* 0x61 a */ \ + {0, HID_KEY_B }, /* 0x62 b */ \ + {0, HID_KEY_C }, /* 0x63 c */ \ + {0, HID_KEY_D }, /* 0x66 d */ \ + {0, HID_KEY_E }, /* 0x65 e */ \ + {0, HID_KEY_F }, /* 0x66 f */ \ + {0, HID_KEY_G }, /* 0x67 g */ \ + {0, HID_KEY_H }, /* 0x68 h */ \ + {0, HID_KEY_I }, /* 0x69 i */ \ + {0, HID_KEY_J }, /* 0x6A j */ \ + {0, HID_KEY_K }, /* 0x6B k */ \ + {0, HID_KEY_L }, /* 0x6C l */ \ + {0, HID_KEY_M }, /* 0x6D m */ \ + {0, HID_KEY_N }, /* 0x6E n */ \ + {0, HID_KEY_O }, /* 0x6F o */ \ + {0, HID_KEY_P }, /* 0x70 p */ \ + {0, HID_KEY_Q }, /* 0x71 q */ \ + {0, HID_KEY_R }, /* 0x72 r */ \ + {0, HID_KEY_S }, /* 0x73 s */ \ + {0, HID_KEY_T }, /* 0x75 t */ \ + {0, HID_KEY_U }, /* 0x75 u */ \ + {0, HID_KEY_V }, /* 0x76 v */ \ + {0, HID_KEY_W }, /* 0x77 w */ \ + {0, HID_KEY_X }, /* 0x78 x */ \ + {0, HID_KEY_Y }, /* 0x79 y */ \ + {0, HID_KEY_Z }, /* 0x7A z */ \ + {1, HID_KEY_BRACKET_LEFT }, /* 0x7B { */ \ + {1, HID_KEY_BACKSLASH }, /* 0x7C | */ \ + {1, HID_KEY_BRACKET_RIGHT }, /* 0x7D } */ \ + {1, HID_KEY_GRAVE }, /* 0x7E ~ */ \ + {0, HID_KEY_DELETE } /* 0x7F Delete */ \ //--------------------------------------------------------------------+ // Internal Class Driver API -- cgit v1.3.1