Re-add in old Endpoint/Pipe workaround for unordered pipes - add new ORDERED_EP_CONFI...
[pub/USBasp.git] / Demos / Host / LowLevel / MIDIHost / MIDIHost.c
index 63ed6da..5ff3baa 100644 (file)
@@ -3,7 +3,7 @@
      Copyright (C) Dean Camera, 2010.
 
   dean [at] fourwalledcubicle [dot] com
-      www.fourwalledcubicle.com
+           www.lufa-lib.org
 */
 
 /*
@@ -179,7 +179,7 @@ void MIDI_Host_Task(void)
 
                        if (Pipe_IsINReceived())
                        {
-                               USB_MIDI_EventPacket_t MIDIEvent;
+                               MIDI_EventPacket_t MIDIEvent;
 
                                Pipe_Read_Stream_LE(&MIDIEvent, sizeof(MIDIEvent));
 
@@ -192,19 +192,19 @@ void MIDI_Host_Task(void)
                                                                                                           ((MIDIEvent.Data1 & 0x0F) + 1),
                                                                                                           MIDIEvent.Data2, MIDIEvent.Data3);
                                }
-
-                               Pipe_ClearIN();
+                               
+                               if (!(Pipe_BytesInPipe()))
+                                 Pipe_ClearIN();
                        }
 
                        Pipe_SelectPipe(MIDI_DATA_OUT_PIPE);
 
-                       static uint8_t PrevJoystickStatus;
-
                        if (Pipe_IsOUTReady())
                        {
                                uint8_t MIDICommand = 0;
                                uint8_t MIDIPitch;
 
+                               static uint8_t PrevJoystickStatus;
                                uint8_t JoystickStatus  = Joystick_GetStatus();
                                uint8_t JoystickChanges = (JoystickStatus ^ PrevJoystickStatus);
 
@@ -244,7 +244,7 @@ void MIDI_Host_Task(void)
                                /* Check if a MIDI command is to be sent */
                                if (MIDICommand)
                                {
-                                       USB_MIDI_EventPacket_t MIDIEvent = (USB_MIDI_EventPacket_t)
+                                       MIDI_EventPacket_t MIDIEvent = (MIDI_EventPacket_t)
                                                {
                                                        .CableNumber = 0,
                                                        .Command     = (MIDICommand >> 4),