mirror of
https://github.com/SysRay/psOff_public.git
synced 2024-10-07 03:43:54 +00:00
115 lines
1.9 KiB
C++
115 lines
1.9 KiB
C++
#pragma once
|
|
#include "modules_include/common.h"
|
|
#include "utility/utility.h"
|
|
|
|
class ITimer {
|
|
CLASS_NO_COPY(ITimer);
|
|
|
|
protected:
|
|
ITimer() = default;
|
|
|
|
public:
|
|
/**
|
|
* @brief init the timer. Sets start time for relative time
|
|
*
|
|
*/
|
|
virtual void init() = 0;
|
|
|
|
/**
|
|
* @brief Get the relative ticks
|
|
*
|
|
* @return uint64_t
|
|
*/
|
|
virtual uint64_t getTicks() = 0;
|
|
|
|
/**
|
|
* @brief Get the relative Time in secounds
|
|
*
|
|
* @return double
|
|
*/
|
|
virtual double getTimeS() = 0;
|
|
|
|
/**
|
|
* @brief Get the relative Time in ms
|
|
*
|
|
* @return double
|
|
*/
|
|
virtual double getTimeMs() = 0;
|
|
|
|
/**
|
|
* @brief Get the absolute ticks
|
|
*
|
|
* @return uint64_t
|
|
*/
|
|
virtual uint64_t queryPerformance() = 0;
|
|
|
|
/**
|
|
* @brief Pauses the relative timer
|
|
*
|
|
*/
|
|
virtual void pause() = 0;
|
|
|
|
/**
|
|
* @brief Resumes the relative timer
|
|
*
|
|
*/
|
|
virtual void resume() = 0;
|
|
|
|
/**
|
|
* @brief Get the Frequency of the ticks
|
|
*
|
|
* @return uint64_t
|
|
*/
|
|
virtual uint64_t getFrequency() = 0;
|
|
|
|
/**
|
|
* @brief Check if paused
|
|
*
|
|
* @return true
|
|
* @return false
|
|
*/
|
|
virtual bool getPaused() = 0;
|
|
|
|
/**
|
|
* @brief Get the Time from clockId
|
|
*
|
|
* @param id
|
|
* @param tp
|
|
* @return int getErr()
|
|
*/
|
|
virtual int getTime(SceKernelClockid id, SceKernelTimespec* tp) = 0;
|
|
|
|
/**
|
|
* @brief Get the Time Resolution from clockId
|
|
*
|
|
* @param id
|
|
* @param tp
|
|
* @return int getErr()
|
|
*/
|
|
virtual int getTimeRes(SceKernelClockid id, SceKernelTimespec* tp) = 0;
|
|
|
|
/**
|
|
* @brief Get the timeOfDay
|
|
*
|
|
* @param tp
|
|
* @return int getErr()
|
|
*/
|
|
virtual int getTimeofDay(SceKernelTimeval* tp) = 0;
|
|
|
|
/**
|
|
* @brief Get the time zone info
|
|
*
|
|
*/
|
|
virtual int getTimeZone(SceKernelTimezone* tz) = 0;
|
|
};
|
|
|
|
#if defined(__APICALL_EXTERN)
|
|
#define __APICALL __declspec(dllexport)
|
|
#elif defined(__APICALL_IMPORT)
|
|
#define __APICALL __declspec(dllimport)
|
|
#else
|
|
#define __APICALL
|
|
#endif
|
|
__APICALL ITimer& accessTimer();
|
|
#undef __APICALL
|