summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsakumisu <[email protected]>2023-05-24 16:39:59 +0800
committersakumisu <[email protected]>2023-05-24 16:40:13 +0800
commitbfb8146699812505525141cbeca6fca517a5e04b (patch)
treedfafd9ca5e5eee744e33a909acd7aa5c7ae57326
parent77c3f17b7d5162ccf4b02710aaa5dddc6cf5a7c1 (diff)
fix hid get report len
-rw-r--r--class/hid/usbd_hid.c8
-rw-r--r--class/hid/usbd_hid.h2
2 files changed, 5 insertions, 5 deletions
diff --git a/class/hid/usbd_hid.c b/class/hid/usbd_hid.c
index b2659bdf..fcb7583d 100644
--- a/class/hid/usbd_hid.c
+++ b/class/hid/usbd_hid.c
@@ -17,8 +17,7 @@ static int hid_class_interface_request_handler(struct usb_setup_packet *setup, u
switch (setup->bRequest) {
case HID_REQUEST_GET_REPORT:
/* report id ,report type */
- (*data)[0] = usbh_hid_get_report(intf_num, LO_BYTE(setup->wValue), HI_BYTE(setup->wValue));
- *len = 1;
+ usbh_hid_get_report(intf_num, LO_BYTE(setup->wValue), HI_BYTE(setup->wValue), data, len);
break;
case HID_REQUEST_GET_IDLE:
(*data)[0] = usbh_hid_get_idle(intf_num, LO_BYTE(setup->wValue));
@@ -61,9 +60,10 @@ struct usbd_interface *usbd_hid_init_intf(struct usbd_interface *intf, const uin
return intf;
}
-__WEAK uint8_t usbh_hid_get_report(uint8_t intf, uint8_t report_id, uint8_t report_type)
+__WEAK void usbh_hid_get_report(uint8_t intf, uint8_t report_id, uint8_t report_type, uint8_t **data, uint32_t *len)
{
- return 0;
+ (*data[0]) = 0;
+ *len = 1;
}
__WEAK uint8_t usbh_hid_get_idle(uint8_t intf, uint8_t report_id)
diff --git a/class/hid/usbd_hid.h b/class/hid/usbd_hid.h
index 9c1be362..03d9ff9c 100644
--- a/class/hid/usbd_hid.h
+++ b/class/hid/usbd_hid.h
@@ -20,7 +20,7 @@ void usbd_hid_descriptor_register(uint8_t intf_num, const uint8_t *desc);
void usbd_hid_report_descriptor_register(uint8_t intf_num, const uint8_t *desc, uint32_t desc_len);
/* Setup request command callback api */
-uint8_t usbh_hid_get_report(uint8_t intf, uint8_t report_id, uint8_t report_type);
+void usbh_hid_get_report(uint8_t intf, uint8_t report_id, uint8_t report_type, uint8_t **data, uint32_t *len);
uint8_t usbh_hid_get_idle(uint8_t intf, uint8_t report_id);
uint8_t usbh_hid_get_protocol(uint8_t intf);
void usbh_hid_set_report(uint8_t intf, uint8_t report_id, uint8_t report_type, uint8_t *report, uint8_t report_len);