summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/pulse/def.h1
-rw-r--r--src/pulse/mainloop-api.h1
-rw-r--r--src/pulse/rtclock.c2
-rw-r--r--src/pulse/timeval.c15
-rw-r--r--src/pulsecore/authkey.c1
-rw-r--r--src/pulsecore/core-rtclock.c30
-rw-r--r--src/pulsecore/core-util.c2
-rw-r--r--src/pulsecore/memblockq.c2
-rw-r--r--src/pulsecore/tagstruct.h1
9 files changed, 36 insertions, 19 deletions
diff --git a/src/pulse/def.h b/src/pulse/def.h
index 4a8da137..ac4ae538 100644
--- a/src/pulse/def.h
+++ b/src/pulse/def.h
@@ -25,7 +25,6 @@
#include <inttypes.h>
#include <sys/time.h>
-#include <time.h>
#include <pulse/cdecl.h>
#include <pulse/sample.h>
diff --git a/src/pulse/mainloop-api.h b/src/pulse/mainloop-api.h
index aa0d5e73..0ce2219b 100644
--- a/src/pulse/mainloop-api.h
+++ b/src/pulse/mainloop-api.h
@@ -24,7 +24,6 @@
***/
#include <sys/time.h>
-#include <time.h>
#include <pulse/cdecl.h>
#include <pulse/sample.h>
diff --git a/src/pulse/rtclock.c b/src/pulse/rtclock.c
index 49ff6aae..baa0f3a5 100644
--- a/src/pulse/rtclock.c
+++ b/src/pulse/rtclock.c
@@ -23,10 +23,10 @@
#include <config.h>
#endif
+#include <pulse/timeval.h>
#include <pulsecore/core-rtclock.h>
#include "rtclock.h"
-#include "timeval.h"
pa_usec_t pa_rtclock_now(void) {
struct timeval tv;
diff --git a/src/pulse/timeval.c b/src/pulse/timeval.c
index c4a08419..10ba322f 100644
--- a/src/pulse/timeval.c
+++ b/src/pulse/timeval.c
@@ -37,29 +37,22 @@
#include "timeval.h"
struct timeval *pa_gettimeofday(struct timeval *tv) {
-#ifdef HAVE_GETTIMEOFDAY
pa_assert(tv);
- pa_assert_se(gettimeofday(tv, NULL) == 0);
- return tv;
-#elif defined(OS_IS_WIN32)
+#if defined(OS_IS_WIN32)
/*
* Copied from implementation by Steven Edwards (LGPL).
* Found on wine mailing list.
*/
-
#if defined(_MSC_VER) || defined(__BORLANDC__)
#define EPOCHFILETIME (116444736000000000i64)
#else
#define EPOCHFILETIME (116444736000000000LL)
#endif
-
FILETIME ft;
LARGE_INTEGER li;
int64_t t;
- pa_assert(tv);
-
GetSystemTimeAsFileTime(&ft);
li.LowPart = ft.dwLowDateTime;
li.HighPart = ft.dwHighDateTime;
@@ -68,11 +61,13 @@ struct timeval *pa_gettimeofday(struct timeval *tv) {
t /= 10; /* In microseconds */
tv->tv_sec = (time_t) (t / PA_USEC_PER_SEC);
tv->tv_usec = (suseconds_t) (t % PA_USEC_PER_SEC);
-
- return tv;
+#elif defined(HAVE_GETTIMEOFDAY)
+ pa_assert_se(gettimeofday(tv, NULL) == 0);
#else
#error "Platform lacks gettimeofday() or equivalent function."
#endif
+
+ return tv;
}
pa_usec_t pa_timeval_diff(const struct timeval *a, const struct timeval *b) {
diff --git a/src/pulsecore/authkey.c b/src/pulsecore/authkey.c
index 684bc010..92509d89 100644
--- a/src/pulsecore/authkey.c
+++ b/src/pulsecore/authkey.c
@@ -31,7 +31,6 @@
#include <stdio.h>
#include <inttypes.h>
#include <stdlib.h>
-#include <time.h>
#include <limits.h>
#include <sys/stat.h>
diff --git a/src/pulsecore/core-rtclock.c b/src/pulsecore/core-rtclock.c
index a69b466f..ac2c097a 100644
--- a/src/pulsecore/core-rtclock.c
+++ b/src/pulsecore/core-rtclock.c
@@ -40,12 +40,20 @@
#include <unistd.h>
#endif
+#ifdef HAVE_WINDOWS_H
+#include <windows.h>
+#endif
+
#include <pulse/timeval.h>
#include <pulsecore/macro.h>
#include <pulsecore/core-error.h>
#include "core-rtclock.h"
+#ifdef OS_IS_WIN32
+static int64_t counter_freq = 0;
+#endif
+
pa_usec_t pa_rtclock_age(const struct timeval *tv) {
struct timeval now;
pa_assert(tv);
@@ -88,6 +96,17 @@ struct timeval *pa_rtclock_get(struct timeval *tv) {
tv->tv_usec = ts.tv_nsec / PA_NSEC_PER_USEC;
return tv;
+#elif defined(OS_IS_WIN32)
+ if (counter_freq > 0) {
+ LARGE_INTEGER count;
+
+ pa_assert_se(QueryPerformanceCounter(&count));
+
+ tv->tv_sec = count.QuadPart / counter_freq;
+ tv->tv_usec = (count.QuadPart % counter_freq) * PA_USEC_PER_SEC / counter_freq;
+
+ return tv;
+ }
#endif /* HAVE_CLOCK_GETTIME */
return pa_gettimeofday(tv);
@@ -118,6 +137,11 @@ pa_bool_t pa_rtclock_hrtimer(void) {
pa_assert_se(clock_getres(CLOCK_REALTIME, &ts) == 0);
return ts.tv_sec == 0 && ts.tv_nsec <= (long) (PA_HRTIMER_THRESHOLD_USEC*PA_NSEC_PER_USEC);
+#elif defined(OS_IS_WIN32)
+
+ if (counter_freq > 0)
+ return counter_freq >= (int64_t) (PA_USEC_PER_SEC/PA_HRTIMER_THRESHOLD_USEC);
+
#endif /* HAVE_CLOCK_GETTIME */
return FALSE;
@@ -148,6 +172,12 @@ void pa_rtclock_hrtimer_enable(void) {
}
}
+#elif defined(OS_IS_WIN32)
+ LARGE_INTEGER freq;
+
+ pa_assert_se(QueryPerformanceFrequency(&freq));
+ counter_freq = freq.QuadPart;
+
#endif
}
diff --git a/src/pulsecore/core-util.c b/src/pulsecore/core-util.c
index 04a2341f..8a377e37 100644
--- a/src/pulsecore/core-util.c
+++ b/src/pulsecore/core-util.c
@@ -34,11 +34,9 @@
#include <fcntl.h>
#include <unistd.h>
#include <limits.h>
-#include <time.h>
#include <ctype.h>
#include <sys/types.h>
#include <sys/stat.h>
-#include <sys/time.h>
#include <dirent.h>
#ifdef HAVE_LANGINFO_H
diff --git a/src/pulsecore/memblockq.c b/src/pulsecore/memblockq.c
index c7840484..11faedac 100644
--- a/src/pulsecore/memblockq.c
+++ b/src/pulsecore/memblockq.c
@@ -23,8 +23,6 @@
#include <config.h>
#endif
-#include <sys/time.h>
-#include <time.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
diff --git a/src/pulsecore/tagstruct.h b/src/pulsecore/tagstruct.h
index 1a99e924..b6553ada 100644
--- a/src/pulsecore/tagstruct.h
+++ b/src/pulsecore/tagstruct.h
@@ -25,7 +25,6 @@
#include <inttypes.h>
#include <sys/types.h>
#include <sys/time.h>
-#include <time.h>
#include <pulse/sample.h>
#include <pulse/channelmap.h>