Device mode class driver callbacks are now fired before the control request status...
[pub/USBasp.git] / Demos / Device / ClassDriver / Keyboard / Keyboard.c
index 26636bf..0da5295 100644 (file)
@@ -7,8 +7,7 @@
 */\r
 \r
 /*\r
 */\r
 \r
 /*\r
-  Copyright 2010  Denver Gingerich (denver [at] ossguy [dot] com)\r
-      Based on code by Dean Camera (dean [at] fourwalledcubicle [dot] com)\r
+  Copyright 2010 Dean Camera (dean [at] fourwalledcubicle [dot] com)\r
 \r
   Permission to use, copy, modify, distribute, and sell this \r
   software and its documentation for any purpose is hereby granted\r
 \r
   Permission to use, copy, modify, distribute, and sell this \r
   software and its documentation for any purpose is hereby granted\r
@@ -67,6 +66,7 @@ int main(void)
        SetupHardware();\r
 \r
        LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);\r
        SetupHardware();\r
 \r
        LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);\r
+       sei();\r
        \r
        for (;;)\r
        {\r
        \r
        for (;;)\r
        {\r
@@ -146,9 +146,7 @@ bool CALLBACK_HID_Device_CreateHIDReport(USB_ClassInfo_HID_Device_t* const HIDIn
        uint8_t ButtonStatus_LCL = Buttons_GetStatus();\r
 \r
        uint8_t UsedKeyCodes = 0;\r
        uint8_t ButtonStatus_LCL = Buttons_GetStatus();\r
 \r
        uint8_t UsedKeyCodes = 0;\r
-       \r
-       KeyboardReport->Modifier = HID_KEYBOARD_MODIFER_LEFTSHIFT;\r
-       \r
+               \r
        if (JoyStatus_LCL & JOY_UP)\r
          KeyboardReport->KeyCode[UsedKeyCodes++] = 0x04; // A\r
        else if (JoyStatus_LCL & JOY_DOWN)\r
        if (JoyStatus_LCL & JOY_UP)\r
          KeyboardReport->KeyCode[UsedKeyCodes++] = 0x04; // A\r
        else if (JoyStatus_LCL & JOY_DOWN)\r
@@ -165,6 +163,9 @@ bool CALLBACK_HID_Device_CreateHIDReport(USB_ClassInfo_HID_Device_t* const HIDIn
        if (ButtonStatus_LCL & BUTTONS_BUTTON1)\r
          KeyboardReport->KeyCode[UsedKeyCodes++] = 0x09; // F\r
 \r
        if (ButtonStatus_LCL & BUTTONS_BUTTON1)\r
          KeyboardReport->KeyCode[UsedKeyCodes++] = 0x09; // F\r
 \r
+       if (UsedKeyCodes)\r
+         KeyboardReport->Modifier = HID_KEYBOARD_MODIFER_LEFTSHIFT;\r
+\r
        *ReportSize = sizeof(USB_KeyboardReport_Data_t);\r
        return false;\r
 }\r
        *ReportSize = sizeof(USB_KeyboardReport_Data_t);\r
        return false;\r
 }\r