Premiere version 0.1
This commit is contained in:
		
							parent
							
								
									e9c05eeae1
								
							
						
					
					
						commit
						5946f3951a
					
				|  | @ -0,0 +1,270 @@ | |||
| #pragma once | ||||
| #include "hid_usage_desktop.h" | ||||
| #include "hid_usage_button.h" | ||||
| #include "hid_usage_keyboard.h" | ||||
| #include "hid_usage_consumer.h" | ||||
| #include "hid_usage_led.h" | ||||
| 
 | ||||
| #ifdef __cplusplus | ||||
| extern "C" { | ||||
| #endif | ||||
| 
 | ||||
| #define HID_MANUF_PRODUCT_NAME_LEN 32 | ||||
| 
 | ||||
| #define HID_VID_DEFAULT 0x046D | ||||
| #define HID_PID_DEFAULT 0xC529 | ||||
| 
 | ||||
| /** Max number of simultaneously pressed keys (keyboard) */ | ||||
| #define HID_KB_MAX_KEYS 6 | ||||
| /** Max number of simultaneously pressed keys (consumer control) */ | ||||
| #define HID_CONSUMER_MAX_KEYS 2 | ||||
| 
 | ||||
| #define HID_KEYBOARD_NONE 0x00 | ||||
| 
 | ||||
| /** HID keyboard modifier keys */ | ||||
| enum HidKeyboardMods { | ||||
|     KEY_MOD_LEFT_CTRL = (1 << 8), | ||||
|     KEY_MOD_LEFT_SHIFT = (1 << 9), | ||||
|     KEY_MOD_LEFT_ALT = (1 << 10), | ||||
|     KEY_MOD_LEFT_GUI = (1 << 11), | ||||
|     KEY_MOD_RIGHT_CTRL = (1 << 12), | ||||
|     KEY_MOD_RIGHT_SHIFT = (1 << 13), | ||||
|     KEY_MOD_RIGHT_ALT = (1 << 14), | ||||
|     KEY_MOD_RIGHT_GUI = (1 << 15), | ||||
| }; | ||||
| 
 | ||||
| /** ASCII to keycode conversion table */ | ||||
| static const uint16_t hid_asciimap[] = { | ||||
|     HID_KEYBOARD_NONE, // NUL
 | ||||
|     HID_KEYBOARD_NONE, // SOH
 | ||||
|     HID_KEYBOARD_NONE, // STX
 | ||||
|     HID_KEYBOARD_NONE, // ETX
 | ||||
|     HID_KEYBOARD_NONE, // EOT
 | ||||
|     HID_KEYBOARD_NONE, // ENQ
 | ||||
|     HID_KEYBOARD_NONE, // ACK
 | ||||
|     HID_KEYBOARD_NONE, // BEL
 | ||||
|     HID_KEYBOARD_DELETE, // BS   Backspace
 | ||||
|     HID_KEYBOARD_TAB, // TAB  Tab
 | ||||
|     HID_KEYBOARD_RETURN, // LF   Enter
 | ||||
|     HID_KEYBOARD_NONE, // VT
 | ||||
|     HID_KEYBOARD_NONE, // FF
 | ||||
|     HID_KEYBOARD_NONE, // CR
 | ||||
|     HID_KEYBOARD_NONE, // SO
 | ||||
|     HID_KEYBOARD_NONE, // SI
 | ||||
|     HID_KEYBOARD_NONE, // DEL
 | ||||
|     HID_KEYBOARD_NONE, // DC1
 | ||||
|     HID_KEYBOARD_NONE, // DC2
 | ||||
|     HID_KEYBOARD_NONE, // DC3
 | ||||
|     HID_KEYBOARD_NONE, // DC4
 | ||||
|     HID_KEYBOARD_NONE, // NAK
 | ||||
|     HID_KEYBOARD_NONE, // SYN
 | ||||
|     HID_KEYBOARD_NONE, // ETB
 | ||||
|     HID_KEYBOARD_NONE, // CAN
 | ||||
|     HID_KEYBOARD_NONE, // EM
 | ||||
|     HID_KEYBOARD_NONE, // SUB
 | ||||
|     HID_KEYBOARD_NONE, // ESC
 | ||||
|     HID_KEYBOARD_NONE, // FS
 | ||||
|     HID_KEYBOARD_NONE, // GS
 | ||||
|     HID_KEYBOARD_NONE, // RS
 | ||||
|     HID_KEYBOARD_NONE, // US
 | ||||
|     HID_KEYBOARD_SPACEBAR, // ' ' Space
 | ||||
|     HID_KEYBOARD_FR_EXCLAMATION, // !
 | ||||
|     HID_KEYBOARD_FR_DOUBLE_QUOTE, // "
 | ||||
|     HID_KEYBOARD_FR_DIESE | KEY_MOD_RIGHT_ALT, // #
 | ||||
|     HID_KEYBOARD_FR_DOLLARS, // $
 | ||||
|     HID_KEYBOARD_FR_POURCENTAGE | KEY_MOD_LEFT_SHIFT, // %
 | ||||
|     HID_KEYBOARD_FR_ET_COMMERCIAL, // &
 | ||||
|     HID_KEYBOARD_FR_SIMPLE_QUOTE, // '
 | ||||
|     HID_KEYBOARD_FR_PAREN_OUVRANTE, // (
 | ||||
|     HID_KEYBOARD_FR_PAREN_FERMANTE, // )
 | ||||
|     HID_KEYBOARD_FR_ETOILE, // *
 | ||||
|     HID_KEYBOARD_FR_PLUS | KEY_MOD_LEFT_SHIFT, // +
 | ||||
|     HID_KEYBOARD_FR_VIRGULE, // ,
 | ||||
|     HID_KEYBOARD_FR_TIRET, // -
 | ||||
|     HID_KEYBOARD_FR_POINT | KEY_MOD_LEFT_SHIFT, // .
 | ||||
|     HID_KEYBOARD_FR_SLASH | KEY_MOD_LEFT_SHIFT, // /
 | ||||
|     HID_KEYBOARD_0 | KEY_MOD_LEFT_SHIFT, // 0
 | ||||
|     HID_KEYBOARD_1 | KEY_MOD_LEFT_SHIFT, // 1
 | ||||
|     HID_KEYBOARD_2 | KEY_MOD_LEFT_SHIFT, // 2
 | ||||
|     HID_KEYBOARD_3 | KEY_MOD_LEFT_SHIFT, // 3
 | ||||
|     HID_KEYBOARD_4 | KEY_MOD_LEFT_SHIFT, // 4
 | ||||
|     HID_KEYBOARD_5 | KEY_MOD_LEFT_SHIFT, // 5
 | ||||
|     HID_KEYBOARD_6 | KEY_MOD_LEFT_SHIFT, // 6
 | ||||
|     HID_KEYBOARD_7 | KEY_MOD_LEFT_SHIFT, // 7
 | ||||
|     HID_KEYBOARD_8 | KEY_MOD_LEFT_SHIFT, // 8
 | ||||
|     HID_KEYBOARD_9 | KEY_MOD_LEFT_SHIFT, // 9
 | ||||
|     HID_KEYBOARD_FR_DEUX_POINTS, // :
 | ||||
|     HID_KEYBOARD_FR_POINT_VIRG, // ;
 | ||||
|     HID_KEYBOARD_FR_INFERIEUR, // <
 | ||||
|     HID_KEYBOARD_FR_EGAL, // =
 | ||||
|     HID_KEYBOARD_FR_SUPERIEUR | KEY_MOD_LEFT_SHIFT, // >
 | ||||
|     HID_KEYBOARD_FR_INTERROGATION | KEY_MOD_LEFT_SHIFT, // ?
 | ||||
|     HID_KEYBOARD_FR_AROBASE | KEY_MOD_RIGHT_ALT, // @
 | ||||
|     HID_KEYBOARD_FR_A | KEY_MOD_LEFT_SHIFT, // A
 | ||||
|     HID_KEYBOARD_B | KEY_MOD_LEFT_SHIFT, // B
 | ||||
|     HID_KEYBOARD_C | KEY_MOD_LEFT_SHIFT, // C
 | ||||
|     HID_KEYBOARD_D | KEY_MOD_LEFT_SHIFT, // D
 | ||||
|     HID_KEYBOARD_E | KEY_MOD_LEFT_SHIFT, // E
 | ||||
|     HID_KEYBOARD_F | KEY_MOD_LEFT_SHIFT, // F
 | ||||
|     HID_KEYBOARD_G | KEY_MOD_LEFT_SHIFT, // G
 | ||||
|     HID_KEYBOARD_H | KEY_MOD_LEFT_SHIFT, // H
 | ||||
|     HID_KEYBOARD_I | KEY_MOD_LEFT_SHIFT, // I
 | ||||
|     HID_KEYBOARD_J | KEY_MOD_LEFT_SHIFT, // J
 | ||||
|     HID_KEYBOARD_K | KEY_MOD_LEFT_SHIFT, // K
 | ||||
|     HID_KEYBOARD_L | KEY_MOD_LEFT_SHIFT, // L
 | ||||
|     HID_KEYBOARD_FR_M | KEY_MOD_LEFT_SHIFT, // M
 | ||||
|     HID_KEYBOARD_N | KEY_MOD_LEFT_SHIFT, // N
 | ||||
|     HID_KEYBOARD_O | KEY_MOD_LEFT_SHIFT, // O
 | ||||
|     HID_KEYBOARD_P | KEY_MOD_LEFT_SHIFT, // P
 | ||||
|     HID_KEYBOARD_FR_Q | KEY_MOD_LEFT_SHIFT, // Q
 | ||||
|     HID_KEYBOARD_R | KEY_MOD_LEFT_SHIFT, // R
 | ||||
|     HID_KEYBOARD_S | KEY_MOD_LEFT_SHIFT, // S
 | ||||
|     HID_KEYBOARD_T | KEY_MOD_LEFT_SHIFT, // T
 | ||||
|     HID_KEYBOARD_U | KEY_MOD_LEFT_SHIFT, // U
 | ||||
|     HID_KEYBOARD_V | KEY_MOD_LEFT_SHIFT, // V
 | ||||
|     HID_KEYBOARD_FR_W | KEY_MOD_LEFT_SHIFT, // W
 | ||||
|     HID_KEYBOARD_X | KEY_MOD_LEFT_SHIFT, // X
 | ||||
|     HID_KEYBOARD_Y | KEY_MOD_LEFT_SHIFT, // Y
 | ||||
|     HID_KEYBOARD_FR_Z | KEY_MOD_LEFT_SHIFT, // Z
 | ||||
|     HID_KEYBOARD_FR_BRACK_OUVRANT | KEY_MOD_RIGHT_ALT, // [
 | ||||
|     HID_KEYBOARD_FR_BACKSLASH | KEY_MOD_RIGHT_ALT, // bslash
 | ||||
|     HID_KEYBOARD_FR_BRACK_FERMANT | KEY_MOD_RIGHT_ALT, // ]
 | ||||
|     HID_KEYBOARD_FR_CHAPEAU, // ^
 | ||||
|     HID_KEYBOARD_FR_UNDERSCORE, // _
 | ||||
|     HID_KEYBOARD_FR_BACK_QUOTE | KEY_MOD_RIGHT_ALT, // `
 | ||||
|     HID_KEYBOARD_A, // a
 | ||||
|     HID_KEYBOARD_B, // b
 | ||||
|     HID_KEYBOARD_C, // c
 | ||||
|     HID_KEYBOARD_D, // d
 | ||||
|     HID_KEYBOARD_E, // e
 | ||||
|     HID_KEYBOARD_F, // f
 | ||||
|     HID_KEYBOARD_G, // g
 | ||||
|     HID_KEYBOARD_H, // h
 | ||||
|     HID_KEYBOARD_I, // i
 | ||||
|     HID_KEYBOARD_J, // j
 | ||||
|     HID_KEYBOARD_K, // k
 | ||||
|     HID_KEYBOARD_L, // l
 | ||||
|     HID_KEYBOARD_M, // m
 | ||||
|     HID_KEYBOARD_N, // n
 | ||||
|     HID_KEYBOARD_O, // o
 | ||||
|     HID_KEYBOARD_P, // p
 | ||||
|     HID_KEYBOARD_Q, // q
 | ||||
|     HID_KEYBOARD_R, // r
 | ||||
|     HID_KEYBOARD_S, // s
 | ||||
|     HID_KEYBOARD_T, // t
 | ||||
|     HID_KEYBOARD_U, // u
 | ||||
|     HID_KEYBOARD_V, // v
 | ||||
|     HID_KEYBOARD_W, // w
 | ||||
|     HID_KEYBOARD_X, // x
 | ||||
|     HID_KEYBOARD_Y, // y
 | ||||
|     HID_KEYBOARD_Z, // z
 | ||||
|     HID_KEYBOARD_FR_CRO_OUVRANT | KEY_MOD_RIGHT_ALT, // {
 | ||||
|     HID_KEYBOARD_FR_PIPE | KEY_MOD_RIGHT_ALT, // |
 | ||||
|     HID_KEYBOARD_FR_CRO_FERMANT | KEY_MOD_RIGHT_ALT, // }
 | ||||
|     HID_KEYBOARD_FR_TILD | KEY_MOD_RIGHT_ALT, // ~
 | ||||
|     HID_KEYBOARD_NONE, // DEL
 | ||||
| }; | ||||
| 
 | ||||
| typedef struct { | ||||
|     // Good job knobheads, these should be uint16_t
 | ||||
|     uint32_t vid; | ||||
|     uint32_t pid; | ||||
|     char manuf[HID_MANUF_PRODUCT_NAME_LEN]; | ||||
|     char product[HID_MANUF_PRODUCT_NAME_LEN]; | ||||
| } FuriHalUsbHidConfig; | ||||
| 
 | ||||
| typedef void (*HidStateCallback)(bool state, void* context); | ||||
| 
 | ||||
| /** ASCII to keycode conversion macro */ | ||||
| #define HID_ASCII_TO_KEY(x) (((uint8_t)x < 128) ? (hid_asciimap[(uint8_t)x]) : HID_KEYBOARD_NONE) | ||||
| 
 | ||||
| /** HID keyboard leds */ | ||||
| enum HidKeyboardLeds { | ||||
|     HID_KB_LED_NUM = (1 << 0), | ||||
|     HID_KB_LED_CAPS = (1 << 1), | ||||
|     HID_KB_LED_SCROLL = (1 << 2), | ||||
| }; | ||||
| 
 | ||||
| /** HID mouse buttons */ | ||||
| enum HidMouseButtons { | ||||
|     HID_MOUSE_BTN_LEFT = (1 << 0), | ||||
|     HID_MOUSE_BTN_RIGHT = (1 << 1), | ||||
|     HID_MOUSE_BTN_WHEEL = (1 << 2), | ||||
| }; | ||||
| 
 | ||||
| /** Get USB HID connection state
 | ||||
|  * | ||||
|  * @return      true / false | ||||
|  */ | ||||
| bool furi_hal_hid_is_connected(); | ||||
| 
 | ||||
| /** Get USB HID keyboard leds state
 | ||||
|  * | ||||
|  * @return      leds state | ||||
|  */ | ||||
| uint8_t furi_hal_hid_get_led_state(); | ||||
| 
 | ||||
| /** Set USB HID connect/disconnect callback
 | ||||
|  * | ||||
|  * @param      cb  callback | ||||
|  * @param      ctx  callback context | ||||
|  */ | ||||
| void furi_hal_hid_set_state_callback(HidStateCallback cb, void* ctx); | ||||
| 
 | ||||
| /** Set the following key to pressed state and send HID report
 | ||||
|  * | ||||
|  * @param      button  key code | ||||
|  */ | ||||
| bool furi_hal_hid_kb_press(uint16_t button); | ||||
| 
 | ||||
| /** Set the following key to released state and send HID report
 | ||||
|  * | ||||
|  * @param      button  key code | ||||
|  */ | ||||
| bool furi_hal_hid_kb_release(uint16_t button); | ||||
| 
 | ||||
| /** Clear all pressed keys and send HID report
 | ||||
|  * | ||||
|  */ | ||||
| bool furi_hal_hid_kb_release_all(); | ||||
| 
 | ||||
| /** Set mouse movement and send HID report
 | ||||
|  * | ||||
|  * @param      dx  x coordinate delta | ||||
|  * @param      dy  y coordinate delta | ||||
|  */ | ||||
| bool furi_hal_hid_mouse_move(int8_t dx, int8_t dy); | ||||
| 
 | ||||
| /** Set mouse button to pressed state and send HID report
 | ||||
|  * | ||||
|  * @param      button  key code | ||||
|  */ | ||||
| bool furi_hal_hid_mouse_press(uint8_t button); | ||||
| 
 | ||||
| /** Set mouse button to released state and send HID report
 | ||||
|  * | ||||
|  * @param      button  key code | ||||
|  */ | ||||
| bool furi_hal_hid_mouse_release(uint8_t button); | ||||
| 
 | ||||
| /** Set mouse wheel position and send HID report
 | ||||
|  * | ||||
|  * @param      delta  number of scroll steps | ||||
|  */ | ||||
| bool furi_hal_hid_mouse_scroll(int8_t delta); | ||||
| 
 | ||||
| /** Set the following consumer key to pressed state and send HID report
 | ||||
|  * | ||||
|  * @param      button  key code | ||||
|  */ | ||||
| bool furi_hal_hid_consumer_key_press(uint16_t button); | ||||
| 
 | ||||
| /** Set the following consumer key to released state and send HID report
 | ||||
|  * | ||||
|  * @param      button  key code | ||||
|  */ | ||||
| bool furi_hal_hid_consumer_key_release(uint16_t button); | ||||
| 
 | ||||
| #ifdef __cplusplus | ||||
| } | ||||
| #endif | ||||
|  | @ -0,0 +1,286 @@ | |||
| /* This file is the part of the Lightweight USB device Stack for STM32 microcontrollers
 | ||||
|  * | ||||
|  * Copyright ©2016 Dmitry Filimonchuk <dmitrystu[at]gmail[dot]com> | ||||
|  * | ||||
|  * Licensed under the Apache License, Version 2.0 (the "License"); | ||||
|  * you may not use this file except in compliance with the License. | ||||
|  * You may obtain a copy of the License at | ||||
|  *   http://www.apache.org/licenses/LICENSE-2.0
 | ||||
|  * Unless required by applicable law or agreed to in writing, software | ||||
|  * distributed under the License is distributed on an "AS IS" BASIS, | ||||
|  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
|  * See the License for the specific language governing permissions and | ||||
|  * limitations under the License. | ||||
|  */ | ||||
| 
 | ||||
| #ifndef _USB_HID_USAGE_KEYBOARD_H_ | ||||
| #define _USB_HID_USAGE_KEYBOARD_H_ | ||||
| 
 | ||||
| /**\ingroup USB_HID
 | ||||
|  * \addtogroup USB_HID_USAGES_KEYBOARD HID Usages for Keyboard | ||||
|  * \brief Contains USB HID Usages definitions for Keyboard/Keypad Page | ||||
|  * \details This module based on | ||||
|  * + [HID Usage Tables Version 1.12](https://www.usb.org/sites/default/files/documents/hut1_12v2.pdf)
 | ||||
|  * @{ */ | ||||
| 
 | ||||
| #define HID_PAGE_KEYBOARD               0x07 | ||||
| 
 | ||||
| #define HID_KEYBOARD_ERR_ROLL_OVER      0x01 | ||||
| #define HID_KEYBOARD_POST_FAIL          0x02 | ||||
| #define HID_KEYBOARD_ERR_UNDEFINED      0x03 | ||||
| #define HID_KEYBOARD_A                  0x04 | ||||
| #define HID_KEYBOARD_B                  0x05 | ||||
| #define HID_KEYBOARD_C                  0x06 | ||||
| #define HID_KEYBOARD_D                  0x07 | ||||
| #define HID_KEYBOARD_E                  0x08 | ||||
| #define HID_KEYBOARD_F                  0x09 | ||||
| #define HID_KEYBOARD_G                  0x0A | ||||
| #define HID_KEYBOARD_H                  0x0B | ||||
| #define HID_KEYBOARD_I                  0x0C | ||||
| #define HID_KEYBOARD_J                  0x0D | ||||
| #define HID_KEYBOARD_K                  0x0E | ||||
| #define HID_KEYBOARD_L                  0x0F | ||||
| #define HID_KEYBOARD_M                  0x10 | ||||
| #define HID_KEYBOARD_N                  0x11 | ||||
| #define HID_KEYBOARD_O                  0x12 | ||||
| #define HID_KEYBOARD_P                  0x13 | ||||
| #define HID_KEYBOARD_Q                  0x14 | ||||
| #define HID_KEYBOARD_R                  0x15 | ||||
| #define HID_KEYBOARD_S                  0x16 | ||||
| #define HID_KEYBOARD_T                  0x17 | ||||
| #define HID_KEYBOARD_U                  0x18 | ||||
| #define HID_KEYBOARD_V                  0x19 | ||||
| #define HID_KEYBOARD_W                  0x1A | ||||
| #define HID_KEYBOARD_X                  0x1B | ||||
| #define HID_KEYBOARD_Y                  0x1C | ||||
| #define HID_KEYBOARD_Z                  0x1D | ||||
| #define HID_KEYBOARD_1                  0x1E | ||||
| #define HID_KEYBOARD_2                  0x1F | ||||
| #define HID_KEYBOARD_3                  0x20 | ||||
| #define HID_KEYBOARD_4                  0x21 | ||||
| #define HID_KEYBOARD_5                  0x22 | ||||
| #define HID_KEYBOARD_6                  0x23 | ||||
| #define HID_KEYBOARD_7                  0x24 | ||||
| #define HID_KEYBOARD_8                  0x25 | ||||
| #define HID_KEYBOARD_9                  0x26 | ||||
| #define HID_KEYBOARD_0                  0x27 | ||||
| #define HID_KEYBOARD_RETURN             0x28 | ||||
| #define HID_KEYBOARD_ESCAPE             0x29 | ||||
| #define HID_KEYBOARD_DELETE             0x2A | ||||
| #define HID_KEYBOARD_TAB                0x2B | ||||
| #define HID_KEYBOARD_SPACEBAR           0x2C | ||||
| #define HID_KEYBOARD_MINUS              0x2D | ||||
| #define HID_KEYBOARD_EQUAL_SIGN         0x2E | ||||
| #define HID_KEYBOARD_OPEN_BRACKET       0x2F | ||||
| #define HID_KEYBOARD_CLOSE_BRACKET      0x30 | ||||
| #define HID_KEYBOARD_BACKSLASH          0x31 | ||||
| #define HID_KEYBOARD_NONUS_HASH         0x32 | ||||
| #define HID_KEYBOARD_SEMICOLON          0x33 | ||||
| #define HID_KEYBOARD_APOSTROPHE         0x34 | ||||
| #define HID_KEYBOARD_GRAVE_ACCENT       0x35 | ||||
| #define HID_KEYBOARD_COMMA              0x36 | ||||
| #define HID_KEYBOARD_DOT                0x37 | ||||
| #define HID_KEYBOARD_SLASH              0x38 | ||||
| #define HID_KEYBOARD_CAPS_LOCK          0x39 | ||||
| #define HID_KEYBOARD_F1                 0x3A | ||||
| #define HID_KEYBOARD_F2                 0x3B | ||||
| #define HID_KEYBOARD_F3                 0x3C | ||||
| #define HID_KEYBOARD_F4                 0x3D | ||||
| #define HID_KEYBOARD_F5                 0x3E | ||||
| #define HID_KEYBOARD_F6                 0x3F | ||||
| #define HID_KEYBOARD_F7                 0x40 | ||||
| #define HID_KEYBOARD_F8                 0x41 | ||||
| #define HID_KEYBOARD_F9                 0x42 | ||||
| #define HID_KEYBOARD_F10                0x43 | ||||
| #define HID_KEYBOARD_F11                0x44 | ||||
| #define HID_KEYBOARD_F12                0x45 | ||||
| #define HID_KEYBOARD_PRINT_SCREEN       0x46 | ||||
| #define HID_KEYBOARD_SCROLL_LOCK        0x47 | ||||
| #define HID_KEYBOARD_PAUSE              0x48 | ||||
| #define HID_KEYBOARD_INSERT             0x49 | ||||
| #define HID_KEYBOARD_HOME               0x4A | ||||
| #define HID_KEYBOARD_PAGE_UP            0x4B | ||||
| #define HID_KEYBOARD_DELETE_FORWARD     0x4C | ||||
| #define HID_KEYBOARD_END                0x4D | ||||
| #define HID_KEYBOARD_PAGE_DOWN          0x4E | ||||
| #define HID_KEYBOARD_RIGHT_ARROW        0x4F | ||||
| #define HID_KEYBOARD_LEFT_ARROW         0x50 | ||||
| #define HID_KEYBOARD_DOWN_ARROW         0x51 | ||||
| #define HID_KEYBOARD_UP_ARROW           0x52 | ||||
| #define HID_KEYPAD_NUMLOCK              0x53 | ||||
| #define HID_KEYPAD_SLASH                0x54 | ||||
| #define HID_KEYPAD_ASTERISK             0x55 | ||||
| #define HID_KEYPAD_MINUS                0x56 | ||||
| #define HID_KEYPAD_PLUS                 0x57 | ||||
| #define HID_KEYPAD_ENTER                0x58 | ||||
| #define HID_KEYPAD_1                    0x59 | ||||
| #define HID_KEYPAD_2                    0x5A | ||||
| #define HID_KEYPAD_3                    0x5B | ||||
| #define HID_KEYPAD_4                    0x5C | ||||
| #define HID_KEYPAD_5                    0x5D | ||||
| #define HID_KEYPAD_6                    0x5E | ||||
| #define HID_KEYPAD_7                    0x5F | ||||
| #define HID_KEYPAD_8                    0x60 | ||||
| #define HID_KEYPAD_9                    0x61 | ||||
| #define HID_KEYPAD_0                    0x62 | ||||
| #define HID_KEYPAD_DOT                  0x63 | ||||
| #define HID_KEYBOARD_NONUS_BACKSLASH    0x64 | ||||
| #define HID_KEYBOARD_APPLICATION        0x65 | ||||
| #define HID_KEYBOARD_POWER              0x66 | ||||
| #define HID_KEYPAD_EQUAL                0x67 | ||||
| #define HID_KEYBOARD_F13                0x68 | ||||
| #define HID_KEYBOARD_F14                0x69 | ||||
| #define HID_KEYBOARD_F15                0x6A | ||||
| #define HID_KEYBOARD_F16                0x6B | ||||
| #define HID_KEYBOARD_F17                0x6C | ||||
| #define HID_KEYBOARD_F18                0x6D | ||||
| #define HID_KEYBOARD_F19                0x6E | ||||
| #define HID_KEYBOARD_F20                0x6F | ||||
| #define HID_KEYBOARD_F21                0x70 | ||||
| #define HID_KEYBOARD_F22                0x71 | ||||
| #define HID_KEYBOARD_F23                0x72 | ||||
| #define HID_KEYBOARD_F24                0x73 | ||||
| #define HID_KEYBOARD_EXECUTE            0x74 | ||||
| #define HID_KEYBOARD_HELP               0x75 | ||||
| #define HID_KEYBOARD_MENU               0x76 | ||||
| #define HID_KEYBOARD_SELECT             0x77 | ||||
| #define HID_KEYBOARD_STOP               0x78 | ||||
| #define HID_KEYBOARD_AGAIN              0x79 | ||||
| #define HID_KEYBOARD_UNDO               0x7A | ||||
| #define HID_KEYBOARD_CUT                0x7B | ||||
| #define HID_KEYBOARD_COPY               0x7C | ||||
| #define HID_KEYBOARD_PASTE              0x7D | ||||
| #define HID_KEYBOARD_FIND               0x7E | ||||
| #define HID_KEYBOARD_MUTE               0x7F | ||||
| #define HID_KEYBOARD_VOLUME_UP          0x80 | ||||
| #define HID_KEYBOARD_VOLUME_DOWN        0x81 | ||||
| #define HID_KEYBOARD_LOCK_CAPS_LOCK     0x82 | ||||
| #define HID_KEYBOARD_LOCK_NUM_LOCK      0x83 | ||||
| #define HID_KEYBOARD_LOCK_SCROLL_LOCK   0x84 | ||||
| #define HID_KEYPAD_COMMA                0x85 | ||||
| #define HID_KEYPAD_EQUAL_SIGN           0x86 | ||||
| #define HID_KEYBOARD_INTERNATIONAL_1    0x87 | ||||
| #define HID_KEYBOARD_INTERNATIONAL_2    0x88 | ||||
| #define HID_KEYBOARD_INTERNATIONAL_3    0x89 | ||||
| #define HID_KEYBOARD_INTERNATIONAL_4    0x8A | ||||
| #define HID_KEYBOARD_INTERNATIONAL_5    0x8B | ||||
| #define HID_KEYBOARD_INTERNATIONAL_6    0x8C | ||||
| #define HID_KEYBOARD_INTERNATIONAL_7    0x8D | ||||
| #define HID_KEYBOARD_INTERNATIONAL_8    0x8E | ||||
| #define HID_KEYBOARD_INTERNATIONAL_9    0x8F | ||||
| #define HID_KEYBOARD_LANG_1             0x90 | ||||
| #define HID_KEYBOARD_LANG_2             0x91 | ||||
| #define HID_KEYBOARD_LANG_3             0x92 | ||||
| #define HID_KEYBOARD_LANG_4             0x93 | ||||
| #define HID_KEYBOARD_LANG_5             0x94 | ||||
| #define HID_KEYBOARD_LANG_6             0x95 | ||||
| #define HID_KEYBOARD_LANG_7             0x96 | ||||
| #define HID_KEYBOARD_LANG_8             0x97 | ||||
| #define HID_KEYBOARD_LANG_9             0x98 | ||||
| #define HID_KEYBOARD_ALTERNATE_ERASE    0x99 | ||||
| #define HID_KEYBOARD_SYSREQ             0x9A | ||||
| #define HID_KEYBOARD_CANCEL             0x9B | ||||
| #define HID_KEYBOARD_CLEAR              0x9C | ||||
| #define HID_KEYBOARD_PRIOR              0x9D | ||||
| #define HID_KEYBOARD_RETURN_1           0x9E | ||||
| #define HID_KEYBOARD_SEPARATOR          0x9F | ||||
| #define HID_KEYBOARD_OUT                0xA0 | ||||
| #define HID_KEYBOARD_OPER               0xA1 | ||||
| #define HID_KEYBOARD_CLEAR_AGAIN        0xA2 | ||||
| #define HID_KEYBOARD_CRSEL_PROPS        0xA3 | ||||
| #define HID_KEYBOARD_EXSEL              0xA4 | ||||
| #define HID_KEYPAD_00                   0xB0 | ||||
| #define HID_KEYPAD_000                  0xB1 | ||||
| #define HID_KEYPAD_OPEN_PARENTHESIS     0xB6 | ||||
| #define HID_KEYPAD_CLOSE_PARENTHESIS    0xB7 | ||||
| #define HID_KEYPAD_OPEN_BRACE           0xB8 | ||||
| #define HID_KEYPAD_CLOSE_BRACE          0xB9 | ||||
| #define HID_KEYPAD_TAB                  0xBA | ||||
| #define HID_KEYPAD_BACKSPACE            0xBB | ||||
| #define HID_KEYPAD_A                    0xBC | ||||
| #define HID_KEYPAD_B                    0xBD | ||||
| #define HID_KEYPAD_C                    0xBE | ||||
| #define HID_KEYPAD_D                    0xBF | ||||
| #define HID_KEYPAD_E                    0xC0 | ||||
| #define HID_KEYPAD_F                    0xC1 | ||||
| #define HID_KEYPAD_XOR                  0xC2 | ||||
| #define HID_KEYPAD_CARET                0xC3 | ||||
| #define HID_KEYPAD_PERCENT              0xC4 | ||||
| #define HID_KEYPAD_LESS_THEN            0xC5 | ||||
| #define HID_KEYPAD_GREATER_THEN         0xC6 | ||||
| #define HID_KEYPAD_AMPERSAND            0xC7 | ||||
| #define HID_KEYPAD_DOUBLE_AMPERSAND     0xC8 | ||||
| #define HID_KEYPAD_PIPE                 0xC9 | ||||
| #define HID_KEYPAD_DOUBLE_PIPE          0xCA | ||||
| #define HID_KEYPAD_COLON                0xCB | ||||
| #define HID_KEYPAD_HASH                 0xCC | ||||
| #define HID_KEYPAD_SPACE                0xCD | ||||
| #define HID_KEYPAD_AT                   0xCE | ||||
| #define HID_KEYPAD_BANG                 0xCF | ||||
| #define HID_KEYPAD_MEM_STORE            0xD0 | ||||
| #define HID_KEYPAD_MEM_RECALL           0xD1 | ||||
| #define HID_KEYPAD_MEM_CLEAR            0xD2 | ||||
| #define HID_KEYPAD_MEM_ADD              0xD3 | ||||
| #define HID_KEYPAD_MEM_SUBTRACT         0xD4 | ||||
| #define HID_KEYPAD_MEM_MULTIPLY         0xD5 | ||||
| #define HID_KEYPAD_MEM_DIVIDE           0xD6 | ||||
| #define HID_KEYPAD_PLUS_MINUS           0xD7 | ||||
| #define HID_KEYPAD_CLEAR                0xD8 | ||||
| #define HID_KEYPAD_CLEAR_ENTRY          0xD9 | ||||
| #define HID_KEYPAD_BINARY               0xDA | ||||
| #define HID_KEYPAD_OCTAL                0xDB | ||||
| #define HID_KEYPAD_DECIMAL              0xDC | ||||
| #define HID_KEYPAD_HEXADECIMAL          0xDD | ||||
| #define HID_KEYBOARD_L_CTRL             0xE0 | ||||
| #define HID_KEYBOARD_L_SHIFT            0xE1 | ||||
| #define HID_KEYBOARD_L_ALT              0xE2 | ||||
| #define HID_KEYBOARD_L_GUI              0xE3 | ||||
| #define HID_KEYBOARD_R_CTRL             0xE4 | ||||
| #define HID_KEYBOARD_R_SHIFT            0xE5 | ||||
| #define HID_KEYBOARD_R_ALT              0xE6 | ||||
| #define HID_KEYBOARD_R_GUI              0xE7 | ||||
| 
 | ||||
| #define HID_KEYBOARD_FR_EXCLAMATION     0x38 | ||||
| #define HID_KEYBOARD_FR_AROBASE         0x27 | ||||
| #define HID_KEYBOARD_FR_DIESE           0x20 | ||||
| #define HID_KEYBOARD_FR_DOLLARS         0x30 | ||||
| #define HID_KEYBOARD_FR_POURCENTAGE     0x34 | ||||
| #define HID_KEYBOARD_FR_CHAPEAU         0x2f | ||||
| #define HID_KEYBOARD_FR_ET_COMMERCIAL   0x1E | ||||
| #define HID_KEYBOARD_FR_ETOILE          0x32 | ||||
| #define HID_KEYBOARD_FR_PAREN_OUVRANTE  0x22 | ||||
| #define HID_KEYBOARD_FR_PAREN_FERMANTE  0x2D | ||||
| #define HID_KEYBOARD_FR_TIRET           0x23 | ||||
| #define HID_KEYBOARD_FR_EGAL            0x2E | ||||
| #define HID_KEYBOARD_FR_BRACK_OUVRANT   0x22 | ||||
| #define HID_KEYBOARD_FR_BRACK_FERMANT   0x2D | ||||
| #define HID_KEYBOARD_FR_BACKSLASH       0x25 | ||||
| #define HID_KEYBOARD_FR_POINT_VIRG      0x36 | ||||
| #define HID_KEYBOARD_FR_SIMPLE_QUOTE    0x21 | ||||
| #define HID_KEYBOARD_FR_BACK_QUOTE      0x24 | ||||
| #define HID_KEYBOARD_FR_VIRGULE         0x10 | ||||
| #define HID_KEYBOARD_FR_POINT           0x36 | ||||
| #define HID_KEYBOARD_FR_SLASH           0x37 | ||||
| #define HID_KEYBOARD_FR_UNDERSCORE      0x25 | ||||
| #define HID_KEYBOARD_FR_PLUS            0x2E | ||||
| #define HID_KEYBOARD_FR_CRO_OUVRANT     0x21 | ||||
| #define HID_KEYBOARD_FR_CRO_FERMANT     0x2E | ||||
| #define HID_KEYBOARD_FR_PIPE            0x23 | ||||
| #define HID_KEYBOARD_FR_DEUX_POINTS     0x37 | ||||
| #define HID_KEYBOARD_FR_DOUBLE_QUOTE    0x20 | ||||
| #define HID_KEYBOARD_FR_TILD            0x1F | ||||
| #define HID_KEYBOARD_FR_INFERIEUR       0x64 | ||||
| #define HID_KEYBOARD_FR_SUPERIEUR       0x64 | ||||
| #define HID_KEYBOARD_FR_INTERROGATION   0x10 | ||||
| #define HID_KEYBOARD_FR_A               0x14 | ||||
| #define HID_KEYBOARD_FR_M               0x33 | ||||
| #define HID_KEYBOARD_FR_Q               0x04 | ||||
| #define HID_KEYBOARD_FR_W               0x1D | ||||
| #define HID_KEYBOARD_FR_Z               0x1A | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| /** @}  */ | ||||
| 
 | ||||
| #endif | ||||
| 
 | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Snorky
						Snorky