summaryrefslogtreecommitdiffstats
path: root/src/core/hle/service/time/time_manager.cpp
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2020-05-11 23:55:25 +0200
committerbunnei <bunneidev@gmail.com>2020-05-11 23:55:25 +0200
commit3c8cd62b0db115a4812d8de81b70af72565bbdd7 (patch)
treee98500d894d696e823613b9b8373ebd866999572 /src/core/hle/service/time/time_manager.cpp
parentcommon: Add module to get the current time zone. (diff)
downloadyuzu-3c8cd62b0db115a4812d8de81b70af72565bbdd7.tar
yuzu-3c8cd62b0db115a4812d8de81b70af72565bbdd7.tar.gz
yuzu-3c8cd62b0db115a4812d8de81b70af72565bbdd7.tar.bz2
yuzu-3c8cd62b0db115a4812d8de81b70af72565bbdd7.tar.lz
yuzu-3c8cd62b0db115a4812d8de81b70af72565bbdd7.tar.xz
yuzu-3c8cd62b0db115a4812d8de81b70af72565bbdd7.tar.zst
yuzu-3c8cd62b0db115a4812d8de81b70af72565bbdd7.zip
Diffstat (limited to 'src/core/hle/service/time/time_manager.cpp')
-rw-r--r--src/core/hle/service/time/time_manager.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/core/hle/service/time/time_manager.cpp b/src/core/hle/service/time/time_manager.cpp
index 9d6c55865..54f4a3f04 100644
--- a/src/core/hle/service/time/time_manager.cpp
+++ b/src/core/hle/service/time/time_manager.cpp
@@ -5,6 +5,7 @@
#include <chrono>
#include <ctime>
+#include "common/time_zone.h"
#include "core/hle/service/time/ephemeral_network_system_clock_context_writer.h"
#include "core/hle/service/time/local_system_clock_context_writer.h"
#include "core/hle/service/time/network_system_clock_context_writer.h"
@@ -21,8 +22,16 @@ static std::chrono::seconds GetSecondsSinceEpoch() {
Settings::values.custom_rtc_differential;
}
+static s64 GetExternalTimeZoneOffset() {
+ // With "auto" timezone setting, we use the external system's timezone offset
+ if (Settings::GetTimeZoneString() == "auto") {
+ return Common::TimeZone::GetCurrentOffsetSeconds();
+ }
+ return 0;
+}
+
static s64 GetExternalRtcValue() {
- return GetSecondsSinceEpoch().count();
+ return GetSecondsSinceEpoch().count() + GetExternalTimeZoneOffset();
}
TimeManager::TimeManager(Core::System& system)