Added Keyboard LED report masks (KEYBOARD_LED_*) to the HID class driver and demos.
authorDean Camera <dean@fourwalledcubicle.com>
Sun, 7 Feb 2010 13:56:36 +0000 (13:56 +0000)
committerDean Camera <dean@fourwalledcubicle.com>
Sun, 7 Feb 2010 13:56:36 +0000 (13:56 +0000)
Demos/Device/ClassDriver/Keyboard/Keyboard.c
Demos/Device/ClassDriver/KeyboardMouse/KeyboardMouse.c
Demos/Device/ClassDriver/MassStorageKeyboard/MassStorageKeyboard.c
Demos/Device/LowLevel/Keyboard/Keyboard.c
Demos/Device/LowLevel/Keyboard/Keyboard.h
Demos/Device/LowLevel/KeyboardMouse/KeyboardMouse.c
Demos/Device/LowLevel/KeyboardMouse/KeyboardMouse.h
LUFA/Drivers/USB/Class/Common/HID.h
LUFA/ManPages/ChangeLog.txt

index 7e58348..26636bf 100644 (file)
@@ -182,13 +182,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
-       if (*LEDReport & 0x01) // NUM Lock\r
+       if (*LEDReport & HID_KEYBOARD_LED_NUMLOCK)\r
          LEDMask |= LEDS_LED1;\r
        \r
-       if (*LEDReport & 0x02) // CAPS Lock\r
+       if (*LEDReport & HID_KEYBOARD_LED_CAPSLOCK)\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
index 8e91d12..af6e839 100644 (file)
@@ -239,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
-               if (*LEDReport & 0x01) // NUM Lock\r
+               if (*LEDReport & HID_KEYBOARD_LED_NUMLOCK)\r
                  LEDMask |= LEDS_LED1;\r
                \r
-               if (*LEDReport & 0x02) // CAPS Lock\r
+               if (*LEDReport & HID_KEYBOARD_LED_CAPSLOCK)\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
index 0f0d624..4816b7e 100644 (file)
@@ -227,13 +227,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
-       if (*LEDReport & 0x01) // NUM Lock\r
+       if (*LEDReport & HID_KEYBOARD_LED_NUMLOCK)\r
          LEDMask |= LEDS_LED1;\r
        \r
-       if (*LEDReport & 0x02) // CAPS Lock\r
+       if (*LEDReport & HID_KEYBOARD_LED_CAPSLOCK)\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
index 1d8b8ff..e09bed7 100644 (file)
@@ -294,13 +294,13 @@ void ProcessLEDReport(uint8_t LEDReport)
 {\r
        uint8_t LEDMask = LEDS_LED2;\r
        \r
-       if (LEDReport & 0x01) // NUM Lock\r
+       if (*LEDReport & KEYBOARD_LED_NUMLOCK)\r
          LEDMask |= LEDS_LED1;\r
        \r
-       if (LEDReport & 0x02) // CAPS Lock\r
+       if (*LEDReport & KEYBOARD_LED_CAPSLOCK)\r
          LEDMask |= LEDS_LED3;\r
 \r
-       if (LEDReport & 0x04) // SCROLL Lock\r
+       if (*LEDReport & KEYBOARD_LED_SCROLLLOCK)\r
          LEDMask |= LEDS_LED4;\r
 \r
        /* Set the status LEDs to the current Keyboard LED status */\r
index 6b29be8..4cb3616 100644 (file)
                /** Constant for a keyboard report modifier byte, indicating that the keyboard's right GUI key is currently pressed. */\r
                #define KEYBOARD_MODIFER_RIGHTGUI   (1 << 7)\r
 \r
+               /** Constant for a keyboard output report LED byte, indicating that the host's NUM LOCK mode is currently set. */\r
+               #define KEYBOARD_LED_NUMLOCK        (1 << 0)\r
+               \r
+               /** Constant for a keyboard output report LED byte, indicating that the host's CAPS LOCK mode is currently set. */\r
+               #define KEYBOARD_LED_CAPSLOCK       (1 << 1)\r
+\r
+               /** Constant for a keyboard output report LED byte, indicating that the host's SCROLL LOCK mode is currently set. */\r
+               #define KEYBOARD_LED_SCROLLLOCK     (1 << 2)\r
+\r
+               /** Constant for a keyboard output report LED byte, indicating that the host's KATANA mode is currently set. */\r
+               #define KEYBOARD_LED_KATANA         (1 << 3)\r
+               \r
                /** LED mask for the library LED driver, to indicate that the USB interface is not ready. */\r
                #define LEDMASK_USB_NOTREADY        LEDS_LED1\r
 \r
index d6c9b4d..d31f94d 100644 (file)
@@ -184,13 +184,13 @@ void EVENT_USB_Device_UnhandledControlRequest(void)
                                uint8_t LEDStatus = Endpoint_Read_Byte();\r
                                uint8_t LEDMask   = LEDS_LED2;\r
                                \r
-                               if (LEDStatus & 0x01) // NUM Lock\r
+                               if (LEDStatus & KEYBOARD_LED_NUMLOCK)\r
                                  LEDMask |= LEDS_LED1;\r
                                \r
-                               if (LEDStatus & 0x02) // CAPS Lock\r
+                               if (LEDStatus & KEYBOARD_LED_CAPSLOCK)\r
                                  LEDMask |= LEDS_LED3;\r
 \r
-                               if (LEDStatus & 0x04) // SCROLL Lock\r
+                               if (LEDStatus & KEYBOARD_LED_SCROLLLOCK)\r
                                  LEDMask |= LEDS_LED4;\r
 \r
                                /* Set the status LEDs to the current HID LED status */\r
@@ -264,13 +264,13 @@ void Keyboard_HID_Task(void)
                uint8_t LEDStatus = Endpoint_Read_Byte();\r
                uint8_t LEDMask   = LEDS_LED2;\r
                \r
-               if (LEDStatus & 0x01) // NUM Lock\r
+               if (LEDStatus & KEYBOARD_LED_NUMLOCK)\r
                  LEDMask |= LEDS_LED1;\r
                \r
-               if (LEDStatus & 0x02) // CAPS Lock\r
+               if (LEDStatus & KEYBOARD_LED_CAPSLOCK)\r
                  LEDMask |= LEDS_LED3;\r
 \r
-               if (LEDStatus & 0x04) // SCROLL Lock\r
+               if (LEDStatus & KEYBOARD_LED_SCROLLLOCK)\r
                  LEDMask |= LEDS_LED4;\r
 \r
                /* Set the status LEDs to the current Keyboard LED status */\r
index ff28314..e5337f2 100644 (file)
                /** Constant for a keyboard report modifier byte, indicating that the keyboard's right GUI key is currently pressed. */\r
                #define KEYBOARD_MODIFER_RIGHTGUI   (1 << 7)\r
 \r
+               /** Constant for a keyboard output report LED byte, indicating that the host's NUM LOCK mode is currently set. */\r
+               #define KEYBOARD_LED_NUMLOCK        (1 << 0)\r
+               \r
+               /** Constant for a keyboard output report LED byte, indicating that the host's CAPS LOCK mode is currently set. */\r
+               #define KEYBOARD_LED_CAPSLOCK       (1 << 1)\r
+\r
+               /** Constant for a keyboard output report LED byte, indicating that the host's SCROLL LOCK mode is currently set. */\r
+               #define KEYBOARD_LED_SCROLLLOCK     (1 << 2)\r
+\r
+               /** Constant for a keyboard output report LED byte, indicating that the host's KATANA mode is currently set. */\r
+               #define KEYBOARD_LED_KATANA         (1 << 3)\r
+\r
                /** LED mask for the library LED driver, to indicate that the USB interface is not ready. */\r
                #define LEDMASK_USB_NOTREADY        LEDS_LED1\r
 \r
index 6f2d7c2..5afaf48 100644 (file)
 \r
                /** Constant for a keyboard report modifier byte, indicating that the keyboard's right GUI key is currently pressed. */\r
                #define HID_KEYBOARD_MODIFER_RIGHTGUI   (1 << 7)\r
+               \r
+               /** Constant for a keyboard output report LED byte, indicating that the host's NUM LOCK mode is currently set. */\r
+               #define HID_KEYBOARD_LED_NUMLOCK        (1 << 0)\r
+               \r
+               /** Constant for a keyboard output report LED byte, indicating that the host's CAPS LOCK mode is currently set. */\r
+               #define HID_KEYBOARD_LED_CAPSLOCK       (1 << 1)\r
+\r
+               /** Constant for a keyboard output report LED byte, indicating that the host's SCROLL LOCK mode is currently set. */\r
+               #define HID_KEYBOARD_LED_SCROLLLOCK     (1 << 2)\r
+\r
+               /** Constant for a keyboard output report LED byte, indicating that the host's KATANA mode is currently set. */\r
+               #define HID_KEYBOARD_LED_KATANA         (1 << 3)\r
 \r
        /* Type Defines: */\r
                /** Enum for the different types of HID reports. */\r
index e9469ff..9f9157d 100644 (file)
@@ -23,7 +23,8 @@
   *  - New Webserver project, a RNDIS host USB webserver using the open source uIP TCP/IP network stack and FatFS library\r
   *  - New BOARD value option BOARD_NONE (equivelent to not specifying BOARD) which will remove all board hardware drivers which\r
   *    do not adversely affect the code operation (currently only the LEDs driver)\r
-  *  - Added keyboard modifier masks (HID_KEYBOARD_MODIFER_*) to the HID class driver and Keyboard demos\r
+  *  - Added keyboard modifier masks (HID_KEYBOARD_MODIFER_*) and LED report masks (KEYBOARD_LED_*) to the HID class driver and\r
+  *    Keyboard demos\r
   *\r
   *  <b>Changed:</b>\r
   *  - Slowed down software USART carried PDI programming in the AVRISP project to prevent transmission errors\r