Finish Class Driver MouseHost demo. Update HID Host Class driver; boot protocol now...
[pub/lufa.git] / LUFA / Drivers / USB / Class / Host / HID.c
index 22b2de1..d01d312 100644 (file)
@@ -75,7 +75,7 @@ uint8_t HID_Host_ConfigurePipes(USB_ClassInfo_HID_Host_t* HIDInterfaceInfo, uint
                if (USB_GetNextDescriptorComp(&ConfigDescriptorSize, &ConfigDescriptorData,\r
                                              DComp_HID_Host_NextHIDInterfaceEndpoint) != DESCRIPTOR_SEARCH_COMP_Found)\r
                {\r
-                       if (FoundEndpoints == (1 << HID_FOUND_DATAPIPE_IN))\r
+                       if (FoundEndpoints & HID_FOUND_DATAPIPE_IN)\r
                          break;\r
                                \r
                        return HID_ENUMERROR_EndpointsNotFound;\r
@@ -199,7 +199,8 @@ uint8_t HID_Host_ReceiveReport(USB_ClassInfo_HID_Host_t* HIDInterfaceInfo, bool
 \r
                if ((ErrorCode = Pipe_Read_Stream_LE(Buffer, ReportSize, NO_STREAM_CALLBACK)) != PIPE_RWSTREAM_NoError)\r
                  return ErrorCode;\r
-               \r
+                \r
+               Pipe_ClearIN();         \r
                Pipe_Freeze();\r
                \r
                return PIPE_RWSTREAM_NoError;           \r
@@ -239,6 +240,7 @@ uint8_t HID_Host_SendReport(USB_ClassInfo_HID_Host_t* HIDInterfaceInfo, uint8_t
                if ((ErrorCode = Pipe_Write_Stream_LE(Buffer, ReportSize, NO_STREAM_CALLBACK)) != PIPE_RWSTREAM_NoError)\r
                  return ErrorCode;\r
                \r
+               Pipe_ClearOUT();\r
                Pipe_Freeze();\r
                \r
                return PIPE_RWSTREAM_NoError;\r
@@ -255,7 +257,7 @@ bool HID_Host_IsReportReceived(USB_ClassInfo_HID_Host_t* HIDInterfaceInfo)
        Pipe_SelectPipe(HIDInterfaceInfo->Config.DataINPipeNumber);\r
        Pipe_Unfreeze();\r
        \r
-       ReportReceived = Pipe_IsReadWriteAllowed();\r
+       ReportReceived = Pipe_IsINReceived();\r
        \r
        Pipe_Freeze();\r
        \r
@@ -264,16 +266,13 @@ bool HID_Host_IsReportReceived(USB_ClassInfo_HID_Host_t* HIDInterfaceInfo)
 \r
 uint8_t USB_HID_Host_SetBootProtocol(USB_ClassInfo_HID_Host_t* HIDInterfaceInfo)\r
 {\r
-       if ((USB_HostState != HOST_STATE_Configured) || !(HIDInterfaceInfo->State.IsActive))\r
-         return false;\r
-\r
        uint8_t ErrorCode;\r
 \r
        USB_ControlRequest = (USB_Request_Header_t)\r
                {\r
                        .bmRequestType = (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE),\r
                        .bRequest      = REQ_SetProtocol,\r
-                       .wValue        = 1,\r
+                       .wValue        = 0,\r
                        .wIndex        = HIDInterfaceInfo->State.InterfaceNumber,\r
                        .wLength       = 0,\r
                };\r
@@ -293,9 +292,6 @@ uint8_t USB_HID_Host_SetBootProtocol(USB_ClassInfo_HID_Host_t* HIDInterfaceInfo)
 \r
 uint8_t USB_HID_Host_SetReportProtocol(USB_ClassInfo_HID_Host_t* HIDInterfaceInfo)\r
 {\r
-       if ((USB_HostState != HOST_STATE_Configured) || !(HIDInterfaceInfo->State.IsActive))\r
-         return false;\r
-\r
        uint8_t ErrorCode;\r
 \r
        uint8_t HIDReportData[HIDInterfaceInfo->State.HIDReportSize];\r
@@ -318,7 +314,7 @@ uint8_t USB_HID_Host_SetReportProtocol(USB_ClassInfo_HID_Host_t* HIDInterfaceInf
                {\r
                        .bmRequestType = (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE),\r
                        .bRequest      = REQ_SetProtocol,\r
-                       .wValue        = 0,\r
+                       .wValue        = 1,\r
                        .wIndex        = HIDInterfaceInfo->State.InterfaceNumber,\r
                        .wLength       = 0,\r
                };\r