return;
Pipe_SelectPipe(MIDI_DATA_IN_PIPE);
+ Pipe_Unfreeze();
if (Pipe_IsINReceived())
{
MIDIEvent.Data2, MIDIEvent.Data3);
}
}
+
+ Pipe_Freeze();
Pipe_SelectPipe(MIDI_DATA_OUT_PIPE);
+ Pipe_Unfreeze();
if (Pipe_IsOUTReady())
{
Pipe_ClearOUT();
}
+ Pipe_Freeze();
+
/* Save previous joystick value for next joystick change detection */
PrevJoystickStatus = JoystickStatus;
}
uint8_t ErrorCode;
Pipe_SelectPipe(MIDIInterfaceInfo->Config.DataOUTPipe.Address);
-
+ Pipe_Unfreeze();
+
if (Pipe_BytesInPipe())
{
Pipe_ClearOUT();
if ((ErrorCode = Pipe_WaitUntilReady()) != PIPE_READYWAIT_NoError)
- return ErrorCode;
+ {
+ Pipe_Freeze();
+ return ErrorCode;
+ }
}
+ Pipe_Freeze();
+
return PIPE_READYWAIT_NoError;
}
uint8_t ErrorCode;
Pipe_SelectPipe(MIDIInterfaceInfo->Config.DataOUTPipe.Address);
-
+ Pipe_Unfreeze();
+
if ((ErrorCode = Pipe_Write_Stream_LE(Event, sizeof(MIDI_EventPacket_t), NULL)) != PIPE_RWSTREAM_NoError)
- return ErrorCode;
+ {
+ Pipe_Freeze();
+ return ErrorCode;
+ }
if (!(Pipe_IsReadWriteAllowed()))
Pipe_ClearOUT();
+ Pipe_Freeze();
+
return PIPE_RWSTREAM_NoError;
}