|
|
@@ -38,28 +38,28 @@ void Code_LEDLock::release() |
|
|
|
Keyboard.release(scancode); |
|
|
|
} |
|
|
|
|
|
|
|
/* updateLED() is a separate function from press() because Arduino boards may need a different implementation. |
|
|
|
updateLED() has been tested on teensy 2.0. |
|
|
|
The variable "keyboard_leds" is in /opt/arduino-1.6.7/hardware/teensy/avr/cores/usb_hid/usb.c |
|
|
|
/* This comment is for Arduino board, because Arduino boards may need a different implementation. |
|
|
|
updateLED() has NOT been tested on an Arduino board. |
|
|
|
updateLED() has been tested on teensy 2.0 (not an Arduino board). |
|
|
|
The variable "keyboard_leds" is in /opt/arduino-1.6.7/hardware/teensy/avr/cores/usb_hid/usb.c |
|
|
|
// 1=num lock, 2=caps lock, 4=scroll lock, 8=compose, 16=kana |
|
|
|
https://forum.pjrc.com/threads/25368-How-do-I-receive-a-numlock-capslock-LED-signal-from-the-PC |
|
|
|
updateLED() has NOT been tested on an Arduino board. |
|
|
|
The word "keyboard_leds does not appear in "Arduino\hardware\arduino\cores\ |
|
|
|
This shows how to hack KeyReport in Arduino: https://www.sparkfun.com/tutorials/337 |
|
|
|
TMK firmware uses variable "usb_led" instead of "keyboard_leds" |
|
|
|
The word "keyboard_leds does not appear in "Arduino\hardware\arduino\cores\ |
|
|
|
This shows how to hack KeyReport in Arduino: https://www.sparkfun.com/tutorials/337 |
|
|
|
TMK firmware, which is not Arduino, uses variable "usb_led" instead of "keyboard_leds" |
|
|
|
http://deskthority.net/workshop-f7/how-to-build-your-very-own-keyboard-firmware-t7177.html >usb_led |
|
|
|
*/ |
|
|
|
void Code_LEDLock::updateLED() const |
|
|
|
{ |
|
|
|
/* KEY_SCROLL_LOCK is not working on Teensy2.0, it prints keyboard_leds=0, maybe Linux doesn't have it. |
|
|
|
Here is the debug code: |
|
|
|
Keyboard.print(F(" keyboard_leds=")); |
|
|
|
Keyboard.print(keyboard_leds);//KEY_NUM_LOCK:1, KEY_CAPS_LOCK:2, KEY_SCROLL_LOCK:0 |
|
|
|
Keyboard.print(" "); |
|
|
|
/* KEY_SCROLL_LOCK is not working on Linux with Teensy2.0. |
|
|
|
This debug code prints "keyboard_leds=0" when scrollLock is pressed: |
|
|
|
Keyboard.print(F(" keyboard_leds=")); |
|
|
|
Keyboard.print(keyboard_leds); //KEY_NUM_LOCK:1, KEY_CAPS_LOCK:2, KEY_SCROLL_LOCK:0 |
|
|
|
Keyboard.print(" "); |
|
|
|
*/ |
|
|
|
if (keyboard_leds & USB_LED_bit) //if LED status bit is set |
|
|
|
if (keyboard_leds & USB_LED_bit) //if USB_LED_bit is set |
|
|
|
{ |
|
|
|
refLED.off(); //LED on/off seem inverted, but it works |
|
|
|
refLED.off(); //LED on/off seem inverted, but it works for active high |
|
|
|
} |
|
|
|
else |
|
|
|
{ |