config.h 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. // Copyright 2014 Citra Emulator Project
  2. // Licensed under GPLv2 or any later version
  3. // Refer to the license.txt file included.
  4. #pragma once
  5. #include <array>
  6. #include <memory>
  7. #include <string>
  8. #include <QVariant>
  9. #include "core/settings.h"
  10. #include "yuzu/uisettings.h"
  11. class QSettings;
  12. class Config {
  13. public:
  14. Config();
  15. ~Config();
  16. void Reload();
  17. void Save();
  18. static const std::array<int, Settings::NativeButton::NumButtons> default_buttons;
  19. static const std::array<std::array<int, 5>, Settings::NativeAnalog::NumAnalogs> default_analogs;
  20. static const std::array<int, Settings::NativeMouseButton::NumMouseButtons>
  21. default_mouse_buttons;
  22. static const std::array<int, Settings::NativeKeyboard::NumKeyboardKeys> default_keyboard_keys;
  23. static const std::array<int, Settings::NativeKeyboard::NumKeyboardMods> default_keyboard_mods;
  24. static const std::array<UISettings::Shortcut, 15> default_hotkeys;
  25. private:
  26. void ReadValues();
  27. void ReadPlayerValues();
  28. void ReadDebugValues();
  29. void ReadKeyboardValues();
  30. void ReadMouseValues();
  31. void ReadTouchscreenValues();
  32. void ApplyDefaultProfileIfInputInvalid();
  33. // Read functions bases off the respective config section names.
  34. void ReadAudioValues();
  35. void ReadControlValues();
  36. void ReadCoreValues();
  37. void ReadDataStorageValues();
  38. void ReadDebuggingValues();
  39. void ReadServiceValues();
  40. void ReadDisabledAddOnValues();
  41. void ReadMiscellaneousValues();
  42. void ReadPathValues();
  43. void ReadRendererValues();
  44. void ReadShortcutValues();
  45. void ReadSystemValues();
  46. void ReadUIValues();
  47. void ReadUIGamelistValues();
  48. void ReadUILayoutValues();
  49. void ReadWebServiceValues();
  50. void SaveValues();
  51. void SavePlayerValues();
  52. void SaveDebugValues();
  53. void SaveMouseValues();
  54. void SaveTouchscreenValues();
  55. // Save functions based off the respective config section names.
  56. void SaveAudioValues();
  57. void SaveControlValues();
  58. void SaveCoreValues();
  59. void SaveDataStorageValues();
  60. void SaveDebuggingValues();
  61. void SaveServiceValues();
  62. void SaveDisabledAddOnValues();
  63. void SaveMiscellaneousValues();
  64. void SavePathValues();
  65. void SaveRendererValues();
  66. void SaveShortcutValues();
  67. void SaveSystemValues();
  68. void SaveUIValues();
  69. void SaveUIGamelistValues();
  70. void SaveUILayoutValues();
  71. void SaveWebServiceValues();
  72. QVariant ReadSetting(const QString& name) const;
  73. QVariant ReadSetting(const QString& name, const QVariant& default_value) const;
  74. void WriteSetting(const QString& name, const QVariant& value);
  75. void WriteSetting(const QString& name, const QVariant& value, const QVariant& default_value);
  76. std::unique_ptr<QSettings> qt_config;
  77. std::string qt_config_loc;
  78. };