diff options
author | Dean Camera <dean@fourwalledcubicle.com> | 2009-09-30 04:40:36 +0000 |
---|---|---|
committer | Dean Camera <dean@fourwalledcubicle.com> | 2009-09-30 04:40:36 +0000 |
commit | 89c837ee34db186f7b1f859f767d587036573c4c (patch) | |
tree | 0fd7efe823b1924c89628052398851e54b92fe06 /Demos/Device/LowLevel | |
parent | 059ebd01a3f34ce288adfe30c6cd5b88553882fa (diff) | |
download | lufa-89c837ee34db186f7b1f859f767d587036573c4c.tar.gz lufa-89c837ee34db186f7b1f859f767d587036573c4c.tar.bz2 lufa-89c837ee34db186f7b1f859f767d587036573c4c.zip |
Removed mostly useless "TestApp" demo, as it was mainly useful only for checking for sytax errors in the library.
MIDI device demos now receive MIDI events from the host and display note ON messages via the board LEDs.
Added beginnings of a MIDI class bootloader.
Diffstat (limited to 'Demos/Device/LowLevel')
-rw-r--r-- | Demos/Device/LowLevel/MIDI/MIDI.c | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/Demos/Device/LowLevel/MIDI/MIDI.c b/Demos/Device/LowLevel/MIDI/MIDI.c index 4dfb9b7e6..c4ec8941f 100644 --- a/Demos/Device/LowLevel/MIDI/MIDI.c +++ b/Demos/Device/LowLevel/MIDI/MIDI.c @@ -190,7 +190,26 @@ void MIDI_Task(void) /* Select the MIDI OUT stream */
Endpoint_SelectEndpoint(MIDI_STREAM_OUT_EPNUM);
- /* Check if endpoint is ready to be read from, if so discard its (unused) data */
+ /* Check if a MIDI command has been received */
if (Endpoint_IsOUTReceived())
- Endpoint_ClearOUT();
+ {
+ USB_MIDI_EventPacket_t MIDIEvent;
+
+ /* Read the MIDI event packet from the endpoint */
+ Endpoint_Read_Stream_LE(&MIDIEvent, sizeof(MIDIEvent));
+
+ if (MIDIEvent.Command == (MIDI_COMMAND_NOTE_ON >> 4))
+ {
+ /* Change LEDs depending on the pitch of the sent note */
+ LEDs_SetAllLEDs(MIDIEvent.Data2 > 64 ? LEDS_LED1 : LEDS_LED2);
+ }
+ else
+ {
+ /* Turn off all LEDs in response to non-Note On messages */
+ LEDs_SetAllLEDs(LEDS_NO_LEDS);
+ }
+
+ /* Clear the endpoint ready for new packet */
+ Endpoint_ClearOUT();
+ }
}
|