#ifndef BLINKY_HID_TX_REPORT_EVENT_H_ #define BLINKY_HID_TX_REPORT_EVENT_H_ #include #include #include #include #include #include "keyboard_core.h" #ifdef __cplusplus extern "C" { #endif struct hid_tx_report_event { struct app_event_header header; enum hid_send_channel channel; enum keyboard_report_type report_type; enum keyboard_protocol_mode protocol_mode; uint16_t sequence; struct event_dyndata dyndata; }; APP_EVENT_TYPE_DYNDATA_DECLARE(hid_tx_report_event); static inline int submit_hid_tx_report_event(enum hid_send_channel channel, enum keyboard_report_type report_type, enum keyboard_protocol_mode protocol_mode, uint16_t sequence, const uint8_t *data, size_t size) { struct hid_tx_report_event *event; if ((data == NULL) && (size > 0U)) { return -EINVAL; } event = new_hid_tx_report_event(size); event->channel = channel; event->report_type = report_type; event->protocol_mode = protocol_mode; event->sequence = sequence; if (size > 0U) { memcpy(event->dyndata.data, data, size); } APP_EVENT_SUBMIT(event); return 0; } #ifdef __cplusplus } #endif #endif /* BLINKY_HID_TX_REPORT_EVENT_H_ */