Make sure that the NVM bus/controller busy waits in the AVRISP MKII clone project...
[pub/USBasp.git] / Demos / Host / ClassDriver / MIDIHost / MIDIHost.c
index c942145..6f30fa3 100644 (file)
@@ -1,13 +1,13 @@
 /*\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
-  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
@@ -63,6 +63,7 @@ int main(void)
        puts_P(PSTR(ESC_FG_CYAN "MIDI Host Demo running.\r\n" ESC_FG_WHITE));\r
 \r
        LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);\r
+       sei();\r
 \r
        for (;;)\r
        {\r
@@ -77,7 +78,7 @@ int main(void)
                                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
@@ -86,7 +87,7 @@ int main(void)
                                if (MIDI_Host_ConfigurePipes(&Keyboard_MIDI_Interface,\r
                                                             ConfigDescriptorSize, ConfigDescriptorData) != MIDI_ENUMERROR_NoError)\r
                                {\r
-                                       printf("Attached Device Not a Valid MIDI Class Device.\r\n");\r
+                                       puts_P(PSTR("Attached Device Not a Valid MIDI Class Device.\r\n"));\r
                                        LEDs_SetAllLEDs(LEDMASK_USB_ERROR);\r
                                        USB_HostState = HOST_STATE_WaitForDeviceRemoval;\r
                                        break;\r
@@ -94,13 +95,14 @@ int main(void)
                                \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
                                }\r
                                \r
-                               printf("MIDI Device Enumerated.\r\n");\r
+                               puts_P(PSTR("MIDI Device Enumerated.\r\n"));\r
+                               LEDs_SetAllLEDs(LEDMASK_USB_READY);\r
                                USB_HostState = HOST_STATE_Configured;\r
                                break;\r
                        case HOST_STATE_Configured:\r
@@ -114,9 +116,9 @@ int main(void)
                                        \r
                                        if (NoteOnEvent || NoteOffEvent)\r
                                        {\r
-                                               printf_P(PSTR("MIDI Note %s - Channel %d, Pitch %d, Velocity %d"), NoteOnEvent ? "On" : "Off",\r
-                                                                                                                                                                                  ((MIDIEvent.Data1 & 0x0F) + 1),\r
-                                                                                                                                                                                  MIDIEvent.Data2, MIDIEvent.Data3);\r
+                                               printf_P(PSTR("MIDI Note %s - Channel %d, Pitch %d, Velocity %d\r\n"), NoteOnEvent ? "On" : "Off",\r
+                                                                                                                                                                                      ((MIDIEvent.Data1 & 0x0F) + 1),\r
+                                                                                                                                                                                      MIDIEvent.Data2, MIDIEvent.Data3);\r
                                        }\r
                                }\r
                \r
@@ -203,6 +205,7 @@ void CheckJoystickMovement(void)
                        };\r
                        \r
                MIDI_Host_SendEventPacket(&Keyboard_MIDI_Interface, &MIDIEvent);\r
+               MIDI_Host_Flush(&Keyboard_MIDI_Interface);\r
        }\r
 \r
        PrevJoystickStatus = JoystickStatus;\r