cec: and now proper predicates
[deb_libcec.git] / src / lib / platform / util / timeutils.h
index 12c2145844489ab3ab84f4f84af30814d81fbc7c..367c80bbbc3c1db707046e2efec38f4d1a3f9b6d 100644 (file)
@@ -2,7 +2,7 @@
 /*
  * This file is part of the libCEC(R) library.
  *
- * libCEC(R) is Copyright (C) 2011 Pulse-Eight Limited.  All rights reserved.
+ * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited.  All rights reserved.
  * libCEC(R) is an original work, containing original code.
  *
  * libCEC(R) is a trademark of Pulse-Eight Limited.
@@ -103,4 +103,20 @@ namespace PLATFORM
   {
     return (T)GetTimeMs() / (T)1000.0;
   }
+
+  class CTimeout
+  {
+  public:
+    CTimeout(uint32_t iTime) :
+      m_iTarget(GetTimeMs() + iTime) {}
+
+    uint64_t TimeLeft(void) const
+    {
+      uint64_t iNow = GetTimeMs();
+      return (iNow > m_iTarget) ? 0 : m_iTarget - iNow;
+    }
+
+  private:
+    uint64_t m_iTarget;
+  };
 };