AVRISP programmer project now has a more robust timeout system, allowing for a doubli...
[pub/USBasp.git] / Demos / Device / ClassDriver / KeyboardMouse / KeyboardMouse.c
index e73bf12..1c01730 100644 (file)
@@ -1,14 +1,14 @@
 /*\r
              LUFA Library\r
 /*\r
              LUFA Library\r
-     Copyright (C) Dean Camera, 2009.\r
+     Copyright (C) Dean Camera, 2010.\r
               \r
   dean [at] fourwalledcubicle [dot] com\r
       www.fourwalledcubicle.com\r
 */\r
 \r
 /*\r
               \r
   dean [at] fourwalledcubicle [dot] com\r
       www.fourwalledcubicle.com\r
 */\r
 \r
 /*\r
-  Copyright 2009  Dean Camera (dean [at] fourwalledcubicle [dot] com)\r
-  Copyright 2009  Denver Gingerich (denver [at] ossguy [dot] com)\r
+  Copyright 2010  Dean Camera (dean [at] fourwalledcubicle [dot] com)\r
+  Copyright 2010  Denver Gingerich (denver [at] ossguy [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
@@ -72,13 +72,13 @@ USB_ClassInfo_HID_Device_t Mouse_HID_Interface =
        {\r
                .Config =\r
                        {\r
        {\r
                .Config =\r
                        {\r
-                               .InterfaceNumber         = 0,\r
+                               .InterfaceNumber              = 1,\r
 \r
 \r
-                               .ReportINEndpointNumber  = MOUSE_IN_EPNUM,\r
-                               .ReportINEndpointSize    = HID_EPSIZE,\r
+                               .ReportINEndpointNumber       = MOUSE_IN_EPNUM,\r
+                               .ReportINEndpointSize         = HID_EPSIZE,\r
 \r
 \r
-                               .PrevReportINBuffer      = PrevMouseHIDReportBuffer,\r
-                               .PrevReportINBufferSize  = sizeof(PrevMouseHIDReportBuffer),\r
+                               .PrevReportINBuffer           = PrevMouseHIDReportBuffer,\r
+                               .PrevReportINBufferSize       = sizeof(PrevMouseHIDReportBuffer),\r
                        },              \r
        };\r
 \r
                        },              \r
        };\r
 \r
@@ -180,6 +180,8 @@ bool CALLBACK_HID_Device_CreateHIDReport(USB_ClassInfo_HID_Device_t* const HIDIn
                if (!(ButtonStatus_LCL & BUTTONS_BUTTON1))\r
                  return 0;\r
                \r
                if (!(ButtonStatus_LCL & BUTTONS_BUTTON1))\r
                  return 0;\r
                \r
+               KeyboardReport->Modifier = HID_KEYBOARD_MODIFER_LEFTSHIFT;\r
+\r
                if (JoyStatus_LCL & JOY_UP)\r
                  KeyboardReport->KeyCode[0] = 0x04; // A\r
                else if (JoyStatus_LCL & JOY_DOWN)\r
                if (JoyStatus_LCL & JOY_UP)\r
                  KeyboardReport->KeyCode[0] = 0x04; // A\r
                else if (JoyStatus_LCL & JOY_DOWN)\r
@@ -215,7 +217,7 @@ bool CALLBACK_HID_Device_CreateHIDReport(USB_ClassInfo_HID_Device_t* const HIDIn
                  MouseReport->X =  1;\r
 \r
                if (JoyStatus_LCL & JOY_PRESS)\r
                  MouseReport->X =  1;\r
 \r
                if (JoyStatus_LCL & JOY_PRESS)\r
-                 MouseReport->Button  = (1 << 0);\r
+                 MouseReport->Button |= (1 << 0);\r
                \r
                *ReportSize = sizeof(USB_MouseReport_Data_t);\r
                return true;            \r
                \r
                *ReportSize = sizeof(USB_MouseReport_Data_t);\r
                return true;            \r
@@ -237,13 +239,13 @@ void CALLBACK_HID_Device_ProcessHIDReport(USB_ClassInfo_HID_Device_t* const HIDI
                uint8_t  LEDMask   = LEDS_NO_LEDS;\r
                uint8_t* LEDReport = (uint8_t*)ReportData;\r
 \r
                uint8_t  LEDMask   = LEDS_NO_LEDS;\r
                uint8_t* LEDReport = (uint8_t*)ReportData;\r
 \r
-               if (*LEDReport & 0x01) // NUM Lock\r
+               if (*LEDReport & HID_KEYBOARD_LED_NUMLOCK)\r
                  LEDMask |= LEDS_LED1;\r
                \r
                  LEDMask |= LEDS_LED1;\r
                \r
-               if (*LEDReport & 0x02) // CAPS Lock\r
+               if (*LEDReport & HID_KEYBOARD_LED_CAPSLOCK)\r
                  LEDMask |= LEDS_LED3;\r
 \r
                  LEDMask |= LEDS_LED3;\r
 \r
-               if (*LEDReport & 0x04) // SCROLL Lock\r
+               if (*LEDReport & HID_KEYBOARD_LED_SCROLLLOCK)\r
                  LEDMask |= LEDS_LED4;\r
                  \r
                LEDs_SetAllLEDs(LEDMask);\r
                  LEDMask |= LEDS_LED4;\r
                  \r
                LEDs_SetAllLEDs(LEDMask);\r