summaryrefslogtreecommitdiffstats
path: root/src/core/hle/service/time/time.cpp
diff options
context:
space:
mode:
authorDavid Marcec <dmarcecguzman@gmail.com>2019-09-21 11:35:01 +0200
committerDavid Marcec <dmarcecguzman@gmail.com>2019-09-22 08:38:02 +0200
commit2c6e4ce0ad367f63d2203b6a21e1cf244f344efb (patch)
tree9122f151a6cd888b08edf31dfa5bb1b3cfbaa8d8 /src/core/hle/service/time/time.cpp
parentRebase (diff)
downloadyuzu-2c6e4ce0ad367f63d2203b6a21e1cf244f344efb.tar
yuzu-2c6e4ce0ad367f63d2203b6a21e1cf244f344efb.tar.gz
yuzu-2c6e4ce0ad367f63d2203b6a21e1cf244f344efb.tar.bz2
yuzu-2c6e4ce0ad367f63d2203b6a21e1cf244f344efb.tar.lz
yuzu-2c6e4ce0ad367f63d2203b6a21e1cf244f344efb.tar.xz
yuzu-2c6e4ce0ad367f63d2203b6a21e1cf244f344efb.tar.zst
yuzu-2c6e4ce0ad367f63d2203b6a21e1cf244f344efb.zip
Diffstat (limited to 'src/core/hle/service/time/time.cpp')
-rw-r--r--src/core/hle/service/time/time.cpp25
1 files changed, 15 insertions, 10 deletions
diff --git a/src/core/hle/service/time/time.cpp b/src/core/hle/service/time/time.cpp
index ae6446204..1b9ab8401 100644
--- a/src/core/hle/service/time/time.cpp
+++ b/src/core/hle/service/time/time.cpp
@@ -126,8 +126,8 @@ private:
class ISteadyClock final : public ServiceFramework<ISteadyClock> {
public:
- ISteadyClock(std::shared_ptr<SharedMemory> shared_memory)
- : ServiceFramework("ISteadyClock"), shared_memory(shared_memory) {
+ ISteadyClock(std::shared_ptr<SharedMemory> shared_memory, Core::System& system)
+ : ServiceFramework("ISteadyClock"), shared_memory(shared_memory), system(system) {
static const FunctionInfo functions[] = {
{0, &ISteadyClock::GetCurrentTimePoint, "GetCurrentTimePoint"},
};
@@ -150,12 +150,13 @@ private:
}
SteadyClockTimePoint GetCurrentTimePoint() const {
- const auto& core_timing = Core::System::GetInstance().CoreTiming();
+ const auto& core_timing = system.CoreTiming();
const auto ms = Core::Timing::CyclesToMs(core_timing.GetTicks());
return {static_cast<u64_le>(ms.count() / 1000), {}};
}
std::shared_ptr<SharedMemory> shared_memory;
+ Core::System& system;
};
class ITimeZoneService final : public ServiceFramework<ITimeZoneService> {
@@ -290,7 +291,7 @@ void Module::Interface::GetStandardSteadyClock(Kernel::HLERequestContext& ctx) {
IPC::ResponseBuilder rb{ctx, 2, 0, 1};
rb.Push(RESULT_SUCCESS);
- rb.PushIpcInterface<ISteadyClock>(shared_memory);
+ rb.PushIpcInterface<ISteadyClock>(shared_memory, system);
}
void Module::Interface::GetTimeZoneService(Kernel::HLERequestContext& ctx) {
@@ -325,7 +326,7 @@ void Module::Interface::GetClockSnapshot(Kernel::HLERequestContext& ctx) {
return;
}
- const auto& core_timing = Core::System::GetInstance().CoreTiming();
+ const auto& core_timing = system.CoreTiming();
const auto ms = Core::Timing::CyclesToMs(core_timing.GetTicks());
const SteadyClockTimePoint steady_clock_time_point{static_cast<u64_le>(ms.count() / 1000), {}};
@@ -407,8 +408,10 @@ void Module::Interface::SetStandardUserSystemClockAutomaticCorrectionEnabled(
}
Module::Interface::Interface(std::shared_ptr<Module> time,
- std::shared_ptr<SharedMemory> shared_memory, const char* name)
- : ServiceFramework(name), time(std::move(time)), shared_memory(std::move(shared_memory)) {}
+ std::shared_ptr<SharedMemory> shared_memory, Core::System& system,
+ const char* name)
+ : ServiceFramework(name), time(std::move(time)), shared_memory(std::move(shared_memory)),
+ system(system) {}
Module::Interface::~Interface() = default;
@@ -416,9 +419,11 @@ void InstallInterfaces(Core::System& system) {
auto time = std::make_shared<Module>();
auto shared_mem = std::make_shared<SharedMemory>(system);
- std::make_shared<Time>(time, shared_mem, "time:a")->InstallAsService(system.ServiceManager());
- std::make_shared<Time>(time, shared_mem, "time:s")->InstallAsService(system.ServiceManager());
- std::make_shared<Time>(std::move(time), shared_mem, "time:u")
+ std::make_shared<Time>(time, shared_mem, system, "time:a")
+ ->InstallAsService(system.ServiceManager());
+ std::make_shared<Time>(time, shared_mem, system, "time:s")
+ ->InstallAsService(system.ServiceManager());
+ std::make_shared<Time>(std::move(time), shared_mem, system, "time:u")
->InstallAsService(system.ServiceManager());
}