USB Device HID API#

USB Device HID API.

Modules#

sl_usbd_hid_callbacks_t

Enumerations#

enum
SL_USBD_HID_COUNTRY_CODE_NOT_SUPPORTED = 0u
SL_USBD_HID_COUNTRY_CODE_ARABIC = 1u
SL_USBD_HID_COUNTRY_CODE_BELGIAN = 2u
SL_USBD_HID_COUNTRY_CODE_CANADIAN_BILINGUAL = 3u
SL_USBD_HID_COUNTRY_CODE_CANADIAN_FRENCH = 4u
SL_USBD_HID_COUNTRY_CODE_CZECH_REPUBLIC = 5u
SL_USBD_HID_COUNTRY_CODE_DANISH = 6u
SL_USBD_HID_COUNTRY_CODE_FINNISH = 7u
SL_USBD_HID_COUNTRY_CODE_FRENCH = 8u
SL_USBD_HID_COUNTRY_CODE_GERMAN = 9u
SL_USBD_HID_COUNTRY_CODE_GREEK = 10u
SL_USBD_HID_COUNTRY_CODE_HEBREW = 11u
SL_USBD_HID_COUNTRY_CODE_HUNGARY = 12u
SL_USBD_HID_COUNTRY_CODE_INTERNATIONAL = 13u
SL_USBD_HID_COUNTRY_CODE_ITALIAN = 14u
SL_USBD_HID_COUNTRY_CODE_JAPAN_KATAKANA = 15u
SL_USBD_HID_COUNTRY_CODE_KOREAN = 16u
SL_USBD_HID_COUNTRY_CODE_LATIN_AMERICAN = 17u
SL_USBD_HID_COUNTRY_CODE_NETHERLANDS_DUTCH = 18u
SL_USBD_HID_COUNTRY_CODE_NORWEGIAN = 19u
SL_USBD_HID_COUNTRY_CODE_PERSIAN_FARSI = 20u
SL_USBD_HID_COUNTRY_CODE_POLAND = 21u
SL_USBD_HID_COUNTRY_CODE_PORTUGUESE = 22u
SL_USBD_HID_COUNTRY_CODE_RUSSIA = 23u
SL_USBD_HID_COUNTRY_CODE_SLOVAKIA = 24u
SL_USBD_HID_COUNTRY_CODE_SPANISH = 25u
SL_USBD_HID_COUNTRY_CODE_SWEDISH = 26u
SL_USBD_HID_COUNTRY_CODE_SWISS_FRENCH = 27u
SL_USBD_HID_COUNTRY_CODE_SWISS_GERMAN = 28u
SL_USBD_HID_COUNTRY_CODE_SWITZERLAND = 29u
SL_USBD_HID_COUNTRY_CODE_TAIWAN = 30u
SL_USBD_HID_COUNTRY_CODE_TURKISH_Q = 31u
SL_USBD_HID_COUNTRY_CODE_UK = 32u
SL_USBD_HID_COUNTRY_CODE_US = 33u
SL_USBD_HID_COUNTRY_CODE_YUGOSLAVIA = 34u
SL_USBD_HID_COUNTRY_CODE_TURKISH_F = 35u
}

DEFINES.

Typedefs#

typedef void(*
sl_usbd_hid_async_function_t)(uint8_t class_nbr, void *p_buf, uint32_t buf_len, uint32_t xfer_len, void *p_callback_arg, sl_status_t status)

GLOBAL CONSTANTS.

Functions#

sl_status_t

GLOBAL CONSTANTS.

sl_status_t
sl_usbd_hid_create_instance(uint8_t subclass, uint8_t protocol, sl_usbd_hid_country_code_t country_code, uint16_t interval_in, uint16_t interval_out, bool ctrl_rd_en, sl_usbd_hid_callbacks_t *p_hid_callbacks, uint8_t *p_class_nbr)

Add a new instance of the HID class.

sl_status_t
sl_usbd_hid_add_to_configuration(uint8_t class_nbr, uint8_t config_nbr)

Add the HID class instance to the USB device configuration (see Note #1).

sl_status_t
sl_usbd_hid_is_enabled(uint8_t class_nbr, bool *p_enabled)

Get the HID class enable state.

sl_status_t
sl_usbd_hid_write_sync(uint8_t class_nbr, void *p_buf, uint32_t buf_len, uint16_t timeout, uint32_t *p_xfer_len)

Send data to the host through the Interrupt IN endpoint.

sl_status_t
sl_usbd_hid_read_sync(uint8_t class_nbr, void *p_buf, uint32_t buf_len, uint16_t timeout, uint32_t *p_xfer_len)

Receive data from the host through the Interrupt OUT endpoint.

sl_status_t
sl_usbd_hid_read_async(uint8_t class_nbr, void *p_buf, uint32_t buf_len, sl_usbd_hid_async_function_t async_fnct, void *p_async_arg)

Receive data from the host through the Interrupt OUT endpoint.

sl_status_t
sl_usbd_hid_write_async(uint8_t class_nbr, void *p_buf, uint32_t buf_len, sl_usbd_hid_async_function_t async_fnct, void *p_async_arg)

Send data to the host through the Interrupt IN endpoint.

Macros#

#define

MODULE.

#define

HUMAN INTERFACE DEVICE CLASS SUBCLASS CODES DEFINES.

#define

HUMAN INTERFACE DEVICE CLASS PROTOCOL CODES DEFINES.

#define

ITEM TYPES.

#define
                              HID PHYSICAL DESCRIPTOR DEFINES

Note(s) : (1) See 'Device Class Definition for Human Interface Devices Version 1.11', Section 6.2.3.

#define
                                      HID USAGE PAGES

Note(s) : (1) See 'Universal Serial Bus HID Usage Tables', Version 1.12, Section 3 for more details about Usage Pages.

(2) See 'Universal Serial Bus HID Usage Tables', Version 1.12, Section 4 for more details about Generic Desktop Page usages and controls.

#define
#define
#define

Enumeration Documentation#

sl_usbd_hid_country_code_t#

sl_usbd_hid_country_code_t

DEFINES.

                     HUMAN INTERFACE DEVICE COUNTRY CODES DEFINES

Note(s) : (1) See 'Device Class Definition for Human Interface Devices (HID), 6/27/01, Version 1.11', section 6.2.1 for more details about HID descriptor country code.

(a) The country code identifies which country the hardware is localized for. Most hardware is not localized and thus this value would be zero (0). However, keyboards may use the field to indicate the language of the key caps.

Enumerator
SL_USBD_HID_COUNTRY_CODE_NOT_SUPPORTED
SL_USBD_HID_COUNTRY_CODE_ARABIC
SL_USBD_HID_COUNTRY_CODE_BELGIAN
SL_USBD_HID_COUNTRY_CODE_CANADIAN_BILINGUAL
SL_USBD_HID_COUNTRY_CODE_CANADIAN_FRENCH
SL_USBD_HID_COUNTRY_CODE_CZECH_REPUBLIC
SL_USBD_HID_COUNTRY_CODE_DANISH
SL_USBD_HID_COUNTRY_CODE_FINNISH
SL_USBD_HID_COUNTRY_CODE_FRENCH
SL_USBD_HID_COUNTRY_CODE_GERMAN
SL_USBD_HID_COUNTRY_CODE_GREEK
SL_USBD_HID_COUNTRY_CODE_HEBREW
SL_USBD_HID_COUNTRY_CODE_HUNGARY
SL_USBD_HID_COUNTRY_CODE_INTERNATIONAL
SL_USBD_HID_COUNTRY_CODE_ITALIAN
SL_USBD_HID_COUNTRY_CODE_JAPAN_KATAKANA
SL_USBD_HID_COUNTRY_CODE_KOREAN
SL_USBD_HID_COUNTRY_CODE_LATIN_AMERICAN
SL_USBD_HID_COUNTRY_CODE_NETHERLANDS_DUTCH
SL_USBD_HID_COUNTRY_CODE_NORWEGIAN
SL_USBD_HID_COUNTRY_CODE_PERSIAN_FARSI
SL_USBD_HID_COUNTRY_CODE_POLAND
SL_USBD_HID_COUNTRY_CODE_PORTUGUESE
SL_USBD_HID_COUNTRY_CODE_RUSSIA
SL_USBD_HID_COUNTRY_CODE_SLOVAKIA
SL_USBD_HID_COUNTRY_CODE_SPANISH
SL_USBD_HID_COUNTRY_CODE_SWEDISH
SL_USBD_HID_COUNTRY_CODE_SWISS_FRENCH
SL_USBD_HID_COUNTRY_CODE_SWISS_GERMAN
SL_USBD_HID_COUNTRY_CODE_SWITZERLAND
SL_USBD_HID_COUNTRY_CODE_TAIWAN
SL_USBD_HID_COUNTRY_CODE_TURKISH_Q
SL_USBD_HID_COUNTRY_CODE_UK
SL_USBD_HID_COUNTRY_CODE_US
SL_USBD_HID_COUNTRY_CODE_YUGOSLAVIA
SL_USBD_HID_COUNTRY_CODE_TURKISH_F

Typedef Documentation#

sl_usbd_hid_async_function_t#

typedef void(* sl_usbd_hid_async_function_t) (uint8_t class_nbr, void *p_buf, uint32_t buf_len, uint32_t xfer_len, void *p_callback_arg, sl_status_t status) )(uint8_t class_nbr, void *p_buf, uint32_t buf_len, uint32_t xfer_len, void *p_callback_arg, sl_status_t status)

GLOBAL CONSTANTS.

DATA TYPES Async comm callback


Function Documentation#

sl_usbd_hid_init#

sl_status_t sl_usbd_hid_init (void )

GLOBAL CONSTANTS.

Parameters
TypeDirectionArgument NameDescription
voidN/A

FUNCTION PROTOTYPES HID FUNCTIONS

Initialize HID class.

Returns

  • Returns SL_STATUS_OK on success or another SL_STATUS code on failure.


sl_usbd_hid_create_instance#

sl_status_t sl_usbd_hid_create_instance (uint8_t subclass, uint8_t protocol, sl_usbd_hid_country_code_t country_code, uint16_t interval_in, uint16_t interval_out, bool ctrl_rd_en, sl_usbd_hid_callbacks_t * p_hid_callbacks, uint8_t * p_class_nbr)

Add a new instance of the HID class.

Parameters
TypeDirectionArgument NameDescription
uint8_tN/Asubclass

Subclass code.

uint8_tN/Aprotocol

protocol code.

sl_usbd_hid_country_code_tN/Acountry_code

Country code id.

uint16_tN/Ainterval_in

Polling interval for input transfers, in milliseconds. It must be a power of 2.

uint16_tN/Ainterval_out

Polling interval for output transfers, in milliseconds. It must be a power of 2. Used only when read operations are not through control transfers.

boolN/Actrl_rd_en

Enable read operations through the control transfers.

sl_usbd_hid_callbacks_t *N/Ap_hid_callbacks

Pointer to HID descriptor and request callback structure. [Content MUST be persistent]

uint8_t *N/Ap_class_nbr

Pointer to variable that will receive class instance number. The variable is set to class instance number if no errors are returned, otherwise it is set to SL_USBD_CLASS_NBR_NONE.

Returns

  • Returns SL_STATUS_OK on success or another SL_STATUS code on failure.


sl_usbd_hid_add_to_configuration#

sl_status_t sl_usbd_hid_add_to_configuration (uint8_t class_nbr, uint8_t config_nbr)

Add the HID class instance to the USB device configuration (see Note #1).

Parameters
TypeDirectionArgument NameDescription
uint8_tN/Aclass_nbr

Class instance number.

uint8_tN/Aconfig_nbr

Configuration index to add HID class instance to.

Returns

  • Returns SL_STATUS_OK on success or another SL_STATUS code on failure.

Note

  • (1) Called several times, it creates multiple instances and configurations. For instance, the following architecture could be created :

    *               FS
    *               |-- Configuration 0 (HID class 0)
    *                                   (HID class 1)
    *                                   (HID class 2)
    *                   |-- Interface 0
    *               |-- Configuration 1 (HID class 0)
    *                   |-- Interface 0
    *               
  • (2) Configuration Descriptor corresponding to a HID device uses the following format :

    *               Configuration Descriptor
    *               |-- Interface Descriptor (HID class)
    *                   |-- Endpoint Descriptor (Interrupt IN)
    *                   |-- Endpoint Descriptor (Interrupt OUT) - optional
    *               

sl_usbd_hid_is_enabled#

sl_status_t sl_usbd_hid_is_enabled (uint8_t class_nbr, bool * p_enabled)

Get the HID class enable state.

Parameters
TypeDirectionArgument NameDescription
uint8_tN/Aclass_nbr

Class instance number.

bool *N/Ap_enabled

Pointer to a variable that will receive HID class enable state. The variable is set to true if HID class is enabled, and is set to false if it is NOT enabled.

Returns

  • Returns SL_STATUS_OK on success or another SL_STATUS code on failure.


sl_usbd_hid_write_sync#

sl_status_t sl_usbd_hid_write_sync (uint8_t class_nbr, void * p_buf, uint32_t buf_len, uint16_t timeout, uint32_t * p_xfer_len)

Send data to the host through the Interrupt IN endpoint.

Parameters
TypeDirectionArgument NameDescription
uint8_tN/Aclass_nbr

Class instance number.

void *N/Ap_buf

Pointer to the transmit buffer. If more than one input report exists, the first byte must represent the report id.

uint32_tN/Abuf_len

Transmit buffer length, in octets.

uint16_tN/Atimeout

Timeout in milliseconds.

uint32_t *N/Ap_xfer_len

Pointer to a variable that will receive transfer length. The variable is set to number of octets received, if no errors are returned, or is set to 0 if any errors are returned.

This function is blocking.

Returns

  • Returns SL_STATUS_OK on success or another SL_STATUS code on failure.


sl_usbd_hid_read_sync#

sl_status_t sl_usbd_hid_read_sync (uint8_t class_nbr, void * p_buf, uint32_t buf_len, uint16_t timeout, uint32_t * p_xfer_len)

Receive data from the host through the Interrupt OUT endpoint.

Parameters
TypeDirectionArgument NameDescription
uint8_tN/Aclass_nbr

Class instance number.

void *N/Ap_buf

Pointer to the receive buffer.

uint32_tN/Abuf_len

Receive the buffer length, in octets.

uint16_tN/Atimeout

Timeout, in milliseconds.

uint32_t *N/Ap_xfer_len

Pointer to a variable that will receive transfer length. The variable is set to number of octets received, if no errors are returned, or is set to 0 if any errors are returned.

This function is blocking.

Returns

  • Returns SL_STATUS_OK on success or another SL_STATUS code on failure.


sl_usbd_hid_read_async#

sl_status_t sl_usbd_hid_read_async (uint8_t class_nbr, void * p_buf, uint32_t buf_len, sl_usbd_hid_async_function_t async_fnct, void * p_async_arg)

Receive data from the host through the Interrupt OUT endpoint.

Parameters
TypeDirectionArgument NameDescription
uint8_tN/Aclass_nbr

Class instance number.

void *N/Ap_buf

Pointer to receive buffer.

uint32_tN/Abuf_len

Receive buffer length, in octets.

sl_usbd_hid_async_function_tN/Aasync_fnct

Receive callback.

void *N/Ap_async_arg

Additional argument provided by application for receive callback.

This function is non-blocking and returns immediately after transfer preparation. Upon transfer completion, the provided callback is called to notify the application.

Returns

  • Returns SL_STATUS_OK on success or another SL_STATUS code on failure.


sl_usbd_hid_write_async#

sl_status_t sl_usbd_hid_write_async (uint8_t class_nbr, void * p_buf, uint32_t buf_len, sl_usbd_hid_async_function_t async_fnct, void * p_async_arg)

Send data to the host through the Interrupt IN endpoint.

Parameters
TypeDirectionArgument NameDescription
uint8_tN/Aclass_nbr

Class instance number.

void *N/Ap_buf

Pointer to transmit buffer. If more than one input report exists, the first byte must represent the report id.

uint32_tN/Abuf_len

Transmit buffer length, in octets.

sl_usbd_hid_async_function_tN/Aasync_fnct

Transmit callback.

void *N/Ap_async_arg

Additional argument provided by application for transmit callback.

This function is non-blocking, and returns immediately after transfer preparation. Upon transfer completion, the provided callback is called to notify the application.

Returns

  • Returns SL_STATUS_OK on success or another SL_STATUS code on failure.


Macro Definition Documentation#

SLI_USBD_HID_EXTERN#

#define SLI_USBD_HID_EXTERN
Value:
extern

MODULE.

INCLUDE FILES EXTERNS


SL_USBD_HID_SUBCLASS_NONE#

#define SL_USBD_HID_SUBCLASS_NONE
Value:
0x00u

HUMAN INTERFACE DEVICE CLASS SUBCLASS CODES DEFINES.

Note(s) : (1) Human interface device class subclass codes are defined in section 4.2 of HID specification revision 1.11.


SL_USBD_HID_SUBCLASS_BOOT#

#define SL_USBD_HID_SUBCLASS_BOOT
Value:
0x01u

SL_USBD_HID_PROTOCOL_NONE#

#define SL_USBD_HID_PROTOCOL_NONE
Value:
0x00u

HUMAN INTERFACE DEVICE CLASS PROTOCOL CODES DEFINES.

Note(s) : (1) Human interface device class protocol codes are defined in section 4.3 of HID specification revision 1.11.


SL_USBD_HID_PROTOCOL_KBD#

#define SL_USBD_HID_PROTOCOL_KBD
Value:
0x01u

SL_USBD_HID_PROTOCOL_MOUSE#

#define SL_USBD_HID_PROTOCOL_MOUSE
Value:
0x02u

SL_USBD_HID_ITEM_LONG#

#define SL_USBD_HID_ITEM_LONG
Value:
0xFE

ITEM TYPES.


SL_USBD_HID_ITEM_TYPE_MAIN#

#define SL_USBD_HID_ITEM_TYPE_MAIN
Value:
0x00

SL_USBD_HID_ITEM_TYPE_GLOBAL#

#define SL_USBD_HID_ITEM_TYPE_GLOBAL
Value:
0x04

SL_USBD_HID_ITEM_TYPE_LOCAL#

#define SL_USBD_HID_ITEM_TYPE_LOCAL
Value:
0x08

SL_USBD_HID_ITEM_TYPE_RESERVED#

#define SL_USBD_HID_ITEM_TYPE_RESERVED
Value:
0x0C

SL_USBD_HID_MAIN_INPUT#

#define SL_USBD_HID_MAIN_INPUT
Value:
0x80

SL_USBD_HID_MAIN_OUTPUT#

#define SL_USBD_HID_MAIN_OUTPUT
Value:
0x90

SL_USBD_HID_MAIN_COLLECTION#

#define SL_USBD_HID_MAIN_COLLECTION
Value:
0xA0

SL_USBD_HID_MAIN_FEATURE#

#define SL_USBD_HID_MAIN_FEATURE
Value:
0xB0

SL_USBD_HID_MAIN_ENDCOLLECTION#

#define SL_USBD_HID_MAIN_ENDCOLLECTION
Value:
0xC0

SL_USBD_HID_MAIN_CONSTANT#

#define SL_USBD_HID_MAIN_CONSTANT
Value:
0x01

SL_USBD_HID_MAIN_DATA#

#define SL_USBD_HID_MAIN_DATA
Value:
0x00

SL_USBD_HID_MAIN_VARIABLE#

#define SL_USBD_HID_MAIN_VARIABLE
Value:
0x02

SL_USBD_HID_MAIN_ARRAY#

#define SL_USBD_HID_MAIN_ARRAY
Value:
0x00

SL_USBD_HID_MAIN_RELATIVE#

#define SL_USBD_HID_MAIN_RELATIVE
Value:
0x04

SL_USBD_HID_MAIN_ABSOLUTE#

#define SL_USBD_HID_MAIN_ABSOLUTE
Value:
0x00

SL_USBD_HID_MAIN_WRAP#

#define SL_USBD_HID_MAIN_WRAP
Value:
0x08

SL_USBD_HID_MAIN_NOWRAP#

#define SL_USBD_HID_MAIN_NOWRAP
Value:
0x00

SL_USBD_HID_MAIN_NONLINEAR#

#define SL_USBD_HID_MAIN_NONLINEAR
Value:
0x10

SL_USBD_HID_MAIN_LINEAR#

#define SL_USBD_HID_MAIN_LINEAR
Value:
0x00

SL_USBD_HID_MAIN_NOPREFERRED#

#define SL_USBD_HID_MAIN_NOPREFERRED
Value:
0x20

SL_USBD_HID_MAIN_PREFERREDSTATE#

#define SL_USBD_HID_MAIN_PREFERREDSTATE
Value:
0x00

SL_USBD_HID_MAIN_NULLSTATE#

#define SL_USBD_HID_MAIN_NULLSTATE
Value:
0x40

SL_USBD_HID_MAIN_NONULLPOSITION#

#define SL_USBD_HID_MAIN_NONULLPOSITION
Value:
0x00

SL_USBD_HID_MAIN_VOLATILE#

#define SL_USBD_HID_MAIN_VOLATILE
Value:
0x80

SL_USBD_HID_MAIN_NONVOLATILE#

#define SL_USBD_HID_MAIN_NONVOLATILE
Value:
0x00

SL_USBD_HID_MAIN_BUFFEREDBYTES#

#define SL_USBD_HID_MAIN_BUFFEREDBYTES
Value:
0x0100

SL_USBD_HID_MAIN_BITFIELD#

#define SL_USBD_HID_MAIN_BITFIELD
Value:
0x0000

SL_USBD_HID_COLLECTION_PHYSICAL#

#define SL_USBD_HID_COLLECTION_PHYSICAL
Value:
0x00

SL_USBD_HID_COLLECTION_APPLICATION#

#define SL_USBD_HID_COLLECTION_APPLICATION
Value:
0x01

SL_USBD_HID_COLLECTION_LOGICAL#

#define SL_USBD_HID_COLLECTION_LOGICAL
Value:
0x02

SL_USBD_HID_COLLECTION_REPORT#

#define SL_USBD_HID_COLLECTION_REPORT
Value:
0x03

SL_USBD_HID_COLLECTION_NAMEDARRAY#

#define SL_USBD_HID_COLLECTION_NAMEDARRAY
Value:
0x04

SL_USBD_HID_COLLECTION_USAGESWITCH#

#define SL_USBD_HID_COLLECTION_USAGESWITCH
Value:
0x05

SL_USBD_HID_COLLECTION_USAGEMODIFIER#

#define SL_USBD_HID_COLLECTION_USAGEMODIFIER
Value:
0x06

SL_USBD_HID_GLOBAL_USAGE_PAGE#

#define SL_USBD_HID_GLOBAL_USAGE_PAGE
Value:
0x04

SL_USBD_HID_GLOBAL_LOG_MIN#

#define SL_USBD_HID_GLOBAL_LOG_MIN
Value:
0x14

SL_USBD_HID_GLOBAL_LOG_MAX#

#define SL_USBD_HID_GLOBAL_LOG_MAX
Value:
0x24

SL_USBD_HID_GLOBAL_PHY_MIN#

#define SL_USBD_HID_GLOBAL_PHY_MIN
Value:
0x34

SL_USBD_HID_GLOBAL_PHY_MAX#

#define SL_USBD_HID_GLOBAL_PHY_MAX
Value:
0x44

SL_USBD_HID_GLOBAL_UNIT_EXPONENT#

#define SL_USBD_HID_GLOBAL_UNIT_EXPONENT
Value:
0x54

SL_USBD_HID_GLOBAL_UNIT#

#define SL_USBD_HID_GLOBAL_UNIT
Value:
0x64

SL_USBD_HID_GLOBAL_REPORT_SIZE#

#define SL_USBD_HID_GLOBAL_REPORT_SIZE
Value:
0x74

SL_USBD_HID_GLOBAL_REPORT_ID#

#define SL_USBD_HID_GLOBAL_REPORT_ID
Value:
0x84

SL_USBD_HID_GLOBAL_REPORT_COUNT#

#define SL_USBD_HID_GLOBAL_REPORT_COUNT
Value:
0x94

SL_USBD_HID_GLOBAL_PUSH#

#define SL_USBD_HID_GLOBAL_PUSH
Value:
0xA4

SL_USBD_HID_GLOBAL_POP#

#define SL_USBD_HID_GLOBAL_POP
Value:
0xB4

SL_USBD_HID_LOCAL_USAGE#

#define SL_USBD_HID_LOCAL_USAGE
Value:
0x08

SL_USBD_HID_LOCAL_USAGE_MIN#

#define SL_USBD_HID_LOCAL_USAGE_MIN
Value:
0x18

SL_USBD_HID_LOCAL_USAGE_MAX#

#define SL_USBD_HID_LOCAL_USAGE_MAX
Value:
0x28

SL_USBD_HID_LOCAL_DESIGNATOR_INDEX#

#define SL_USBD_HID_LOCAL_DESIGNATOR_INDEX
Value:
0x38

SL_USBD_HID_LOCAL_DESIGNATOR_MIN#

#define SL_USBD_HID_LOCAL_DESIGNATOR_MIN
Value:
0x48

SL_USBD_HID_LOCAL_DESIGNATOR_MAX#

#define SL_USBD_HID_LOCAL_DESIGNATOR_MAX
Value:
0x58

SL_USBD_HID_LOCAL_STRING_INDEX#

#define SL_USBD_HID_LOCAL_STRING_INDEX
Value:
0x78

SL_USBD_HID_LOCAL_STRING_MIN#

#define SL_USBD_HID_LOCAL_STRING_MIN
Value:
0x88

SL_USBD_HID_LOCAL_STRING_MAX#

#define SL_USBD_HID_LOCAL_STRING_MAX
Value:
0x98

SL_USBD_HID_LOCAL_DELIMITER#

#define SL_USBD_HID_LOCAL_DELIMITER
Value:
0xA8

SL_USBD_HID_BIAS_NOT_APPLICABLE#

#define SL_USBD_HID_BIAS_NOT_APPLICABLE
Value:
0
                              HID PHYSICAL DESCRIPTOR DEFINES

Note(s) : (1) See 'Device Class Definition for Human Interface Devices Version 1.11', Section 6.2.3.


SL_USBD_HID_BIAS_RIGHT_HAND#

#define SL_USBD_HID_BIAS_RIGHT_HAND
Value:
1

SL_USBD_HID_BIAS_LEFT_HAND#

#define SL_USBD_HID_BIAS_LEFT_HAND
Value:
2

SL_USBD_HID_BIAS_BOTH_HANDS#

#define SL_USBD_HID_BIAS_BOTH_HANDS
Value:
3

SL_USBD_HID_BIAS_EITHER_HAND#

#define SL_USBD_HID_BIAS_EITHER_HAND
Value:
4

SL_USBD_HID_DESIGNATOR_NONE#

#define SL_USBD_HID_DESIGNATOR_NONE
Value:
0x00

SL_USBD_HID_DESIGNATOR_HAND#

#define SL_USBD_HID_DESIGNATOR_HAND
Value:
0x01

SL_USBD_HID_DESIGNATOR_EYEBALL#

#define SL_USBD_HID_DESIGNATOR_EYEBALL
Value:
0x02

SL_USBD_HID_DESIGNATOR_EYEBROW#

#define SL_USBD_HID_DESIGNATOR_EYEBROW
Value:
0x03

SL_USBD_HID_DESIGNATOR_EYELID#

#define SL_USBD_HID_DESIGNATOR_EYELID
Value:
0x04

SL_USBD_HID_DESIGNATOR_EAR#

#define SL_USBD_HID_DESIGNATOR_EAR
Value:
0x05

SL_USBD_HID_DESIGNATOR_NOSE#

#define SL_USBD_HID_DESIGNATOR_NOSE
Value:
0x06

SL_USBD_HID_DESIGNATOR_MOUTH#

#define SL_USBD_HID_DESIGNATOR_MOUTH
Value:
0x07

SL_USBD_HID_DESIGNATOR_UPPER_LIP#

#define SL_USBD_HID_DESIGNATOR_UPPER_LIP
Value:
0x08

SL_USBD_HID_DESIGNATOR_LOWER_LIP#

#define SL_USBD_HID_DESIGNATOR_LOWER_LIP
Value:
0x09

SL_USBD_HID_DESIGNATOR_JAW#

#define SL_USBD_HID_DESIGNATOR_JAW
Value:
0x0A

SL_USBD_HID_DESIGNATOR_NECK#

#define SL_USBD_HID_DESIGNATOR_NECK
Value:
0x0B

SL_USBD_HID_DESIGNATOR_UPPER_ARM#

#define SL_USBD_HID_DESIGNATOR_UPPER_ARM
Value:
0x0C

SL_USBD_HID_DESIGNATOR_ELBOW#

#define SL_USBD_HID_DESIGNATOR_ELBOW
Value:
0x0D

SL_USBD_HID_DESIGNATOR_FOREARM#

#define SL_USBD_HID_DESIGNATOR_FOREARM
Value:
0x0E

SL_USBD_HID_DESIGNATOR_WRIST#

#define SL_USBD_HID_DESIGNATOR_WRIST
Value:
0x0F

SL_USBD_HID_DESIGNATOR_PALM#

#define SL_USBD_HID_DESIGNATOR_PALM
Value:
0x10

SL_USBD_HID_DESIGNATOR_THUMB#

#define SL_USBD_HID_DESIGNATOR_THUMB
Value:
0x11

SL_USBD_HID_DESIGNATOR_INDEX_FINGER#

#define SL_USBD_HID_DESIGNATOR_INDEX_FINGER
Value:
0x12

SL_USBD_HID_DESIGNATOR_MIDDLE_FINGER#

#define SL_USBD_HID_DESIGNATOR_MIDDLE_FINGER
Value:
0x13

SL_USBD_HID_DESIGNATOR_RING_FINGER#

#define SL_USBD_HID_DESIGNATOR_RING_FINGER
Value:
0x14

SL_USBD_HID_DESIGNATOR_LITTLE_FINGER#

#define SL_USBD_HID_DESIGNATOR_LITTLE_FINGER
Value:
0x15

SL_USBD_HID_DESIGNATOR_HEAD#

#define SL_USBD_HID_DESIGNATOR_HEAD
Value:
0x16

SL_USBD_HID_DESIGNATOR_SHOULDER#

#define SL_USBD_HID_DESIGNATOR_SHOULDER
Value:
0x17

SL_USBD_HID_DESIGNATOR_HIP#

#define SL_USBD_HID_DESIGNATOR_HIP
Value:
0x18

SL_USBD_HID_DESIGNATOR_WAIST#

#define SL_USBD_HID_DESIGNATOR_WAIST
Value:
0x19

SL_USBD_HID_DESIGNATOR_THIGH#

#define SL_USBD_HID_DESIGNATOR_THIGH
Value:
0x1A

SL_USBD_HID_DESIGNATOR_KNEE#

#define SL_USBD_HID_DESIGNATOR_KNEE
Value:
0x1B

SL_USBD_HID_DESIGNATOR_CALF#

#define SL_USBD_HID_DESIGNATOR_CALF
Value:
0x1C

SL_USBD_HID_DESIGNATOR_ANKLE#

#define SL_USBD_HID_DESIGNATOR_ANKLE
Value:
0x1D

SL_USBD_HID_DESIGNATOR_FOOT#

#define SL_USBD_HID_DESIGNATOR_FOOT
Value:
0x1E

SL_USBD_HID_DESIGNATOR_HEEL#

#define SL_USBD_HID_DESIGNATOR_HEEL
Value:
0x1F

SL_USBD_HID_DESIGNATOR_BALL_OF_FOOT#

#define SL_USBD_HID_DESIGNATOR_BALL_OF_FOOT
Value:
0x20

SL_USBD_HID_DESIGNATOR_BIG_TOE#

#define SL_USBD_HID_DESIGNATOR_BIG_TOE
Value:
0x21

SL_USBD_HID_DESIGNATOR_SECOND_TOE#

#define SL_USBD_HID_DESIGNATOR_SECOND_TOE
Value:
0x22

SL_USBD_HID_DESIGNATOR_THIRD_TOE#

#define SL_USBD_HID_DESIGNATOR_THIRD_TOE
Value:
0x23

SL_USBD_HID_DESIGNATOR_FOURTH_TOE#

#define SL_USBD_HID_DESIGNATOR_FOURTH_TOE
Value:
0x24

SL_USBD_HID_DESIGNATOR_LITTLE_TOE#

#define SL_USBD_HID_DESIGNATOR_LITTLE_TOE
Value:
0x25

SL_USBD_HID_DESIGNATOR_BROW#

#define SL_USBD_HID_DESIGNATOR_BROW
Value:
0x26

SL_USBD_HID_DESIGNATOR_CHEEK#

#define SL_USBD_HID_DESIGNATOR_CHEEK
Value:
0x27

SL_USBD_HID_QUALIFIER_NOT_APPLICABLE#

#define SL_USBD_HID_QUALIFIER_NOT_APPLICABLE
Value:
0

SL_USBD_HID_QUALIFIER_RIGHT#

#define SL_USBD_HID_QUALIFIER_RIGHT
Value:
1

SL_USBD_HID_QUALIFIER_LEFT#

#define SL_USBD_HID_QUALIFIER_LEFT
Value:
2

SL_USBD_HID_QUALIFIER_BOTH#

#define SL_USBD_HID_QUALIFIER_BOTH
Value:
3

SL_USBD_HID_QUALIFIER_EITHER#

#define SL_USBD_HID_QUALIFIER_EITHER
Value:
4

SL_USBD_HID_QUALIFIER_CENTER#

#define SL_USBD_HID_QUALIFIER_CENTER
Value:
5

SL_USBD_HID_USAGE_PAGE_UNDEFINED#

#define SL_USBD_HID_USAGE_PAGE_UNDEFINED
Value:
0x00
                                      HID USAGE PAGES

Note(s) : (1) See 'Universal Serial Bus HID Usage Tables', Version 1.12, Section 3 for more details about Usage Pages.

(2) See 'Universal Serial Bus HID Usage Tables', Version 1.12, Section 4 for more details about Generic Desktop Page usages and controls.


SL_USBD_HID_USAGE_PAGE_GENERIC_DESKTOP_CONTROLS#

#define SL_USBD_HID_USAGE_PAGE_GENERIC_DESKTOP_CONTROLS
Value:
0x01

SL_USBD_HID_USAGE_PAGE_SIMULATION_CONTROLS#

#define SL_USBD_HID_USAGE_PAGE_SIMULATION_CONTROLS
Value:
0x02

SL_USBD_HID_USAGE_PAGE_VR_CONTROLS#

#define SL_USBD_HID_USAGE_PAGE_VR_CONTROLS
Value:
0x03

SL_USBD_HID_USAGE_PAGE_SPORT_CONTROLS#

#define SL_USBD_HID_USAGE_PAGE_SPORT_CONTROLS
Value:
0x04

SL_USBD_HID_USAGE_PAGE_GAME_CONTROLS#

#define SL_USBD_HID_USAGE_PAGE_GAME_CONTROLS
Value:
0x05

SL_USBD_HID_USAGE_PAGE_GENERIC_DEVICE_CONTROLS#

#define SL_USBD_HID_USAGE_PAGE_GENERIC_DEVICE_CONTROLS
Value:
0x06

SL_USBD_HID_USAGE_PAGE_KEYBOARD#

#define SL_USBD_HID_USAGE_PAGE_KEYBOARD
Value:
0x07

SL_USBD_HID_USAGE_PAGE_LEDS#

#define SL_USBD_HID_USAGE_PAGE_LEDS
Value:
0x08

SL_USBD_HID_USAGE_PAGE_BUTTON#

#define SL_USBD_HID_USAGE_PAGE_BUTTON
Value:
0x09

SL_USBD_HID_USAGE_PAGE_ORDINAL#

#define SL_USBD_HID_USAGE_PAGE_ORDINAL
Value:
0x0A

SL_USBD_HID_USAGE_PAGE_TELEPHONY#

#define SL_USBD_HID_USAGE_PAGE_TELEPHONY
Value:
0x0B

SL_USBD_HID_USAGE_PAGE_CONSUMER#

#define SL_USBD_HID_USAGE_PAGE_CONSUMER
Value:
0x0C

SL_USBD_HID_USAGE_PAGE_DIGITIZER#

#define SL_USBD_HID_USAGE_PAGE_DIGITIZER
Value:
0x0D

SL_USBD_HID_USAGE_PAGE_PID_PAGE#

#define SL_USBD_HID_USAGE_PAGE_PID_PAGE
Value:
0x0F

SL_USBD_HID_USAGE_PAGE_UNICODE#

#define SL_USBD_HID_USAGE_PAGE_UNICODE
Value:
0x10

SL_USBD_HID_USAGE_PAGE_ALPHANUMERIC_DISPLAY#

#define SL_USBD_HID_USAGE_PAGE_ALPHANUMERIC_DISPLAY
Value:
0x14

SL_USBD_HID_USAGE_PAGE_MEDICAL_INSTRUMENTS#

#define SL_USBD_HID_USAGE_PAGE_MEDICAL_INSTRUMENTS
Value:
0x40

SL_USBD_HID_USAGE_PAGE_MONITOR_0#

#define SL_USBD_HID_USAGE_PAGE_MONITOR_0
Value:
0x80

SL_USBD_HID_USAGE_PAGE_MONITOR_1#

#define SL_USBD_HID_USAGE_PAGE_MONITOR_1
Value:
0x81

SL_USBD_HID_USAGE_PAGE_MONITOR_2#

#define SL_USBD_HID_USAGE_PAGE_MONITOR_2
Value:
0x82

SL_USBD_HID_USAGE_PAGE_MONITOR_3#

#define SL_USBD_HID_USAGE_PAGE_MONITOR_3
Value:
0x83

SL_USBD_HID_USAGE_PAGE_POWER_0#

#define SL_USBD_HID_USAGE_PAGE_POWER_0
Value:
0x84

SL_USBD_HID_USAGE_PAGE_POWER_1#

#define SL_USBD_HID_USAGE_PAGE_POWER_1
Value:
0x85

SL_USBD_HID_USAGE_PAGE_POWER_2#

#define SL_USBD_HID_USAGE_PAGE_POWER_2
Value:
0x86

SL_USBD_HID_USAGE_PAGE_POWER_3#

#define SL_USBD_HID_USAGE_PAGE_POWER_3
Value:
0x87

SL_USBD_HID_USAGE_PAGE_BAR_CODE_SCANNER_PAGE#

#define SL_USBD_HID_USAGE_PAGE_BAR_CODE_SCANNER_PAGE
Value:
0x8C

SL_USBD_HID_USAGE_PAGE_SCALE_PAGE#

#define SL_USBD_HID_USAGE_PAGE_SCALE_PAGE
Value:
0x8D

SL_USBD_HID_USAGE_PAGE_MSR_DEVICES#

#define SL_USBD_HID_USAGE_PAGE_MSR_DEVICES
Value:
0x8E

SL_USBD_HID_USAGE_PAGE_POINT_OF_SALE_PAGES#

#define SL_USBD_HID_USAGE_PAGE_POINT_OF_SALE_PAGES
Value:
0x8F

SL_USBD_HID_USAGE_PAGE_CAMERA_CONTROL_PAGE#

#define SL_USBD_HID_USAGE_PAGE_CAMERA_CONTROL_PAGE
Value:
0x90

SL_USBD_HID_USAGE_PAGE_ARCADE_PAGE#

#define SL_USBD_HID_USAGE_PAGE_ARCADE_PAGE
Value:
0x91

SL_USBD_HID_CP_POINTER#

#define SL_USBD_HID_CP_POINTER
Value:
0x01

SL_USBD_HID_CA_MOUSE#

#define SL_USBD_HID_CA_MOUSE
Value:
0x02

SL_USBD_HID_CA_JOYSTICK#

#define SL_USBD_HID_CA_JOYSTICK
Value:
0x04

SL_USBD_HID_CA_GAME_PAD#

#define SL_USBD_HID_CA_GAME_PAD
Value:
0x05

SL_USBD_HID_CA_KEYBOARD#

#define SL_USBD_HID_CA_KEYBOARD
Value:
0x06

SL_USBD_HID_CA_KEYPAD#

#define SL_USBD_HID_CA_KEYPAD
Value:
0x07

SL_USBD_HID_CA_MULTI_AXIS_CONTROLLER#

#define SL_USBD_HID_CA_MULTI_AXIS_CONTROLLER
Value:
0x08

SL_USBD_HID_DV_X#

#define SL_USBD_HID_DV_X
Value:
0x30

SL_USBD_HID_DV_Y#

#define SL_USBD_HID_DV_Y
Value:
0x31

SL_USBD_HID_DV_Z#

#define SL_USBD_HID_DV_Z
Value:
0x32

SL_USBD_HID_DV_WHEEL#

#define SL_USBD_HID_DV_WHEEL
Value:
0x38

SL_USBD_HID_CA_SYSTEM_CONTROL#

#define SL_USBD_HID_CA_SYSTEM_CONTROL
Value:
0x80