]> code.delx.au - pulseaudio/commitdiff
add new API pa_rtclock_from_wallclock()
authorLennart Poettering <lennart@poettering.net>
Fri, 11 Apr 2008 16:21:13 +0000 (16:21 +0000)
committerLennart Poettering <lennart@poettering.net>
Fri, 11 Apr 2008 16:21:13 +0000 (16:21 +0000)
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/glitch-free@2234 fefdeb5f-60dc-0310-8127-8f9354f1896f

src/pulsecore/rtclock.c
src/pulsecore/rtclock.h

index 07d776e49699c9a8531691d0673e3261f77f0b37..e74e52431487d2cdf4a7cd791c41f1068dc64c48 100644 (file)
@@ -96,3 +96,24 @@ pa_usec_t pa_rtclock_usec(void) {
 
     return pa_timeval_load(pa_rtclock_get(&tv));
 }
+
+struct timeval* pa_rtclock_from_wallclock(struct timeval *tv) {
+
+#ifdef HAVE_CLOCK_GETTIME
+    struct timeval wc_now, rt_now;
+
+    pa_gettimeofday(&wc_now);
+    pa_rtclock_get(&rt_now);
+
+    pa_assert(tv);
+
+    if (pa_timeval_cmp(&wc_now, tv) < 0)
+        pa_timeval_add(&rt_now, pa_timeval_diff(tv, &wc_now));
+    else
+        pa_timeval_sub(&rt_now, pa_timeval_diff(&wc_now, tv));
+
+    *tv = rt_now;
+#endif
+
+    return tv;
+}
index f0360af3428e22232f9a97881901124d528b0a8c..f68ad761a0333a79cb68ade664816c35b4a9690d 100644 (file)
@@ -40,4 +40,6 @@ pa_bool_t pa_rtclock_hrtimer(void);
 /* timer with a resolution better than this are considered high-resolution */
 #define PA_HRTIMER_THRESHOLD_USEC 10
 
+struct timeval* pa_rtclock_from_wallclock(struct timeval *tv);
+
 #endif