diff options
author | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2019-09-14 03:40:47 +0300 |
---|---|---|
committer | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2019-09-14 15:05:45 +0300 |
commit | cecfeed61e8bcb4b53c2ed8e1b26d8c8af38b8e3 (patch) | |
tree | 783fca9b32651efdca054ad152528b40f2566a74 /test/timer.cpp | |
parent | 98dff063f2f497434978a46f9a676307365fd878 (diff) |
libcamera: Switch to the std::chrono API
Replace the clock_gettime()-based API with durations expressed as
integers with the std::chrono API.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
Diffstat (limited to 'test/timer.cpp')
-rw-r--r-- | test/timer.cpp | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/test/timer.cpp b/test/timer.cpp index c30709d4..af922cb3 100644 --- a/test/timer.cpp +++ b/test/timer.cpp @@ -5,6 +5,7 @@ * timer.cpp - Timer test */ +#include <chrono> #include <iostream> #include <libcamera/event_dispatcher.h> @@ -28,28 +29,28 @@ public: void start(int msec) { interval_ = msec; - clock_gettime(CLOCK_MONOTONIC, &start_); - expiration_ = { 0, 0 }; + start_ = std::chrono::steady_clock::now(); + expiration_ = std::chrono::steady_clock::time_point(); Timer::start(msec); } int jitter() { - int duration = (expiration_.tv_sec - start_.tv_sec) * 1000; - duration += (expiration_.tv_nsec - start_.tv_nsec) / 1000000; - return abs(duration - interval_); + std::chrono::steady_clock::duration duration = expiration_ - start_; + int msecs = std::chrono::duration_cast<std::chrono::milliseconds>(duration).count(); + return abs(msecs - interval_); } private: void timeoutHandler(Timer *timer) { - clock_gettime(CLOCK_MONOTONIC, &expiration_); + expiration_ = std::chrono::steady_clock::now(); } int interval_; - struct timespec start_; - struct timespec expiration_; + std::chrono::steady_clock::time_point start_; + std::chrono::steady_clock::time_point expiration_; }; class TimerTest : public Test |