-       static uint16_t WaitMSRemaining;\r
-       static uint8_t  PostWaitState;\r
-\r
-       switch (USB_HostState)\r
-       {\r
-               case HOST_STATE_WaitForDevice:\r
-                       if (WaitMSRemaining)\r
-                       {\r
-                               if ((SubErrorCode = USB_Host_WaitMS(1)) != HOST_WAITERROR_Successful)\r
-                               {\r
-                                       USB_HostState = PostWaitState;\r
-                                       ErrorCode     = HOST_ENUMERROR_WaitStage;\r
-                                       break;\r
-                               }\r
-                               \r
-                               WaitMSRemaining--;\r
-                       }\r
-                       else\r
-                       {\r
-                               USB_HostState = PostWaitState;\r
-                       }\r
-               \r
-                       break;\r
-               case HOST_STATE_Attached:\r
-                       WaitMSRemaining = HOST_DEVICE_SETTLE_DELAY_MS;\r
-               \r
-                       USB_HostState = HOST_STATE_Attached_WaitForDeviceSettle;\r
-                       break;\r
-               case HOST_STATE_Attached_WaitForDeviceSettle:\r
-                       _delay_ms(1);\r
-\r
-                       if (!(WaitMSRemaining--))\r
-                       {\r
-                               USB_Host_VBUS_Manual_Off();\r
-\r
-                               USB_OTGPAD_On();\r
-                               USB_Host_VBUS_Auto_Enable();\r
-                               USB_Host_VBUS_Auto_On();\r
-                               \r
-                               USB_HostState = HOST_STATE_Attached_WaitForConnect;\r
-                       }\r
-                       \r
-                       break;\r
-               case HOST_STATE_Attached_WaitForConnect:                \r
-                       if (USB_INT_HasOccurred(USB_INT_DCONNI))\r
-                       {       \r
-                               USB_INT_Clear(USB_INT_DCONNI);\r
-                               USB_INT_Clear(USB_INT_DDISCI);\r
-\r
-                               USB_INT_Clear(USB_INT_VBERRI);\r
-                               USB_INT_Enable(USB_INT_VBERRI);\r
-\r
-                               USB_IsConnected = true;\r
-                               RAISE_EVENT(USB_Connect);\r
-                                       \r
-                               USB_Host_ResumeBus();\r
-                               Pipe_ClearPipes();\r
-                               \r
-                               HOST_TASK_NONBLOCK_WAIT(100, HOST_STATE_Attached_DoReset);\r
-                       }\r
-\r
-                       break;\r
-               case HOST_STATE_Attached_DoReset:\r
-                       USB_Host_ResetDevice();\r
-\r
-                       HOST_TASK_NONBLOCK_WAIT(200, HOST_STATE_Powered);\r
-                       break;\r
-               case HOST_STATE_Powered:\r
-                       Pipe_ConfigurePipe(PIPE_CONTROLPIPE, EP_TYPE_CONTROL,\r
-                                                          PIPE_TOKEN_SETUP, PIPE_CONTROLPIPE,\r
-                                                          PIPE_CONTROLPIPE_DEFAULT_SIZE, PIPE_BANK_SINGLE);            \r
-               \r
-                       if (!(Pipe_IsConfigured()))\r
-                       {\r
-                               ErrorCode    = HOST_ENUMERROR_PipeConfigError;\r
-                               SubErrorCode = 0;\r
-                               break;\r
-                       }\r
-\r
-                       USB_HostState = HOST_STATE_Default;\r
-                       break;\r
-               case HOST_STATE_Default:\r
-                       USB_HostRequest = (USB_Host_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
-                               };\r