#pragma once #include #include "game/settings/settings.h" #include "game/system/hid/input_bindings.h" #include "game/system/hid/sdl_util.h" // A distinct input device. Only those devices that are "active" should be read class InputDevice { protected: bool m_loaded = false; std::shared_ptr m_settings; public: virtual ~InputDevice() {}; virtual void process_event(const SDL_Event& event, const CommandBindingGroups& commands, std::shared_ptr data, std::optional& bind_assignment) = 0; virtual void close_device() = 0; bool is_loaded() const { return m_loaded; }; };