Factorize timercmm.cpp code
Added wxGetCurrentUtime Put extern declaration in wx/timer.h instead of wx/*/timer.h Added wxChrono class git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@3754 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -24,22 +24,6 @@
|
|||||||
|
|
||||||
class wxTimer;
|
class wxTimer;
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
|
||||||
// global functions
|
|
||||||
//-----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
/* Timer functions (milliseconds) */
|
|
||||||
void wxStartTimer();
|
|
||||||
|
|
||||||
/* Gets time since last wxStartTimer or wxGetElapsedTime */
|
|
||||||
long wxGetElapsedTime(bool resetTimer = TRUE);
|
|
||||||
|
|
||||||
/* EXPERIMENTAL: comment this out if it doesn't compile. */
|
|
||||||
bool wxGetLocalTime(long *timeZone, int *dstObserved);
|
|
||||||
|
|
||||||
/* Get number of seconds since 00:00:00 GMT, Jan 1st 1970. */
|
|
||||||
long wxGetCurrentTime();
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// wxTimer
|
// wxTimer
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
@@ -24,22 +24,6 @@
|
|||||||
|
|
||||||
class wxTimer;
|
class wxTimer;
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
|
||||||
// global functions
|
|
||||||
//-----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
/* Timer functions (milliseconds) */
|
|
||||||
void wxStartTimer();
|
|
||||||
|
|
||||||
/* Gets time since last wxStartTimer or wxGetElapsedTime */
|
|
||||||
long wxGetElapsedTime(bool resetTimer = TRUE);
|
|
||||||
|
|
||||||
/* EXPERIMENTAL: comment this out if it doesn't compile. */
|
|
||||||
bool wxGetLocalTime(long *timeZone, int *dstObserved);
|
|
||||||
|
|
||||||
/* Get number of seconds since 00:00:00 GMT, Jan 1st 1970. */
|
|
||||||
long wxGetCurrentTime();
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// wxTimer
|
// wxTimer
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
@@ -49,16 +49,5 @@ private:
|
|||||||
* But you may need to modify timercmn.cpp.
|
* But you may need to modify timercmn.cpp.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// Timer functions (milliseconds)
|
|
||||||
void WXDLLEXPORT wxStartTimer();
|
|
||||||
// Gets time since last wxStartTimer or wxGetElapsedTime
|
|
||||||
long WXDLLEXPORT wxGetElapsedTime(bool resetTimer = TRUE);
|
|
||||||
|
|
||||||
// EXPERIMENTAL: comment this out if it doesn't compile.
|
|
||||||
bool WXDLLEXPORT wxGetLocalTime(long *timeZone, int *dstObserved);
|
|
||||||
|
|
||||||
// Get number of seconds since 00:00:00 GMT, Jan 1st 1970.
|
|
||||||
long WXDLLEXPORT wxGetCurrentTime();
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
// _WX_TIMER_H_
|
// _WX_TIMER_H_
|
||||||
|
@@ -44,16 +44,5 @@ protected:
|
|||||||
* But you may need to modify timercmn.cpp.
|
* But you may need to modify timercmn.cpp.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// Timer functions (milliseconds)
|
|
||||||
void WXDLLEXPORT wxStartTimer();
|
|
||||||
// Gets time since last wxStartTimer or wxGetElapsedTime
|
|
||||||
long WXDLLEXPORT wxGetElapsedTime(bool resetTimer = TRUE);
|
|
||||||
|
|
||||||
// EXPERIMENTAL: comment this out if it doesn't compile.
|
|
||||||
bool WXDLLEXPORT wxGetLocalTime(long *timeZone, int *dstObserved);
|
|
||||||
|
|
||||||
// Get number of seconds since 00:00:00 GMT, Jan 1st 1970.
|
|
||||||
long WXDLLEXPORT wxGetCurrentTime();
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
// _WX_TIMER_H_
|
// _WX_TIMER_H_
|
||||||
|
@@ -47,16 +47,5 @@ private:
|
|||||||
DECLARE_ABSTRACT_CLASS(wxTimer)
|
DECLARE_ABSTRACT_CLASS(wxTimer)
|
||||||
};
|
};
|
||||||
|
|
||||||
// Timer functions (milliseconds)
|
|
||||||
void WXDLLEXPORT wxStartTimer();
|
|
||||||
// Gets time since last wxStartTimer or wxGetElapsedTime
|
|
||||||
long WXDLLEXPORT wxGetElapsedTime(bool resetTimer = TRUE);
|
|
||||||
|
|
||||||
// EXPERIMENTAL: comment this out if it doesn't compile.
|
|
||||||
bool WXDLLEXPORT wxGetLocalTime(long *timeZone, int *dstObserved);
|
|
||||||
|
|
||||||
// Get number of seconds since 00:00:00 GMT, Jan 1st 1970.
|
|
||||||
long WXDLLEXPORT wxGetCurrentTime();
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
// _WX_TIMERH_
|
// _WX_TIMERH_
|
||||||
|
@@ -49,16 +49,5 @@ private:
|
|||||||
* But you may need to modify timercmn.cpp.
|
* But you may need to modify timercmn.cpp.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// Timer functions (milliseconds)
|
|
||||||
void WXDLLEXPORT wxStartTimer();
|
|
||||||
// Gets time since last wxStartTimer or wxGetElapsedTime
|
|
||||||
long WXDLLEXPORT wxGetElapsedTime(bool resetTimer = TRUE);
|
|
||||||
|
|
||||||
// EXPERIMENTAL: comment this out if it doesn't compile.
|
|
||||||
bool WXDLLEXPORT wxGetLocalTime(long *timeZone, int *dstObserved);
|
|
||||||
|
|
||||||
// Get number of seconds since 00:00:00 GMT, Jan 1st 1970.
|
|
||||||
long WXDLLEXPORT wxGetCurrentTime();
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
// _WX_TIMER_H_
|
// _WX_TIMER_H_
|
||||||
|
@@ -49,16 +49,5 @@ private:
|
|||||||
* But you may need to modify timercmn.cpp.
|
* But you may need to modify timercmn.cpp.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// Timer functions (milliseconds)
|
|
||||||
void WXDLLEXPORT wxStartTimer();
|
|
||||||
// Gets time since last wxStartTimer or wxGetElapsedTime
|
|
||||||
long WXDLLEXPORT wxGetElapsedTime(bool resetTimer = TRUE);
|
|
||||||
|
|
||||||
// EXPERIMENTAL: comment this out if it doesn't compile.
|
|
||||||
bool WXDLLEXPORT wxGetLocalTime(long *timeZone, int *dstObserved);
|
|
||||||
|
|
||||||
// Get number of seconds since 00:00:00 GMT, Jan 1st 1970.
|
|
||||||
long WXDLLEXPORT wxGetCurrentTime();
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
// _WX_TIMER_H_
|
// _WX_TIMER_H_
|
||||||
|
@@ -17,5 +17,36 @@
|
|||||||
#include "wx/stubs/timer.h"
|
#include "wx/stubs/timer.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
class wxChrono
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
wxChrono();
|
||||||
|
|
||||||
|
void Start(long t=0);
|
||||||
|
void Pause();
|
||||||
|
void Resume();
|
||||||
|
|
||||||
|
long Time();
|
||||||
|
|
||||||
|
private:
|
||||||
|
long m_t0;
|
||||||
|
long m_pause;
|
||||||
|
};
|
||||||
|
|
||||||
|
// Timer functions (milliseconds)
|
||||||
|
void WXDLLEXPORT wxStartTimer();
|
||||||
|
|
||||||
|
// Gets time since last wxStartTimer or wxGetElapsedTime
|
||||||
|
long WXDLLEXPORT wxGetElapsedTime(bool resetTimer = TRUE);
|
||||||
|
|
||||||
|
// EXPERIMENTAL: comment this out if it doesn't compile.
|
||||||
|
bool WXDLLEXPORT wxGetLocalTime(long *timeZone, int *dstObserved);
|
||||||
|
|
||||||
|
// Get number of seconds since 00:00:00 GMT, Jan 1st 1970.
|
||||||
|
long WXDLLEXPORT wxGetCurrentTime();
|
||||||
|
|
||||||
|
// Get number of milliseconds since 00:00:00 GMT, Jan 1st 1970.
|
||||||
|
long WXDLLEXPORT wxGetCurrentUTime();
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
// _WX_TIMER_H_BASE_
|
// _WX_TIMER_H_BASE_
|
||||||
|
@@ -73,31 +73,28 @@ extern "C" int gettimeofday(struct timeval *tp, void *);
|
|||||||
long wxStartTime = 0;
|
long wxStartTime = 0;
|
||||||
void wxStartTimer(void)
|
void wxStartTimer(void)
|
||||||
{
|
{
|
||||||
#if defined(__EMX__) || defined(__xlC__) || defined(__AIX__) || defined(__SVR4__) || defined(__SYSV__) || \
|
wxStartTime=wxGetCurrentUTime();
|
||||||
(defined(__GNUWIN32__) && !defined(__MINGW32__)) // || defined(__AIXV3__)
|
|
||||||
struct timeval tp;
|
|
||||||
#if defined(__EMX__) || defined(__SYSV__) || (defined (__GNUWIN32__) && !defined (__MINGW32__))
|
|
||||||
gettimeofday(&tp, (struct timezone *)NULL);
|
|
||||||
#else
|
|
||||||
gettimeofday(&tp);
|
|
||||||
#endif
|
|
||||||
wxStartTime = 1000*tp.tv_sec + tp.tv_usec/1000;
|
|
||||||
#elif (defined(__SC__) || defined(__SGI__) || defined(___BSDI__) || defined(__ALPHA__) || \
|
|
||||||
defined(__MINGW32__) || defined(__MWERKS__) || defined(__FreeBSD__) )
|
|
||||||
time_t t0;
|
|
||||||
struct tm *tp;
|
|
||||||
time(&t0);
|
|
||||||
tp = localtime(&t0);
|
|
||||||
wxStartTime = 1000*(60*(60*tp->tm_hour+tp->tm_min)+tp->tm_sec);
|
|
||||||
#else
|
|
||||||
struct timeb tp;
|
|
||||||
ftime(&tp);
|
|
||||||
wxStartTime = 1000*tp.time + tp.millitm;
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Returns elapsed time in milliseconds
|
// Returns elapsed time in milliseconds
|
||||||
long wxGetElapsedTime(bool resetTimer)
|
long wxGetElapsedTime(bool resetTimer)
|
||||||
|
{
|
||||||
|
long oldTime = wxStartTime;
|
||||||
|
long newTime=wxGetCurrentUTime();
|
||||||
|
|
||||||
|
if (resetTimer) wxStartTime = newTime;
|
||||||
|
return newTime - oldTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Get number of seconds since 00:00:00 GMT, Jan 1st 1970.
|
||||||
|
long wxGetCurrentTime(void)
|
||||||
|
{
|
||||||
|
return wxGetCurrentUTime()/1000;
|
||||||
|
}
|
||||||
|
|
||||||
|
// return GMT time in millisecond
|
||||||
|
long wxGetCurrentUTime()
|
||||||
{
|
{
|
||||||
#if defined(__xlC__) || defined(__AIX__) || defined(__SVR4__) || defined(__SYSV__) || \
|
#if defined(__xlC__) || defined(__AIX__) || defined(__SVR4__) || defined(__SYSV__) || \
|
||||||
(defined(__GNUWIN32__) && !defined(__MINGW32__)) // || defined(__AIXV3__)
|
(defined(__GNUWIN32__) && !defined(__MINGW32__)) // || defined(__AIXV3__)
|
||||||
@@ -107,31 +104,57 @@ long wxGetElapsedTime(bool resetTimer)
|
|||||||
#else
|
#else
|
||||||
gettimeofday(&tp);
|
gettimeofday(&tp);
|
||||||
#endif
|
#endif
|
||||||
long oldTime = wxStartTime;
|
return (1000*tp.tv_sec + tp.tv_usec / 1000);
|
||||||
long newTime = 1000*tp.tv_sec + tp.tv_usec / 1000;
|
|
||||||
if (resetTimer)
|
|
||||||
wxStartTime = newTime;
|
|
||||||
#elif (defined(__SC__) || defined(__SGI__) || defined(___BSDI__) || defined(__ALPHA__) || \
|
#elif (defined(__SC__) || defined(__SGI__) || defined(___BSDI__) || defined(__ALPHA__) || \
|
||||||
defined(__MINGW32__)|| defined(__MWERKS__) || defined(__FreeBSD__))
|
defined(__MINGW32__)|| defined(__MWERKS__) || defined(__FreeBSD__))
|
||||||
time_t t0;
|
time_t t0;
|
||||||
struct tm *tp;
|
struct tm *tp;
|
||||||
time(&t0);
|
time(&t0);
|
||||||
tp = localtime(&t0);
|
tp = localtime(&t0);
|
||||||
long oldTime = wxStartTime;
|
return 1000*(60*(60*tp->tm_hour+tp->tm_min)+tp->tm_sec);
|
||||||
long newTime = 1000*(60*(60*tp->tm_hour+tp->tm_min)+tp->tm_sec);
|
|
||||||
if (resetTimer)
|
|
||||||
wxStartTime = newTime;
|
|
||||||
#else
|
#else
|
||||||
struct timeb tp;
|
struct timeb tp;
|
||||||
ftime(&tp);
|
ftime(&tp);
|
||||||
long oldTime = wxStartTime;
|
return (1000*tp.time + tp.millitm);
|
||||||
long newTime = 1000*tp.time + tp.millitm;
|
|
||||||
if (resetTimer)
|
|
||||||
wxStartTime = newTime;
|
|
||||||
#endif
|
#endif
|
||||||
return newTime - oldTime;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------
|
||||||
|
// wxChrono class
|
||||||
|
// This class encapsulates the above fonctions,
|
||||||
|
// such that several wxChrono can be created
|
||||||
|
// simultaneously
|
||||||
|
|
||||||
|
wxChrono::wxChrono()
|
||||||
|
{
|
||||||
|
Start();
|
||||||
|
}
|
||||||
|
|
||||||
|
void wxChrono::Start(long t)
|
||||||
|
{
|
||||||
|
m_t0=wxGetCurrentUTime()-t;
|
||||||
|
m_pause=0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void wxChrono::Pause()
|
||||||
|
{
|
||||||
|
m_pause=wxGetCurrentUTime()-m_t0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void wxChrono::Resume()
|
||||||
|
{
|
||||||
|
m_t0=wxGetCurrentUTime()-m_pause;
|
||||||
|
m_pause=0;
|
||||||
|
}
|
||||||
|
|
||||||
|
long wxChrono::Time()
|
||||||
|
{
|
||||||
|
if (m_pause) return m_pause;
|
||||||
|
return wxGetCurrentUTime()-m_t0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// EXPERIMENTAL: comment this out if it doesn't compile.
|
// EXPERIMENTAL: comment this out if it doesn't compile.
|
||||||
#ifndef __VMS__
|
#ifndef __VMS__
|
||||||
bool wxGetLocalTime(long *timeZone, int *dstObserved)
|
bool wxGetLocalTime(long *timeZone, int *dstObserved)
|
||||||
@@ -205,27 +228,3 @@ bool wxGetLocalTime(long *timeZone, int *dstObserved)
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Get number of seconds since 00:00:00 GMT, Jan 1st 1970.
|
|
||||||
long wxGetCurrentTime(void)
|
|
||||||
{
|
|
||||||
#if defined(__xlC__) || defined(__AIX__) || defined(__SVR4__) || defined(__SYSV__) // || defined(__AIXV3__)
|
|
||||||
struct timeval tp;
|
|
||||||
#if defined(__SYSV__) || (defined (__GNUWIN32__) && !defined (__MINGW32__) || defined(__FreeBSD__))
|
|
||||||
gettimeofday(&tp, (struct timezone *)NULL);
|
|
||||||
#else
|
|
||||||
gettimeofday(&tp);
|
|
||||||
#endif
|
|
||||||
return tp.tv_sec;
|
|
||||||
#else // (defined(__SC__) || defined(__SGI__) || defined(___BSDI__) || defined(__ALPHA__))
|
|
||||||
return time(0);
|
|
||||||
#endif
|
|
||||||
/*
|
|
||||||
#else
|
|
||||||
struct timeb tp;
|
|
||||||
ftime(&tp);
|
|
||||||
return tp.time;
|
|
||||||
#endif
|
|
||||||
*/
|
|
||||||
}
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user