Make sure that long reads are aborted early if the connection times out while waiting...
[pub/USBasp.git] / Demos / Host / ClassDriver / KeyboardHost / KeyboardHost.c
index 0c0bb25..c79c100 100644 (file)
@@ -1,13 +1,13 @@
 /*\r
              LUFA Library\r
 /*\r
              LUFA Library\r
-     Copyright (C) Dean Camera, 2009.\r
+     Copyright (C) Dean Camera, 2010.\r
               \r
   dean [at] fourwalledcubicle [dot] com\r
       www.fourwalledcubicle.com\r
 */\r
 \r
 /*\r
               \r
   dean [at] fourwalledcubicle [dot] com\r
       www.fourwalledcubicle.com\r
 */\r
 \r
 /*\r
-  Copyright 2009  Dean Camera (dean [at] fourwalledcubicle [dot] com)\r
+  Copyright 2010  Dean Camera (dean [at] fourwalledcubicle [dot] com)\r
 \r
   Permission to use, copy, modify, distribute, and sell this \r
   software and its documentation for any purpose is hereby granted\r
 \r
   Permission to use, copy, modify, distribute, and sell this \r
   software and its documentation for any purpose is hereby granted\r
@@ -65,7 +65,8 @@ int main(void)
        puts_P(PSTR(ESC_FG_CYAN "Keyboard Host Demo running.\r\n" ESC_FG_WHITE));\r
 \r
        LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);\r
        puts_P(PSTR(ESC_FG_CYAN "Keyboard Host Demo running.\r\n" ESC_FG_WHITE));\r
 \r
        LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);\r
-\r
+       sei();\r
+       \r
        for (;;)\r
        {\r
                switch (USB_HostState)\r
        for (;;)\r
        {\r
                switch (USB_HostState)\r
@@ -79,7 +80,7 @@ int main(void)
                                if (USB_Host_GetDeviceConfigDescriptor(1, &ConfigDescriptorSize, ConfigDescriptorData,\r
                                                                       sizeof(ConfigDescriptorData)) != HOST_GETCONFIG_Successful)\r
                                {\r
                                if (USB_Host_GetDeviceConfigDescriptor(1, &ConfigDescriptorSize, ConfigDescriptorData,\r
                                                                       sizeof(ConfigDescriptorData)) != HOST_GETCONFIG_Successful)\r
                                {\r
-                                       printf("Error Retrieving Configuration Descriptor.\r\n");\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
                                        LEDs_SetAllLEDs(LEDMASK_USB_ERROR);\r
                                        USB_HostState = HOST_STATE_WaitForDeviceRemoval;\r
                                        break;\r
@@ -88,7 +89,7 @@ int main(void)
                                if (HID_Host_ConfigurePipes(&Keyboard_HID_Interface,\r
                                                            ConfigDescriptorSize, ConfigDescriptorData) != HID_ENUMERROR_NoError)\r
                                {\r
                                if (HID_Host_ConfigurePipes(&Keyboard_HID_Interface,\r
                                                            ConfigDescriptorSize, ConfigDescriptorData) != HID_ENUMERROR_NoError)\r
                                {\r
-                                       printf("Attached Device Not a Valid Keyboard.\r\n");\r
+                                       puts_P(PSTR("Attached Device Not a Valid Keyboard.\r\n"));\r
                                        LEDs_SetAllLEDs(LEDMASK_USB_ERROR);\r
                                        USB_HostState = HOST_STATE_WaitForDeviceRemoval;\r
                                        break;\r
                                        LEDs_SetAllLEDs(LEDMASK_USB_ERROR);\r
                                        USB_HostState = HOST_STATE_WaitForDeviceRemoval;\r
                                        break;\r
@@ -96,7 +97,7 @@ int main(void)
                                \r
                                if (USB_Host_SetDeviceConfiguration(1) != HOST_SENDCONTROL_Successful)\r
                                {\r
                                \r
                                if (USB_Host_SetDeviceConfiguration(1) != HOST_SENDCONTROL_Successful)\r
                                {\r
-                                       printf("Error Setting Device Configuration.\r\n");\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
                                        LEDs_SetAllLEDs(LEDMASK_USB_ERROR);\r
                                        USB_HostState = HOST_STATE_WaitForDeviceRemoval;\r
                                        break;\r
@@ -104,13 +105,14 @@ int main(void)
 \r
                                if (HID_Host_SetBootProtocol(&Keyboard_HID_Interface) != 0)\r
                                {\r
 \r
                                if (HID_Host_SetBootProtocol(&Keyboard_HID_Interface) != 0)\r
                                {\r
-                                       printf("Could not Set Boot Protocol Mode.\r\n");\r
+                                       puts_P(PSTR("Could not Set Boot Protocol Mode.\r\n"));\r
                                        LEDs_SetAllLEDs(LEDMASK_USB_ERROR);\r
                                        USB_HostState = HOST_STATE_WaitForDeviceRemoval;\r
                                        break;\r
                                }\r
                                \r
                                        LEDs_SetAllLEDs(LEDMASK_USB_ERROR);\r
                                        USB_HostState = HOST_STATE_WaitForDeviceRemoval;\r
                                        break;\r
                                }\r
                                \r
-                               printf("Keyboard Enumerated.\r\n");\r
+                               puts_P(PSTR("Keyboard Enumerated.\r\n"));\r
+                               LEDs_SetAllLEDs(LEDMASK_USB_READY);\r
                                USB_HostState = HOST_STATE_Configured;\r
                                break;\r
                        case HOST_STATE_Configured:\r
                                USB_HostState = HOST_STATE_Configured;\r
                                break;\r
                        case HOST_STATE_Configured:\r