if (!(Endpoint_IsSETUPReceived()))\r
return;\r
\r
- if ((USB_ControlRequest.wIndex != HIDInterfaceInfo->Config.InterfaceNumber) &&\r
- (USB_ControlRequest.bRequest != REQ_SetIdle))\r
- {\r
- return;\r
- }\r
+ if (USB_ControlRequest.wIndex != HIDInterfaceInfo->Config.InterfaceNumber)\r
+ return;\r
\r
switch (USB_ControlRequest.bRequest)\r
{\r
{\r
Endpoint_ClearSETUP(); \r
\r
- uint16_t ReportINSize;\r
- uint8_t ReportID = (USB_ControlRequest.wValue & 0xFF);\r
+ uint16_t ReportINSize = 0;\r
+ uint8_t ReportID = (USB_ControlRequest.wValue & 0xFF);\r
\r
memset(HIDInterfaceInfo->Config.PrevReportINBuffer, 0, HIDInterfaceInfo->Config.PrevReportINBufferSize);\r
\r
case REQ_SetIdle:\r
if (USB_ControlRequest.bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE))\r
{\r
- if ((USB_ControlRequest.wIndex == HIDInterfaceInfo->Config.InterfaceNumber) ||\r
- (USB_ControlRequest.wValue & 0xFF) == 0)\r
- {\r
- Endpoint_ClearSETUP();\r
+ Endpoint_ClearSETUP();\r
\r
- HIDInterfaceInfo->State.IdleCount = ((USB_ControlRequest.wValue & 0xFF00) >> 6);\r
+ HIDInterfaceInfo->State.IdleCount = ((USB_ControlRequest.wValue & 0xFF00) >> 6);\r
\r
- Endpoint_ClearStatusStage();\r
- }\r
+ Endpoint_ClearStatusStage();\r
}\r
\r
break;\r
if (Endpoint_IsReadWriteAllowed())\r
{\r
uint8_t ReportINData[HIDInterfaceInfo->Config.PrevReportINBufferSize];\r
- uint8_t ReportID = 0;\r
- uint16_t ReportINSize;\r
+ uint8_t ReportID = 0;\r
+ uint16_t ReportINSize = 0;\r
\r
memset(ReportINData, 0, sizeof(ReportINData));\r
\r
HIDInterfaceInfo->State.IdleMSRemaining = HIDInterfaceInfo->State.IdleCount;\r
\r
if (ReportID)\r
- Endpoint_Write_Stream_LE(&ReportID, sizeof(ReportID), NO_STREAM_CALLBACK);\r
+ Endpoint_Write_Byte(ReportID);\r
\r
Endpoint_Write_Stream_LE(ReportINData, ReportINSize, NO_STREAM_CALLBACK);\r
+ \r
+ Endpoint_ClearIN();\r
}\r
- \r
- Endpoint_ClearIN();\r
}\r
}\r
\r