mirror of
https://github.com/switchbrew/libnx.git
synced 2025-06-21 12:32:40 +02:00
Initialize time by using TimeServiceType/__nx_time_service_type, with the default now being User.
This commit is contained in:
parent
1f792cd92f
commit
fa27331045
@ -9,6 +9,15 @@
|
||||
#include "../types.h"
|
||||
#include "../sf/service.h"
|
||||
|
||||
/// Values for __nx_time_service_type.
|
||||
typedef enum {
|
||||
TimeServiceType_User = 0, ///< Default. Initializes time:u.
|
||||
TimeServiceType_Menu = 1, ///< Initializes time:a
|
||||
TimeServiceType_System = 2, ///< Initializes time:s.
|
||||
TimeServiceType_Repair = 3, ///< Initializes time:r. Only available with [9.0.0+].
|
||||
TimeServiceType_SystemUser = 4, ///< Initializes time:su. Only available with [9.0.0+].
|
||||
} TimeServiceType;
|
||||
|
||||
/// Time clock type.
|
||||
typedef enum {
|
||||
TimeType_UserSystemClock,
|
||||
|
@ -1,6 +1,9 @@
|
||||
#define NX_SERVICE_ASSUME_NON_DOMAIN
|
||||
#include "service_guard.h"
|
||||
#include "services/time.h"
|
||||
#include "runtime/hosversion.h"
|
||||
|
||||
__attribute__((weak)) TimeServiceType __nx_time_service_type = TimeServiceType_User;
|
||||
|
||||
static Service g_timeSrv;
|
||||
static Service g_timeUserSystemClock;
|
||||
@ -13,11 +16,30 @@ static Result _timeCmdGetSession(Service* srv, Service* srv_out, u32 cmd_id);
|
||||
NX_GENERATE_SERVICE_GUARD(time);
|
||||
|
||||
Result _timeInitialize(void) {
|
||||
Result rc=0;
|
||||
|
||||
rc = smGetService(&g_timeSrv, "time:s");
|
||||
if (R_FAILED(rc))
|
||||
Result rc = MAKERESULT(Module_Libnx, LibnxError_BadInput);
|
||||
switch (__nx_time_service_type) {
|
||||
case TimeServiceType_User:
|
||||
rc = smGetService(&g_timeSrv, "time:u");
|
||||
break;
|
||||
case TimeServiceType_Menu:
|
||||
rc = smGetService(&g_timeSrv, "time:a");
|
||||
break;
|
||||
case TimeServiceType_System:
|
||||
rc = smGetService(&g_timeSrv, "time:s");
|
||||
break;
|
||||
case TimeServiceType_Repair:
|
||||
if (hosversionBefore(9,0,0))
|
||||
return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer);
|
||||
else
|
||||
rc = smGetService(&g_timeSrv, "time:r");
|
||||
break;
|
||||
case TimeServiceType_SystemUser:
|
||||
if (hosversionBefore(9,0,0))
|
||||
return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer);
|
||||
else
|
||||
rc = smGetService(&g_timeSrv, "time:su");
|
||||
break;
|
||||
}
|
||||
|
||||
if (R_FAILED(rc))
|
||||
return rc;
|
||||
|
Loading…
Reference in New Issue
Block a user