Update UC3 platform driver support to use the bitmasks defined in the header files...
[pub/USBasp.git] / Demos / Device / LowLevel / KeyboardMouse / KeyboardMouse.c
index 6789573..3dcf9df 100644 (file)
@@ -1,13 +1,13 @@
 /*
              LUFA Library
-     Copyright (C) Dean Camera, 2010.
+     Copyright (C) Dean Camera, 2011.
 
   dean [at] fourwalledcubicle [dot] com
-      www.fourwalledcubicle.com
+           www.lufa-lib.org
 */
 
 /*
-  Copyright 2010  Dean Camera (dean [at] fourwalledcubicle [dot] com)
+  Copyright 2011  Dean Camera (dean [at] fourwalledcubicle [dot] com)
   Copyright 2010  Denver Gingerich (denver [at] ossguy [dot] com)
 
   Permission to use, copy, modify, distribute, and sell this
 #include "KeyboardMouse.h"
 
 /** Global structure to hold the current keyboard interface HID report, for transmission to the host */
-USB_KeyboardReport_Data_t KeyboardReportData;
+static USB_KeyboardReport_Data_t KeyboardReportData;
 
 /** Global structure to hold the current mouse interface HID report, for transmission to the host */
-USB_MouseReport_Data_t    MouseReportData;
+static USB_MouseReport_Data_t MouseReportData;
 
 
 /** Main program entry point. This routine configures the hardware required by the application, then
@@ -117,11 +117,11 @@ void EVENT_USB_Device_ConfigurationChanged(void)
        LEDs_SetAllLEDs(ConfigSuccess ? LEDMASK_USB_READY : LEDMASK_USB_ERROR);
 }
 
-/** Event handler for the USB_UnhandledControlPacket event. This is used to catch standard and class specific
- *  control requests that are not handled internally by the USB library (including the HID commands, which are
- *  all issued via the control endpoint), so that they can be handled appropriately for the application.
+/** Event handler for the USB_ControlRequest event. This is used to catch and process control requests sent to
+ *  the device from the USB host before passing along unhandled control requests to the library for processing
+ *  internally.
  */
-void EVENT_USB_Device_UnhandledControlRequest(void)
+void EVENT_USB_Device_ControlRequest(void)
 {
        uint8_t* ReportData;
        uint8_t  ReportSize;
@@ -129,7 +129,7 @@ void EVENT_USB_Device_UnhandledControlRequest(void)
        /* Handle HID Class specific requests */
        switch (USB_ControlRequest.bRequest)
        {
-               case REQ_GetReport:
+               case HID_REQ_GetReport:
                        if (USB_ControlRequest.bmRequestType == (REQDIR_DEVICETOHOST | REQTYPE_CLASS | REQREC_INTERFACE))
                        {
                                Endpoint_ClearSETUP();
@@ -155,7 +155,7 @@ void EVENT_USB_Device_UnhandledControlRequest(void)
                        }
 
                        break;
-               case REQ_SetReport:
+               case HID_REQ_SetReport:
                        if (USB_ControlRequest.bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE))
                        {
                                Endpoint_ClearSETUP();
@@ -168,7 +168,7 @@ void EVENT_USB_Device_UnhandledControlRequest(void)
                                }
 
                                /* Read in the LED report from the host */
-                               uint8_t LEDStatus = Endpoint_Read_Byte();
+                               uint8_t LEDStatus = Endpoint_Read_8();
 
                                Endpoint_ClearOUT();
                                Endpoint_ClearStatusStage();
@@ -190,13 +190,13 @@ void Keyboard_ProcessLEDReport(const uint8_t LEDStatus)
 {
        uint8_t LEDMask = LEDS_LED2;
 
-       if (LEDStatus & KEYBOARD_LED_NUMLOCK)
+       if (LEDStatus & HID_KEYBOARD_LED_NUMLOCK)
          LEDMask |= LEDS_LED1;
 
-       if (LEDStatus & KEYBOARD_LED_CAPSLOCK)
+       if (LEDStatus & HID_KEYBOARD_LED_CAPSLOCK)
          LEDMask |= LEDS_LED3;
 
-       if (LEDStatus & KEYBOARD_LED_SCROLLLOCK)
+       if (LEDStatus & HID_KEYBOARD_LED_SCROLLLOCK)
          LEDMask |= LEDS_LED4;
 
        /* Set the status LEDs to the current Keyboard LED status */
@@ -219,20 +219,20 @@ void Keyboard_HID_Task(void)
        if (!(Buttons_GetStatus() & BUTTONS_BUTTON1))
        {
                /* Make sent key uppercase by indicating that the left shift key is pressed */
-               KeyboardReportData.Modifier = KEYBOARD_MODIFER_LEFTSHIFT;
+               KeyboardReportData.Modifier = HID_KEYBOARD_MODIFER_LEFTSHIFT;
 
                if (JoyStatus_LCL & JOY_UP)
-                 KeyboardReportData.KeyCode[0] = 0x04; // A
+                 KeyboardReportData.KeyCode[0] = HID_KEYBOARD_SC_A;
                else if (JoyStatus_LCL & JOY_DOWN)
-                 KeyboardReportData.KeyCode[0] = 0x05; // B
+                 KeyboardReportData.KeyCode[0] = HID_KEYBOARD_SC_B;
 
                if (JoyStatus_LCL & JOY_LEFT)
-                 KeyboardReportData.KeyCode[0] = 0x06; // C
+                 KeyboardReportData.KeyCode[0] = HID_KEYBOARD_SC_C;
                else if (JoyStatus_LCL & JOY_RIGHT)
-                 KeyboardReportData.KeyCode[0] = 0x07; // D
+                 KeyboardReportData.KeyCode[0] = HID_KEYBOARD_SC_D;
 
                if (JoyStatus_LCL & JOY_PRESS)
-                 KeyboardReportData.KeyCode[0] = 0x08; // E
+                 KeyboardReportData.KeyCode[0] = HID_KEYBOARD_SC_E;
        }
 
        /* Select the Keyboard Report Endpoint */
@@ -242,7 +242,7 @@ void Keyboard_HID_Task(void)
        if (Endpoint_IsReadWriteAllowed())
        {
                /* Write Keyboard Report Data */
-               Endpoint_Write_Stream_LE(&KeyboardReportData, sizeof(KeyboardReportData));
+               Endpoint_Write_Stream_LE(&KeyboardReportData, sizeof(KeyboardReportData), NULL);
 
                /* Finalize the stream transfer to send the last packet */
                Endpoint_ClearIN();
@@ -258,7 +258,7 @@ void Keyboard_HID_Task(void)
        if (Endpoint_IsReadWriteAllowed())
        {
                /* Read in and process the LED report from the host */
-               Keyboard_ProcessLEDReport(Endpoint_Read_Byte());
+               Keyboard_ProcessLEDReport(Endpoint_Read_8());
 
                /* Handshake the OUT Endpoint - clear endpoint and ready for next report */
                Endpoint_ClearOUT();
@@ -290,7 +290,7 @@ void Mouse_HID_Task(void)
                  MouseReportData.X = -1;
 
                if (JoyStatus_LCL & JOY_PRESS)
-                 MouseReportData.Button  = (1 << 0);
+                 MouseReportData.Button |= (1 << 0);
        }
 
        /* Select the Mouse Report Endpoint */
@@ -300,7 +300,7 @@ void Mouse_HID_Task(void)
        if (Endpoint_IsReadWriteAllowed())
        {
                /* Write Mouse Report Data */
-               Endpoint_Write_Stream_LE(&MouseReportData, sizeof(MouseReportData));
+               Endpoint_Write_Stream_LE(&MouseReportData, sizeof(MouseReportData), NULL);
 
                /* Finalize the stream transfer to send the last packet */
                Endpoint_ClearIN();