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