From 92649e745cbbe710ffa3bec1504f877f93fa34aa Mon Sep 17 00:00:00 2001 From: Daniel Heckenberg Date: Sun, 9 Mar 2003 11:10:53 +0000 Subject: Minor changes for compilation using Visual C++ 6.0 (SP3) under Windows ncluding: - no array declaration with variable size - fixed signed/unsigned comparison warnings svn path=/trunk/externals/cxc/; revision=460 --- microtime.c | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) (limited to 'microtime.c') diff --git a/microtime.c b/microtime.c index bccdf0c..dea2bb6 100644 --- a/microtime.c +++ b/microtime.c @@ -4,7 +4,11 @@ */ #include +#ifdef NT +#include +#else #include +#endif #include /* ----------------------- utime --------------------- */ @@ -24,7 +28,8 @@ static void *utime_new(t_symbol *s, int argc, t_atom *argv) { x->x_outlet2 = outlet_new(&x->x_obj, &s_float); return (x); } - + +#ifndef NT static void utime_bang(t_utime *x) { struct timeval myutime; @@ -34,6 +39,23 @@ static void utime_bang(t_utime *x) outlet_float(x->x_outlet2, (t_float)myutime.tv_usec); outlet_float(x->x_outlet1, (t_float)myutime.tv_sec); } +#else +static void utime_bang(t_utime *x) +{ + FILETIME myfiletime; + ULARGE_INTEGER ulfiletime, ulSec, uluSec; + + GetSystemTimeAsFileTime(&myfiletime); + ulfiletime.LowPart = myfiletime.dwLowDateTime; + ulfiletime.HighPart = myfiletime.dwHighDateTime; + ulfiletime.QuadPart -= 116444736000000000; // number of 100ns ticks from 1601-01-01 to 1970-01-01 + ulSec.QuadPart = ulfiletime.QuadPart / (10 * 1000 * 1000); // FILETIME uses 100ns ticks + uluSec.QuadPart = (ulfiletime.QuadPart - ulSec.QuadPart * 10 * 1000 * 1000) / 10; // FILETIME uses 100ns ticks + + outlet_float(x->x_outlet2, (t_float)(__int64)ulSec.QuadPart ); + outlet_float(x->x_outlet1, (t_float)(__int64)uluSec.QuadPart); +} +#endif static void help_utime(t_utime *x) { -- cgit v1.2.1