pcsx2/common/Timer.h

44 lines
1.1 KiB
C
Raw Permalink Normal View History

// SPDX-FileCopyrightText: 2002-2023 PCSX2 Dev Team
// SPDX-License-Identifier: LGPL-3.0+
2021-09-14 09:09:09 +00:00
#pragma once
#include <cstdint>
namespace Common
{
class Timer
{
public:
using Value = std::uint64_t;
Timer();
static Value GetCurrentValue();
static double ConvertValueToSeconds(Value value);
static double ConvertValueToMilliseconds(Value value);
static double ConvertValueToNanoseconds(Value value);
static Value ConvertSecondsToValue(double s);
static Value ConvertMillisecondsToValue(double s);
static Value ConvertNanosecondsToValue(double ns);
void Reset();
void ResetTo(Value value) { m_tvStartValue = value; }
Value GetStartValue() const { return m_tvStartValue; }
double GetTimeSeconds() const;
double GetTimeMilliseconds() const;
double GetTimeNanoseconds() const;
double GetTimeSecondsAndReset();
double GetTimeMillisecondsAndReset();
double GetTimeNanosecondsAndReset();
2023-09-17 10:16:25 +00:00
bool ResetIfSecondsPassed(double s);
bool ResetIfMillisecondsPassed(double s);
bool ResetIfNanosecondsPassed(double s);
2021-09-14 09:09:09 +00:00
private:
Value m_tvStartValue;
};
} // namespace Common