X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ed7919869508ccd5c868683c28706f82e82a1b9b..6cedba093a6d87371ca67534b1b9165fe3d45fbc:/src/common/timercmn.cpp diff --git a/src/common/timercmn.cpp b/src/common/timercmn.cpp index 6ac8609207..3d8db4c936 100644 --- a/src/common/timercmn.cpp +++ b/src/common/timercmn.cpp @@ -109,13 +109,12 @@ void wxTimerBase::Notify() void wxStopWatch::Start(long t) { m_t0 = wxGetLocalTimeMillis() - t; - m_pause = 0; } -inline long wxStopWatch::GetElapsedTime() const +long wxStopWatch::GetElapsedTime() const { - return (wxGetLocalTimeMillis() - m_t0).GetLo(); + return (wxGetLocalTimeMillis() - m_t0).GetLo(); } long wxStopWatch::Time() const @@ -231,11 +230,21 @@ long wxGetUTCTime() // Get local time as milliseconds since 00:00:00, Jan 1st 1970 wxLongLong wxGetLocalTimeMillis() { + wxLongLong val = 1000l; + +#if defined(HAVE_GETTIMEOFDAY) + struct timeval tp; + if ( wxGetTimeOfDay(&tp, (struct timezone *)NULL) != -1 ) + { + val *= tp.tv_sec; + return (val + (tp.tv_usec / 1000)); + } +#else + // We use wxGetLocalTime() to get the seconds since // 00:00:00 Jan 1st 1970 and then whatever is available // to get millisecond resolution. - // - wxLongLong val = 1000l; + // THIS LEADS TO A BUG SINCE REFERENCE TIME ARE DIFFERENT val *= wxGetLocalTime(); // If we got here, do not fail even if we can't get @@ -245,20 +254,19 @@ wxLongLong wxGetLocalTimeMillis() SYSTEMTIME st; ::GetLocalTime(&st); return (val + st.wMilliseconds); -#elif defined(HAVE_GETTIMEOFDAY) - struct timeval tp; - if ( wxGetTimeOfDay(&tp, (struct timezone *)NULL) != -1 ) - { - return (val + (tp.tv_usec / 1000)); - } +#elif defined(__VISAGECPP__) + DATETIME dt; + ::DosGetDateTime(&dt); + return (val + dt.hundredths*10); #elif defined(HAVE_FTIME) struct timeb tp; if ( ftime(&tp) == 0 ) { return (val + tp.millitm); } -#else +#elif !defined(__BORLANDC__) && !(defined(__VISUALC__) && defined(__WIN16__)) #warning "wxStopWatch will be up to second resolution!" +#endif #endif return val;