]> git.mxchange.org Git - flightgear.git/commitdiff
Add ftime() support for those that don't have gettimeofday()
authorcurt <curt>
Sat, 12 Jul 1997 02:13:04 +0000 (02:13 +0000)
committercurt <curt>
Sat, 12 Jul 1997 02:13:04 +0000 (02:13 +0000)
Simulator/make.inc
Time/fg_timer.c

index 4d6201089f49344e6cb56376f9eb0ffe1c923d9f..8a482825da2a7a27c9f827526765b20b1235b7ae 100644 (file)
@@ -54,7 +54,11 @@ AR = ar
 #                a real time system and call the flight model routines
 #                at a regular interval, rather than between screen updates
 #                which can be highly variable.  This can make the flight
-#                much smoother.
+#                model calculations much smoother.
+#
+# -DUSE_FTIME -  Use ftime() to get an accurate current time instead of
+#                gettimeofday()
+#
 #---------------------------------------------------------------------------
 
 FG_CFLAGS = -g -Wall
@@ -101,6 +105,9 @@ GRAPHICS_LIBS = $(MESA_LIBS) $(X11_LIBS)
 
 #---------------------------------------------------------------------------
 # $Log$
+# Revision 1.4  1997/07/12 02:13:04  curt
+# Add ftime() support for those that don't have gettimeofday()
+#
 # Revision 1.3  1997/07/09 21:31:08  curt
 # Working on making the ground "hard."
 #
index 0b07037eff123a88491b9d986590677595c23579..0f42b55af5fb17edb2840e6abbe4303f94e9bf3e 100644 (file)
 
 #include <signal.h>    /* for timer routines */
 #include <stdio.h>     /* for printf() */
-#include <sys/time.h>  /* for get/setitimer, gettimeofday, struct timeval */
-#include <unistd.h>
 
+#ifdef USE_FTIME
+#  include <sys/timeb.h> /* for ftime() and struct timeb */
+#else
+#  include <sys/time.h>  /* for get/setitimer, gettimeofday, struct timeval */
+#endif USE_FTIME
 
 #include "fg_timer.h"
 
@@ -79,28 +82,47 @@ void fgTimerInit(float dt, void (*f)()) {
        exit(0);
     }
 }
-
 #endif HAVE_ITIMER
 
+
 /* This function returns the number of milleseconds since the last
    time it was called. */
 int fgGetTimeInterval() {
+    int interval;
+    static int inited = 0;
+
+#ifdef USE_FTIME
+    static struct timeb last;
+    static struct timeb current;
+#else
     static struct timeval last;
     static struct timeval current;
     static struct timezone tz;
-    static int inited = 0;
-
-    int interval;
+#endif USE_FTIME
 
     if ( ! inited ) {
        inited = 1;
+
+#ifdef USE_FTIME
+       ftime(&last);
+#else
        gettimeofday(&last, &tz);
+#endif
+
        interval = 0;
     } else {
+
+#ifdef USE_FTIME
+       ftime(&current);
+       interval = 1000 * (current.time - last.time) + 
+           (current.millitm - last.millitm);
+#else
        gettimeofday(&current, &tz);
        interval = 1000000 * (current.tv_sec - last.tv_sec) + 
            (current.tv_usec - last.tv_usec);
        interval /= 1000;  /* convert back to milleseconds */
+#endif
+
        last = current;
     }
 
@@ -109,9 +131,12 @@ int fgGetTimeInterval() {
 
 
 /* $Log$
-/* Revision 1.5  1997/06/26 19:08:38  curt
-/* Restructuring make, adding automatic "make dep" support.
+/* Revision 1.6  1997/07/12 02:13:04  curt
+/* Add ftime() support for those that don't have gettimeofday()
 /*
+ * Revision 1.5  1997/06/26 19:08:38  curt
+ * Restructuring make, adding automatic "make dep" support.
+ *
  * Revision 1.4  1997/06/25 15:39:49  curt
  * Minor changes to compile with rsxnt/win32.
  *