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
#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 */
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)
{
#ifdef HID_CONTROLS
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 */
unsigned descriptorType = sp.wValue & 0xff00;
switch (descriptorType)
{
case HID_HID:
/* Return HID Descriptor */
result = XUD_DoGetRequest(ep0_out, ep0_in, hidDescriptor,
sizeof(hidDescriptor), sp.wLength);
break;
case HID_REPORT:
/* Return HID report descriptor */
result = XUD_DoGetRequest(ep0_out, ep0_in, hidReportDescriptor,