]> git.tdb.fi Git - libs/core.git/blobdiff - source/time/utils.cpp
Select RawTime definition based on compiler, not platform
[libs/core.git] / source / time / utils.cpp
index ad0d24550338f7c22117057a2354d42f93e6c09e..cd2e70f3b88451ad4c1169421e5ffa78434c69aa 100644 (file)
@@ -1,8 +1,10 @@
-/*
+/* $Id$
+
 This file is part of libmspcore     
-Copyright © 2006  Mikko Rasa, Mikkosoft Productions
+Copyright © 2006-2008  Mikko Rasa, Mikkosoft Productions
 Distributed under the LGPL
 */
+
 #ifdef WIN32
 #include <windows.h>
 #else
@@ -30,26 +32,26 @@ TimeStamp now()
        gettimeofday(&tv, 0);
        return TimeStamp(tv.tv_sec*1000000LL+tv.tv_usec);
 #else
-       static int64_t epoch=0;
+       static RawTime epoch = 0;
        if(!epoch)
        {
                SYSTEMTIME st;
-               st.wYear=1970;
-               st.wMonth=1;
-               st.wDay=1;
-               st.wHour=0;
-               st.wMinute=0;
-               st.wSecond=0;
-               st.wMilliseconds=0;
+               st.wYear = 1970;
+               st.wMonth = 1;
+               st.wDay = 1;
+               st.wHour = 0;
+               st.wMinute = 0;
+               st.wSecond = 0;
+               st.wMilliseconds = 0;
 
                FILETIME ft;
                SystemTimeToFileTime(&st, &ft);
-               epoch=(ft.dwLowDateTime+(int64_t)ft.dwHighDateTime<<32)/10;
+               epoch = (ft.dwLowDateTime+(static_cast<RawTime>(ft.dwHighDateTime)<<32))/10;
        }
        
        FILETIME ft;
        GetSystemTimeAsFileTime(&ft);
-       return TimeStamp((ft.dwLowDateTime+(int64_t)ft.dwHighDateTime<<32)/10-epoch);
+       return TimeStamp((ft.dwLowDateTime+(static_cast<RawTime>(ft.dwHighDateTime)<<32))/10-epoch);
 #endif
 }
 
@@ -79,8 +81,7 @@ Sleeps for the given time.
 int sleep(const TimeDelta &d)
 {
 #ifndef WIN32
-       timespec ts;
-       d.fill_timespec(ts);
+       timespec ts = d;
        return nanosleep(&ts, 0);
 #else
        Sleep((DWORD)(d/msec));