#pragma once #include #include #include #include namespace LibInput { class KeyboardLayout { public: static BAN::ErrorOr initialize(); static KeyboardLayout& get(); KeyEvent key_event_from_raw(RawKeyEvent); BAN::ErrorOr load_from_file(BAN::StringView path); private: KeyboardLayout(); private: BAN::Array m_keycode_to_key_normal; BAN::Array m_keycode_to_key_shift; BAN::Array m_keycode_to_key_altgr; friend class BAN::UniqPtr; }; }