Update UC3 platform driver support to use the bitmasks defined in the header files...
[pub/USBasp.git] / Demos / Device / LowLevel / MIDI / MIDI.c
index e436455..bd2ffa9 100644 (file)
@@ -1,13 +1,13 @@
 /*
              LUFA Library
-     Copyright (C) Dean Camera, 2010.
+     Copyright (C) Dean Camera, 2011.
 
   dean [at] fourwalledcubicle [dot] com
            www.lufa-lib.org
 */
 
 /*
-  Copyright 2010  Dean Camera (dean [at] fourwalledcubicle [dot] com)
+  Copyright 2011  Dean Camera (dean [at] fourwalledcubicle [dot] com)
 
   Permission to use, copy, modify, distribute, and sell this
   software and its documentation for any purpose is hereby granted
@@ -171,7 +171,7 @@ void MIDI_Task(void)
                                };
 
                        /* Write the MIDI event packet to the endpoint */
-                       Endpoint_Write_Stream_LE(&MIDIEvent, sizeof(MIDIEvent));
+                       Endpoint_Write_Stream_LE(&MIDIEvent, sizeof(MIDIEvent), NULL);
 
                        /* Send the data in the endpoint to the host */
                        Endpoint_ClearIN();
@@ -190,7 +190,7 @@ void MIDI_Task(void)
                MIDI_EventPacket_t MIDIEvent;
 
                /* Read the MIDI event packet from the endpoint */
-               Endpoint_Read_Stream_LE(&MIDIEvent, sizeof(MIDIEvent));
+               Endpoint_Read_Stream_LE(&MIDIEvent, sizeof(MIDIEvent), NULL);
 
                /* Check to see if the sent command is a note on message with a non-zero velocity */
                if ((MIDIEvent.Command == (MIDI_COMMAND_NOTE_ON >> 4)) && (MIDIEvent.Data3 > 0))
@@ -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();
+               }
        }
 }