USB HID generic internals

nRF5 SDK v12.3.0

nRF52840 only: Module with types, definitions, and API used by the HID generic protocol. More...

Data Structures

struct app_usbd_hid_generic_inst_t
HID generic part of class instance data. More...
struct app_usbd_hid_generic_ctx_t
HID generic context. More...

Macros

#define APP_USBD_HID_GENERIC_CONFIG (iface, endpoints)   ((iface, BRACKET_EXTRACT (endpoints)))
HID generic configuration macro. More...
#define APP_USBD_HID_GENERIC_INSTANCE_SPECIFIC_DEC app_usbd_hid_generic_inst_t inst;
Specific class constant data for HID generic class.
#define APP_USBD_HID_GENERIC_DATA_SPECIFIC_DEC app_usbd_hid_generic_ctx_t ctx;
Specific class data for HID generic class.
#define APP_USBD_HID_GENERIC_DSC_CONFIG_1 (interface_number, report_list,...)
HID generic configuration for one endpoint. More...
#define APP_USBD_HID_GENERIC_DSC_CONFIG_2 (interface_number, report_list,...)
HID generic configuration for two endpoints. More...
#define APP_USBD_HID_GENERIC_DSC_CONFIG (interface_number, report_list,...)
HID generic descriptors config macro. More...
#define APP_USBD_HID_GENERIC_INST_CONFIG (descriptors,report_buff_in,report_buff_out,user_ev_handler,...)
Configure internal part of HID generic instance. More...
#define APP_USBD_HID_GENERIC_GLOBAL_DEF_INTERNAL (instance_name,interface_number,user_ev_handler,endpoint_list,hid_dsc_list,report_cnt,report_out_maxsize)
Global definition of app_usbd_hid_generic_t class. More...

Functions

APP_USBD_CLASS_FORWARD (app_usbd_hid_generic)
Forward declaration of HID generic class type.

Variables

const app_usbd_hid_methods_t app_usbd_hid_generic_methods
Public HID generic interface.
const app_usbd_class_methods_t app_usbd_generic_class_methods
Public HID generic class interface.

Detailed Description

nRF52840 only: Module with types, definitions, and API used by the HID generic protocol.

Macro Definition Documentation

#define APP_USBD_HID_GENERIC_CONFIG ( iface,
endpoints
) ((iface, BRACKET_EXTRACT (endpoints)))

HID generic configuration macro.

Used by APP_USBD_HID_GENERIC_GLOBAL_DEF

Parameters
iface Interface number
endpoints Endpoint list
#define APP_USBD_HID_GENERIC_DSC_CONFIG ( interface_number,
report_list,
...
)
Value:
CONCAT_2 (APP_USBD_HID_GENERIC_DSC_CONFIG_, NUM_VA_ARGS (__VA_ARGS__)) \
(interface_number, report_list, __VA_ARGS__)

HID generic descriptors config macro.

app_usbd_hid_generic_inst_t

Parameters
interface_number Interface number
report_list Report list
... Endpoint list
#define APP_USBD_HID_GENERIC_DSC_CONFIG_1 ( interface_number,
report_list,
...
)
Value:
{ \
APP_USBD_HID_GENERIC_INTERFACE_DSC(interface_number, NUM_VA_ARGS (__VA_ARGS__)) \
APP_USBD_HID_GENERIC_HID_DSC( BRACKET_EXTRACT (report_list)) \
APP_USBD_HID_GENERIC_EP_DSC( GET_VA_ARG_1 (__VA_ARGS__)) \
}

HID generic configuration for one endpoint.

APP_USBD_HID_GENERIC_DSC_CONFIG

#define APP_USBD_HID_GENERIC_DSC_CONFIG_2 ( interface_number,
report_list,
...
)
Value:
{ \
APP_USBD_HID_GENERIC_INTERFACE_DSC(interface_number, NUM_VA_ARGS (__VA_ARGS__)) \
APP_USBD_HID_GENERIC_HID_DSC( BRACKET_EXTRACT (report_list)) \
APP_USBD_HID_GENERIC_EP_DSC( GET_VA_ARG_1 (__VA_ARGS__)) \
APP_USBD_HID_GENERIC_EP_DSC( GET_VA_ARG_1 (GET_ARGS_AFTER_1_(__VA_ARGS__))) \
}

HID generic configuration for two endpoints.

APP_USBD_HID_GENERIC_DSC_CONFIG

#define APP_USBD_HID_GENERIC_GLOBAL_DEF_INTERNAL ( instance_name,
interface_number,
user_ev_handler,
endpoint_list,
hid_dsc_list,
report_cnt,
report_out_maxsize
)
Value:
static const uint8_t CONCAT_2 (instance_name, _dsc)[] = \
APP_USBD_HID_GENERIC_DSC_CONFIG(interface_number, \
hid_dsc_list, \
BRACKET_EXTRACT (endpoint_list)); \
static app_usbd_hid_report_buffer_t CONCAT_2 (instance_name, _in)[report_cnt]; \
APP_USBD_HID_GENERIC_GLOBAL_OUT_REP_DEF( CONCAT_2 (instance_name, _out), \
report_out_maxsize + 1); \
APP_USBD_CLASS_INST_GLOBAL_DEF( \
instance_name, \
app_usbd_hid_generic, \
APP_USBD_HID_GENERIC_CONFIG (interface_number, endpoint_list), \
CONCAT_2 (instance_name, _in), \
& CONCAT_2 (instance_name, _out), \
user_ev_handler, \
BRACKET_EXTRACT (hid_dsc_list))) \
)

Global definition of app_usbd_hid_generic_t class.

APP_USBD_HID_GENERIC_GLOBAL_DEF

#define APP_USBD_HID_GENERIC_INST_CONFIG ( descriptors,
report_buff_in,
report_buff_out,
user_ev_handler,
...
)
Value:
.inst = { \
.hid_inst = APP_USBD_HID_INST_CONFIG (descriptors, \
GET_VA_ARG_1 (__VA_ARGS__), \
report_buff_in, \
report_buff_out, \
user_ev_handler, \
}

Configure internal part of HID generic instance.

Parameters
descriptors Raw descriptors buffer
report_buff_in Input report buffers array
report_buff_out Output report buffer
user_ev_handler User event handler
... Hid descriptors list