Fixed minor issue with the RNDISEthernet demo DHCP protocol decoder routine using...
[pub/USBasp.git] / Demos / Host / GenericHIDHost / GenericHIDHost.c
index 4d2fefb..716f1c3 100644 (file)
@@ -219,9 +219,11 @@ void ReadNextReport(void)
 /** Writes a report to the attached device.\r
  *\r
  *  \param ReportOUTData  Buffer containing the report to send to the device\r
+ *  \param ReportIndex  Index of the report in the device (zero if the device does not use multiple reports)\r
+ *  \param ReportType  Type of report to send, either HID_REPORTTYPE_OUTPUT or HID_REPORTTYPE_FEATURE\r
  *  \param ReportLength  Length of the report to send\r
  */\r
-void WriteNextReport(uint8_t* ReportOUTData, uint16_t ReportLength)\r
+void WriteNextReport(uint8_t* ReportOUTData, uint8_t ReportIndex, uint8_t ReportType, uint16_t ReportLength)\r
 {\r
        /* Select and unfreeze HID data OUT pipe */\r
        Pipe_SelectPipe(HID_DATA_OUT_PIPE);\r
@@ -240,8 +242,12 @@ void WriteNextReport(uint8_t* ReportOUTData, uint16_t ReportLength)
                        \r
                        return;\r
                }\r
+               \r
+               /* If the report index is used, send it before the report data */\r
+               if (ReportIndex)\r
+                 Pipe_Write_Byte(ReportIndex);\r
 \r
-               /* Read in HID report data */\r
+               /* Write out HID report data */\r
                Pipe_Write_Stream_LE(ReportOUTData, ReportLength);                              \r
                        \r
                /* Clear the OUT endpoint, send last data packet */\r
@@ -257,7 +263,7 @@ void WriteNextReport(uint8_t* ReportOUTData, uint16_t ReportLength)
                        {\r
                                bmRequestType: (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE),\r
                                bRequest:      REQ_SetReport,\r
-                               wValue:        0,\r
+                               wValue:        ((ReportType << 8) | ReportIndex),\r
                                wIndex:        0,\r
                                wLength:       ReportLength,\r
                        };\r