# 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()
     {