Re-add in old Endpoint/Pipe workaround for unordered pipes - add new ORDERED_EP_CONFI...
[pub/USBasp.git] / Demos / Device / LowLevel / MIDI / MIDI.c
index 4696d23..bfe90b0 100644 (file)
@@ -3,7 +3,7 @@
      Copyright (C) Dean Camera, 2010.
 
   dean [at] fourwalledcubicle [dot] com
-      www.fourwalledcubicle.com
+           www.lufa-lib.org
 */
 
 /*
@@ -160,7 +160,7 @@ void MIDI_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),
@@ -187,7 +187,7 @@ void MIDI_Task(void)
        /* Check if a MIDI command has been received */
        if (Endpoint_IsOUTReceived())
        {
-               USB_MIDI_EventPacket_t MIDIEvent;
+               MIDI_EventPacket_t MIDIEvent;
 
                /* Read the MIDI event packet from the endpoint */
                Endpoint_Read_Stream_LE(&MIDIEvent, sizeof(MIDIEvent));
@@ -204,8 +204,12 @@ void MIDI_Task(void)
                        LEDs_SetAllLEDs(LEDS_NO_LEDS);
                }
 
-               /* Clear the endpoint ready for new packet */
-               Endpoint_ClearOUT();
+               /* If the endpoint is now empty, clear the bank */
+               if (!(Endpoint_BytesInEndpoint()))
+               {
+                       /* Clear the endpoint ready for new packet */
+                       Endpoint_ClearOUT();
+               }
        }
 }