| 1 | #ifndef TIMER_SDL2_HPP_ | 
| 2 | #define TIMER_SDL2_HPP_ | 
| 3 |  | 
| 4 |  | 
| 5 | #include "IUpdateable.hpp" | 
| 6 | #include "ITimer.hpp" | 
| 7 |  | 
| 8 |  | 
| 9 | class TimerSDL2 : public ITimer | 
| 10 | { | 
| 11 | public: | 
| 12 | // TimerSDL2 | 
| 13 | TimerSDL2(); | 
| 14 | ~TimerSDL2() = default; | 
| 15 |  | 
| 16 | // IUpdateable | 
| 17 | bool Update() override; | 
| 18 |  | 
| 19 | // ITimer | 
| 20 | void Reset() override; | 
| 21 | void SetTimeout(uint64_t timeout_ms) override; | 
| 22 | void Start() override; | 
| 23 | void Stop() override; | 
| 24 | bool IsExpired() override; | 
| 25 | uint64_t *GetGlobalTimePointer() override; | 
| 26 |  | 
| 27 | private: | 
| 28 | static uint64_t s_globalCounterMs; | 
| 29 | static bool s_globalCounterInitialized; | 
| 30 |  | 
| 31 | uint64_t m_instanceStartTimeMs; | 
| 32 | uint64_t m_instanceTimeoutMs; | 
| 33 | bool m_instanceRunning; | 
| 34 | bool m_instanceExpired; | 
| 35 | }; | 
| 36 |  | 
| 37 |  | 
| 38 | #endif /* TIMER_SDL2_HPP_ */ | 
| 39 |  |