1
0
Fork 0

Timer interval stuff now uses gettimeofday() instead of ftime()

This commit is contained in:
curt 1997-06-17 16:51:58 +00:00
parent 7e07f19a25
commit 226ef4335a
3 changed files with 34 additions and 19 deletions

View file

@ -56,6 +56,9 @@ clean:
#---------------------------------------------------------------------------
# $Log$
# Revision 1.2 1997/06/17 16:52:02 curt
# Timer interval stuff now uses gettimeofday() instead of ftime()
#
# Revision 1.1 1997/05/29 00:09:52 curt
# Initial Flight Gear revision.
#

View file

@ -46,6 +46,10 @@
#define DEG_TO_RAD 0.017453292
#define RAD_TO_DEG 57.29577951
#ifndef PI2
#define PI2 (M_PI + M_PI)
#endif
/* This is a record containing all the info for the aircraft currently
being operated */
struct aircraft_params current_aircraft;
@ -77,7 +81,7 @@ double goal_view_offset = 0.0;
double Simtime;
/* Another hack */
int use_signals = 1;
int use_signals = 0;
/**************************************************************************
@ -295,15 +299,15 @@ static void fgMainLoop( void ) {
int elapsed, multi_loop;
elapsed = fgGetTimeInterval();
/* printf("Time interval is = %d, previous remainder is = %d\n", elapsed,
remainder); */
printf("Time interval is = %d, previous remainder is = %d\n", elapsed,
remainder);
printf("--> Frame rate is = %.2f\n", 1000.0 / (float)elapsed);
elapsed += remainder;
multi_loop = ((float)elapsed * 0.001) * DEFAULT_MODEL_HZ;
remainder = elapsed - ((multi_loop*1000) / DEFAULT_MODEL_HZ);
/* printf("Model iterations needed = %d, new remainder = %d\n", multi_loop,
remainder); */
printf("Model iterations needed = %d, new remainder = %d\n", multi_loop,
remainder);
aircraft_debug(1);
fgUpdateVisuals();
@ -475,9 +479,12 @@ int main( int argc, char *argv[] ) {
/* $Log$
/* Revision 1.16 1997/06/17 04:19:16 curt
/* More timer related tweaks with respect to view direction changes.
/* Revision 1.17 1997/06/17 16:51:58 curt
/* Timer interval stuff now uses gettimeofday() instead of ftime()
/*
* Revision 1.16 1997/06/17 04:19:16 curt
* More timer related tweaks with respect to view direction changes.
*
* Revision 1.15 1997/06/17 03:41:10 curt
* Nonsignal based interval timing is now working.
* This would be a good time to look at cleaning up the code structure a bit.

View file

@ -26,8 +26,8 @@
#include <signal.h> /* for timer routines */
#include <stdio.h> /* for printf() */
#include <time.h> /* for get/setitimer */
#include <sys/timeb.h> /* for ftime() and struct timeb */
#include <sys/time.h> /* for get/setitimer, gettimeofday, struct timeval */
#include <unistd.h>
#include "fg_timer.h"
@ -82,20 +82,22 @@ void fgTimerInit(float dt, void (*f)()) {
/* This function returns the number of milleseconds since the last
time it was called. */
int fgGetTimeInterval() {
static struct timeb last;
static struct timeb current;
static struct timeval last;
static struct timeval current;
static struct timezone tz;
static int inited = 0;
int interval;
if ( ! inited ) {
inited = 1;
ftime(&last);
gettimeofday(&last, &tz);
interval = 0;
} else {
ftime(&current);
interval = 1000 * (current.time - last.time) +
(current.millitm - last.millitm);
gettimeofday(&current, &tz);
interval = 1000000 * (current.tv_sec - last.tv_sec) +
(current.tv_usec - last.tv_usec);
interval /= 1000; /* convert back to milleseconds */
last = current;
}
@ -104,10 +106,13 @@ int fgGetTimeInterval() {
/* $Log$
/* Revision 1.2 1997/06/17 03:41:10 curt
/* Nonsignal based interval timing is now working.
/* This would be a good time to look at cleaning up the code structure a bit.
/* Revision 1.3 1997/06/17 16:52:04 curt
/* Timer interval stuff now uses gettimeofday() instead of ftime()
/*
* Revision 1.2 1997/06/17 03:41:10 curt
* Nonsignal based interval timing is now working.
* This would be a good time to look at cleaning up the code structure a bit.
*
* Revision 1.1 1997/06/16 19:24:20 curt
* Initial revision.
*