tud_hid_report_complete_cb() API

update hid composite to make use of tud_hid_report_complete_cb() for
sending reports when possible.
This commit is contained in:
hathach
2021-02-09 15:57:29 +07:00
parent ecd16cf24b
commit d2b8e591f6
6 changed files with 136 additions and 95 deletions

View File

@@ -381,14 +381,24 @@ bool hidd_xfer_cb(uint8_t rhport, uint8_t ep_addr, xfer_result_t result, uint32_
uint8_t itf = 0;
hidd_interface_t * p_hid = _hidd_itf;
for ( ; ; itf++, p_hid++)
// Identify which interface to use
for (itf = 0; itf < CFG_TUD_HID; itf++)
{
if (itf >= TU_ARRAY_SIZE(_hidd_itf)) return false;
if ( ep_addr == p_hid->ep_out ) break;
p_hid = &_hidd_itf[itf];
if ( (ep_addr == p_hid->ep_out) || (ep_addr == p_hid->ep_in) ) break;
}
TU_ASSERT(itf < CFG_TUD_HID);
if (ep_addr == p_hid->ep_out)
// Sent report successfully
if (ep_addr == p_hid->ep_in)
{
if (tud_hid_report_complete_cb)
{
tud_hid_report_complete_cb(itf, p_hid->epin_buf, (uint8_t) xferred_bytes);
}
}
// Received report
else if (ep_addr == p_hid->ep_out)
{
tud_hid_set_report_cb(
#if CFG_TUD_HID > 1