aboutsummaryrefslogtreecommitdiffstats
path: root/Demos
diff options
context:
space:
mode:
authorDean Camera <dean@fourwalledcubicle.com>2009-11-26 11:16:20 +0000
committerDean Camera <dean@fourwalledcubicle.com>2009-11-26 11:16:20 +0000
commit2a28862dcc6a8e5fcf7c8015f67b3eee4716fef6 (patch)
tree765119640ff4b015072c4b7a778d1aef06a816f3 /Demos
parentf6de4db0009244baef4e961cd0cb6520e78edba0 (diff)
downloadlufa-2a28862dcc6a8e5fcf7c8015f67b3eee4716fef6.tar.gz
lufa-2a28862dcc6a8e5fcf7c8015f67b3eee4716fef6.tar.bz2
lufa-2a28862dcc6a8e5fcf7c8015f67b3eee4716fef6.zip
Make MIDI device demos also turn off the on board LEDs if MIDI Note On messages are sent with a velocity of zero, which some devices use instead of Note Off messages (thanks to Robin Green).
Diffstat (limited to 'Demos')
-rw-r--r--Demos/Device/ClassDriver/MIDI/MIDI.c2
-rw-r--r--Demos/Device/LowLevel/MIDI/MIDI.c5
2 files changed, 4 insertions, 3 deletions
diff --git a/Demos/Device/ClassDriver/MIDI/MIDI.c b/Demos/Device/ClassDriver/MIDI/MIDI.c
index b70482787..765bec65d 100644
--- a/Demos/Device/ClassDriver/MIDI/MIDI.c
+++ b/Demos/Device/ClassDriver/MIDI/MIDI.c
@@ -72,7 +72,7 @@ int main(void)
MIDI_EventPacket_t ReceivedMIDIEvent;
if (MIDI_Device_ReceiveEventPacket(&Keyboard_MIDI_Interface, &ReceivedMIDIEvent))
{
- if (ReceivedMIDIEvent.Command == (MIDI_COMMAND_NOTE_ON >> 4))
+ if ((ReceivedMIDIEvent.Command == (MIDI_COMMAND_NOTE_ON >> 4)) && (ReceivedMIDIEvent.Data3 > 0))
LEDs_SetAllLEDs(ReceivedMIDIEvent.Data2 > 64 ? LEDS_LED1 : LEDS_LED2);
else
LEDs_SetAllLEDs(LEDS_NO_LEDS);
diff --git a/Demos/Device/LowLevel/MIDI/MIDI.c b/Demos/Device/LowLevel/MIDI/MIDI.c
index 2cdf71152..cfd81486a 100644
--- a/Demos/Device/LowLevel/MIDI/MIDI.c
+++ b/Demos/Device/LowLevel/MIDI/MIDI.c
@@ -198,14 +198,15 @@ void MIDI_Task(void)
/* Read the MIDI event packet from the endpoint */
Endpoint_Read_Stream_LE(&MIDIEvent, sizeof(MIDIEvent));
- if (MIDIEvent.Command == (MIDI_COMMAND_NOTE_ON >> 4))
+ /* 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))
{
/* 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 */
+ /* Turn off all LEDs in response to non Note On messages */
LEDs_SetAllLEDs(LEDS_NO_LEDS);
}