- switch (USB_HostState)\r
- {\r
- case HOST_STATE_Addressed:\r
- LEDs_SetAllLEDs(LEDMASK_USB_ENUMERATING);\r
-\r
- uint16_t ConfigDescriptorSize;\r
- uint8_t ConfigDescriptorData[512];\r
-\r
- if (USB_Host_GetDeviceConfigDescriptor(1, &ConfigDescriptorSize, ConfigDescriptorData,\r
- sizeof(ConfigDescriptorData)) != HOST_GETCONFIG_Successful)\r
- {\r
- puts_P(PSTR("Error Retrieving Configuration Descriptor.\r\n"));\r
- LEDs_SetAllLEDs(LEDMASK_USB_ERROR);\r
- USB_HostState = HOST_STATE_WaitForDeviceRemoval;\r
- break;\r
- }\r
-\r
- if (HID_Host_ConfigurePipes(&Device_HID_Interface,\r
- ConfigDescriptorSize, ConfigDescriptorData) != HID_ENUMERROR_NoError)\r
- {\r
- puts_P(PSTR("Attached Device Not a Valid HID Device.\r\n"));\r
- LEDs_SetAllLEDs(LEDMASK_USB_ERROR);\r
- USB_HostState = HOST_STATE_WaitForDeviceRemoval;\r
- break;\r
- }\r
-\r
- if (USB_Host_SetDeviceConfiguration(1) != HOST_SENDCONTROL_Successful)\r
- {\r
- puts_P(PSTR("Error Setting Device Configuration.\r\n"));\r
- LEDs_SetAllLEDs(LEDMASK_USB_ERROR);\r
- USB_HostState = HOST_STATE_WaitForDeviceRemoval;\r
- break;\r
- }\r
-\r
- if (HID_Host_SetReportProtocol(&Device_HID_Interface) != 0)\r
- {\r
- puts_P(PSTR("Error Setting Report Protocol Mode.\r\n"));\r
- LEDs_SetAllLEDs(LEDMASK_USB_ERROR);\r
- USB_HostState = HOST_STATE_WaitForDeviceRemoval;\r
- break;\r
- }\r
-\r
- puts_P(PSTR("HID Device Enumerated.\r\n"));\r
- LEDs_SetAllLEDs(LEDMASK_USB_READY);\r
- USB_HostState = HOST_STATE_Configured;\r
- break;\r
- case HOST_STATE_Configured:\r
- LEDs_SetAllLEDs(LEDMASK_USB_BUSY);\r
- \r
- OutputReportSizes();\r
- OutputParsedReportItems();\r
- \r
- LEDs_SetAllLEDs(LEDMASK_USB_READY);\r
- USB_HostState = HOST_STATE_WaitForDeviceRemoval;\r
- break;\r
- }\r
-\r