diff options
author | Dean Camera <dean@fourwalledcubicle.com> | 2009-07-21 02:48:41 +0000 |
---|---|---|
committer | Dean Camera <dean@fourwalledcubicle.com> | 2009-07-21 02:48:41 +0000 |
commit | 67f390fe746ccc4d1dceac23f590eb1723cb7ff2 (patch) | |
tree | eafc8a4dcb64a038afcb16fcae8d48033dc74249 /Demos/Device/LowLevel/MIDI | |
parent | bf50959b8016adbf6b295178b26b8173514dd060 (diff) | |
download | lufa-67f390fe746ccc4d1dceac23f590eb1723cb7ff2.tar.gz lufa-67f390fe746ccc4d1dceac23f590eb1723cb7ff2.tar.bz2 lufa-67f390fe746ccc4d1dceac23f590eb1723cb7ff2.zip |
Add explicit guards to all device mode tasks to ensure the device is connected and configured before running the task, to prevent any user tasks from locking up the main USB task if the device has not been properly configured.
Diffstat (limited to 'Demos/Device/LowLevel/MIDI')
-rw-r--r-- | Demos/Device/LowLevel/MIDI/MIDI.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/Demos/Device/LowLevel/MIDI/MIDI.c b/Demos/Device/LowLevel/MIDI/MIDI.c index 84d377854..954cbcbf6 100644 --- a/Demos/Device/LowLevel/MIDI/MIDI.c +++ b/Demos/Device/LowLevel/MIDI/MIDI.c @@ -116,16 +116,17 @@ void MIDI_Task(void) {
static uint8_t PrevJoystickStatus;
- /* Select the MIDI IN stream */
+ /* Device must be connected and configured for the task to run */
+ if (!(USB_IsConnected) || !(USB_ConfigurationNumber))
+ return;
+
Endpoint_SelectEndpoint(MIDI_STREAM_IN_EPNUM);
- /* Check if endpoint is ready to be written to */
if (Endpoint_IsINReady())
{
uint8_t MIDICommand = 0;
uint8_t MIDIPitch;
- /* Get current joystick mask, XOR with previous to detect joystick changes */
uint8_t JoystickStatus = Joystick_GetStatus();
uint8_t JoystickChanges = (JoystickStatus ^ PrevJoystickStatus);
|