Skip to content

File syn_usb_hid_keyboard.h

FileList > drivers > syn_usb_hid_keyboard.h

Go to the source code of this file

Zero-Heap USB HID Boot Keyboard Device Helper Module.

  • #include "syntropic/common/syn_defs.h"
  • #include "syntropic/drivers/syn_usb_hid.h"
  • #include <stdbool.h>
  • #include <stddef.h>
  • #include <stdint.h>

Classes

Type Name
struct SYN_USB_HID_KeyboardReport

Public Attributes

Type Name
const uint8_t SYN_USB_HID_KEYBOARD_REPORT_DESC

Public Functions

Type Name
SYN_Status syn_usb_hid_keyboard_press (SYN_USB_HID * hid, uint8_t modifier, uint8_t keycode)
Send a single keystroke (press 1 key + optional modifier).
SYN_Status syn_usb_hid_keyboard_release (SYN_USB_HID * hid)
Send a keyboard release report (all keys released).
SYN_Status syn_usb_hid_keyboard_send (SYN_USB_HID * hid, uint8_t modifier, const uint8_t keycodes)
Send a USB HID Keyboard report containing active keycodes.

Macros

Type Name
define SYN_USB_HID_KEY_0 0x27U
USB HID Key 0 code.
define SYN_USB_HID_KEY_1 0x1EU
USB HID Key 1 code.
define SYN_USB_HID_KEY_2 0x1FU
USB HID Key 2 code.
define SYN_USB_HID_KEY_3 0x20U
USB HID Key 3 code.
define SYN_USB_HID_KEY_4 0x21U
USB HID Key 4 code.
define SYN_USB_HID_KEY_5 0x22U
USB HID Key 5 code.
define SYN_USB_HID_KEY_6 0x23U
USB HID Key 6 code.
define SYN_USB_HID_KEY_7 0x24U
USB HID Key 7 code.
define SYN_USB_HID_KEY_8 0x25U
USB HID Key 8 code.
define SYN_USB_HID_KEY_9 0x26U
USB HID Key 9 code.
define SYN_USB_HID_KEY_A 0x04U
USB HID Key A code.
define SYN_USB_HID_KEY_B 0x05U
USB HID Key B code.
define SYN_USB_HID_KEY_BACKSPACE 0x2AU
USB HID Backspace key code.
define SYN_USB_HID_KEY_C 0x06U
USB HID Key C code.
define SYN_USB_HID_KEY_D 0x07U
USB HID Key D code.
define SYN_USB_HID_KEY_E 0x08U
USB HID Key E code.
define SYN_USB_HID_KEY_ENTER 0x28U
USB HID Enter key code.
define SYN_USB_HID_KEY_ESCAPE 0x29U
USB HID Escape key code.
define SYN_USB_HID_KEY_F 0x09U
USB HID Key F code.
define SYN_USB_HID_KEY_G 0x0AU
USB HID Key G code.
define SYN_USB_HID_KEY_H 0x0BU
USB HID Key H code.
define SYN_USB_HID_KEY_I 0x0CU
USB HID Key I code.
define SYN_USB_HID_KEY_J 0x0DU
USB HID Key J code.
define SYN_USB_HID_KEY_K 0x0EU
USB HID Key K code.
define SYN_USB_HID_KEY_L 0x0FU
USB HID Key L code.
define SYN_USB_HID_KEY_M 0x10U
USB HID Key M code.
define SYN_USB_HID_KEY_N 0x11U
USB HID Key N code.
define SYN_USB_HID_KEY_NONE 0x00U
USB HID No key pressed code.
define SYN_USB_HID_KEY_O 0x12U
USB HID Key O code.
define SYN_USB_HID_KEY_P 0x13U
USB HID Key P code.
define SYN_USB_HID_KEY_Q 0x14U
USB HID Key Q code.
define SYN_USB_HID_KEY_R 0x15U
USB HID Key R code.
define SYN_USB_HID_KEY_S 0x16U
USB HID Key S code.
define SYN_USB_HID_KEY_SPACE 0x2CU
USB HID Space key code.
define SYN_USB_HID_KEY_T 0x17U
USB HID Key T code.
define SYN_USB_HID_KEY_TAB 0x2BU
USB HID Tab key code.
define SYN_USB_HID_KEY_U 0x18U
USB HID Key U code.
define SYN_USB_HID_KEY_V 0x19U
USB HID Key V code.
define SYN_USB_HID_KEY_W 0x1AU
USB HID Key W code.
define SYN_USB_HID_KEY_X 0x1BU
USB HID Key X code.
define SYN_USB_HID_KEY_Y 0x1CU
USB HID Key Y code.
define SYN_USB_HID_KEY_Z 0x1DU
USB HID Key Z code.
define SYN_USB_HID_MOD_LALT (1U &lt;&lt; 2)
Left Alt modifier bitmask.
define SYN_USB_HID_MOD_LCTRL (1U &lt;&lt; 0)
Left Ctrl modifier bitmask.
define SYN_USB_HID_MOD_LGUI (1U &lt;&lt; 3)
Left GUI modifier bitmask.
define SYN_USB_HID_MOD_LSHIFT (1U &lt;&lt; 1)
Left Shift modifier bitmask.
define SYN_USB_HID_MOD_RALT (1U &lt;&lt; 6)
Right Alt modifier bitmask.
define SYN_USB_HID_MOD_RCTRL (1U &lt;&lt; 4)
Right Ctrl modifier bitmask.
define SYN_USB_HID_MOD_RGUI (1U &lt;&lt; 7)
Right GUI modifier bitmask.
define SYN_USB_HID_MOD_RSHIFT (1U &lt;&lt; 5)
Right Shift modifier bitmask.

Public Attributes Documentation

variable SYN_USB_HID_KEYBOARD_REPORT_DESC

const uint8_t SYN_USB_HID_KEYBOARD_REPORT_DESC[63];

Standard USB HID Keyboard Report Descriptor (63 Bytes)


Public Functions Documentation

function syn_usb_hid_keyboard_press

Send a single keystroke (press 1 key + optional modifier).

SYN_Status syn_usb_hid_keyboard_press (
    SYN_USB_HID * hid,
    uint8_t modifier,
    uint8_t keycode
) 

Parameters:

  • hid Pointer to USB HID instance.
  • modifier Modifier bitmask (CTRL, SHIFT, ALT, GUI).
  • keycode HID keycode (e.g. SYN_USB_HID_KEY_A).

Returns:

SYN_OK on success.


function syn_usb_hid_keyboard_release

Send a keyboard release report (all keys released).

SYN_Status syn_usb_hid_keyboard_release (
    SYN_USB_HID * hid
) 

Parameters:

  • hid Pointer to USB HID instance.

Returns:

SYN_OK on success.


function syn_usb_hid_keyboard_send

Send a USB HID Keyboard report containing active keycodes.

SYN_Status syn_usb_hid_keyboard_send (
    SYN_USB_HID * hid,
    uint8_t modifier,
    const uint8_t keycodes
) 

Parameters:

  • hid Pointer to USB HID instance.
  • modifier Modifier bitmask (CTRL, SHIFT, ALT, GUI).
  • keycodes Array of up to 6 pressed keycodes (or NULL for no key).

Returns:

SYN_OK on success.


Macro Definition Documentation

define SYN_USB_HID_KEY_0

USB HID Key 0 code.

#define SYN_USB_HID_KEY_0 `0x27U`


define SYN_USB_HID_KEY_1

USB HID Key 1 code.

#define SYN_USB_HID_KEY_1 `0x1EU`


define SYN_USB_HID_KEY_2

USB HID Key 2 code.

#define SYN_USB_HID_KEY_2 `0x1FU`


define SYN_USB_HID_KEY_3

USB HID Key 3 code.

#define SYN_USB_HID_KEY_3 `0x20U`


define SYN_USB_HID_KEY_4

USB HID Key 4 code.

#define SYN_USB_HID_KEY_4 `0x21U`


define SYN_USB_HID_KEY_5

USB HID Key 5 code.

#define SYN_USB_HID_KEY_5 `0x22U`


define SYN_USB_HID_KEY_6

USB HID Key 6 code.

#define SYN_USB_HID_KEY_6 `0x23U`


define SYN_USB_HID_KEY_7

USB HID Key 7 code.

#define SYN_USB_HID_KEY_7 `0x24U`


define SYN_USB_HID_KEY_8

USB HID Key 8 code.

#define SYN_USB_HID_KEY_8 `0x25U`


define SYN_USB_HID_KEY_9

USB HID Key 9 code.

#define SYN_USB_HID_KEY_9 `0x26U`


define SYN_USB_HID_KEY_A

USB HID Key A code.

#define SYN_USB_HID_KEY_A `0x04U`


define SYN_USB_HID_KEY_B

USB HID Key B code.

#define SYN_USB_HID_KEY_B `0x05U`


define SYN_USB_HID_KEY_BACKSPACE

USB HID Backspace key code.

#define SYN_USB_HID_KEY_BACKSPACE `0x2AU`


define SYN_USB_HID_KEY_C

USB HID Key C code.

#define SYN_USB_HID_KEY_C `0x06U`


define SYN_USB_HID_KEY_D

USB HID Key D code.

#define SYN_USB_HID_KEY_D `0x07U`


define SYN_USB_HID_KEY_E

USB HID Key E code.

#define SYN_USB_HID_KEY_E `0x08U`


define SYN_USB_HID_KEY_ENTER

USB HID Enter key code.

#define SYN_USB_HID_KEY_ENTER `0x28U`


define SYN_USB_HID_KEY_ESCAPE

USB HID Escape key code.

#define SYN_USB_HID_KEY_ESCAPE `0x29U`


define SYN_USB_HID_KEY_F

USB HID Key F code.

#define SYN_USB_HID_KEY_F `0x09U`


define SYN_USB_HID_KEY_G

USB HID Key G code.

#define SYN_USB_HID_KEY_G `0x0AU`


define SYN_USB_HID_KEY_H

USB HID Key H code.

#define SYN_USB_HID_KEY_H `0x0BU`


define SYN_USB_HID_KEY_I

USB HID Key I code.

#define SYN_USB_HID_KEY_I `0x0CU`


define SYN_USB_HID_KEY_J

USB HID Key J code.

#define SYN_USB_HID_KEY_J `0x0DU`


define SYN_USB_HID_KEY_K

USB HID Key K code.

#define SYN_USB_HID_KEY_K `0x0EU`


define SYN_USB_HID_KEY_L

USB HID Key L code.

#define SYN_USB_HID_KEY_L `0x0FU`


define SYN_USB_HID_KEY_M

USB HID Key M code.

#define SYN_USB_HID_KEY_M `0x10U`


define SYN_USB_HID_KEY_N

USB HID Key N code.

#define SYN_USB_HID_KEY_N `0x11U`


define SYN_USB_HID_KEY_NONE

USB HID No key pressed code.

#define SYN_USB_HID_KEY_NONE `0x00U`

Standard USB HID Keyboard Keycodes


define SYN_USB_HID_KEY_O

USB HID Key O code.

#define SYN_USB_HID_KEY_O `0x12U`


define SYN_USB_HID_KEY_P

USB HID Key P code.

#define SYN_USB_HID_KEY_P `0x13U`


define SYN_USB_HID_KEY_Q

USB HID Key Q code.

#define SYN_USB_HID_KEY_Q `0x14U`


define SYN_USB_HID_KEY_R

USB HID Key R code.

#define SYN_USB_HID_KEY_R `0x15U`


define SYN_USB_HID_KEY_S

USB HID Key S code.

#define SYN_USB_HID_KEY_S `0x16U`


define SYN_USB_HID_KEY_SPACE

USB HID Space key code.

#define SYN_USB_HID_KEY_SPACE `0x2CU`


define SYN_USB_HID_KEY_T

USB HID Key T code.

#define SYN_USB_HID_KEY_T `0x17U`


define SYN_USB_HID_KEY_TAB

USB HID Tab key code.

#define SYN_USB_HID_KEY_TAB `0x2BU`


define SYN_USB_HID_KEY_U

USB HID Key U code.

#define SYN_USB_HID_KEY_U `0x18U`


define SYN_USB_HID_KEY_V

USB HID Key V code.

#define SYN_USB_HID_KEY_V `0x19U`


define SYN_USB_HID_KEY_W

USB HID Key W code.

#define SYN_USB_HID_KEY_W `0x1AU`


define SYN_USB_HID_KEY_X

USB HID Key X code.

#define SYN_USB_HID_KEY_X `0x1BU`


define SYN_USB_HID_KEY_Y

USB HID Key Y code.

#define SYN_USB_HID_KEY_Y `0x1CU`


define SYN_USB_HID_KEY_Z

USB HID Key Z code.

#define SYN_USB_HID_KEY_Z `0x1DU`


define SYN_USB_HID_MOD_LALT

Left Alt modifier bitmask.

#define SYN_USB_HID_MOD_LALT `(1U << 2)`


define SYN_USB_HID_MOD_LCTRL

Left Ctrl modifier bitmask.

#define SYN_USB_HID_MOD_LCTRL `(1U << 0)`

USB HID Keyboard Modifier Bitmasks per USB HID Usage Tables ยง10


define SYN_USB_HID_MOD_LGUI

Left GUI modifier bitmask.

#define SYN_USB_HID_MOD_LGUI `(1U << 3)`


define SYN_USB_HID_MOD_LSHIFT

Left Shift modifier bitmask.

#define SYN_USB_HID_MOD_LSHIFT `(1U << 1)`


define SYN_USB_HID_MOD_RALT

Right Alt modifier bitmask.

#define SYN_USB_HID_MOD_RALT `(1U << 6)`


define SYN_USB_HID_MOD_RCTRL

Right Ctrl modifier bitmask.

#define SYN_USB_HID_MOD_RCTRL `(1U << 4)`


define SYN_USB_HID_MOD_RGUI

Right GUI modifier bitmask.

#define SYN_USB_HID_MOD_RGUI `(1U << 7)`


define SYN_USB_HID_MOD_RSHIFT

Right Shift modifier bitmask.

#define SYN_USB_HID_MOD_RSHIFT `(1U << 5)`



The documentation for this class was generated from the following file src/syntropic/drivers/syn_usb_hid_keyboard.h