Add raw_hid support to host driver (#25255)
This commit is contained in:
parent
c045c3e00c
commit
88c094908b
12 changed files with 95 additions and 36 deletions
|
|
@ -66,9 +66,19 @@ void send_keyboard(report_keyboard_t *report);
|
|||
void send_nkro(report_nkro_t *report);
|
||||
void send_mouse(report_mouse_t *report);
|
||||
void send_extra(report_extra_t *report);
|
||||
void send_raw_hid(uint8_t *data, uint8_t length);
|
||||
|
||||
/* host struct */
|
||||
host_driver_t chibios_driver = {.keyboard_leds = usb_device_state_get_leds, .send_keyboard = send_keyboard, .send_nkro = send_nkro, .send_mouse = send_mouse, .send_extra = send_extra};
|
||||
host_driver_t chibios_driver = {
|
||||
.keyboard_leds = usb_device_state_get_leds,
|
||||
.send_keyboard = send_keyboard,
|
||||
.send_nkro = send_nkro,
|
||||
.send_mouse = send_mouse,
|
||||
.send_extra = send_extra,
|
||||
#ifdef RAW_ENABLE
|
||||
.send_raw_hid = send_raw_hid,
|
||||
#endif
|
||||
};
|
||||
|
||||
#ifdef VIRTSER_ENABLE
|
||||
void virtser_task(void);
|
||||
|
|
|
|||
|
|
@ -32,6 +32,10 @@
|
|||
#include "usb_driver.h"
|
||||
#include "usb_types.h"
|
||||
|
||||
#ifdef RAW_ENABLE
|
||||
# include "raw_hid.h"
|
||||
#endif
|
||||
|
||||
#ifdef NKRO_ENABLE
|
||||
# include "keycode_config.h"
|
||||
|
||||
|
|
@ -515,19 +519,13 @@ void console_task(void) {
|
|||
#endif /* CONSOLE_ENABLE */
|
||||
|
||||
#ifdef RAW_ENABLE
|
||||
void raw_hid_send(uint8_t *data, uint8_t length) {
|
||||
void send_raw_hid(uint8_t *data, uint8_t length) {
|
||||
if (length != RAW_EPSIZE) {
|
||||
return;
|
||||
}
|
||||
send_report(USB_ENDPOINT_IN_RAW, data, length);
|
||||
}
|
||||
|
||||
__attribute__((weak)) void raw_hid_receive(uint8_t *data, uint8_t length) {
|
||||
// Users should #include "raw_hid.h" in their own code
|
||||
// and implement this function there. Leave this as weak linkage
|
||||
// so users can opt to not handle data coming in.
|
||||
}
|
||||
|
||||
void raw_hid_task(void) {
|
||||
uint8_t buffer[RAW_EPSIZE];
|
||||
while (receive_report(USB_ENDPOINT_OUT_RAW, buffer, sizeof(buffer))) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue