SuperMarioOdysseyOnline/include/nn/nex/time.h

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;
};
};
};