1 // Copyright 2014 Citra Emulator Project 2 // Licensed under GPLv2 or any later version 3 // Refer to the license.txt file included. 4 5 #pragma once 6 7 #include <array> 8 #include <memory> 9 #include <string> 10 #include <QVariant> 11 #include "core/settings.h" 12 13 class QSettings; 14 15 class Config { 16 public: 17 Config(); 18 ~Config(); 19 20 void Reload(); 21 void Save(); 22 23 static const std::array<int, Settings::NativeButton::NumButtons> default_buttons; 24 static const std::array<std::array<int, 5>, Settings::NativeAnalog::NumAnalogs> default_analogs; 25 26 private: 27 void ReadValues(); 28 void ReadAudioValues(); 29 void ReadCameraValues(); 30 void ReadControlValues(); 31 void ReadCoreValues(); 32 void ReadDataStorageValues(); 33 void ReadDebuggingValues(); 34 void ReadLayoutValues(); 35 void ReadMiscellaneousValues(); 36 void ReadMultiplayerValues(); 37 void ReadPathValues(); 38 void ReadRendererValues(); 39 void ReadShortcutValues(); 40 void ReadSystemValues(); 41 void ReadUIValues(); 42 void ReadUIGameListValues(); 43 void ReadUILayoutValues(); 44 void ReadUpdaterValues(); 45 void ReadUtilityValues(); 46 void ReadWebServiceValues(); 47 void ReadVideoDumpingValues(); 48 49 void SaveValues(); 50 void SaveAudioValues(); 51 void SaveCameraValues(); 52 void SaveControlValues(); 53 void SaveCoreValues(); 54 void SaveDataStorageValues(); 55 void SaveDebuggingValues(); 56 void SaveLayoutValues(); 57 void SaveMiscellaneousValues(); 58 void SaveMultiplayerValues(); 59 void SavePathValues(); 60 void SaveRendererValues(); 61 void SaveShortcutValues(); 62 void SaveSystemValues(); 63 void SaveUIValues(); 64 void SaveUIGameListValues(); 65 void SaveUILayoutValues(); 66 void SaveUpdaterValues(); 67 void SaveUtilityValues(); 68 void SaveWebServiceValues(); 69 void SaveVideoDumpingValues(); 70 71 QVariant ReadSetting(const QString& name) const; 72 QVariant ReadSetting(const QString& name, const QVariant& default_value) const; 73 void WriteSetting(const QString& name, const QVariant& value); 74 void WriteSetting(const QString& name, const QVariant& value, const QVariant& default_value); 75 76 std::unique_ptr<QSettings> qt_config; 77 std::string qt_config_loc; 78 }; 79