summaryrefslogtreecommitdiff
path: root/tinyusb/class
diff options
context:
space:
mode:
Diffstat (limited to 'tinyusb/class')
-rw-r--r--tinyusb/class/hid.h5
-rw-r--r--tinyusb/class/hid_host.c55
2 files changed, 26 insertions, 34 deletions
diff --git a/tinyusb/class/hid.h b/tinyusb/class/hid.h
index 06374e035..e68d1596f 100644
--- a/tinyusb/class/hid.h
+++ b/tinyusb/class/hid.h
@@ -104,8 +104,9 @@ typedef ATTR_PREPACKED struct ATTR_PACKED {
typedef ATTR_PACKED_STRUCT(struct)
{
uint8_t buttons; /**< buttons mask for currently pressed buttons in the mouse. */
- int8_t x; /**< Current delta x movement of the mouse. */
- int8_t y; /**< Current delta y movement on the mouse. */
+ int8_t x; /**< Current delta x movement of the mouse. */
+ int8_t y; /**< Current delta y movement on the mouse. */
+ int8_t wheel; /**< Current delta wheel movement on the mouse. */
} tusb_mouse_report_t;
/**
diff --git a/tinyusb/class/hid_host.c b/tinyusb/class/hid_host.c
index ddcbb57fa..60e0ab6d3 100644
--- a/tinyusb/class/hid_host.c
+++ b/tinyusb/class/hid_host.c
@@ -197,7 +197,10 @@ void hidh_init(void)
#endif
}
-//uint8_t report_descriptor[256] TUSB_CFG_ATTR_USBRAM;
+#if 0
+uint8_t report_descriptor[256] TUSB_CFG_ATTR_USBRAM;
+#endif
+
tusb_error_t hidh_open_subtask(uint8_t dev_addr, tusb_descriptor_interface_t const *p_interface_desc, uint16_t *p_length)
{
tusb_error_t error;
@@ -215,41 +218,29 @@ tusb_error_t hidh_open_subtask(uint8_t dev_addr, tusb_descriptor_interface_t con
OSAL_SUBTASK_BEGIN
+#if 0
//------------- SET IDLE request -------------//
// TODO this request can be stalled by device (indicate not supported),
// until we have clear stall handler, temporarily disable it.
-// OSAL_SUBTASK_INVOKED_AND_WAIT(
-// usbh_control_xfer_subtask(
-// dev_addr,
-// &(tusb_control_request_t)
-// {
-// .bmRequestType = { .direction = TUSB_DIR_HOST_TO_DEV, .type = TUSB_REQUEST_TYPE_CLASS, .recipient = TUSB_REQUEST_RECIPIENT_INTERFACE },
-// .bRequest = HID_REQUEST_CONTROL_SET_IDLE,
-// .wValue = 0,
-// .wIndex = p_interface_desc->bInterfaceNumber
-// },
-// NULL ),
-// error
-// );
-
- //------------- TODO skip Get Report Descriptor -------------//
-// memclr_(report_descriptor, 256);
+ OSAL_SUBTASK_INVOKED_AND_WAIT(
+ usbh_control_xfer_subtask( dev_addr, bm_request_type(TUSB_DIR_HOST_TO_DEV, TUSB_REQUEST_TYPE_CLASS, TUSB_REQUEST_RECIPIENT_INTERFACE),
+ HID_REQUEST_CONTROL_SET_IDLE, 0, p_interface_desc->bInterfaceNumber,
+ 0, NULL ),
+ error
+ );
-// OSAL_SUBTASK_INVOKED_AND_WAIT(
-// usbh_control_xfer_subtask(
-// dev_addr,
-// &(tusb_control_request_t)
-// {
-// .bmRequestType = { .direction = TUSB_DIR_DEV_TO_HOST, .type = TUSB_REQUEST_TYPE_STANDARD, .recipient = TUSB_REQUEST_RECIPIENT_INTERFACE },
-// .bRequest = TUSB_REQUEST_GET_DESCRIPTOR,
-// .wValue = HID_DESC_TYPE_REPORT,
-// .wIndex = p_interface_desc->bInterfaceNumber,
-// .wLength = p_desc_hid->wReportLength,
-// },
-// report_descriptor ),
-// error
-// );
-// uint8_t *p_report_desc = NULL; // report descriptor has to be global & in USB RAM
+ //------------- Get Report Descriptor TODO HID parser -------------//
+ if ( p_desc_hid->bNumDescriptors )
+ {
+ OSAL_SUBTASK_INVOKED_AND_WAIT(
+ usbh_control_xfer_subtask( dev_addr, bm_request_type(TUSB_DIR_DEV_TO_HOST, TUSB_REQUEST_TYPE_STANDARD, TUSB_REQUEST_RECIPIENT_INTERFACE),
+ TUSB_REQUEST_GET_DESCRIPTOR, (p_desc_hid->bReportType << 8), 0,
+ p_desc_hid->wReportLength, report_descriptor ),
+ error
+ );
+ // if error in getting report descriptor --> treating like there is none
+ }
+#endif
if ( HID_SUBCLASS_BOOT == p_interface_desc->bInterfaceSubClass )
{