uint8_t d[MAX_HID_DESCRIPTOR_SIZE];
size_t i = 0;
- /* usage page (0xFFA0 == vendor defined) */
- d[i++] = 0x06; d[i++] = 0xA0; d[i++] = 0xFF;
- /* usage (vendor defined) */
- d[i++] = 0x09; d[i++] = 0x01;
+ /* usage page */
+ d[i++] = 0x06; d[i++] = dev->usagePage & 0xFF; d[i++] = dev->usagePage >> 8;
+ /* usage */
+ d[i++] = 0x09; d[i++] = (uint8_t)dev->usage;
/* start collection (application) */
d[i++] = 0xA1; d[i++] = 0x01;
/* input report */
priv->hid->output_report_size = capabilities.OutputReportByteLength;
priv->hid->feature_report_size = capabilities.FeatureReportByteLength;
+ // Store usage and usagePage values
+ priv->hid->usage = capabilities.Usage;
+ priv->hid->usagePage = capabilities.UsagePage;
+
// Fetch string descriptors
priv->hid->string_index[0] = priv->dev_descriptor.iManufacturer;
if (priv->hid->string_index[0] != 0)
uint16_t input_report_size;
uint16_t output_report_size;
uint16_t feature_report_size;
+ uint16_t usage;
+ uint16_t usagePage;
WCHAR string[3][MAX_USB_STRING_LENGTH];
uint8_t string_index[3]; // man, prod, ser
};