diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt index 4cdfffecbf..57f578baee 100644 --- a/src/core/CMakeLists.txt +++ b/src/core/CMakeLists.txt @@ -135,6 +135,10 @@ add_library(core STATIC hle/service/sockets/sockets.h hle/service/time/time.cpp hle/service/time/time.h + hle/service/time/time_s.cpp + hle/service/time/time_s.h + hle/service/time/time_u.cpp + hle/service/time/time_u.h hle/service/vi/vi.cpp hle/service/vi/vi.h hle/service/vi/vi_m.cpp diff --git a/src/core/hle/service/time/time.cpp b/src/core/hle/service/time/time.cpp index 674b59509e..a48d7b3047 100644 --- a/src/core/hle/service/time/time.cpp +++ b/src/core/hle/service/time/time.cpp @@ -8,6 +8,8 @@ #include "core/hle/kernel/client_port.h" #include "core/hle/kernel/client_session.h" #include "core/hle/service/time/time.h" +#include "core/hle/service/time/time_s.h" +#include "core/hle/service/time/time_u.h" namespace Service { namespace Time { @@ -59,20 +61,20 @@ private: void ToCalendarTimeWithMyRule(Kernel::HLERequestContext& ctx) { IPC::RequestParser rp{ctx}; - u64 posixTime = rp.Pop(); + u64 posix_time = rp.Pop(); - LOG_WARNING(Service, "(STUBBED) called, posixTime=0x%016llX", posixTime); + LOG_WARNING(Service, "(STUBBED) called, posix_time=0x%016llX", posix_time); - CalendarTime calendarTime{2018, 1, 1, 0, 0, 0}; - CalendarAdditionalInfo additionalInfo{}; + CalendarTime calendar_time{2018, 1, 1, 0, 0, 0}; + CalendarAdditionalInfo additional_info{}; IPC::RequestBuilder rb{ctx, 10}; rb.Push(RESULT_SUCCESS); - rb.PushRaw(calendarTime); - rb.PushRaw(additionalInfo); + rb.PushRaw(calendar_time); + rb.PushRaw(additional_info); } }; -void TIME::GetStandardUserSystemClock(Kernel::HLERequestContext& ctx) { +void Module::Interface::GetStandardUserSystemClock(Kernel::HLERequestContext& ctx) { auto client_port = std::make_shared()->CreatePort(); auto session = client_port->Connect(); if (session.Succeeded()) { @@ -86,7 +88,7 @@ void TIME::GetStandardUserSystemClock(Kernel::HLERequestContext& ctx) { } } -void TIME::GetStandardNetworkSystemClock(Kernel::HLERequestContext& ctx) { +void Module::Interface::GetStandardNetworkSystemClock(Kernel::HLERequestContext& ctx) { auto client_port = std::make_shared()->CreatePort(); auto session = client_port->Connect(); if (session.Succeeded()) { @@ -100,7 +102,7 @@ void TIME::GetStandardNetworkSystemClock(Kernel::HLERequestContext& ctx) { } } -void TIME::GetStandardSteadyClock(Kernel::HLERequestContext& ctx) { +void Module::Interface::GetStandardSteadyClock(Kernel::HLERequestContext& ctx) { auto client_port = std::make_shared()->CreatePort(); auto session = client_port->Connect(); if (session.Succeeded()) { @@ -114,28 +116,20 @@ void TIME::GetStandardSteadyClock(Kernel::HLERequestContext& ctx) { } } -void TIME::GetTimeZoneService(Kernel::HLERequestContext& ctx) { +void Module::Interface::GetTimeZoneService(Kernel::HLERequestContext& ctx) { IPC::RequestBuilder rb{ctx, 2, 0, 0, 1}; rb.Push(RESULT_SUCCESS); rb.PushIpcInterface(); LOG_DEBUG(Service, "called"); } -TIME::TIME(const char* name) : ServiceFramework(name) { - static const FunctionInfo functions[] = { - {0x00000000, &TIME::GetStandardUserSystemClock, "GetStandardUserSystemClock"}, - {0x00000001, &TIME::GetStandardNetworkSystemClock, "GetStandardNetworkSystemClock"}, - {0x00000002, &TIME::GetStandardSteadyClock, "GetStandardSteadyClock"}, - {0x00000003, &TIME::GetTimeZoneService, "GetTimeZoneService"}, - }; - RegisterHandlers(functions); -} +Module::Interface::Interface(std::shared_ptr time, const char* name) + : ServiceFramework(name), time(std::move(time)) {} void InstallInterfaces(SM::ServiceManager& service_manager) { - std::make_shared