mirror of
https://github.com/CraftyBoss/SuperMarioOdysseyOnline.git
synced 2024-11-25 12:45:17 +00:00
54 lines
No EOL
1.2 KiB
C++
54 lines
No EOL
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;
|
|
};
|
|
};
|
|
}; |