// Copyright 2014 Citra Emulator Project // Licensed under GPLv2 or any later version // Refer to the license.txt file included. #pragma once #include #include #include #include #include "core/settings.h" class QSettings; class Config { public: Config(); ~Config(); void Reload(); void Save(); static const std::array default_buttons; static const std::array, Settings::NativeAnalog::NumAnalogs> default_analogs; static const std::array default_mouse_buttons; static const std::array default_keyboard_keys; static const std::array default_keyboard_mods; private: void ReadValues(); void ReadPlayerValues(); void ReadDebugValues(); void ReadKeyboardValues(); void ReadMouseValues(); void ReadTouchscreenValues(); void ApplyDefaultProfileIfInputInvalid(); void SaveValues(); void SavePlayerValues(); void SaveDebugValues(); void SaveMouseValues(); void SaveTouchscreenValues(); std::unique_ptr qt_config; std::string qt_config_loc; };