From 15dfd2bf1e6ef2bf99bcacd5b89b35a0c2dcebef Mon Sep 17 00:00:00 2001 From: Maufeat Date: Fri, 12 Dec 2025 02:33:00 +0100 Subject: [PATCH] forgot settings --- .../service/set/system_settings_server.cpp | 23 +++++++++++++++++++ .../hle/service/set/system_settings_server.h | 2 ++ 2 files changed, 25 insertions(+) diff --git a/src/core/hle/service/set/system_settings_server.cpp b/src/core/hle/service/set/system_settings_server.cpp index e7efe8631b..ef7a3647ff 100644 --- a/src/core/hle/service/set/system_settings_server.cpp +++ b/src/core/hle/service/set/system_settings_server.cpp @@ -36,6 +36,29 @@ struct SettingsHeader { u32 version; u32 reserved; }; + +void SyncGlobalLanguageFromCode(LanguageCode language_code) { + const auto it = std::find_if(available_language_codes.begin(), available_language_codes.end(), + [language_code](LanguageCode code) { return code == language_code; }); + if (it == available_language_codes.end()) { + return; + } + + const std::size_t index = static_cast(std::distance(available_language_codes.begin(), it)); + if (index >= static_cast(Settings::values.language_index.GetValue())) { + Settings::values.language_index.SetValue(static_cast(index)); + } +} + +void SyncGlobalRegionFromCode(SystemRegionCode region_code) { + const auto region_index = static_cast(region_code); + if (region_index > static_cast(Settings::Region::Taiwan)) { + return; + } + + Settings::values.region_index.SetValue(static_cast(region_index)); +} + } // Anonymous namespace Result GetFirmwareVersionImpl(FirmwareVersionFormat& out_firmware, Core::System& system, diff --git a/src/core/hle/service/set/system_settings_server.h b/src/core/hle/service/set/system_settings_server.h index 27a16747f3..4e5e9a1cfc 100644 --- a/src/core/hle/service/set/system_settings_server.h +++ b/src/core/hle/service/set/system_settings_server.h @@ -165,6 +165,7 @@ public: private: bool LoadSettingsFile(std::filesystem::path& path, auto&& default_func); bool StoreSettingsFile(std::filesystem::path& path, auto& settings); + void StoreSettingsThreadFunc(std::stop_token stop_token); void SetupSettings(); void StoreSettings(); void SetSaveNeeded(); @@ -174,6 +175,7 @@ private: PrivateSettings m_private_settings{}; DeviceSettings m_device_settings{}; ApplnSettings m_appln_settings{}; + std::jthread m_save_thread; std::mutex m_save_needed_mutex; bool m_save_needed{false}; };