Add ftime() support for those that don't have gettimeofday()
This commit is contained in:
parent
f1d21eef9c
commit
42bbb9f93f
2 changed files with 41 additions and 9 deletions
|
@ -54,7 +54,11 @@ AR = ar
|
||||||
# a real time system and call the flight model routines
|
# a real time system and call the flight model routines
|
||||||
# at a regular interval, rather than between screen updates
|
# at a regular interval, rather than between screen updates
|
||||||
# which can be highly variable. This can make the flight
|
# 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
|
FG_CFLAGS = -g -Wall
|
||||||
|
@ -101,6 +105,9 @@ GRAPHICS_LIBS = $(MESA_LIBS) $(X11_LIBS)
|
||||||
|
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
# $Log$
|
# $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
|
# Revision 1.3 1997/07/09 21:31:08 curt
|
||||||
# Working on making the ground "hard."
|
# Working on making the ground "hard."
|
||||||
#
|
#
|
||||||
|
|
|
@ -26,9 +26,12 @@
|
||||||
|
|
||||||
#include <signal.h> /* for timer routines */
|
#include <signal.h> /* for timer routines */
|
||||||
#include <stdio.h> /* for printf() */
|
#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"
|
#include "fg_timer.h"
|
||||||
|
|
||||||
|
@ -79,28 +82,47 @@ void fgTimerInit(float dt, void (*f)()) {
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif HAVE_ITIMER
|
#endif HAVE_ITIMER
|
||||||
|
|
||||||
|
|
||||||
/* This function returns the number of milleseconds since the last
|
/* This function returns the number of milleseconds since the last
|
||||||
time it was called. */
|
time it was called. */
|
||||||
int fgGetTimeInterval() {
|
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 last;
|
||||||
static struct timeval current;
|
static struct timeval current;
|
||||||
static struct timezone tz;
|
static struct timezone tz;
|
||||||
static int inited = 0;
|
#endif USE_FTIME
|
||||||
|
|
||||||
int interval;
|
|
||||||
|
|
||||||
if ( ! inited ) {
|
if ( ! inited ) {
|
||||||
inited = 1;
|
inited = 1;
|
||||||
|
|
||||||
|
#ifdef USE_FTIME
|
||||||
|
ftime(&last);
|
||||||
|
#else
|
||||||
gettimeofday(&last, &tz);
|
gettimeofday(&last, &tz);
|
||||||
|
#endif
|
||||||
|
|
||||||
interval = 0;
|
interval = 0;
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
|
#ifdef USE_FTIME
|
||||||
|
ftime(¤t);
|
||||||
|
interval = 1000 * (current.time - last.time) +
|
||||||
|
(current.millitm - last.millitm);
|
||||||
|
#else
|
||||||
gettimeofday(¤t, &tz);
|
gettimeofday(¤t, &tz);
|
||||||
interval = 1000000 * (current.tv_sec - last.tv_sec) +
|
interval = 1000000 * (current.tv_sec - last.tv_sec) +
|
||||||
(current.tv_usec - last.tv_usec);
|
(current.tv_usec - last.tv_usec);
|
||||||
interval /= 1000; /* convert back to milleseconds */
|
interval /= 1000; /* convert back to milleseconds */
|
||||||
|
#endif
|
||||||
|
|
||||||
last = current;
|
last = current;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -109,9 +131,12 @@ int fgGetTimeInterval() {
|
||||||
|
|
||||||
|
|
||||||
/* $Log$
|
/* $Log$
|
||||||
/* Revision 1.5 1997/06/26 19:08:38 curt
|
/* Revision 1.6 1997/07/12 02:13:04 curt
|
||||||
/* Restructuring make, adding automatic "make dep" support.
|
/* 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
|
* Revision 1.4 1997/06/25 15:39:49 curt
|
||||||
* Minor changes to compile with rsxnt/win32.
|
* Minor changes to compile with rsxnt/win32.
|
||||||
*
|
*
|
||||||
|
|
Loading…
Reference in a new issue