31 using MouseCallbackId = std::string;
32 using MouseCallback = std::function<void(
double,
double)>;
33 using KeyboardCallback = std::function<void()>;
38 static const std::string subsystem_name;
39 std::expected<void, Subsystem::Error> initialize()
override;
40 std::expected<void, Subsystem::Error> terminate()
override;
41 std::string name()
override;
42 bool is_initialized()
override;
46 static Input &instance();
48 static void add_keyboard_callback(Key key, KeyboardCallback callback);
49 static void remove_keyboard_callback(Key key);
51 static void add_mouse_callback(MouseCallbackId name, MouseCallback callback);
52 static void remove_mouse_callback(MouseCallbackId name);
56 static void key_callback(Key key, KeyAction action,
KeyMods mods);
57 static void mouse_callback(
double xpos,
double ypos);
61 static bool initialized;
62 static std::unordered_map<brenta::Key, KeyboardCallback> keyboard_callbacks;
63 static std::unordered_map<MouseCallbackId, MouseCallback> mouse_callbacks;