using Ryujinx.Common; using Ryujinx.HLE.HOS.Kernel.Threading; namespace Ryujinx.HLE.HOS.Services.Time.Clock { class TickBasedSteadyClockCore : SteadyClockCore { private static TickBasedSteadyClockCore _instance; public static TickBasedSteadyClockCore Instance { get { if (_instance == null) { _instance = new TickBasedSteadyClockCore(); } return _instance; } } private TickBasedSteadyClockCore() {} public override SteadyClockTimePoint GetTimePoint(KThread thread) { SteadyClockTimePoint result = new SteadyClockTimePoint { TimePoint = 0, ClockSourceId = GetClockSourceId() }; TimeSpanType ticksTimeSpan = TimeSpanType.FromTicks(thread.Context.CntpctEl0, thread.Context.CntfrqEl0); result.TimePoint = ticksTimeSpan.ToSeconds(); return result; } } }