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
				
			
		| 
						 | 
				
			
			@ -111,8 +111,8 @@ void JoystickHost_Task(void)
 | 
			
		|||
	MIDI_EventPacket_t MIDIEvent;
 | 
			
		||||
	while (MIDI_Host_ReceiveEventPacket(&Keyboard_MIDI_Interface, &MIDIEvent))
 | 
			
		||||
	{
 | 
			
		||||
		bool NoteOnEvent  = ((MIDIEvent.Command & 0x0F) == (MIDI_COMMAND_NOTE_ON  >> 4));
 | 
			
		||||
		bool NoteOffEvent = ((MIDIEvent.Command & 0x0F) == (MIDI_COMMAND_NOTE_OFF >> 4));
 | 
			
		||||
		bool NoteOnEvent  = (MIDIEvent.Event == MIDI_EVENT(0, MIDI_COMMAND_NOTE_ON));
 | 
			
		||||
		bool NoteOffEvent = (MIDIEvent.Event == MIDI_EVENT(0, MIDI_COMMAND_NOTE_OFF));
 | 
			
		||||
 | 
			
		||||
		/* Display note events from the host */
 | 
			
		||||
		if (NoteOnEvent || NoteOffEvent)
 | 
			
		||||
| 
						 | 
				
			
			@ -173,8 +173,7 @@ void CheckJoystickMovement(void)
 | 
			
		|||
	{
 | 
			
		||||
		MIDI_EventPacket_t MIDIEvent = (MIDI_EventPacket_t)
 | 
			
		||||
			{
 | 
			
		||||
				.CableNumber = 0,
 | 
			
		||||
				.Command     = (MIDICommand >> 4),
 | 
			
		||||
				.Event       = MIDI_EVENT(0, MIDICommand),
 | 
			
		||||
 | 
			
		||||
				.Data1       = MIDICommand | Channel,
 | 
			
		||||
				.Data2       = MIDIPitch,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue