X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Flib%2Fplatform%2Futil%2Ftimeutils.h;h=b886f88a1cd58511b5cf03d9088af3456f6d54ac;hb=0eb7639ed29e68a004e3eee32d53395d98252657;hp=367c80bbbc3c1db707046e2efec38f4d1a3f9b6d;hpb=41c655b6ba019bd5c342be9fcfa8c34fad0178ef;p=deb_libcec.git diff --git a/src/lib/platform/util/timeutils.h b/src/lib/platform/util/timeutils.h index 367c80b..b886f88 100644 --- a/src/lib/platform/util/timeutils.h +++ b/src/lib/platform/util/timeutils.h @@ -92,9 +92,9 @@ namespace PLATFORM } return -1; #else - timeval time; - gettimeofday(&time, NULL); - return (int64_t) (time.tv_sec * 1000 + time.tv_usec / 1000); + timespec time; + clock_gettime(CLOCK_MONOTONIC, &time); + return (int64_t)time.tv_sec * 1000 + time.tv_nsec / 1000000; #endif } @@ -107,13 +107,16 @@ namespace PLATFORM class CTimeout { public: - CTimeout(uint32_t iTime) : - m_iTarget(GetTimeMs() + iTime) {} + CTimeout(void) : m_iTarget(0) {} + CTimeout(uint32_t iTimeout) { Init(iTimeout); } - uint64_t TimeLeft(void) const + bool IsSet(void) const { return m_iTarget > 0; } + void Init(uint32_t iTimeout) { m_iTarget = GetTimeMs() + iTimeout; } + + uint32_t TimeLeft(void) const { uint64_t iNow = GetTimeMs(); - return (iNow > m_iTarget) ? 0 : m_iTarget - iNow; + return (iNow > m_iTarget) ? 0 : (uint32_t)(m_iTarget - iNow); } private: