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).

pull/1469/head
Dean Camera 15 years ago
parent f6de4db000
commit 2a28862dcc

@ -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);

@ -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);
}

@ -27,7 +27,9 @@
* - All Class Drivers now return false or the "DeviceDisconnected" error code of their respective error enums when a function
* is called when no host/device is connected where possible
* - The HOST_SENDCONTROL_DeviceDisconnect enum value has been renamed to HOST_SENDCONTROL_DeviceDisconnected to be in line
* with the rest of the library errorcodes.
* with the rest of the library errorcodes
* - 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)
*
* <b>Fixed:</b>
* - Added missing CDC_Host_CreateBlockingStream() function code to the CDC Host Class driver

Loading…
Cancel
Save