diff options
author | Dean Camera <dean@fourwalledcubicle.com> | 2010-11-05 03:43:11 +0000 |
---|---|---|
committer | Dean Camera <dean@fourwalledcubicle.com> | 2010-11-05 03:43:11 +0000 |
commit | 99a9e415efd1e27d902427ccd1aa6e4a9f9d4d05 (patch) | |
tree | e2ec634f9434253203e0e34765688f4c2baec1ca /Demos/Host | |
parent | 85cf2027373cfbe6f6fb257a84a59df0d74f3e1a (diff) | |
download | lufa-99a9e415efd1e27d902427ccd1aa6e4a9f9d4d05.tar.gz lufa-99a9e415efd1e27d902427ccd1aa6e4a9f9d4d05.tar.bz2 lufa-99a9e415efd1e27d902427ccd1aa6e4a9f9d4d05.zip |
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.
Diffstat (limited to 'Demos/Host')
-rw-r--r-- | Demos/Host/ClassDriver/MIDIHost/MIDIHost.c | 2 | ||||
-rw-r--r-- | Demos/Host/LowLevel/MIDIHost/MIDIHost.c | 8 |
2 files changed, 5 insertions, 5 deletions
diff --git a/Demos/Host/ClassDriver/MIDIHost/MIDIHost.c b/Demos/Host/ClassDriver/MIDIHost/MIDIHost.c index 56daf125c..eda827257 100644 --- a/Demos/Host/ClassDriver/MIDIHost/MIDIHost.c +++ b/Demos/Host/ClassDriver/MIDIHost/MIDIHost.c @@ -109,7 +109,7 @@ int main(void) CheckJoystickMovement(); MIDI_EventPacket_t MIDIEvent; - if (MIDI_Host_ReceiveEventPacket(&Keyboard_MIDI_Interface, &MIDIEvent)) + while (MIDI_Host_ReceiveEventPacket(&Keyboard_MIDI_Interface, &MIDIEvent)) { bool NoteOnEvent = ((MIDIEvent.Command & 0x0F) == (MIDI_COMMAND_NOTE_ON >> 4)); bool NoteOffEvent = ((MIDIEvent.Command & 0x0F) == (MIDI_COMMAND_NOTE_OFF >> 4)); diff --git a/Demos/Host/LowLevel/MIDIHost/MIDIHost.c b/Demos/Host/LowLevel/MIDIHost/MIDIHost.c index b616b679f..5ff3baa39 100644 --- a/Demos/Host/LowLevel/MIDIHost/MIDIHost.c +++ b/Demos/Host/LowLevel/MIDIHost/MIDIHost.c @@ -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); |