*/\r
void EVENT_USB_ConfigurationChanged(void)\r
{\r
- /* Setup MIDI stream endpoints */\r
- Endpoint_ConfigureEndpoint(MIDI_STREAM_OUT_EPNUM, EP_TYPE_BULK,\r
- ENDPOINT_DIR_OUT, MIDI_STREAM_EPSIZE,\r
- ENDPOINT_BANK_SINGLE);\r
-\r
- Endpoint_ConfigureEndpoint(MIDI_STREAM_IN_EPNUM, EP_TYPE_BULK,\r
- ENDPOINT_DIR_IN, MIDI_STREAM_EPSIZE,\r
- ENDPOINT_BANK_SINGLE);\r
-\r
/* Indicate USB connected and ready */\r
LEDs_SetAllLEDs(LEDMASK_USB_READY);\r
+\r
+ /* Setup MIDI stream endpoints */\r
+ if (!(Endpoint_ConfigureEndpoint(MIDI_STREAM_OUT_EPNUM, EP_TYPE_BULK,\r
+ ENDPOINT_DIR_OUT, MIDI_STREAM_EPSIZE,\r
+ ENDPOINT_BANK_SINGLE)))\r
+ {\r
+ LEDs_SetAllLEDs(LEDMASK_USB_ERROR);\r
+ } \r
+ \r
+ if (!(Endpoint_ConfigureEndpoint(MIDI_STREAM_IN_EPNUM, EP_TYPE_BULK,\r
+ ENDPOINT_DIR_IN, MIDI_STREAM_EPSIZE,\r
+ ENDPOINT_BANK_SINGLE)))\r
+ {\r
+ LEDs_SetAllLEDs(LEDMASK_USB_ERROR);\r
+ }\r
}\r
\r
/** Task to handle the generation of MIDI note change events in response to presses of the board joystick, and send them\r
*/\r
void SendMIDINoteChange(const uint8_t Pitch, const bool OnOff, const uint8_t CableID, const uint8_t Channel)\r
{\r
- /* Wait until endpoint ready for more data */\r
- while (!(Endpoint_IsReadWriteAllowed()));\r
+ /* If endpoint ready for more data, abort */\r
+ if (!(Endpoint_IsReadWriteAllowed()))\r
+ return;\r
\r
/* Check if the message should be a Note On or Note Off command */\r
uint8_t Command = ((OnOff)? MIDI_COMMAND_NOTE_ON : MIDI_COMMAND_NOTE_OFF);\r