diff options
| author | hathach <[email protected]> | 2019-04-25 21:41:21 +0700 |
|---|---|---|
| committer | hathach <[email protected]> | 2019-04-25 21:41:21 +0700 |
| commit | 67aa45f75ff33e137526cc75ce141cbb225c279d (patch) | |
| tree | 7476c3cbedfc461ae373fa793a68c297f8796358 /src/class/hid | |
| parent | ff8fe28c985f3059bbd0633a0f778dd6b9f5a9d1 (diff) | |
remove CFG_TUD_HID_ASCII_TO_KEYCODE_LOOKUP
Diffstat (limited to 'src/class/hid')
| -rw-r--r-- | src/class/hid/hid_device.c | 152 | ||||
| -rw-r--r-- | src/class/hid/hid_device.h | 164 |
2 files changed, 149 insertions, 167 deletions
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
|
