diff --git a/src/class/hid/hid_device.c b/src/class/hid/hid_device.c index 2ce44a9b2..e82932e1f 100644 --- a/src/class/hid/hid_device.c +++ b/src/class/hid/hid_device.c @@ -301,8 +301,7 @@ bool hidd_xfer_cb(uint8_t rhport, uint8_t ep_addr, xfer_result_t result, uint32_ if (ep_addr == p_hid->ep_out) { - if (tud_hid_out_report_cb) tud_hid_out_report_cb(p_hid->epout_buf, xferred_bytes); - + tud_hid_set_report_cb(0, HID_REPORT_TYPE_INVALID, p_hid->epout_buf, xferred_bytes); TU_ASSERT(dcd_edpt_xfer(rhport, p_hid->ep_out, p_hid->epout_buf, sizeof(p_hid->epout_buf))); } diff --git a/src/class/hid/hid_device.h b/src/class/hid/hid_device.h index 503b4b430..1120e8e45 100644 --- a/src/class/hid/hid_device.h +++ b/src/class/hid/hid_device.h @@ -73,12 +73,10 @@ bool tud_hid_mouse_report(uint8_t report_id, uint8_t buttons, int8_t x, int8_t y // Return zero will cause the stack to STALL request uint16_t tud_hid_get_report_cb(uint8_t report_id, hid_report_type_t report_type, uint8_t* buffer, uint16_t reqlen); -// Invoked when received SET_REPORT control request +// Invoked when received SET_REPORT control request or +// received data on OUT endpoint ( Report ID = 0, Type = 0 ) void tud_hid_set_report_cb(uint8_t report_id, hid_report_type_t report_type, uint8_t const* buffer, uint16_t bufsize); -// Invoked when received data on OUT endpoint -ATTR_WEAK void tud_hid_out_report_cb(uint8_t const* buffer, uint16_t bufsize); - // Invoked when received SET_PROTOCOL request ( mode switch Boot <-> Report ) ATTR_WEAK void tud_hid_boot_mode_cb(uint8_t boot_mode);