Update UC3 platform driver support to use the bitmasks defined in the header files...
[pub/USBasp.git] / Demos / Device / LowLevel / Keyboard / Keyboard.h
index a3c3bd4..4e6dde5 100644 (file)
@@ -1,22 +1,22 @@
 /*
              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 
+  Permission to use, copy, modify, distribute, and sell this
   software and its documentation for any purpose is hereby granted
-  without fee, provided that the above copyright notice appear in 
+  without fee, provided that the above copyright notice appear in
   all copies and that both that the copyright notice and this
-  permission notice and warranty disclaimer appear in supporting 
-  documentation, and that the name of the author not be used in 
-  advertising or publicity pertaining to distribution of the 
+  permission notice and warranty disclaimer appear in supporting
+  documentation, and that the name of the author not be used in
+  advertising or publicity pertaining to distribution of the
   software without specific, written prior permission.
 
   The author disclaim all warranties with regard to this
                #include <LUFA/Drivers/Board/LEDs.h>
 
        /* Macros: */
-               /** Idle period indicating that reports should be sent only when the inputs have changed. */
-               #define HID_IDLE_CHANGESONLY        0
-
-               /** HID Class specific request to get the next HID report from the device. */
-               #define REQ_GetReport               0x01
-
-               /** HID Class specific request to get the idle timeout period of the device. */
-               #define REQ_GetIdle                 0x02
-
-               /** HID Class specific request to send the next HID report to the device. */
-               #define REQ_SetReport               0x09
-
-               /** HID Class specific request to set the idle timeout period of the device. */
-               #define REQ_SetIdle                 0x0A
-
-               /** HID Class specific request to get the current HID protocol in use, either report or boot. */
-               #define REQ_GetProtocol             0x03
-
-               /** HID Class specific request to set the current HID protocol in use, either report or boot. */
-               #define REQ_SetProtocol             0x0B
-
-               /** Constant for a keyboard report modifier byte, indicating that the keyboard's left control key is currently pressed. */
-               #define KEYBOARD_MODIFER_LEFTCTRL   (1 << 0)
-
-               /** Constant for a keyboard report modifier byte, indicating that the keyboard's left shift key is currently pressed. */
-               #define KEYBOARD_MODIFER_LEFTSHIFT  (1 << 1)
-
-               /** Constant for a keyboard report modifier byte, indicating that the keyboard's left alt key is currently pressed. */
-               #define KEYBOARD_MODIFER_LEFTALT    (1 << 2)
-
-               /** Constant for a keyboard report modifier byte, indicating that the keyboard's left GUI key is currently pressed. */
-               #define KEYBOARD_MODIFER_LEFTGUI    (1 << 3)
-
-               /** Constant for a keyboard report modifier byte, indicating that the keyboard's right control key is currently pressed. */
-               #define KEYBOARD_MODIFER_RIGHTCTRL  (1 << 4)
-
-               /** Constant for a keyboard report modifier byte, indicating that the keyboard's right shift key is currently pressed. */
-               #define KEYBOARD_MODIFER_RIGHTSHIFT (1 << 5)
-
-               /** Constant for a keyboard report modifier byte, indicating that the keyboard's right alt key is currently pressed. */
-               #define KEYBOARD_MODIFER_RIGHTALT   (1 << 6)
-
-               /** Constant for a keyboard report modifier byte, indicating that the keyboard's right GUI key is currently pressed. */
-               #define KEYBOARD_MODIFER_RIGHTGUI   (1 << 7)
-
-               /** Constant for a keyboard output report LED byte, indicating that the host's NUM LOCK mode is currently set. */
-               #define KEYBOARD_LED_NUMLOCK        (1 << 0)
-               
-               /** Constant for a keyboard output report LED byte, indicating that the host's CAPS LOCK mode is currently set. */
-               #define KEYBOARD_LED_CAPSLOCK       (1 << 1)
-
-               /** Constant for a keyboard output report LED byte, indicating that the host's SCROLL LOCK mode is currently set. */
-               #define KEYBOARD_LED_SCROLLLOCK     (1 << 2)
-
-               /** Constant for a keyboard output report LED byte, indicating that the host's KATANA mode is currently set. */
-               #define KEYBOARD_LED_KATANA         (1 << 3)
-               
                /** LED mask for the library LED driver, to indicate that the USB interface is not ready. */
                #define LEDMASK_USB_NOTREADY        LEDS_LED1
 
                /** LED mask for the library LED driver, to indicate that an error has occurred in the USB interface. */
                #define LEDMASK_USB_ERROR           (LEDS_LED1 | LEDS_LED3)
 
-       /* Type Defines: */
-               /** Type define for the keyboard HID report structure, for creating and sending HID reports to the host PC.
-                *  This mirrors the layout described to the host in the HID report descriptor, in Descriptors.c.
-                */
-               typedef struct
-               {
-                       uint8_t Modifier; /**< Modifier mask byte, containing a mask of modifier keys set (such as shift or CTRL) */
-                       uint8_t Reserved; /**< Reserved, always set as 0x00 */
-                       uint8_t KeyCode[6]; /**< Array of up to six simultaneous key codes of pressed keys */
-               } USB_KeyboardReport_Data_t;
-               
        /* Function Prototypes: */
                void SetupHardware(void);
                void HID_Task(void);
-       
+
                void EVENT_USB_Device_Connect(void);
                void EVENT_USB_Device_Disconnect(void);
                void EVENT_USB_Device_ConfigurationChanged(void);
-               void EVENT_USB_Device_UnhandledControlRequest(void);
+               void EVENT_USB_Device_ControlRequest(void);
                void EVENT_USB_Device_StartOfFrame(void);
 
-               void CreateKeyboardReport(USB_KeyboardReport_Data_t* ReportData);
-               void ProcessLEDReport(uint8_t LEDReport);
+               void CreateKeyboardReport(USB_KeyboardReport_Data_t* const ReportData);
+               void ProcessLEDReport(const uint8_t LEDReport);
                void SendNextReport(void);
                void ReceiveNextReport(void);
 
 #endif
+