summaryrefslogtreecommitdiff
path: root/src/frontend_common
diff options
context:
space:
mode:
Diffstat (limited to 'src/frontend_common')
-rw-r--r--src/frontend_common/config.cpp18
-rw-r--r--src/frontend_common/config.h16
2 files changed, 15 insertions, 19 deletions
diff --git a/src/frontend_common/config.cpp b/src/frontend_common/config.cpp
index 51576b4ee..9eb4799a6 100644
--- a/src/frontend_common/config.cpp
+++ b/src/frontend_common/config.cpp
@@ -11,7 +11,7 @@
11#include "config.h" 11#include "config.h"
12#include "core/core.h" 12#include "core/core.h"
13#include "core/hle/service/acc/profile_manager.h" 13#include "core/hle/service/acc/profile_manager.h"
14#include "core/hle/service/hid/controllers/npad.h" 14#include "hid_core/resources/npad/npad.h"
15#include "network/network.h" 15#include "network/network.h"
16 16
17#include <boost/algorithm/string/replace.hpp> 17#include <boost/algorithm/string/replace.hpp>
@@ -762,17 +762,6 @@ void Config::WriteBooleanSetting(const std::string& key, const bool& value,
762 WritePreparedSetting(key, AdjustOutputString(ToString(value)), string_default, use_global); 762 WritePreparedSetting(key, AdjustOutputString(ToString(value)), string_default, use_global);
763} 763}
764 764
765template <typename T>
766std::enable_if_t<std::is_integral_v<T>> Config::WriteIntegerSetting(
767 const std::string& key, const T& value, const std::optional<T>& default_value,
768 const std::optional<bool>& use_global) {
769 std::optional<std::string> string_default = std::nullopt;
770 if (default_value.has_value()) {
771 string_default = std::make_optional(ToString(default_value.value()));
772 }
773 WritePreparedSetting(key, AdjustOutputString(ToString(value)), string_default, use_global);
774}
775
776void Config::WriteDoubleSetting(const std::string& key, const double& value, 765void Config::WriteDoubleSetting(const std::string& key, const double& value,
777 const std::optional<double>& default_value, 766 const std::optional<double>& default_value,
778 const std::optional<bool>& use_global) { 767 const std::optional<bool>& use_global) {
@@ -894,9 +883,10 @@ void Config::WriteSettingGeneric(const Settings::BasicSetting* const setting) {
894 WriteBooleanSetting(std::string(key).append("\\use_global"), setting->UsingGlobal()); 883 WriteBooleanSetting(std::string(key).append("\\use_global"), setting->UsingGlobal());
895 } 884 }
896 if (global || !setting->UsingGlobal()) { 885 if (global || !setting->UsingGlobal()) {
886 auto value = global ? setting->ToStringGlobal() : setting->ToString();
897 WriteBooleanSetting(std::string(key).append("\\default"), 887 WriteBooleanSetting(std::string(key).append("\\default"),
898 setting->ToString() == setting->DefaultToString()); 888 value == setting->DefaultToString());
899 WriteStringSetting(key, setting->ToString()); 889 WriteStringSetting(key, value);
900 } 890 }
901 } else if (global) { 891 } else if (global) {
902 WriteBooleanSetting(std::string(key).append("\\default"), 892 WriteBooleanSetting(std::string(key).append("\\default"),
diff --git a/src/frontend_common/config.h b/src/frontend_common/config.h
index 0c4d505b8..b01631649 100644
--- a/src/frontend_common/config.h
+++ b/src/frontend_common/config.h
@@ -157,17 +157,23 @@ protected:
157 void WriteBooleanSetting(const std::string& key, const bool& value, 157 void WriteBooleanSetting(const std::string& key, const bool& value,
158 const std::optional<bool>& default_value = std::nullopt, 158 const std::optional<bool>& default_value = std::nullopt,
159 const std::optional<bool>& use_global = std::nullopt); 159 const std::optional<bool>& use_global = std::nullopt);
160 template <typename T>
161 std::enable_if_t<std::is_integral_v<T>> WriteIntegerSetting(
162 const std::string& key, const T& value,
163 const std::optional<T>& default_value = std::nullopt,
164 const std::optional<bool>& use_global = std::nullopt);
165 void WriteDoubleSetting(const std::string& key, const double& value, 160 void WriteDoubleSetting(const std::string& key, const double& value,
166 const std::optional<double>& default_value = std::nullopt, 161 const std::optional<double>& default_value = std::nullopt,
167 const std::optional<bool>& use_global = std::nullopt); 162 const std::optional<bool>& use_global = std::nullopt);
168 void WriteStringSetting(const std::string& key, const std::string& value, 163 void WriteStringSetting(const std::string& key, const std::string& value,
169 const std::optional<std::string>& default_value = std::nullopt, 164 const std::optional<std::string>& default_value = std::nullopt,
170 const std::optional<bool>& use_global = std::nullopt); 165 const std::optional<bool>& use_global = std::nullopt);
166 template <typename T>
167 std::enable_if_t<std::is_integral_v<T>> WriteIntegerSetting(
168 const std::string& key, const T& value,
169 const std::optional<T>& default_value = std::nullopt,
170 const std::optional<bool>& use_global = std::nullopt) {
171 std::optional<std::string> string_default = std::nullopt;
172 if (default_value.has_value()) {
173 string_default = std::make_optional(ToString(default_value.value()));
174 }
175 WritePreparedSetting(key, AdjustOutputString(ToString(value)), string_default, use_global);
176 }
171 177
172 void ReadCategory(Settings::Category category); 178 void ReadCategory(Settings::Category category);
173 void WriteCategory(Settings::Category category); 179 void WriteCategory(Settings::Category category);