Some things for time:* (#211)
- Fully implement ISystemClock - Implement ISteadyClock 1.0 cmds - Add cmd 300 to IStaticService - Add EphemeralNetwork to SystemClockType
This commit is contained in:
parent
e913d56fdc
commit
0c96e22d40
4 changed files with 123 additions and 10 deletions
|
@ -1,4 +1,5 @@
|
|||
using Ryujinx.HLE.OsHle.Ipc;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Ryujinx.HLE.OsHle.Services.Time
|
||||
|
@ -9,15 +10,18 @@ namespace Ryujinx.HLE.OsHle.Services.Time
|
|||
|
||||
public override IReadOnlyDictionary<int, ServiceProcessRequest> Commands => m_Commands;
|
||||
|
||||
private static readonly DateTime StartupDate = DateTime.UtcNow;
|
||||
|
||||
public IStaticService()
|
||||
{
|
||||
m_Commands = new Dictionary<int, ServiceProcessRequest>()
|
||||
{
|
||||
{ 0, GetStandardUserSystemClock },
|
||||
{ 1, GetStandardNetworkSystemClock },
|
||||
{ 2, GetStandardSteadyClock },
|
||||
{ 3, GetTimeZoneService },
|
||||
{ 4, GetStandardLocalSystemClock }
|
||||
{ 0, GetStandardUserSystemClock },
|
||||
{ 1, GetStandardNetworkSystemClock },
|
||||
{ 2, GetStandardSteadyClock },
|
||||
{ 3, GetTimeZoneService },
|
||||
{ 4, GetStandardLocalSystemClock },
|
||||
{ 300, CalculateMonotonicSystemClockBaseTimePoint }
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -56,5 +60,15 @@ namespace Ryujinx.HLE.OsHle.Services.Time
|
|||
return 0;
|
||||
}
|
||||
|
||||
public long CalculateMonotonicSystemClockBaseTimePoint(ServiceCtx Context)
|
||||
{
|
||||
long TimeOffset = (long)(DateTime.UtcNow - StartupDate).TotalSeconds;
|
||||
long SystemClockContextEpoch = Context.RequestData.ReadInt64();
|
||||
|
||||
Context.ResponseData.Write(TimeOffset + SystemClockContextEpoch);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue