/* SPDX-FileCopyrightText: 2022-2024 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ #pragma once #ifdef __cplusplus extern "C" { #endif #include #include "tusb.h" #include "btn_progress.h" /** * @brief Initialize tinyusb HID device. * * @return * - ESP_OK: Success * - ESP_ERR_NO_MEM: No memory */ esp_err_t tinyusb_hid_init(void); /** * @brief Report key press in the keyboard, using array here, * if open CONFIG_ENABLE_FULL_KEY_KEYBOARD contains all keys at once * else contains six keys at most. * * @param modifier * @param keycode * @param keylen */ void tinyusb_hid_keyboard_report(hid_report_t report); //--------------------------------------------------------------------+ // HID MOUSE BUTTON BIT MASK //--------------------------------------------------------------------+ // MOUSE_BUTTON_LEFT = TU_BIT(0), ///< Left button // MOUSE_BUTTON_RIGHT = TU_BIT(1), ///< Right button // MOUSE_BUTTON_MIDDLE = TU_BIT(2), ///< Middle button // MOUSE_BUTTON_BACKWARD = TU_BIT(3), ///< Backward button, // MOUSE_BUTTON_FORWARD = TU_BIT(4), ///< Forward button, //--------------------------------------------------------------------+ // HID KEYCODE //--------------------------------------------------------------------+ // #define HID_KEY_NONE 0x00 // #define HID_KEY_A 0x04 // #define HID_KEY_B 0x05 // #define HID_KEY_C 0x06 // #define HID_KEY_D 0x07 // #define HID_KEY_E 0x08 // #define HID_KEY_F 0x09 // #define HID_KEY_G 0x0A // #define HID_KEY_H 0x0B // #define HID_KEY_I 0x0C // #define HID_KEY_J 0x0D // #define HID_KEY_K 0x0E // #define HID_KEY_L 0x0F // #define HID_KEY_M 0x10 // #define HID_KEY_N 0x11 // #define HID_KEY_O 0x12 // #define HID_KEY_P 0x13 // #define HID_KEY_Q 0x14 // #define HID_KEY_R 0x15 // #define HID_KEY_S 0x16 // #define HID_KEY_T 0x17 // #define HID_KEY_U 0x18 // #define HID_KEY_V 0x19 // #define HID_KEY_W 0x1A // #define HID_KEY_X 0x1B // #define HID_KEY_Y 0x1C // #define HID_KEY_Z 0x1D // #define HID_KEY_1 0x1E // #define HID_KEY_2 0x1F // #define HID_KEY_3 0x20 // #define HID_KEY_4 0x21 // #define HID_KEY_5 0x22 // #define HID_KEY_6 0x23 // #define HID_KEY_7 0x24 // #define HID_KEY_8 0x25 // #define HID_KEY_9 0x26 // #define HID_KEY_0 0x27 // #define HID_KEY_ENTER 0x28 // #define HID_KEY_ESCAPE 0x29 // #define HID_KEY_BACKSPACE 0x2A // #define HID_KEY_TAB 0x2B // #define HID_KEY_SPACE 0x2C // #define HID_KEY_MINUS 0x2D // #define HID_KEY_EQUAL 0x2E // #define HID_KEY_BRACKET_LEFT 0x2F // #define HID_KEY_BRACKET_RIGHT 0x30 // #define HID_KEY_BACKSLASH 0x31 // #define HID_KEY_EUROPE_1 0x32 // #define HID_KEY_SEMICOLON 0x33 // #define HID_KEY_APOSTROPHE 0x34 // #define HID_KEY_GRAVE 0x35 // #define HID_KEY_COMMA 0x36 // #define HID_KEY_PERIOD 0x37 // #define HID_KEY_SLASH 0x38 // #define HID_KEY_CAPS_LOCK 0x39 // #define HID_KEY_F1 0x3A // #define HID_KEY_F2 0x3B // #define HID_KEY_F3 0x3C // #define HID_KEY_F4 0x3D // #define HID_KEY_F5 0x3E // #define HID_KEY_F6 0x3F // #define HID_KEY_F7 0x40 // #define HID_KEY_F8 0x41 // #define HID_KEY_F9 0x42 // #define HID_KEY_F10 0x43 // #define HID_KEY_F11 0x44 // #define HID_KEY_F12 0x45 // #define HID_KEY_PRINT_SCREEN 0x46 // #define HID_KEY_SCROLL_LOCK 0x47 // #define HID_KEY_PAUSE 0x48 // #define HID_KEY_INSERT 0x49 // #define HID_KEY_HOME 0x4A // #define HID_KEY_PAGE_UP 0x4B // #define HID_KEY_DELETE 0x4C // #define HID_KEY_END 0x4D // #define HID_KEY_PAGE_DOWN 0x4E // #define HID_KEY_ARROW_RIGHT 0x4F // #define HID_KEY_ARROW_LEFT 0x50 // #define HID_KEY_ARROW_DOWN 0x51 // #define HID_KEY_ARROW_UP 0x52 // #define HID_KEY_NUM_LOCK 0x53 // #define HID_KEY_KEYPAD_DIVIDE 0x54 // #define HID_KEY_KEYPAD_MULTIPLY 0x55 // #define HID_KEY_KEYPAD_SUBTRACT 0x56 // #define HID_KEY_KEYPAD_ADD 0x57 // #define HID_KEY_KEYPAD_ENTER 0x58 // #define HID_KEY_KEYPAD_1 0x59 // #define HID_KEY_KEYPAD_2 0x5A // #define HID_KEY_KEYPAD_3 0x5B // #define HID_KEY_KEYPAD_4 0x5C // #define HID_KEY_KEYPAD_5 0x5D // #define HID_KEY_KEYPAD_6 0x5E // #define HID_KEY_KEYPAD_7 0x5F // #define HID_KEY_KEYPAD_8 0x60 // #define HID_KEY_KEYPAD_9 0x61 // #define HID_KEY_KEYPAD_0 0x62 // #define HID_KEY_KEYPAD_DECIMAL 0x63 // #define HID_KEY_EUROPE_2 0x64 // #define HID_KEY_APPLICATION 0x65 // #define HID_KEY_POWER 0x66 // #define HID_KEY_KEYPAD_EQUAL 0x67 // #define HID_KEY_F13 0x68 // #define HID_KEY_F14 0x69 // #define HID_KEY_F15 0x6A // #define HID_KEY_F16 0x6B // #define HID_KEY_F17 0x6C // #define HID_KEY_F18 0x6D // #define HID_KEY_F19 0x6E // #define HID_KEY_F20 0x6F // #define HID_KEY_F21 0x70 // #define HID_KEY_F22 0x71 // #define HID_KEY_F23 0x72 // #define HID_KEY_F24 0x73 // #define HID_KEY_EXECUTE 0x74 // #define HID_KEY_HELP 0x75 // #define HID_KEY_MENU 0x76 // #define HID_KEY_SELECT 0x77 // #define HID_KEY_STOP 0x78 // #define HID_KEY_AGAIN 0x79 // #define HID_KEY_UNDO 0x7A // #define HID_KEY_CUT 0x7B // #define HID_KEY_COPY 0x7C // #define HID_KEY_PASTE 0x7D // #define HID_KEY_FIND 0x7E // #define HID_KEY_MUTE 0x7F // #define HID_KEY_VOLUME_UP 0x80 // #define HID_KEY_VOLUME_DOWN 0x81 // #define HID_KEY_LOCKING_CAPS_LOCK 0x82 // #define HID_KEY_LOCKING_NUM_LOCK 0x83 // #define HID_KEY_LOCKING_SCROLL_LOCK 0x84 // #define HID_KEY_KEYPAD_COMMA 0x85 // #define HID_KEY_KEYPAD_EQUAL_SIGN 0x86 // #define HID_KEY_KANJI1 0x87 // #define HID_KEY_KANJI2 0x88 // #define HID_KEY_KANJI3 0x89 // #define HID_KEY_KANJI4 0x8A // #define HID_KEY_KANJI5 0x8B // #define HID_KEY_KANJI6 0x8C // #define HID_KEY_KANJI7 0x8D // #define HID_KEY_KANJI8 0x8E // #define HID_KEY_KANJI9 0x8F // #define HID_KEY_LANG1 0x90 // #define HID_KEY_LANG2 0x91 // #define HID_KEY_LANG3 0x92 // #define HID_KEY_LANG4 0x93 // #define HID_KEY_LANG5 0x94 // #define HID_KEY_LANG6 0x95 // #define HID_KEY_LANG7 0x96 // #define HID_KEY_LANG8 0x97 // #define HID_KEY_LANG9 0x98 // #define HID_KEY_ALTERNATE_ERASE 0x99 // #define HID_KEY_SYSREQ_ATTENTION 0x9A // #define HID_KEY_CANCEL 0x9B // #define HID_KEY_CLEAR 0x9C // #define HID_KEY_PRIOR 0x9D // #define HID_KEY_RETURN 0x9E // #define HID_KEY_SEPARATOR 0x9F // #define HID_KEY_OUT 0xA0 // #define HID_KEY_OPER 0xA1 // #define HID_KEY_CLEAR_AGAIN 0xA2 // #define HID_KEY_CRSEL_PROPS 0xA3 // #define HID_KEY_EXSEL 0xA4 // //RESERVED 0xA5-DF // #define HID_KEY_CONTROL_LEFT 0xE0 // #define HID_KEY_SHIFT_LEFT 0xE1 // #define HID_KEY_ALT_LEFT 0xE2 // #define HID_KEY_GUI_LEFT 0xE3 // #define HID_KEY_CONTROL_RIGHT 0xE4 // #define HID_KEY_SHIFT_RIGHT 0xE5 // #define HID_KEY_ALT_RIGHT 0xE6 // #define HID_KEY_GUI_RIGHT 0xE7 #ifdef __cplusplus } #endif