aboutsummaryrefslogtreecommitdiff
path: root/Demos/Device
diff options
context:
space:
mode:
authorDean <Dean@d5102386-fcda-11dd-9fdb-3debd5008f28>2010-11-05 03:43:11 +0000
committerDean <Dean@d5102386-fcda-11dd-9fdb-3debd5008f28>2010-11-05 03:43:11 +0000
commitab85f1b761975f3e4dfe687ffc4a5f862bc1608e (patch)
treee2ec634f9434253203e0e34765688f4c2baec1ca /Demos/Device
parentfc31371b629cf7353dcc4f2443ee492870516c57 (diff)
Loop in the ClassDriver MIDI device/host demos until there are no more incomming events to process. Only clear the endpoint/pipe bank in the LowLevel MIDI device/host demos when the endpoint is empty after an event read.
git-svn-id: http://lufa-lib.googlecode.com/svn/trunk@1555 d5102386-fcda-11dd-9fdb-3debd5008f28
Diffstat (limited to 'Demos/Device')
-rw-r--r--Demos/Device/ClassDriver/MIDI/MIDI.c2
-rw-r--r--Demos/Device/LowLevel/MIDI/MIDI.c8
2 files changed, 7 insertions, 3 deletions
diff --git a/Demos/Device/ClassDriver/MIDI/MIDI.c b/Demos/Device/ClassDriver/MIDI/MIDI.c
index 217a3a4b..95a2ddd0 100644
--- a/Demos/Device/ClassDriver/MIDI/MIDI.c
+++ b/Demos/Device/ClassDriver/MIDI/MIDI.c
@@ -71,7 +71,7 @@ int main(void)
CheckJoystickMovement();
MIDI_EventPacket_t ReceivedMIDIEvent;
- if (MIDI_Device_ReceiveEventPacket(&Keyboard_MIDI_Interface, &ReceivedMIDIEvent))
+ while (MIDI_Device_ReceiveEventPacket(&Keyboard_MIDI_Interface, &ReceivedMIDIEvent))
{
if ((ReceivedMIDIEvent.Command == (MIDI_COMMAND_NOTE_ON >> 4)) && (ReceivedMIDIEvent.Data3 > 0))
LEDs_SetAllLEDs(ReceivedMIDIEvent.Data2 > 64 ? LEDS_LED1 : LEDS_LED2);
diff --git a/Demos/Device/LowLevel/MIDI/MIDI.c b/Demos/Device/LowLevel/MIDI/MIDI.c
index e4364558..bfe90b0d 100644
--- a/Demos/Device/LowLevel/MIDI/MIDI.c
+++ b/Demos/Device/LowLevel/MIDI/MIDI.c
@@ -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();
+ }
}
}