aboutsummaryrefslogtreecommitdiffstats
path: root/Demos/Device/LowLevel/Keyboard
diff options
context:
space:
mode:
authorDean Camera <dean@fourwalledcubicle.com>2009-07-21 02:48:41 +0000
committerDean Camera <dean@fourwalledcubicle.com>2009-07-21 02:48:41 +0000
commit67f390fe746ccc4d1dceac23f590eb1723cb7ff2 (patch)
treeeafc8a4dcb64a038afcb16fcae8d48033dc74249 /Demos/Device/LowLevel/Keyboard
parentbf50959b8016adbf6b295178b26b8173514dd060 (diff)
downloadlufa-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/Keyboard')
-rw-r--r--Demos/Device/LowLevel/Keyboard/Keyboard.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/Demos/Device/LowLevel/Keyboard/Keyboard.c b/Demos/Device/LowLevel/Keyboard/Keyboard.c
index 252714808..9950484ba 100644
--- a/Demos/Device/LowLevel/Keyboard/Keyboard.c
+++ b/Demos/Device/LowLevel/Keyboard/Keyboard.c
@@ -377,13 +377,13 @@ void ReceiveNextReport(void)
/** Function to manage HID report generation and transmission to the host, when in report mode. */
void HID_Task(void)
{
- /* Check if the USB system is connected to a host */
- if (USB_IsConnected)
- {
- /* Send the next keypress report to the host */
- SendNextReport();
+ /* Device must be connected and configured for the task to run */
+ if (!(USB_IsConnected) || !(USB_ConfigurationNumber))
+ return;
+
+ /* Send the next keypress report to the host */
+ SendNextReport();
- /* Process the LED report sent from the host */
- ReceiveNextReport();
- }
+ /* Process the LED report sent from the host */
+ ReceiveNextReport();
}