#pragma once #include "Types.h" #include "Button.h" #include "HID.h" #define LWE_HID_KEYBOARD 0x02 namespace lwe { class Keyboard : public HID { public: Keyboard(); Keyboard(Str_8 name, const UInt_64 id); Keyboard(Keyboard&& hid) noexcept = default; Keyboard(const Keyboard& hid); Keyboard& operator=(Keyboard&& hid) noexcept = default; Keyboard& operator=(const Keyboard& hid); void Poll() override; Keyboard* Clone() const override; static const Button Unknown; static const Button Escape; static const Button Backspace; static const Button Enter; static const Button LShift; static const Button RShift; static const Button LAlt; static const Button RAlt; static const Button LCtrl; static const Button RCtrl; static const Button Space; static const Button A; static const Button B; static const Button C; static const Button D; static const Button E; static const Button F; static const Button G; static const Button H; static const Button I; static const Button J; static const Button K; static const Button L; static const Button M; static const Button N; static const Button O; static const Button P; static const Button Q; static const Button R; static const Button S; static const Button T; static const Button U; static const Button V; static const Button W; static const Button X; static const Button Y; static const Button Z; static const Button One; static const Button Two; static const Button Three; static const Button Four; static const Button Five; static const Button Six; static const Button Seven; static const Button Eight; static const Button Nine; static const Button Zero; static const Button Minus; static const Button Equals; static const Button Tilde; static const Button BackSlash; static const Button LeftSquareBracket; static const Button RightSquareBracket; static const Button SemiColon; static const Button Apostrophe; static const Button Comma; static const Button Period; static const Button ForwardSlash; static const Button F1; static const Button F2; static const Button F3; static const Button F4; static const Button F5; static const Button F6; static const Button F7; static const Button F8; static const Button F9; static const Button F10; static const Button F11; static const Button F12; static const Button F13; static const Button F14; static const Button F15; static const Button F16; static const Button F17; static const Button F18; static const Button F19; static const Button F20; static const Button F21; static const Button F22; static const Button F23; static const Button F24; static const Button Left; static const Button Right; static const Button Up; static const Button Down; static Button TranslateScanCode(const UInt_32 code); static Char_8 TranslateToEnglish_8(const bool shifted, const Button& button); }; }