diff --git a/Demos/Device/ClassDriver/Keyboard/Keyboard.c b/Demos/Device/ClassDriver/Keyboard/Keyboard.c index 7e583486805dfe8c00d3c3f69b1d0d7ba822fa57..26636bf412968ebd7f476033278a4ddda99c66c8 100644 --- a/Demos/Device/ClassDriver/Keyboard/Keyboard.c +++ b/Demos/Device/ClassDriver/Keyboard/Keyboard.c @@ -182,13 +182,13 @@ void CALLBACK_HID_Device_ProcessHIDReport(USB_ClassInfo_HID_Device_t* const HIDI uint8_t LEDMask = LEDS_NO_LEDS; uint8_t* LEDReport = (uint8_t*)ReportData; - if (*LEDReport & 0x01) // NUM Lock + if (*LEDReport & HID_KEYBOARD_LED_NUMLOCK) LEDMask |= LEDS_LED1; - if (*LEDReport & 0x02) // CAPS Lock + if (*LEDReport & HID_KEYBOARD_LED_CAPSLOCK) LEDMask |= LEDS_LED3; - if (*LEDReport & 0x04) // SCROLL Lock + if (*LEDReport & HID_KEYBOARD_LED_SCROLLLOCK) LEDMask |= LEDS_LED4; LEDs_SetAllLEDs(LEDMask); diff --git a/Demos/Device/ClassDriver/KeyboardMouse/KeyboardMouse.c b/Demos/Device/ClassDriver/KeyboardMouse/KeyboardMouse.c index 8e91d122939aebed3d03df015494f1c7657a4781..af6e8394965b453d284cb6d389b8244a70a3a522 100644 --- a/Demos/Device/ClassDriver/KeyboardMouse/KeyboardMouse.c +++ b/Demos/Device/ClassDriver/KeyboardMouse/KeyboardMouse.c @@ -239,13 +239,13 @@ void CALLBACK_HID_Device_ProcessHIDReport(USB_ClassInfo_HID_Device_t* const HIDI uint8_t LEDMask = LEDS_NO_LEDS; uint8_t* LEDReport = (uint8_t*)ReportData; - if (*LEDReport & 0x01) // NUM Lock + if (*LEDReport & HID_KEYBOARD_LED_NUMLOCK) LEDMask |= LEDS_LED1; - if (*LEDReport & 0x02) // CAPS Lock + if (*LEDReport & HID_KEYBOARD_LED_CAPSLOCK) LEDMask |= LEDS_LED3; - if (*LEDReport & 0x04) // SCROLL Lock + if (*LEDReport & HID_KEYBOARD_LED_SCROLLLOCK) LEDMask |= LEDS_LED4; LEDs_SetAllLEDs(LEDMask); diff --git a/Demos/Device/ClassDriver/MassStorageKeyboard/MassStorageKeyboard.c b/Demos/Device/ClassDriver/MassStorageKeyboard/MassStorageKeyboard.c index 0f0d62469052de18ff170c88344e8fff567e4799..4816b7e15c02a050c4cc386044b1a213492e5255 100644 --- a/Demos/Device/ClassDriver/MassStorageKeyboard/MassStorageKeyboard.c +++ b/Demos/Device/ClassDriver/MassStorageKeyboard/MassStorageKeyboard.c @@ -227,13 +227,13 @@ void CALLBACK_HID_Device_ProcessHIDReport(USB_ClassInfo_HID_Device_t* const HIDI uint8_t LEDMask = LEDS_NO_LEDS; uint8_t* LEDReport = (uint8_t*)ReportData; - if (*LEDReport & 0x01) // NUM Lock + if (*LEDReport & HID_KEYBOARD_LED_NUMLOCK) LEDMask |= LEDS_LED1; - if (*LEDReport & 0x02) // CAPS Lock + if (*LEDReport & HID_KEYBOARD_LED_CAPSLOCK) LEDMask |= LEDS_LED3; - if (*LEDReport & 0x04) // SCROLL Lock + if (*LEDReport & HID_KEYBOARD_LED_SCROLLLOCK) LEDMask |= LEDS_LED4; LEDs_SetAllLEDs(LEDMask); diff --git a/Demos/Device/LowLevel/Keyboard/Keyboard.c b/Demos/Device/LowLevel/Keyboard/Keyboard.c index 1d8b8ff54a2d3aa82f1ec589749e98e1b38795f0..e09bed7ca3c576e252f376c3159a7fe53ccf0d51 100644 --- a/Demos/Device/LowLevel/Keyboard/Keyboard.c +++ b/Demos/Device/LowLevel/Keyboard/Keyboard.c @@ -294,13 +294,13 @@ void ProcessLEDReport(uint8_t LEDReport) { uint8_t LEDMask = LEDS_LED2; - if (LEDReport & 0x01) // NUM Lock + if (*LEDReport & KEYBOARD_LED_NUMLOCK) LEDMask |= LEDS_LED1; - if (LEDReport & 0x02) // CAPS Lock + if (*LEDReport & KEYBOARD_LED_CAPSLOCK) LEDMask |= LEDS_LED3; - if (LEDReport & 0x04) // SCROLL Lock + if (*LEDReport & KEYBOARD_LED_SCROLLLOCK) LEDMask |= LEDS_LED4; /* Set the status LEDs to the current Keyboard LED status */ diff --git a/Demos/Device/LowLevel/Keyboard/Keyboard.h b/Demos/Device/LowLevel/Keyboard/Keyboard.h index 6b29be8c1cc877710adc0ce80d1ab3059ddbab73..4cb3616c7d7e035178fcd5cd96a0c9dc8f17d7e9 100644 --- a/Demos/Device/LowLevel/Keyboard/Keyboard.h +++ b/Demos/Device/LowLevel/Keyboard/Keyboard.h @@ -98,6 +98,18 @@ /** 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 diff --git a/Demos/Device/LowLevel/KeyboardMouse/KeyboardMouse.c b/Demos/Device/LowLevel/KeyboardMouse/KeyboardMouse.c index d6c9b4d114008dc7073c24cc9555ce7c62350f84..d31f94db011fdac6b4867ef7ccf7a5fc99d338fe 100644 --- a/Demos/Device/LowLevel/KeyboardMouse/KeyboardMouse.c +++ b/Demos/Device/LowLevel/KeyboardMouse/KeyboardMouse.c @@ -184,13 +184,13 @@ void EVENT_USB_Device_UnhandledControlRequest(void) uint8_t LEDStatus = Endpoint_Read_Byte(); uint8_t LEDMask = LEDS_LED2; - if (LEDStatus & 0x01) // NUM Lock + if (LEDStatus & KEYBOARD_LED_NUMLOCK) LEDMask |= LEDS_LED1; - if (LEDStatus & 0x02) // CAPS Lock + if (LEDStatus & KEYBOARD_LED_CAPSLOCK) LEDMask |= LEDS_LED3; - if (LEDStatus & 0x04) // SCROLL Lock + if (LEDStatus & KEYBOARD_LED_SCROLLLOCK) LEDMask |= LEDS_LED4; /* Set the status LEDs to the current HID LED status */ @@ -264,13 +264,13 @@ void Keyboard_HID_Task(void) uint8_t LEDStatus = Endpoint_Read_Byte(); uint8_t LEDMask = LEDS_LED2; - if (LEDStatus & 0x01) // NUM Lock + if (LEDStatus & KEYBOARD_LED_NUMLOCK) LEDMask |= LEDS_LED1; - if (LEDStatus & 0x02) // CAPS Lock + if (LEDStatus & KEYBOARD_LED_CAPSLOCK) LEDMask |= LEDS_LED3; - if (LEDStatus & 0x04) // SCROLL Lock + if (LEDStatus & KEYBOARD_LED_SCROLLLOCK) LEDMask |= LEDS_LED4; /* Set the status LEDs to the current Keyboard LED status */ diff --git a/Demos/Device/LowLevel/KeyboardMouse/KeyboardMouse.h b/Demos/Device/LowLevel/KeyboardMouse/KeyboardMouse.h index ff2831408e4b507d17614c34ba76b4c46ee13c6f..e5337f2ef483c15fdc2fc2908dc49b26ae0fce37 100644 --- a/Demos/Device/LowLevel/KeyboardMouse/KeyboardMouse.h +++ b/Demos/Device/LowLevel/KeyboardMouse/KeyboardMouse.h @@ -84,6 +84,18 @@ /** 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 diff --git a/LUFA/Drivers/USB/Class/Common/HID.h b/LUFA/Drivers/USB/Class/Common/HID.h index 6f2d7c2226ff10515f2916020f5273fd743cc022..5afaf48c952edba77d2f097a6adf752ba5d9f3d4 100644 --- a/LUFA/Drivers/USB/Class/Common/HID.h +++ b/LUFA/Drivers/USB/Class/Common/HID.h @@ -109,6 +109,18 @@ /** Constant for a keyboard report modifier byte, indicating that the keyboard's right GUI key is currently pressed. */ #define HID_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 HID_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 HID_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 HID_KEYBOARD_LED_SCROLLLOCK (1 << 2) + + /** Constant for a keyboard output report LED byte, indicating that the host's KATANA mode is currently set. */ + #define HID_KEYBOARD_LED_KATANA (1 << 3) /* Type Defines: */ /** Enum for the different types of HID reports. */ diff --git a/LUFA/ManPages/ChangeLog.txt b/LUFA/ManPages/ChangeLog.txt index e9469ff099826d38eaaf64a589b511e1d28dee90..9f9157de5d711761f07441591ed1824cc67d483c 100644 --- a/LUFA/ManPages/ChangeLog.txt +++ b/LUFA/ManPages/ChangeLog.txt @@ -23,7 +23,8 @@ * - New Webserver project, a RNDIS host USB webserver using the open source uIP TCP/IP network stack and FatFS library * - New BOARD value option BOARD_NONE (equivelent to not specifying BOARD) which will remove all board hardware drivers which * do not adversely affect the code operation (currently only the LEDs driver) - * - Added keyboard modifier masks (HID_KEYBOARD_MODIFER_*) to the HID class driver and Keyboard demos + * - Added keyboard modifier masks (HID_KEYBOARD_MODIFER_*) and LED report masks (KEYBOARD_LED_*) to the HID class driver and + * Keyboard demos * * <b>Changed:</b> * - Slowed down software USART carried PDI programming in the AVRISP project to prevent transmission errors