#ifndef KEYBOARD_h #define KEYBOARD_h #include "HID.h" #define MODIFIER_LEFT_CTRL 0b00000001 #define MODIFIER_LEFT_SHIFT 0b00000010 #define MODIFIER_LEFT_ALT 0b00000100 #define MODIFIER_LEFT_GUI 0b00001000 #define MODIFIER_RIGHT_CTRL 0b00010000 #define MODIFIER_RIGHT_SHIFT 0b00100000 #define MODIFIER_RIGHT_ALT 0b01000000 #define MODIFIER_RIGHT_GUI 0b10000000 typedef struct { uint8_t modifiers; uint8_t reserved; uint8_t keys[6]; } KeyReport; class Keyboard_ : public Print { private: KeyReport _keyReport; void sendReport(KeyReport* keys); public: Keyboard_(void); size_t write(uint8_t k); size_t press(uint8_t k); size_t release(uint8_t k); size_t pressmod(uint8_t m); size_t releasemod(uint8_t m); void releaseAll(void); }; extern Keyboard_ Keyboard; #endif