mirror of
https://github.com/qmk/qmk_firmware.git
synced 2025-09-10 17:15:43 +00:00
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.
This commit is contained in:
@@ -67,9 +67,14 @@ int main(void)
|
||||
{
|
||||
CheckJoystickMovement();
|
||||
|
||||
/* Must acknowedge MIDI packets from the host even though they aren't used, or the host locks up */
|
||||
MIDI_EventPacket_t DummyMIDIEvent;
|
||||
MIDI_Device_ReceiveEventPacket(&Keyboard_MIDI_Interface, &DummyMIDIEvent);
|
||||
MIDI_EventPacket_t ReceivedMIDIEvent;
|
||||
if (MIDI_Device_ReceiveEventPacket(&Keyboard_MIDI_Interface, &ReceivedMIDIEvent))
|
||||
{
|
||||
if (ReceivedMIDIEvent.Command == (MIDI_COMMAND_NOTE_ON >> 4))
|
||||
LEDs_SetAllLEDs(ReceivedMIDIEvent.Data2 > 64 ? LEDS_LED1 : LEDS_LED2);
|
||||
else
|
||||
LEDs_SetAllLEDs(LEDS_NO_LEDS);
|
||||
}
|
||||
|
||||
MIDI_Device_USBTask(&Keyboard_MIDI_Interface);
|
||||
USB_USBTask();
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user