From c438d01f875d67c148c1b988f4b116f426842287 Mon Sep 17 00:00:00 2001 From: Dean Camera Date: Mon, 23 Nov 2009 13:01:50 +0000 Subject: Fixed incorrect values for REPORT_ITEM_TYPE_* enum values causing corrupt data in the HID Host Parser. --- Demos/Host/LowLevel/GenericHIDHost/GenericHIDHost.c | 4 ++-- Demos/Host/LowLevel/GenericHIDHost/GenericHIDHost.h | 9 +++++++++ 2 files changed, 11 insertions(+), 2 deletions(-) (limited to 'Demos/Host/LowLevel/GenericHIDHost') diff --git a/Demos/Host/LowLevel/GenericHIDHost/GenericHIDHost.c b/Demos/Host/LowLevel/GenericHIDHost/GenericHIDHost.c index 921f3a9f8..b3c17a832 100644 --- a/Demos/Host/LowLevel/GenericHIDHost/GenericHIDHost.c +++ b/Demos/Host/LowLevel/GenericHIDHost/GenericHIDHost.c @@ -165,7 +165,7 @@ void ReadNextReport(void) * * \param[in] ReportOUTData Buffer containing the report to send to the device * \param[in] ReportIndex Index of the report in the device (zero if the device does not use multiple reports) - * \param[in] ReportType Type of report to send, either REPORT_ITEM_TYPE_Out or REPORT_ITEM_TYPE_Feature + * \param[in] ReportType Type of report to send, either REPORT_TYPE_OUT or REPORT_TYPE_FEATURE * \param[in] ReportLength Length of the report to send */ void WriteNextReport(uint8_t* ReportOUTData, uint8_t ReportIndex, uint8_t ReportType, uint16_t ReportLength) @@ -175,7 +175,7 @@ void WriteNextReport(uint8_t* ReportOUTData, uint8_t ReportIndex, uint8_t Report /* Not all HID devices have an OUT endpoint (some require OUT reports to be sent over the * control endpoint instead) - check to see if the OUT endpoint has been initialized */ - if (Pipe_IsConfigured()) + if (Pipe_IsConfigured() && (ReportType == REPORT_TYPE_OUT)) { Pipe_Unfreeze(); diff --git a/Demos/Host/LowLevel/GenericHIDHost/GenericHIDHost.h b/Demos/Host/LowLevel/GenericHIDHost/GenericHIDHost.h index 3395e3278..1c6210ad2 100644 --- a/Demos/Host/LowLevel/GenericHIDHost/GenericHIDHost.h +++ b/Demos/Host/LowLevel/GenericHIDHost/GenericHIDHost.h @@ -74,6 +74,15 @@ /** LED mask for the library LED driver, to indicate that an error has occurred in the USB interface. */ #define LEDMASK_USB_ERROR (LEDS_LED1 | LEDS_LED3) + /** HID Report Type to indicate an IN report. */ + #define REPORT_TYPE_IN 1 + + /** HID Report Type to indicate an OUT report. */ + #define REPORT_TYPE_OUT 2 + + /** HID Report Type to indicate a FEATURE report. */ + #define REPORT_TYPE_FEATURE 3 + /* Function Prototypes: */ void SetupHardware(void); void HID_Host_Task(void); -- cgit v1.2.3