# HG changeset patch # User Chris Cannam # Date 1538060014 -3600 # Node ID 71207822a7e021d5d386f5409caa739dd84782a7 # Parent a53bf95f0bea3b21d7a9073a8cdf44304338c0ff Provide fromMicroseconds (and test it) diff -r a53bf95f0bea -r 71207822a7e0 base/RealTime.h --- a/base/RealTime.h Thu Sep 27 15:19:39 2018 +0100 +++ b/base/RealTime.h Thu Sep 27 15:53:34 2018 +0100 @@ -58,6 +58,7 @@ static RealTime fromSeconds(double sec); static RealTime fromMilliseconds(int msec); + static RealTime fromMicroseconds(int usec); static RealTime fromTimeval(const struct timeval &); static RealTime fromXsdDuration(std::string xsdd); diff -r a53bf95f0bea -r 71207822a7e0 base/RealTimeSV.cpp --- a/base/RealTimeSV.cpp Thu Sep 27 15:19:39 2018 +0100 +++ b/base/RealTimeSV.cpp Thu Sep 27 15:53:34 2018 +0100 @@ -67,6 +67,12 @@ } RealTime +RealTime::fromMicroseconds(int usec) +{ + return RealTime(usec / 1000000, (usec % 1000000) * 1000); +} + +RealTime RealTime::fromTimeval(const struct timeval &tv) { return RealTime(int(tv.tv_sec), int(tv.tv_usec * 1000)); diff -r a53bf95f0bea -r 71207822a7e0 base/test/TestOurRealTime.h --- a/base/test/TestOurRealTime.h Thu Sep 27 15:19:39 2018 +0100 +++ b/base/test/TestOurRealTime.h Thu Sep 27 15:53:34 2018 +0100 @@ -138,6 +138,20 @@ QCOMPARE(RealTime::fromMilliseconds(-1000), RealTime(-1, 0)); QCOMPARE(RealTime::fromMilliseconds(-1500), RealTime(-1, -ONE_BILLION/2)); } + + void fromMicroseconds() + { + QCOMPARE(RealTime::fromMicroseconds(0), RealTime(0, 0)); + QCOMPARE(RealTime::fromMicroseconds(500000), RealTime(0, ONE_BILLION/2)); + QCOMPARE(RealTime::fromMicroseconds(1000000), RealTime(1, 0)); + QCOMPARE(RealTime::fromMicroseconds(1500000), RealTime(1, ONE_BILLION/2)); + + QCOMPARE(RealTime::fromMicroseconds(-0), RealTime(0, 0)); + QCOMPARE(RealTime::fromMicroseconds(-500000), RealTime(0, -ONE_BILLION/2)); + QCOMPARE(RealTime::fromMicroseconds(-1000000), RealTime(-1, 0)); + QCOMPARE(RealTime::fromMicroseconds(-1500000), RealTime(-1, -ONE_BILLION/2)); + QCOMPARE(RealTime::fromMicroseconds(13500000), RealTime(13, ONE_BILLION/2)); + } void fromTimeval() {