forked from dolphin-emu/dolphin
		
	
		
			
				
	
	
		
			53 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| // Copyright 2008 Dolphin Emulator Project
 | |
| // Licensed under GPLv2+
 | |
| // Refer to the license.txt file included.
 | |
| 
 | |
| #pragma once
 | |
| 
 | |
| #include <string>
 | |
| #include "Common/CommonTypes.h"
 | |
| 
 | |
| namespace Common
 | |
| {
 | |
| class Timer
 | |
| {
 | |
| public:
 | |
|   Timer();
 | |
| 
 | |
|   void Start();
 | |
|   void Stop();
 | |
|   void Update();
 | |
| 
 | |
|   // The time difference is always returned in milliseconds, regardless of alternative internal
 | |
|   // representation
 | |
|   u64 GetTimeDifference();
 | |
|   void AddTimeDifference();
 | |
| 
 | |
|   static void IncreaseResolution();
 | |
|   static void RestoreResolution();
 | |
|   static u64 GetTimeSinceJan1970();
 | |
|   static u64 GetLocalTimeSinceJan1970();
 | |
|   // Returns a timestamp with decimals for precise time comparisons
 | |
|   static double GetDoubleTime();
 | |
| 
 | |
|   static std::string GetTimeFormatted();
 | |
|   // Formats a timestamp from GetDoubleTime() into a date and time string
 | |
|   static std::string GetDateTimeFormatted(double time);
 | |
|   std::string GetTimeElapsedFormatted() const;
 | |
|   u64 GetTimeElapsed();
 | |
| 
 | |
|   static u32 GetTimeMs();
 | |
|   static u64 GetTimeUs();
 | |
| 
 | |
|   // Arbitrarily chosen value (38 years) that is subtracted in GetDoubleTime()
 | |
|   // to increase sub-second precision of the resulting double timestamp
 | |
|   static const int DOUBLE_TIME_OFFSET = (38 * 365 * 24 * 60 * 60);
 | |
| 
 | |
| private:
 | |
|   u64 m_LastTime;
 | |
|   u64 m_StartTime;
 | |
|   bool m_Running;
 | |
| };
 | |
| 
 | |
| }  // Namespace Common
 |