Mercurial > mplayer.hg
annotate osdep/timer-win2.c @ 12189:bd67f85c6440
-rdynamic is not supported on windows
author | faust3 |
---|---|
date | Tue, 13 Apr 2004 10:02:37 +0000 |
parents | 1d5205bab61a |
children | f9755d9c479a |
rev | line source |
---|---|
9983
14c92818ab75
alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff
changeset
|
1 // Precise timer routines for WINDOWS |
14c92818ab75
alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff
changeset
|
2 |
14c92818ab75
alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff
changeset
|
3 #include <windows.h> |
14c92818ab75
alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff
changeset
|
4 #include <mmsystem.h> |
14c92818ab75
alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff
changeset
|
5 #include "timer.h" |
14c92818ab75
alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff
changeset
|
6 |
14c92818ab75
alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff
changeset
|
7 // Returns current time in microseconds |
14c92818ab75
alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff
changeset
|
8 unsigned int GetTimer(){ |
14c92818ab75
alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff
changeset
|
9 return timeGetTime() * 1000; |
14c92818ab75
alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff
changeset
|
10 } |
14c92818ab75
alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff
changeset
|
11 |
14c92818ab75
alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff
changeset
|
12 // Returns current time in milliseconds |
14c92818ab75
alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff
changeset
|
13 unsigned int GetTimerMS(){ |
14c92818ab75
alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff
changeset
|
14 return timeGetTime() ; |
14c92818ab75
alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff
changeset
|
15 } |
14c92818ab75
alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff
changeset
|
16 |
14c92818ab75
alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff
changeset
|
17 int usec_sleep(int usec_delay){ |
11480
1d5205bab61a
Sleep(0) != usleep(0), bugreport by Paul-Kenji Cahier
faust3
parents:
9983
diff
changeset
|
18 // Sleep(0) won't sleep for one clocktick as the unix usleep |
1d5205bab61a
Sleep(0) != usleep(0), bugreport by Paul-Kenji Cahier
faust3
parents:
9983
diff
changeset
|
19 // instead it will only make the thread ready |
1d5205bab61a
Sleep(0) != usleep(0), bugreport by Paul-Kenji Cahier
faust3
parents:
9983
diff
changeset
|
20 // it may take some time until it actually starts to run again |
1d5205bab61a
Sleep(0) != usleep(0), bugreport by Paul-Kenji Cahier
faust3
parents:
9983
diff
changeset
|
21 if(usec_delay<1000)usec_delay=1000; |
9983
14c92818ab75
alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff
changeset
|
22 Sleep( usec_delay/1000); |
14c92818ab75
alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff
changeset
|
23 return 0; |
14c92818ab75
alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff
changeset
|
24 } |
14c92818ab75
alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff
changeset
|
25 |
14c92818ab75
alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff
changeset
|
26 static DWORD RelativeTime = 0; |
14c92818ab75
alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff
changeset
|
27 |
14c92818ab75
alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff
changeset
|
28 float GetRelativeTime(){ |
14c92818ab75
alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff
changeset
|
29 DWORD t, r; |
14c92818ab75
alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff
changeset
|
30 t = GetTimer(); |
14c92818ab75
alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff
changeset
|
31 r = t - RelativeTime; |
14c92818ab75
alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff
changeset
|
32 RelativeTime = t; |
14c92818ab75
alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff
changeset
|
33 return (float) r *0.000001F; |
14c92818ab75
alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff
changeset
|
34 } |
14c92818ab75
alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff
changeset
|
35 |
14c92818ab75
alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff
changeset
|
36 void InitTimer(){ |
14c92818ab75
alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff
changeset
|
37 GetRelativeTime(); |
14c92818ab75
alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff
changeset
|
38 } |