keybrd library is an open source library for creating custom-keyboard firmware.
Du kannst nicht mehr als 25 Themen auswählen Themen müssen mit entweder einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.
Dieses Repo ist archiviert. Du kannst Dateien sehen und es klonen, kannst aber nicht pushen oder Issues/Pull-Requests öffnen.

Key_LayeredKeys.h 886B

12345678910111213141516171819202122232425
  1. #ifndef KEY_LAYEREDKEYS_H
  2. #define KEY_LAYEREDKEYS_H
  3. #include <Arduino.h>
  4. #include <inttypes.h>
  5. #include <LayerStateInterface.h>
  6. #include <Key.h>
  7. /* Class Key_LayeredKeys contains an array of Key pointers, one pointer per layer.
  8. Codes are a kind of Key, so the Key pointers can point to Codes or Keys.
  9. When the key is pressed, active layerId is retreived from refLayerState and
  10. the Key object of the active layerId is called.
  11. */
  12. class Key_LayeredKeys : public Key
  13. {
  14. private:
  15. Key*const *const ptrsKeys; //array of Key pointers, one Key per layer
  16. uint8_t layerId; //active layer when key was pressed
  17. static LayerStateInterface& refLayerState;
  18. public:
  19. Key_LayeredKeys(Key* const ptrsKeys[]): ptrsKeys(ptrsKeys) {}
  20. virtual void press();
  21. virtual void release();
  22. };
  23. #endif