Changed MIDI event structure MIDI_EventPacket_t to use a single field for the combined virtual cable index and command ID, to prevent bitfield packing issues on some architectures (thanks to Darren Gibbs).
This commit is contained in:
parent
5b5b73ce58
commit
e875d7cf9f
7 changed files with 31 additions and 16 deletions
|
|
@ -160,8 +160,7 @@ void MIDI_Task(void)
|
|||
{
|
||||
MIDI_EventPacket_t MIDIEvent = (MIDI_EventPacket_t)
|
||||
{
|
||||
.CableNumber = 0,
|
||||
.Command = (MIDICommand >> 4),
|
||||
.Event = MIDI_EVENT(0, MIDICommand),
|
||||
|
||||
.Data1 = MIDICommand | Channel,
|
||||
.Data2 = MIDIPitch,
|
||||
|
|
@ -191,7 +190,7 @@ void MIDI_Task(void)
|
|||
Endpoint_Read_Stream_LE(&MIDIEvent, sizeof(MIDIEvent), NULL);
|
||||
|
||||
/* 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))
|
||||
if ((MIDIEvent.Event == MIDI_EVENT(0, MIDI_COMMAND_NOTE_ON)) && (MIDIEvent.Data3 > 0))
|
||||
{
|
||||
/* Change LEDs depending on the pitch of the sent note */
|
||||
LEDs_SetAllLEDs(MIDIEvent.Data2 > 64 ? LEDS_LED1 : LEDS_LED2);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue