Update StaticService to 9.0.0
This commit is contained in:
parent
f0faf9bfe7
commit
b4e5311902
2 changed files with 63 additions and 2 deletions
|
@ -92,6 +92,15 @@ namespace Ryujinx.HLE.HOS.Services.Time.Clock
|
||||||
public void SetAutomaticCorrectionUpdatedTime(SteadyClockTimePoint steadyClockTimePoint)
|
public void SetAutomaticCorrectionUpdatedTime(SteadyClockTimePoint steadyClockTimePoint)
|
||||||
{
|
{
|
||||||
_autoCorrectionTime = steadyClockTimePoint;
|
_autoCorrectionTime = steadyClockTimePoint;
|
||||||
|
}
|
||||||
|
|
||||||
|
public SteadyClockTimePoint GetAutomaticCorrectionUpdatedTime()
|
||||||
|
{
|
||||||
|
return _autoCorrectionTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SignalAutomaticCorrectionEvent()
|
||||||
|
{
|
||||||
_autoCorrectionEvent.WritableEvent.Signal();
|
_autoCorrectionEvent.WritableEvent.Signal();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -102,6 +102,22 @@ namespace Ryujinx.HLE.HOS.Services.Time
|
||||||
return ResultCode.Success;
|
return ResultCode.Success;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Command(50)] // 4.0.0+
|
||||||
|
// SetStandardSteadyClockInternalOffset(nn::TimeSpanType internal_offset)
|
||||||
|
public ResultCode SetStandardSteadyClockInternalOffset(ServiceCtx context)
|
||||||
|
{
|
||||||
|
// This is only implemented in glue's StaticService.
|
||||||
|
return ResultCode.NotImplemented;
|
||||||
|
}
|
||||||
|
|
||||||
|
[Command(51)] // 9.0.0+
|
||||||
|
// GetStandardSteadyClockRtcValue() -> u64
|
||||||
|
public ResultCode GetStandardSteadyClockRtcValue(ServiceCtx context)
|
||||||
|
{
|
||||||
|
// This is only implemented in glue's StaticService.
|
||||||
|
return ResultCode.NotImplemented;
|
||||||
|
}
|
||||||
|
|
||||||
[Command(100)]
|
[Command(100)]
|
||||||
// IsStandardUserSystemClockAutomaticCorrectionEnabled() -> bool
|
// IsStandardUserSystemClockAutomaticCorrectionEnabled() -> bool
|
||||||
public ResultCode IsStandardUserSystemClockAutomaticCorrectionEnabled(ServiceCtx context)
|
public ResultCode IsStandardUserSystemClockAutomaticCorrectionEnabled(ServiceCtx context)
|
||||||
|
@ -137,7 +153,27 @@ namespace Ryujinx.HLE.HOS.Services.Time
|
||||||
|
|
||||||
bool autoCorrectionEnabled = context.RequestData.ReadBoolean();
|
bool autoCorrectionEnabled = context.RequestData.ReadBoolean();
|
||||||
|
|
||||||
return userClock.SetAutomaticCorrectionEnabled(context.Thread, autoCorrectionEnabled);
|
ResultCode result = userClock.SetAutomaticCorrectionEnabled(context.Thread, autoCorrectionEnabled);
|
||||||
|
|
||||||
|
if (result == ResultCode.Success)
|
||||||
|
{
|
||||||
|
_timeManager.SharedMemory.SetAutomaticCorrectionEnabled(autoCorrectionEnabled);
|
||||||
|
|
||||||
|
SteadyClockTimePoint currentTimePoint = userClock.GetSteadyClockCore().GetCurrentTimePoint(context.Thread);
|
||||||
|
|
||||||
|
userClock.SetAutomaticCorrectionUpdatedTime(currentTimePoint);
|
||||||
|
userClock.SignalAutomaticCorrectionEvent();
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
[Command(102)] // 5.0.0+
|
||||||
|
// GetStandardUserSystemClockInitialYear() -> u32
|
||||||
|
public ResultCode GetStandardUserSystemClockInitialYear(ServiceCtx context)
|
||||||
|
{
|
||||||
|
// This is only implemented in glue's StaticService.
|
||||||
|
return ResultCode.NotImplemented;
|
||||||
}
|
}
|
||||||
|
|
||||||
[Command(200)] // 3.0.0+
|
[Command(200)] // 3.0.0+
|
||||||
|
@ -149,6 +185,22 @@ namespace Ryujinx.HLE.HOS.Services.Time
|
||||||
return ResultCode.Success;
|
return ResultCode.Success;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Command(201)] // 6.0.0+
|
||||||
|
// GetStandardUserSystemClockAutomaticCorrectionUpdatedTime() -> nn::time::SteadyClockTimePoint
|
||||||
|
public ResultCode GetStandardUserSystemClockAutomaticCorrectionUpdatedTime(ServiceCtx context)
|
||||||
|
{
|
||||||
|
StandardUserSystemClockCore userClock = _timeManager.StandardUserSystemClock;
|
||||||
|
|
||||||
|
if (!userClock.IsInitialized())
|
||||||
|
{
|
||||||
|
return ResultCode.UninitializedClock;
|
||||||
|
}
|
||||||
|
|
||||||
|
context.ResponseData.WriteStruct(userClock.GetAutomaticCorrectionUpdatedTime());
|
||||||
|
|
||||||
|
return ResultCode.Success;
|
||||||
|
}
|
||||||
|
|
||||||
[Command(300)] // 4.0.0+
|
[Command(300)] // 4.0.0+
|
||||||
// CalculateMonotonicSystemClockBaseTimePoint(nn::time::SystemClockContext) -> s64
|
// CalculateMonotonicSystemClockBaseTimePoint(nn::time::SystemClockContext) -> s64
|
||||||
public ResultCode CalculateMonotonicSystemClockBaseTimePoint(ServiceCtx context)
|
public ResultCode CalculateMonotonicSystemClockBaseTimePoint(ServiceCtx context)
|
||||||
|
@ -172,7 +224,7 @@ namespace Ryujinx.HLE.HOS.Services.Time
|
||||||
|
|
||||||
context.ResponseData.Write(baseTimePoint);
|
context.ResponseData.Write(baseTimePoint);
|
||||||
|
|
||||||
result = 0;
|
result = ResultCode.Success;
|
||||||
}
|
}
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue