diff options
Diffstat (limited to 'Ryujinx.HLE/HOS/Services/Time/Clock/StandardNetworkSystemClockCore.cs')
| -rw-r--r-- | Ryujinx.HLE/HOS/Services/Time/Clock/StandardNetworkSystemClockCore.cs | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/Ryujinx.HLE/HOS/Services/Time/Clock/StandardNetworkSystemClockCore.cs b/Ryujinx.HLE/HOS/Services/Time/Clock/StandardNetworkSystemClockCore.cs index 59bc822c..c00f460e 100644 --- a/Ryujinx.HLE/HOS/Services/Time/Clock/StandardNetworkSystemClockCore.cs +++ b/Ryujinx.HLE/HOS/Services/Time/Clock/StandardNetworkSystemClockCore.cs @@ -1,4 +1,5 @@ -using Ryujinx.HLE.HOS.Kernel.Threading; +using System; +using Ryujinx.HLE.HOS.Kernel.Threading; namespace Ryujinx.HLE.HOS.Services.Time.Clock { @@ -6,6 +7,7 @@ namespace Ryujinx.HLE.HOS.Services.Time.Clock { private SteadyClockCore _steadyClockCore; private SystemClockContext _context; + private TimeSpanType _standardNetworkClockSufficientAccuracy; private static StandardNetworkSystemClockCore instance; @@ -27,7 +29,8 @@ namespace Ryujinx.HLE.HOS.Services.Time.Clock _steadyClockCore = steadyClockCore; _context = new SystemClockContext(); - _context.SteadyTimePoint.ClockSourceId = steadyClockCore.GetClockSourceId(); + _context.SteadyTimePoint.ClockSourceId = steadyClockCore.GetClockSourceId(); + _standardNetworkClockSufficientAccuracy = new TimeSpanType(0); } public override ResultCode Flush(SystemClockContext context) @@ -55,5 +58,25 @@ namespace Ryujinx.HLE.HOS.Services.Time.Clock return ResultCode.Success; } + + public bool IsStandardNetworkSystemClockAccuracySufficient(KThread thread) + { + SteadyClockCore steadyClockCore = GetSteadyClockCore(); + SteadyClockTimePoint currentTimePoint = steadyClockCore.GetCurrentTimePoint(thread); + + bool isStandardNetworkClockSufficientAccuracy = false; + + if (_context.SteadyTimePoint.GetSpanBetween(currentTimePoint, out long outSpan) == ResultCode.Success) + { + isStandardNetworkClockSufficientAccuracy = outSpan * 1000000000 < _standardNetworkClockSufficientAccuracy.NanoSeconds; + } + + return isStandardNetworkClockSufficientAccuracy; + } + + public void SetStandardNetworkClockSufficientAccuracy(TimeSpanType standardNetworkClockSufficientAccuracy) + { + _standardNetworkClockSufficientAccuracy = standardNetworkClockSufficientAccuracy; + } } } |
