mirror of
https://github.com/CraftyBoss/SuperMarioOdysseyOnline.git
synced 2024-11-30 23:23:07 +00:00
54 lines
1.2 KiB
C
54 lines
1.2 KiB
C
|
/**
|
||
|
* @file time.h
|
||
|
* @brief NEX Time Library.
|
||
|
*/
|
||
|
|
||
|
#pragma once
|
||
|
|
||
|
#include "types.h"
|
||
|
|
||
|
namespace nn
|
||
|
{
|
||
|
namespace nex
|
||
|
{
|
||
|
class TimeProvider;
|
||
|
|
||
|
class Time
|
||
|
{
|
||
|
public:
|
||
|
static void Reset();
|
||
|
static void RegisterTimeProvider(TimeProvider *provider);
|
||
|
|
||
|
Time Multiply(f32) const;
|
||
|
Time Divide(f32) const;
|
||
|
Time Scale(f32) const;
|
||
|
|
||
|
static Time ConvertTimeoutToDeadline(u32 timeout);
|
||
|
static u32 ConvertDeadlineToTimeout(Time deadline);
|
||
|
|
||
|
u64 mCurTime; // _0
|
||
|
|
||
|
static u64* s_pfGetSessionTime; // some sort of callback?
|
||
|
|
||
|
};
|
||
|
|
||
|
class SystemClock
|
||
|
{
|
||
|
public:
|
||
|
SystemClock();
|
||
|
|
||
|
virtual ~SystemClock();
|
||
|
|
||
|
static void RegisterTimeProvider(nn::nex::TimeProvider *, bool);
|
||
|
static void ApplyCorrection(Time curTime, Time newTime);
|
||
|
static Time ProtectedGetTime();
|
||
|
static Time GetTimeImpl(bool);
|
||
|
static Time GetTimeImplCorrectless();
|
||
|
static void Reset();
|
||
|
|
||
|
static nn::nex::TimeProvider* s_pTimeProvider;
|
||
|
static bool s_needCorrection;
|
||
|
static bool s_tiCorrection;
|
||
|
};
|
||
|
};
|
||
|
};
|