aboutsummaryrefslogtreecommitdiffstats
path: root/Demos/Device/LowLevel/MIDI
diff options
context:
space:
mode:
authorDean Camera <dean@fourwalledcubicle.com>2009-09-30 04:40:36 +0000
committerDean Camera <dean@fourwalledcubicle.com>2009-09-30 04:40:36 +0000
commit89c837ee34db186f7b1f859f767d587036573c4c (patch)
tree0fd7efe823b1924c89628052398851e54b92fe06 /Demos/Device/LowLevel/MIDI
parent059ebd01a3f34ce288adfe30c6cd5b88553882fa (diff)
downloadlufa-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/MIDI')
-rw-r--r--Demos/Device/LowLevel/MIDI/MIDI.c23
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();
+ }
}