#pragma once #include #include #include #include "external/tinyxml2/tinyxml2.h" #include "game.h" // settings extern std::string CONFIG_PATH_OVERRIDE; struct ConfigKeypadBindings { std::string keypads[2]; std::filesystem::path card_paths[2]; }; class Config { public: static Config &getInstance(); bool getStatus(); bool createConfigFile(); bool addGame(Game &game); bool updateBinding(const Game &game, const Button &button, int alternative); bool updateBinding(const Game &game, const Analog &analog); bool updateBinding(const Game &game, ConfigKeypadBindings &keypads); bool updateBinding(const Game &game, const Light &light, int alternative); bool updateBinding(const Game &game, const Option &option); std::vector