summaryrefslogtreecommitdiffstats
path: root/linux/timer-lx.c
diff options
context:
space:
mode:
authorarpi_esp <arpi_esp@b3059339-0415-0410-9bf9-f77b7e298cf2>2001-02-24 20:28:24 +0000
committerarpi_esp <arpi_esp@b3059339-0415-0410-9bf9-f77b7e298cf2>2001-02-24 20:28:24 +0000
commitd34041569e71fc9bd772354e94dc9d16061072a5 (patch)
tree8f481cae1c70f32d1756fbe5f39000577b73042d /linux/timer-lx.c
parente95a95ece09bac96bdfd37322f96c6f57ef79ebc (diff)
downloadmpv-d34041569e71fc9bd772354e94dc9d16061072a5.tar.bz2
mpv-d34041569e71fc9bd772354e94dc9d16061072a5.tar.xz
Initial revision
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@2 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'linux/timer-lx.c')
-rw-r--r--linux/timer-lx.c49
1 files changed, 49 insertions, 0 deletions
diff --git a/linux/timer-lx.c b/linux/timer-lx.c
new file mode 100644
index 0000000000..0460aaa024
--- /dev/null
+++ b/linux/timer-lx.c
@@ -0,0 +1,49 @@
+// Precise timer routines for LINUX (C) LGB & A'rpi/ASTRAL
+
+#include <unistd.h>
+#include <sys/time.h>
+
+// Returns current time in seconds
+unsigned int GetTimer(){
+ struct timeval tv;
+ struct timezone tz;
+// float s;
+ gettimeofday(&tv,&tz);
+// s=tv.tv_usec;s*=0.000001;s+=tv.tv_sec;
+ return (tv.tv_sec*1000000+tv.tv_usec);
+}
+
+// Returns current time in microseconds
+int uGetTimer(){
+ struct timeval tv;
+ struct timezone tz;
+ gettimeofday(&tv,&tz);
+ return (int)(tv.tv_usec+1000000*tv.tv_sec);
+}
+
+static unsigned int RelativeTime=0;
+
+// Returns time spent between now and last call in seconds
+float GetRelativeTime(){
+unsigned int t,r;
+ t=GetTimer();
+// t*=16;printf("time=%ud\n",t);
+ r=t-RelativeTime;
+ RelativeTime=t;
+ return (float)r * 0.000001F;
+}
+
+// Initialize timer, must be called at least once at start
+void InitTimer(){
+ GetRelativeTime();
+}
+
+
+#if 0
+void main(){
+ float t=0;
+ InitTimer();
+ while(1){ t+=GetRelativeTime();printf("time= %10.6f\r",t);fflush(stdout); }
+}
+#endif
+