123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330 |
- #ifndef APP_USBD_HID_KBD_H__
- #define APP_USBD_HID_KBD_H__
- #ifdef __cplusplus
- extern "C" {
- #endif
- #include <stdint.h>
- #include <stdbool.h>
- #include "nrf_drv_usbd.h"
- #include "app_usbd_class_base.h"
- #include "app_usbd_hid_types.h"
- #include "app_usbd_hid.h"
- #include "app_usbd.h"
- #include "app_usbd_core.h"
- #include "app_usbd_descriptor.h"
- #include "app_usbd_hid_kbd_desc.h"
- #include "app_usbd_hid_kbd_internal.h"
- typedef enum {
- APP_USBD_HID_KBD_A = 4,
- APP_USBD_HID_KBD_B = 5,
- APP_USBD_HID_KBD_C = 6,
- APP_USBD_HID_KBD_D = 7,
- APP_USBD_HID_KBD_E = 8,
- APP_USBD_HID_KBD_F = 9,
- APP_USBD_HID_KBD_G = 10,
- APP_USBD_HID_KBD_H = 11,
- APP_USBD_HID_KBD_I = 12,
- APP_USBD_HID_KBD_J = 13,
- APP_USBD_HID_KBD_K = 14,
- APP_USBD_HID_KBD_L = 15,
- APP_USBD_HID_KBD_M = 16,
- APP_USBD_HID_KBD_N = 17,
- APP_USBD_HID_KBD_O = 18,
- APP_USBD_HID_KBD_P = 19,
- APP_USBD_HID_KBD_Q = 20,
- APP_USBD_HID_KBD_R = 21,
- APP_USBD_HID_KBD_S = 22,
- APP_USBD_HID_KBD_T = 23,
- APP_USBD_HID_KBD_U = 24,
- APP_USBD_HID_KBD_V = 25,
- APP_USBD_HID_KBD_W = 26,
- APP_USBD_HID_KBD_X = 27,
- APP_USBD_HID_KBD_Y = 28,
- APP_USBD_HID_KBD_Z = 29,
- APP_USBD_HID_KBD_1 = 30,
- APP_USBD_HID_KBD_2 = 31,
- APP_USBD_HID_KBD_3 = 32,
- APP_USBD_HID_KBD_4 = 33,
- APP_USBD_HID_KBD_5 = 34,
- APP_USBD_HID_KBD_6 = 35,
- APP_USBD_HID_KBD_7 = 36,
- APP_USBD_HID_KBD_8 = 37,
- APP_USBD_HID_KBD_9 = 38,
- APP_USBD_HID_KBD_0 = 39,
- APP_USBD_HID_KBD_ENTER = 40,
- APP_USBD_HID_KBD_ESCAPE = 41,
- APP_USBD_HID_KBD_BACKSPACE = 42,
- APP_USBD_HID_KBD_TAB = 43,
- APP_USBD_HID_KBD_SPACEBAR = 44,
- APP_USBD_HID_KBD_UNDERSCORE = 45,
- APP_USBD_HID_KBD_PLUS = 46,
- APP_USBD_HID_KBD_OPEN_BRACKET = 47,
- APP_USBD_HID_KBD_CLOSE_BRACKET = 48,
- APP_USBD_HID_KBD_BACKSLASH = 49,
- APP_USBD_HID_KBD_ASH = 50,
- APP_USBD_HID_KBD_COLON = 51,
- APP_USBD_HID_KBD_QUOTE = 52,
- APP_USBD_HID_KBD_TILDE = 53,
- APP_USBD_HID_KBD_COMMA = 54,
- APP_USBD_HID_KBD_DOT = 55,
- APP_USBD_HID_KBD_SLASH = 56,
- APP_USBD_HID_KBD_CAPS_LOCK = 57,
- APP_USBD_HID_KBD_F1 = 58,
- APP_USBD_HID_KBD_F2 = 59,
- APP_USBD_HID_KBD_F3 = 60,
- APP_USBD_HID_KBD_F4 = 61,
- APP_USBD_HID_KBD_F5 = 62,
- APP_USBD_HID_KBD_F6 = 63,
- APP_USBD_HID_KBD_F7 = 64,
- APP_USBD_HID_KBD_F8 = 65,
- APP_USBD_HID_KBD_F9 = 66,
- APP_USBD_HID_KBD_F10 = 67,
- APP_USBD_HID_KBD_F11 = 68,
- APP_USBD_HID_KBD_F12 = 69,
- APP_USBD_HID_KBD_PRINTSCREEN = 70,
- APP_USBD_HID_KBD_SCROLL_LOCK = 71,
- APP_USBD_HID_KBD_PAUSE = 72,
- APP_USBD_HID_KBD_INSERT = 73,
- APP_USBD_HID_KBD_HOME = 74,
- APP_USBD_HID_KBD_PAGEUP = 75,
- APP_USBD_HID_KBD_DELETE = 76,
- APP_USBD_HID_KBD_END = 77,
- APP_USBD_HID_KBD_PAGEDOWN = 78,
- APP_USBD_HID_KBD_RIGHT = 79,
- APP_USBD_HID_KBD_LEFT = 80,
- APP_USBD_HID_KBD_DOWN = 81,
- APP_USBD_HID_KBD_UP = 82,
- APP_USBD_HID_KBD_KEYPAD_NUM_LOCK = 83,
- APP_USBD_HID_KBD_KEYPAD_DIVIDE = 84,
- APP_USBD_HID_KBD_KEYPAD_AT = 85,
- APP_USBD_HID_KBD_KEYPAD_MULTIPLY = 85,
- APP_USBD_HID_KBD_KEYPAD_MINUS = 86,
- APP_USBD_HID_KBD_KEYPAD_PLUS = 87,
- APP_USBD_HID_KBD_KEYPAD_ENTER = 88,
- APP_USBD_HID_KBD_KEYPAD_1 = 89,
- APP_USBD_HID_KBD_KEYPAD_2 = 90,
- APP_USBD_HID_KBD_KEYPAD_3 = 91,
- APP_USBD_HID_KBD_KEYPAD_4 = 92,
- APP_USBD_HID_KBD_KEYPAD_5 = 93,
- APP_USBD_HID_KBD_KEYPAD_6 = 94,
- APP_USBD_HID_KBD_KEYPAD_7 = 95,
- APP_USBD_HID_KBD_KEYPAD_8 = 96,
- APP_USBD_HID_KBD_KEYPAD_9 = 97,
- APP_USBD_HID_KBD_KEYPAD_0 = 98,
- } app_usbd_hid_kbd_codes_t;
- typedef enum {
- APP_USBD_HID_KBD_MODIFIER_NONE = 0x00,
- APP_USBD_HID_KBD_MODIFIER_LEFT_CTRL = 0x01,
- APP_USBD_HID_KBD_MODIFIER_LEFT_SHIFT = 0x02,
- APP_USBD_HID_KBD_MODIFIER_LEFT_ALT = 0x04,
- APP_USBD_HID_KBD_MODIFIER_LEFT_UI = 0x08,
- APP_USBD_HID_KBD_MODIFIER_RIGHT_CTRL = 0x10,
- APP_USBD_HID_KBD_MODIFIER_RIGHT_SHIFT = 0x20,
- APP_USBD_HID_KBD_MODIFIER_RIGHT_ALT = 0x40,
- APP_USBD_HID_KBD_MODIFIER_RIGHT_UI = 0x80,
- } app_usbd_hid_kbd_modifier_t;
- typedef enum {
- APP_USBD_HID_KBD_LED_NUM_LOCK = 0x01,
- APP_USBD_HID_KBD_LED_CAPS_LOCK = 0x02,
- APP_USBD_HID_KBD_LED_SCROLL_LOCK = 0x04,
- APP_USBD_HID_KBD_LED_COMPOSE = 0x08,
- APP_USBD_HID_KBD_LED_KANA = 0x10,
- } app_usbd_hid_kbd_led_t;
- #ifdef DOXYGEN
- typedef struct { } app_usbd_hid_kbd_t;
- #else
- APP_USBD_CLASS_TYPEDEF(app_usbd_hid_kbd, \
- APP_USBD_HID_KBD_CONFIG(0, NRF_DRV_USBD_EPIN1), \
- APP_USBD_HID_KBD_INSTANCE_SPECIFIC_DEC, \
- APP_USBD_HID_KBD_DATA_SPECIFIC_DEC \
- );
- #endif
- #define APP_USBD_HID_KBD_GLOBAL_DEF(instance_name, interface_number, endpoint, user_ev_handler, subclass_boot) \
- APP_USBD_HID_GENERIC_SUBCLASS_REPORT_DESC(keyboard_desc, APP_USBD_HID_KBD_REPORT_DSC()); \
- static const app_usbd_hid_subclass_desc_t * keyboard_descs[] = {&keyboard_desc}; \
- APP_USBD_HID_KBD_GLOBAL_DEF_INTERNAL(instance_name, \
- interface_number, \
- endpoint, \
- user_ev_handler, \
- subclass_boot)
- static inline app_usbd_class_inst_t const *
- app_usbd_hid_kbd_class_inst_get(app_usbd_hid_kbd_t const * p_kbd)
- {
- return &p_kbd->base;
- }
- static inline app_usbd_hid_kbd_t const *
- app_usbd_hid_kbd_class_get(app_usbd_class_inst_t const * p_inst)
- {
- return (app_usbd_hid_kbd_t const *)p_inst;
- }
- ret_code_t app_usbd_hid_kbd_modifier_state_set(app_usbd_hid_kbd_t const * p_kbd,
- app_usbd_hid_kbd_modifier_t modifier,
- bool state);
- ret_code_t app_usbd_hid_kbd_key_control(app_usbd_hid_kbd_t const * p_kbd,
- app_usbd_hid_kbd_codes_t key,
- bool press);
- bool app_usbd_hid_kbd_led_state_get(app_usbd_hid_kbd_t const * p_kbd,
- app_usbd_hid_kbd_led_t led);
- ret_code_t hid_kbd_on_set_protocol(app_usbd_hid_kbd_t const * p_kbd,
- app_usbd_hid_user_event_t ev);
- ret_code_t hid_kbd_clear_buffer(app_usbd_class_inst_t const * p_inst);
- #ifdef __cplusplus
- }
- #endif
- #endif
|