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
 /*\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
@@ -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
        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
 \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
                                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
@@ -86,7 +87,7 @@ int main(void)
                                if (MIDI_Host_ConfigurePipes(&Keyboard_MIDI_Interface,\r
                                                             ConfigDescriptorSize, ConfigDescriptorData) != MIDI_ENUMERROR_NoError)\r
                                {\r
                                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
                                        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
                                \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
                                        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
                                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
                                        \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
                                        }\r
                                }\r
                \r
@@ -203,6 +205,7 @@ void CheckJoystickMovement(void)
                        };\r
                        \r
                MIDI_Host_SendEventPacket(&Keyboard_MIDI_Interface, &MIDIEvent);\r
                        };\r
                        \r
                MIDI_Host_SendEventPacket(&Keyboard_MIDI_Interface, &MIDIEvent);\r
+               MIDI_Host_Flush(&Keyboard_MIDI_Interface);\r
        }\r
 \r
        PrevJoystickStatus = JoystickStatus;\r
        }\r
 \r
        PrevJoystickStatus = JoystickStatus;\r