-
Notifications
You must be signed in to change notification settings - Fork 164
Open
@T-vK
Description
I would like to keep ESP32-BLE-Keyboard compatible with the Keyboard library and now we're about to add support for retrieving the numlock, capslock and scrolllock states.
So I would like to agree on a set of methods that we try to implement in both libraries.
Would you be okay with a method called setLedChangeCallBack
that would allow providing a callback function?
Keyboard.setLedChangeCallBack(KbdLedCb);
E.g.
#include <Keyboard.h> void onKeyboardLedChange(KbdLeds *kbls) { if (kbls->bmNumLock == HIGH) Seriel.println("Numlock On!"); else Seriel.println("Numlock Off!"); if (kbls->bmCapsLock == HIGH) Seriel.println("CapsLock On!"); else Seriel.println("CapsLock Off!"); if (kbls->bmScrollLock == HIGH) Seriel.println("ScrollLock On!"); else Seriel.println("ScrollLock Off!"); } void setup() { Serial.begin(9600); Keyboard.begin(); Keyboard.setLedChangeCallBack(KbdLedCb); } void loop() { }
and 3 methods to retrieve the states of the lock keys manually without a callback:
Keyboard.GetNumLockState(); Keyboard.GetCapsLockState(); Keyboard.GetScrollLockState();
e.g.
#include <Keyboard.h> void setup() { Serial.begin(9600); Keyboard.begin(); } void loop() { bool numLockState = Keyboard.GetNumLockState(); bool capsLockState = Keyboard.GetCapsLockState(); bool scrollLockState = Keyboard.GetScrollLockState(); if (numLockState == HIGH) Seriel.println("Numlock On!"); else Seriel.println("Numlock Off!"); if (capsLockState == HIGH) Seriel.println("CapsLock On!"); else Seriel.println("CapsLock Off!"); if (scrollLockState == HIGH) Seriel.println("ScrollLock On!"); else Seriel.println("ScrollLock Off!"); delay(1000); }
Maybe it would make more sense to use true/false instead of HIGH/LOW?
Or different names for the methods?
Just to clarify: I'm not asking you to actually implement this, I will try to do it once I find the time.