Renamed the the TotalHIDReports element of the HID descriptor structure in the HID...
[pub/USBasp.git] / LUFA / Drivers / USB / HighLevel / USBTask.c
index 6967023..5202cc8 100644 (file)
   this software.\r
 */\r
 \r
-#include "../LowLevel/USBMode.h"\r
+#include "USBMode.h"\r
 \r
 #define  INCLUDE_FROM_USBTASK_C\r
 #include "USBTask.h"\r
 \r
-volatile bool      USB_IsSuspended;\r
-volatile bool      USB_IsConnected;\r
-volatile bool      USB_IsInitialized;\r
+volatile bool        USB_IsSuspended;\r
+volatile bool        USB_IsConnected;\r
+volatile bool        USB_IsInitialized;\r
+USB_Request_Header_t USB_ControlRequest;\r
 \r
 #if defined(USB_CAN_BE_HOST)\r
 volatile uint8_t   USB_HostState;\r
@@ -64,7 +65,7 @@ static void USB_DeviceTask(void)
        \r
                Endpoint_SelectEndpoint(ENDPOINT_CONTROLEP);\r
 \r
-               if (Endpoint_IsSetupReceived())\r
+               if (Endpoint_IsSETUPReceived())\r
                {\r
                        ATOMIC_BLOCK(ATOMIC_RESTORESTATE)\r
                        {\r
@@ -82,10 +83,13 @@ static void USB_HostTask(void)
 {\r
        uint8_t ErrorCode    = HOST_ENUMERROR_NoError;\r
        uint8_t SubErrorCode = HOST_ENUMERROR_NoError;\r
+       uint8_t PrevPipe     = Pipe_GetCurrentPipe();\r
        \r
        static uint16_t WaitMSRemaining;\r
        static uint8_t  PostWaitState;\r
 \r
+       Pipe_SelectPipe(PIPE_CONTROLPIPE);\r
+\r
        switch (USB_HostState)\r
        {\r
                case HOST_STATE_WaitForDevice:\r
@@ -94,7 +98,7 @@ static void USB_HostTask(void)
                                if ((SubErrorCode = USB_Host_WaitMS(1)) != HOST_WAITERROR_Successful)\r
                                {\r
                                        USB_HostState = PostWaitState;\r
-                                       ErrorCode    = HOST_ENUMERROR_WaitStage;\r
+                                       ErrorCode     = HOST_ENUMERROR_WaitStage;\r
                                        break;\r
                                }\r
                                \r
@@ -152,7 +156,7 @@ static void USB_HostTask(void)
                        break;\r
                case HOST_STATE_Powered:\r
                        Pipe_ConfigurePipe(PIPE_CONTROLPIPE, EP_TYPE_CONTROL,\r
-                                                          PIPE_TOKEN_SETUP, PIPE_CONTROLPIPE,\r
+                                                          PIPE_TOKEN_SETUP, ENDPOINT_CONTROLEP,\r
                                                           PIPE_CONTROLPIPE_DEFAULT_SIZE, PIPE_BANK_SINGLE);            \r
                \r
                        if (!(Pipe_IsConfigured()))\r
@@ -165,16 +169,16 @@ static void USB_HostTask(void)
                        USB_HostState = HOST_STATE_Default;\r
                        break;\r
                case HOST_STATE_Default:\r
-                       USB_HostRequest = (USB_Host_Request_Header_t)\r
+                       USB_ControlRequest = (USB_Request_Header_t)\r
                                {\r
-                                       bmRequestType: (REQDIR_DEVICETOHOST | REQTYPE_STANDARD | REQREC_DEVICE),\r
-                                       bRequest:      REQ_GetDescriptor,\r
-                                       wValue:        (DTYPE_Device << 8),\r
-                                       wIndex:        0,\r
-                                       wLength:       PIPE_CONTROLPIPE_DEFAULT_SIZE,\r
+                                       .bmRequestType = (REQDIR_DEVICETOHOST | REQTYPE_STANDARD | REQREC_DEVICE),\r
+                                       .bRequest      = REQ_GetDescriptor,\r
+                                       .wValue        = (DTYPE_Device << 8),\r
+                                       .wIndex        = 0,\r
+                                       .wLength       = 8,\r
                                };\r
 \r
-                       uint8_t DataBuffer[PIPE_CONTROLPIPE_DEFAULT_SIZE];\r
+                       uint8_t DataBuffer[8];\r
 \r
                        if ((SubErrorCode = USB_Host_SendControlRequest(DataBuffer)) != HOST_SENDCONTROL_Successful)\r
                        {\r
@@ -198,7 +202,7 @@ static void USB_HostTask(void)
                        Pipe_ResetPipe(PIPE_CONTROLPIPE);\r
                        \r
                        Pipe_ConfigurePipe(PIPE_CONTROLPIPE, EP_TYPE_CONTROL,\r
-                                          PIPE_TOKEN_SETUP, PIPE_CONTROLPIPE,\r
+                                          PIPE_TOKEN_SETUP, ENDPOINT_CONTROLEP,\r
                                           USB_ControlPipeSize, PIPE_BANK_SINGLE);\r
 \r
                        if (!(Pipe_IsConfigured()))\r
@@ -210,13 +214,13 @@ static void USB_HostTask(void)
 \r
                        Pipe_SetInfiniteINRequests();\r
                        \r
-                       USB_HostRequest = (USB_Host_Request_Header_t)\r
+                       USB_ControlRequest = (USB_Request_Header_t)\r
                                {\r
-                                       bmRequestType: (REQDIR_HOSTTODEVICE | REQTYPE_STANDARD | REQREC_DEVICE),\r
-                                       bRequest:      REQ_SetAddress,\r
-                                       wValue:        USB_HOST_DEVICEADDRESS,\r
-                                       wIndex:        0,\r
-                                       wLength:       0,\r
+                                       .bmRequestType = (REQDIR_HOSTTODEVICE | REQTYPE_STANDARD | REQREC_DEVICE),\r
+                                       .bRequest      = REQ_SetAddress,\r
+                                       .wValue        = USB_HOST_DEVICEADDRESS,\r
+                                       .wIndex        = 0,\r
+                                       .wLength       = 0,\r
                                };\r
 \r
                        if ((SubErrorCode = USB_Host_SendControlRequest(NULL)) != HOST_SENDCONTROL_Successful)\r
@@ -249,5 +253,7 @@ static void USB_HostTask(void)
 \r
                USB_ResetInterface();\r
        }\r
+       \r
+       Pipe_SelectPipe(PrevPipe);\r
 }\r
 #endif\r