aboutsummaryrefslogtreecommitdiffstats
path: root/Demos/Device/LowLevel/KeyboardMouse/KeyboardMouse.c
diff options
context:
space:
mode:
authorDean Camera <dean@fourwalledcubicle.com>2009-06-08 07:46:07 +0000
committerDean Camera <dean@fourwalledcubicle.com>2009-06-08 07:46:07 +0000
commite6881fd166586793a5a90effeefe4188092f383b (patch)
tree18812dc15a6837bd283593fa4da59cee89a3b1ed /Demos/Device/LowLevel/KeyboardMouse/KeyboardMouse.c
parentac70ddd0a1c412bb54def48e53caaebd0b5c9c61 (diff)
downloadlufa-e6881fd166586793a5a90effeefe4188092f383b.tar.gz
lufa-e6881fd166586793a5a90effeefe4188092f383b.tar.bz2
lufa-e6881fd166586793a5a90effeefe4188092f383b.zip
Error status LEDs shown when device endpoint configuration fails to complete.
MIDI device demo no longer blocks if a note change event is sent while the endpoint is not ready.
Diffstat (limited to 'Demos/Device/LowLevel/KeyboardMouse/KeyboardMouse.c')
-rw-r--r--Demos/Device/LowLevel/KeyboardMouse/KeyboardMouse.c35
1 files changed, 22 insertions, 13 deletions
diff --git a/Demos/Device/LowLevel/KeyboardMouse/KeyboardMouse.c b/Demos/Device/LowLevel/KeyboardMouse/KeyboardMouse.c
index 9127fea9e..ddfe05a4b 100644
--- a/Demos/Device/LowLevel/KeyboardMouse/KeyboardMouse.c
+++ b/Demos/Device/LowLevel/KeyboardMouse/KeyboardMouse.c
@@ -100,23 +100,32 @@ void EVENT_USB_Disconnect(void)
*/
void EVENT_USB_ConfigurationChanged(void)
{
- /* Setup Keyboard Report Endpoint */
- Endpoint_ConfigureEndpoint(KEYBOARD_IN_EPNUM, EP_TYPE_INTERRUPT,
- ENDPOINT_DIR_IN, HID_EPSIZE,
- ENDPOINT_BANK_SINGLE);
+ /* Indicate USB connected and ready */
+ LEDs_SetAllLEDs(LEDMASK_USB_READY);
+ /* Setup Keyboard Report Endpoint */
+ if (!(Endpoint_ConfigureEndpoint(KEYBOARD_IN_EPNUM, EP_TYPE_INTERRUPT,
+ ENDPOINT_DIR_IN, HID_EPSIZE,
+ ENDPOINT_BANK_SINGLE)))
+ {
+ LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
+ }
+
/* Setup Keyboard LED Report Endpoint */
- Endpoint_ConfigureEndpoint(KEYBOARD_OUT_EPNUM, EP_TYPE_INTERRUPT,
- ENDPOINT_DIR_OUT, HID_EPSIZE,
- ENDPOINT_BANK_SINGLE);
+ if (!(Endpoint_ConfigureEndpoint(KEYBOARD_OUT_EPNUM, EP_TYPE_INTERRUPT,
+ ENDPOINT_DIR_OUT, HID_EPSIZE,
+ ENDPOINT_BANK_SINGLE)))
+ {
+ LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
+ }
/* Setup Mouse Report Endpoint */
- Endpoint_ConfigureEndpoint(MOUSE_IN_EPNUM, EP_TYPE_INTERRUPT,
- ENDPOINT_DIR_IN, HID_EPSIZE,
- ENDPOINT_BANK_SINGLE);
-
- /* Indicate USB connected and ready */
- LEDs_SetAllLEDs(LEDMASK_USB_READY);
+ if (!(Endpoint_ConfigureEndpoint(MOUSE_IN_EPNUM, EP_TYPE_INTERRUPT,
+ ENDPOINT_DIR_IN, HID_EPSIZE,
+ ENDPOINT_BANK_SINGLE)))
+ {
+ LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
+ }
}
/** Event handler for the USB_UnhandledControlPacket event. This is used to catch standard and class specific