X-Git-Url: http://git.linex4red.de/pub/USBasp.git/blobdiff_plain/f201f6697b7f99b63389509b42112026b8f6f76f..d4f00fe7d51cd6779d2264c1f2a80b4435ca7b38:/Demos/Host/LowLevel/MIDIHost/MIDIHost.c diff --git a/Demos/Host/LowLevel/MIDIHost/MIDIHost.c b/Demos/Host/LowLevel/MIDIHost/MIDIHost.c index 31c886f66..f6b607a97 100644 --- a/Demos/Host/LowLevel/MIDIHost/MIDIHost.c +++ b/Demos/Host/LowLevel/MIDIHost/MIDIHost.c @@ -1,13 +1,13 @@ /* LUFA Library - Copyright (C) Dean Camera, 2011. + Copyright (C) Dean Camera, 2012. dean [at] fourwalledcubicle [dot] com www.lufa-lib.org */ /* - Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com) + Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com) Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted @@ -167,6 +167,7 @@ void MIDIHost_Task(void) return; Pipe_SelectPipe(MIDI_DATA_IN_PIPE); + Pipe_Unfreeze(); if (Pipe_IsINReceived()) { @@ -177,8 +178,8 @@ void MIDIHost_Task(void) if (!(Pipe_BytesInPipe())) Pipe_ClearIN(); - 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)); if (NoteOnEvent || NoteOffEvent) { @@ -187,8 +188,11 @@ void MIDIHost_Task(void) MIDIEvent.Data2, MIDIEvent.Data3); } } + + Pipe_Freeze(); Pipe_SelectPipe(MIDI_DATA_OUT_PIPE); + Pipe_Unfreeze(); if (Pipe_IsOUTReady()) { @@ -237,8 +241,7 @@ void MIDIHost_Task(void) { MIDI_EventPacket_t MIDIEvent = (MIDI_EventPacket_t) { - .CableNumber = 0, - .Command = (MIDICommand >> 4), + .Event = MIDI_EVENT(0, MIDICommand), .Data1 = MIDICommand | Channel, .Data2 = MIDIPitch, @@ -252,6 +255,8 @@ void MIDIHost_Task(void) Pipe_ClearOUT(); } + Pipe_Freeze(); + /* Save previous joystick value for next joystick change detection */ PrevJoystickStatus = JoystickStatus; }