Added USB HID descriptor (mainly for compliance..)

This commit is contained in:
Ross Owen
2014-05-15 16:19:22 +01:00
parent 81e3389770
commit aef302152c
2 changed files with 22 additions and 1 deletions

View File

@@ -1882,6 +1882,22 @@ USB_Config_Descriptor_Audio2_t cfgDesc_Audio2=
}; };
#endif #endif
#ifdef HID_CONTROLS
unsigned char hidDescriptor[] =
{
9, /* 0 bLength : Size of descriptor in Bytes */
0x21, /* 1 bDescriptorType (HID) */
0x10, /* 2 bcdHID */
0x01, /* 3 bcdHID */
0, /* 4 bCountryCode */
1, /* 5 bNumDescriptors */
0x22, /* 6 bDescriptorType[0] (Report) */
sizeof(hidReportDescriptor) & 0xff,/* 7 wDescriptorLength[0] */
sizeof(hidReportDescriptor) >> 8, /* 8 wDescriptorLength[0] */
};
#endif
/* Configuration Descriptor for Null device */ /* Configuration Descriptor for Null device */
unsigned char cfgDesc_Null[] = unsigned char cfgDesc_Null[] =
{ {

View File

@@ -372,7 +372,6 @@ void Endpoint0(chanend c_ep0_out, chanend c_ep0_in, chanend c_audioControl,
switch(sp.bRequest) switch(sp.bRequest)
{ {
#ifdef HID_CONTROLS #ifdef HID_CONTROLS
case USB_GET_DESCRIPTOR: case USB_GET_DESCRIPTOR:
@@ -381,8 +380,14 @@ void Endpoint0(chanend c_ep0_out, chanend c_ep0_in, chanend c_audioControl,
{ {
/* High byte of wValue is descriptor type */ /* High byte of wValue is descriptor type */
unsigned descriptorType = sp.wValue & 0xff00; unsigned descriptorType = sp.wValue & 0xff00;
switch (descriptorType) switch (descriptorType)
{ {
case HID_HID:
/* Return HID Descriptor */
result = XUD_DoGetRequest(ep0_out, ep0_in, hidDescriptor,
sizeof(hidDescriptor), sp.wLength);
break;
case HID_REPORT: case HID_REPORT:
/* Return HID report descriptor */ /* Return HID report descriptor */
result = XUD_DoGetRequest(ep0_out, ep0_in, hidReportDescriptor, result = XUD_DoGetRequest(ep0_out, ep0_in, hidReportDescriptor,