1
0
Fork 0

Converting to Gnu autoconf system.

Centralized time handling differences.
This commit is contained in:
curt 1998-04-03 22:12:53 +00:00
parent 74e16d77f8
commit c1004bd1a0
8 changed files with 472 additions and 201 deletions

View file

@ -1,36 +0,0 @@
#---------------------------------------------------------------------------
# Makefile
#
# Written by Curtis Olson, started May 1997.
#
# Copyright (C) 1997 Curtis L. Olson - curt@infoplane.com
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
# $Id$
# (Log is kept at end of this file)
#---------------------------------------------------------------------------
ARLIBRARY = libTime.a
TARGETS = $(ARLIBRARY)
CFILES = event.c fg_time.c fg_timer.c sunpos.c
CXXFILES =
LDIRT = $(FG_ROOT_LIB)/$(ARLIBRARY)
include $(FG_ROOT_SRC)/commondefs
include $(COMMONRULES)

10
Time/Makefile.am Normal file
View file

@ -0,0 +1,10 @@
libdir = ${exec_prefix}/lib
lib_LTLIBRARIES = libTime.la
libTime_la_SOURCES = \
event.c \
fg_time.c \
fg_timer.c \
sunpos.c
INCLUDES += -I..

323
Time/Makefile.in Normal file
View file

@ -0,0 +1,323 @@
# Makefile.in generated automatically by automake 1.2h from Makefile.am
# Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
SHELL = /bin/sh
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
prefix = @prefix@
exec_prefix = @exec_prefix@
bindir = @bindir@
sbindir = @sbindir@
libexecdir = @libexecdir@
datadir = @datadir@
sysconfdir = @sysconfdir@
sharedstatedir = @sharedstatedir@
localstatedir = @localstatedir@
infodir = @infodir@
mandir = @mandir@
includedir = @includedir@
oldincludedir = /usr/include
DISTDIR =
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ../..
ACLOCAL = @ACLOCAL@
AUTOCONF = @AUTOCONF@
AUTOMAKE = @AUTOMAKE@
AUTOHEADER = @AUTOHEADER@
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
transform = @program_transform_name@
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
host_alias = @host_alias@
host_triplet = @host@
CC = @CC@
CXX = @CXX@
LD = @LD@
LIBTOOL = @LIBTOOL@
LN_S = @LN_S@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
NM = @NM@
PACKAGE = @PACKAGE@
RANLIB = @RANLIB@
VERSION = @VERSION@
libdir = ${exec_prefix}/lib
lib_LTLIBRARIES = libTime.la
libTime_la_SOURCES = \
event.c \
fg_time.c \
fg_timer.c \
sunpos.c
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = ../../Src/Include/config.h
CONFIG_CLEAN_FILES =
LTLIBRARIES = $(lib_LTLIBRARIES)
DEFS = @DEFS@ -I. -I$(srcdir) -I../../Src/Include
CPPFLAGS = @CPPFLAGS@
LDFLAGS = @LDFLAGS@
LIBS = @LIBS@
X_CFLAGS = @X_CFLAGS@
X_LIBS = @X_LIBS@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
libTime_la_LDFLAGS =
libTime_la_LIBADD =
libTime_la_OBJECTS = event.lo fg_time.lo fg_timer.lo sunpos.lo
CFLAGS = @CFLAGS@
COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS)
LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS)
LINK = $(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(LDFLAGS) -o $@
DIST_COMMON = Makefile.am Makefile.in
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
TAR = tar
GZIP = --best
DEP_FILES = .deps/event.P .deps/fg_time.P .deps/fg_timer.P \
.deps/sunpos.P
SOURCES = $(libTime_la_SOURCES)
OBJECTS = $(libTime_la_OBJECTS)
all: Makefile $(LTLIBRARIES)
.SUFFIXES:
.SUFFIXES: .S .c .lo .o .s
$(srcdir)/Makefile.in: @MAINT@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
cd $(top_srcdir) && $(AUTOMAKE) --gnu Src/Time/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
cd $(top_builddir) \
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
mostlyclean-libLTLIBRARIES:
clean-libLTLIBRARIES:
-test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
distclean-libLTLIBRARIES:
maintainer-clean-libLTLIBRARIES:
install-libLTLIBRARIES: $(lib_LTLIBRARIES)
@$(NORMAL_INSTALL)
$(mkinstalldirs) $(DESTDIR)$(libdir)
@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
if test -f $$p; then \
echo "$(LIBTOOL) --mode=install $(INSTALL_DATA) $$p $(DESTDIR)$(libdir)/$$p"; \
$(LIBTOOL) --mode=install $(INSTALL_DATA) $$p $(DESTDIR)$(libdir)/$$p; \
else :; fi; \
done
uninstall-libLTLIBRARIES:
@$(NORMAL_UNINSTALL)
list='$(lib_LTLIBRARIES)'; for p in $$list; do \
$(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/$$p; \
done
.s.o:
$(COMPILE) -c $<
.S.o:
$(COMPILE) -c $<
mostlyclean-compile:
-rm -f *.o core *.core
clean-compile:
distclean-compile:
-rm -f *.tab.c
maintainer-clean-compile:
.s.lo:
$(LIBTOOL) --mode=compile $(COMPILE) -c $<
.S.lo:
$(LIBTOOL) --mode=compile $(COMPILE) -c $<
mostlyclean-libtool:
-rm -f *.lo
clean-libtool:
-rm -rf .libs _libs
distclean-libtool:
maintainer-clean-libtool:
libTime.la: $(libTime_la_OBJECTS) $(libTime_la_DEPENDENCIES)
$(LINK) -rpath $(libdir) $(libTime_la_LDFLAGS) $(libTime_la_OBJECTS) $(libTime_la_LIBADD) $(LIBS)
tags: TAGS
ID: $(HEADERS) $(SOURCES) $(LISP)
here=`pwd` && cd $(srcdir) \
&& mkid -f$$here/ID $(SOURCES) $(HEADERS) $(LISP)
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP)
tags=; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS)'; \
unique=`for i in $$list; do echo $$i; done | \
awk ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
|| (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS)
mostlyclean-tags:
clean-tags:
distclean-tags:
-rm -f TAGS ID
maintainer-clean-tags:
distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
subdir = Src/Time
distdir: $(DISTFILES)
here=`cd $(top_builddir) && pwd`; \
top_distdir=`cd $(top_distdir) && pwd`; \
distdir=`cd $(distdir) && pwd`; \
cd $(top_srcdir) \
&& $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu Src/Time/Makefile
@for file in $(DISTFILES); do \
d=$(srcdir); \
test -f $(distdir)/$$file \
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|| cp -p $$d/$$file $(distdir)/$$file; \
done
DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :)
-include $(DEP_FILES)
mostlyclean-depend:
clean-depend:
distclean-depend:
maintainer-clean-depend:
-rm -rf .deps
%.o: %.c
@echo '$(COMPILE) -c $<'; \
$(COMPILE) -Wp,-MD,.deps/$(*F).P -c $<
%.lo: %.c
@echo '$(LTCOMPILE) -c $<'; \
$(LTCOMPILE) -Wp,-MD,.deps/$(*F).p -c $<
@-sed -e 's/^\([^:]*\)\.o:/\1.lo \1.o:/' \
< .deps/$(*F).p > .deps/$(*F).P
@-rm -f .deps/$(*F).p
info:
dvi:
check: all
$(MAKE)
installcheck:
install-exec: install-libLTLIBRARIES
@$(NORMAL_INSTALL)
install-data:
@$(NORMAL_INSTALL)
install: install-exec install-data all
@:
uninstall: uninstall-libLTLIBRARIES
install-strip:
$(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install
installdirs:
$(mkinstalldirs) $(DATADIR)$(libdir)
mostlyclean-generic:
-test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
-rm -f Makefile $(DISTCLEANFILES)
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
-test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
mostlyclean: mostlyclean-libLTLIBRARIES mostlyclean-compile \
mostlyclean-libtool mostlyclean-tags mostlyclean-depend \
mostlyclean-generic
clean: clean-libLTLIBRARIES clean-compile clean-libtool clean-tags \
clean-depend clean-generic mostlyclean
distclean: distclean-libLTLIBRARIES distclean-compile distclean-libtool \
distclean-tags distclean-depend distclean-generic clean
-rm -f config.status
-rm -f libtool
maintainer-clean: maintainer-clean-libLTLIBRARIES \
maintainer-clean-compile maintainer-clean-libtool \
maintainer-clean-tags maintainer-clean-depend \
maintainer-clean-generic distclean
@echo "This command is intended for maintainers to use;"
@echo "it deletes files that may require special tools to rebuild."
.PHONY: mostlyclean-libLTLIBRARIES distclean-libLTLIBRARIES \
clean-libLTLIBRARIES maintainer-clean-libLTLIBRARIES \
uninstall-libLTLIBRARIES install-libLTLIBRARIES mostlyclean-compile \
distclean-compile clean-compile maintainer-clean-compile \
mostlyclean-libtool distclean-libtool clean-libtool \
maintainer-clean-libtool tags mostlyclean-tags distclean-tags \
clean-tags maintainer-clean-tags distdir mostlyclean-depend \
distclean-depend clean-depend maintainer-clean-depend info dvi \
installcheck install-exec install-data install uninstall all \
installdirs mostlyclean-generic distclean-generic clean-generic \
maintainer-clean-generic clean mostlyclean distclean maintainer-clean
INCLUDES += -I..
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

View file

@ -24,20 +24,22 @@
**************************************************************************/
#include <config.h>
#include <string.h>
#include <stdio.h>
#ifdef USE_FTIME
# include <stdlib.h>
# include <sys/timeb.h> /* for ftime() and struct timeb */
#elif defined(__MWERKS__)
#ifdef HAVE_STDLIB_H
#include <stdlib.h>
#endif
#if defined( HAVE_WINDOWS_H ) && defined(__MWERKS__)
# include <windows.h> /* For Metrowerks environment */
# include <winbase.h> /* There is no ANSI/MSL time function that */
/* contains milliseconds */
#else
# include <sys/time.h> /* for get/setitimer, gettimeofday, struct timeval */
#endif /* USE_FTIME */
#endif
#include "fg_time.h"
#include <Main/fg_debug.h>
#include <Time/event.h>
@ -54,21 +56,10 @@ struct fgEVENT {
int status; /* status flag */
long interval; /* interval in ms between each iteration of this event */
#ifdef USE_FTIME
struct timeb last_run; /* absolute time for last run */
struct timeb current; /* current time */
struct timeb next_run; /* absolute time for next run */
#elif defined(__MWERKS__)
SYSTEMTIME last_run; /* A type defed structure that holds */
SYSTEMTIME current; /* the only structure that contains */
SYSTEMTIME next_run; /* millisecond timing */
#else
struct timeval last_run; /* absolute time for last run */
struct timeval current; /* current time */
struct timeval next_run; /* absolute time for next run */
struct timezone tz;
#endif /* USE_FTIME */
fg_timestamp last_run;
fg_timestamp current;
fg_timestamp next_run;
long cum_time; /* cumulative processor time of this event */
long min_time; /* time of quickest execution */
@ -156,13 +147,7 @@ void fgEventRun(int ptr) {
printf("Running %s\n", e->description);
/* record starting time */
#ifdef USE_FTIME
ftime(&e->last_run);
#elif defined(__MWERKS__)
GetLocalTime(&e->last_run);
#else
gettimeofday(&e->last_run, &e->tz);
#endif /* USE_FTIME */
timestamp(&(e->last_run));
/* run the event */
(*e->event)();
@ -174,20 +159,8 @@ void fgEventRun(int ptr) {
e->status = FG_EVENT_READY;
/* calculate duration and stats */
#ifdef USE_FTIME
ftime(&e->current);
duration = 1000 * (e->current.time - e->last_run.time) +
(e->current.millitm - e->last_run.millitm);
#elif defined(__MWERKS__)
GetLocalTime(&e->current);
duration = 1000 * (e->current.wSecond - e->last_run.wSecond) +
(e->current.wMilliseconds - e->last_run.wMilliseconds);
#else
gettimeofday(&e->current, &e->tz);
duration = 1000000 * (e->current.tv_sec - e->last_run.tv_sec) +
(e->current.tv_usec - e->last_run.tv_usec);
duration /= 1000; /* convert back to milleseconds */
#endif /* USE_FTIME */
timestamp(&(e->current));
duration = timediff(&(e->last_run), &(e->current));
e->cum_time += duration;
@ -200,20 +173,7 @@ void fgEventRun(int ptr) {
}
/* determine the next absolute run time */
#ifdef USE_FTIME
e->next_run.time = e->last_run.time +
(e->last_run.millitm + e->interval) / 1000;
e->next_run.millitm = (e->last_run.millitm + e->interval) % 1000;
#elif defined(__MWERKS__)
e->next_run.wSecond = e->last_run.wSecond +
(e->last_run.wMilliseconds + e->interval) / 1000;
e->next_run.wMilliseconds =
(e->last_run.wMilliseconds + e->interval) % 1000;
#else
e->next_run.tv_sec = e->last_run.tv_sec +
(e->last_run.tv_usec + e->interval * 1000) / 1000000;
e->next_run.tv_usec = (e->last_run.tv_usec + e->interval * 1000) % 1000000;
#endif /* USE_FTIME */
timesum(&(e->next_run), &(e->last_run), e->interval);
}
@ -306,57 +266,22 @@ void fgEventPrintStats( void ) {
/* Add pending jobs to the run queue and run the job at the front of
* the queue */
void fgEventProcess( void ) {
#ifdef USE_FTIME
struct timeb current;
#elif defined(__MWERKS__)
SYSTEMTIME current; /* current time */
#else
struct timeval current;
struct timezone tz;
#endif /* USE_FTIME */
fg_timestamp current;
int i;
fgPrintf(FG_EVENT, FG_DEBUG, "Processing events\n");
/* get the current time */
#ifdef USE_FTIME
ftime(&current);
#elif defined(__MWERKS__)
GetLocalTime(&current);
#else
gettimeofday(&current, &tz);
#endif /* USE_FTIME */
timestamp(&current);
/* printf("Checking if anything is ready to move to the run queue\n"); */
/* see if anything else is ready to be placed on the run queue */
for ( i = 0; i < event_ptr; i++ ) {
if ( events[i].status == FG_EVENT_READY ) {
#ifdef USE_FTIME
if ( current.time > events[i].next_run.time ) {
addq(i);
} else if ( (current.time == events[i].next_run.time) &&
(current.millitm >= events[i].next_run.millitm) ) {
addq(i);
if ( 0 > timediff(&current,&(events[i].next_run)) ) {
addq(i);
}
#elif defined(__MWERKS__)
if (current.wSecond > events[i].next_run.wSecond) {
addq(i);
}
else if ( (current.wSecond == events[i].next_run.wSecond) &&
(current.wMilliseconds >=
events[i].next_run.wMilliseconds)) {
addq(i);
}
#else
if ( current.tv_sec > events[i].next_run.tv_sec ) {
addq(i);
} else if ( (current.tv_sec == events[i].next_run.tv_sec) &&
(current.tv_usec >= events[i].next_run.tv_usec) ) {
addq(i);
}
#endif /* USE_FTIME */
}
}
@ -371,9 +296,13 @@ void fgEventProcess( void ) {
/* $Log$
/* Revision 1.10 1998/03/14 00:28:34 curt
/* replaced a printf() with an fgPrintf().
/* Revision 1.11 1998/04/03 22:12:55 curt
/* Converting to Gnu autoconf system.
/* Centralized time handling differences.
/*
* Revision 1.10 1998/03/14 00:28:34 curt
* replaced a printf() with an fgPrintf().
*
* Revision 1.9 1998/01/31 00:43:44 curt
* Added MetroWorks patches from Carmen Volpe.
*

View file

@ -24,17 +24,22 @@
**************************************************************************/
#include <config.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#ifdef USE_FTIME
#ifdef HAVE_SYS_TIMEB_H
# include <sys/timeb.h> /* for ftime() and struct timeb */
#else
#endif
#ifdef HAVE_UNISTD_H
# include <unistd.h> /* for gettimeofday() */
#endif
#ifdef HAVE_SYS_TIME_H
# include <sys/time.h> /* for get/setitimer, gettimeofday, struct timeval */
#endif /* USE_FTIME */
#endif
#include <Time/fg_time.h>
#include <Include/fg_constants.h>
@ -61,6 +66,50 @@ void fgTimeInit(struct fgTIME *t) {
}
/* Portability wrap to get current time. */
void timestamp(fg_timestamp *timestamp) {
#if defined( HAVE_GETTIMEOFDAY )
struct timeval current;
struct timezone tz;
fg_timestamp currtime;
gettimeofday(&current, &tz);
timestamp->seconds = current.tv_sec;
timestamp->millis = current.tv_usec / 1000;
#elif defined( HAVE_GETLOCALTIME )
SYSTEMTIME current;
GetLocalTime(&current);
timestamp->seconds = current.wSecond;
timestamp->millis = current.wMilliseconds;
#elif defined( HAVE_FTIME )
struct timeb current;
ftime(&current);
timestamp->seconds = current.time;
timestamp->millis = current.millitm;
#else
# error Port me
#endif
}
/* Return duration in millis from first to last */
long timediff(fg_timestamp *first, fg_timestamp *last) {
return 1000 * (last->seconds - first->seconds) +
(last->millis - first->millis);
}
/* Return new timestamp given a time stamp and an interval to add in */
void timesum(fg_timestamp *res, fg_timestamp *start, long millis) {
res->millis = start->millis + millis;
if (1000 < res->millis) {
res->seconds = start->millis + 1;
res->millis -= 1000;
} else {
res->seconds = start->millis;
}
}
/* given a date in months, mn, days, dy, years, yr, return the
* modified Julian date (number of days elapsed since 1900 jan 0.5),
* mjd. Adapted from Xephem. */
@ -168,7 +217,7 @@ double sidereal_course(struct tm *gmt, time_t now, double lng) {
struct timeb current;
#endif /* USE_FTIME */
#ifdef WIN32
#ifdef __CYGWIN32__
int daylight;
long int timezone;
#endif /* WIN32 */
@ -313,9 +362,13 @@ void fgTimeUpdate(fgFLIGHT *f, struct fgTIME *t) {
/* $Log$
/* Revision 1.36 1998/03/09 22:48:09 curt
/* Debug message tweaks.
/* Revision 1.37 1998/04/03 22:12:55 curt
/* Converting to Gnu autoconf system.
/* Centralized time handling differences.
/*
* Revision 1.36 1998/03/09 22:48:09 curt
* Debug message tweaks.
*
* Revision 1.35 1998/02/09 15:07:52 curt
* Minor tweaks.
*

View file

@ -28,9 +28,9 @@
#define _FG_TIME_H
#ifdef WIN32
# include <windows.h>
#endif
// #ifdef WIN32
// # include <windows.h>
// #endif
#include <GL/glut.h>
#include <time.h>
@ -87,6 +87,20 @@ struct fgLIGHT {
extern struct fgLIGHT cur_light_params;
typedef struct fg_timestamp_t {
long seconds;
long millis;
} fg_timestamp;
/* Portability wrap to get current time. */
void timestamp(fg_timestamp *timestamp);
/* Return duration in millis from first to last */
long timediff(fg_timestamp *first, fg_timestamp *last);
/* Return new timestamp given a time stamp and an interval to add in */
void timesum(fg_timestamp *res, fg_timestamp *start, long millis);
/* Initialize the time dependent variables */
void fgTimeInit(struct fgTIME *t);
@ -99,10 +113,14 @@ void fgTimeUpdate(fgFLIGHT *f, struct fgTIME *t);
/* $Log$
/* Revision 1.16 1998/02/07 15:29:47 curt
/* Incorporated HUD changes and struct/typedef changes from Charlie Hotchkiss
/* <chotchkiss@namg.us.anritsu.com>
/* Revision 1.17 1998/04/03 22:12:56 curt
/* Converting to Gnu autoconf system.
/* Centralized time handling differences.
/*
* Revision 1.16 1998/02/07 15:29:47 curt
* Incorporated HUD changes and struct/typedef changes from Charlie Hotchkiss
* <chotchkiss@namg.us.anritsu.com>
*
* Revision 1.15 1998/01/27 00:48:06 curt
* Incorporated Paul Bleisch's <bleisch@chromatic.com> new debug message
* system and commandline/config file processing code.

View file

@ -24,25 +24,22 @@
**************************************************************************/
#include <config.h>
#include <signal.h> /* for timer routines */
#include <stdio.h> /* for printf() */
#ifdef USE_FTIME
# include <sys/timeb.h> /* for ftime() and struct timeb */
#elif defined(__MWERKS__)
# include <windows.h> /* For Metrowerks environment */
# include <winbase.h> /* There is no ANSI/MSL time function that */
/* contains milliseconds */
#else
#ifdef HAVE_SYS_TIME_H
# include <sys/time.h> /* for get/setitimer, gettimeofday, struct timeval */
#endif /* USE_FTIME */
#endif
#include <Time/fg_time.h>
#include <Time/fg_timer.h>
unsigned long int fgSimTime;
#ifdef USE_ITIMER
#ifdef HAVE_SETITIMER
static struct itimerval t, ot;
static void (*callbackfunc)(int multi_loop);
@ -86,7 +83,7 @@ void fgTimerInit(float dt, void (*f)()) {
exit(0);
}
}
#endif /* HAVE_ITIMER */
#endif /* HAVE_SETITIMER */
/* This function returns the number of milleseconds since the last
@ -94,49 +91,18 @@ void fgTimerInit(float dt, void (*f)()) {
int fgGetTimeInterval( void ) {
int interval;
static int inited = 0;
#ifdef USE_FTIME
static struct timeb last;
static struct timeb current;
#elif defined (__MWERKS__)
SYSTEMTIME last;
SYSTEMTIME current;
#else
static struct timeval last;
static struct timeval current;
static struct timezone tz;
#endif /* USE_FTIME */
static fg_timestamp last;
fg_timestamp current;
if ( ! inited ) {
inited = 1;
#ifdef USE_FTIME
ftime(&last);
#elif defined (__MWERKS__)
GetLocalTime(&last);
#else
gettimeofday(&last, &tz);
#endif /* USE_FTIME */
timestamp(&last);
interval = 0;
} else {
#ifdef USE_FTIME
ftime(&current);
interval = 1000 * (current.time - last.time) +
(current.millitm - last.millitm);
#elif defined (__MWERKS__)
GetLocalTime(&current);
interval = 1000 * (current.wSecond - last.wSecond) +
(current.wMilliseconds - last.wMilliseconds);
#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 /* USE_FTIME */
last = current;
timestamp(&current);
interval = timediff(&last, &current);
last.seconds = current.seconds;
last.millis = current.millis;
}
return(interval);
@ -144,9 +110,13 @@ int fgGetTimeInterval( void ) {
/* $Log$
/* Revision 1.10 1998/01/31 00:43:45 curt
/* Added MetroWorks patches from Carmen Volpe.
/* Revision 1.11 1998/04/03 22:12:56 curt
/* Converting to Gnu autoconf system.
/* Centralized time handling differences.
/*
* Revision 1.10 1998/01/31 00:43:45 curt
* Added MetroWorks patches from Carmen Volpe.
*
* Revision 1.9 1998/01/19 19:27:21 curt
* Merged in make system changes from Bob Kuehne <rpk@sgi.com>
* This should simplify things tremendously.

View file

@ -344,7 +344,7 @@ void fgUpdateSunPos( void ) {
light = pow(1.1, -x_10 / 30.0);
ambient = 0.2 * light;
diffuse = 0.9 * light;
diffuse = 1.0 * light;
sky_brightness = 0.85 * pow(1.2, -x_8 / 20.0) + 0.15;
@ -378,11 +378,15 @@ void fgUpdateSunPos( void ) {
/* $Log$
/* Revision 1.26 1998/02/23 19:08:00 curt
/* Incorporated Durk's Astro/ tweaks. Includes unifying the sun position
/* calculation code between sun display, and other FG sections that use this
/* for things like lighting.
/* Revision 1.27 1998/04/03 22:12:57 curt
/* Converting to Gnu autoconf system.
/* Centralized time handling differences.
/*
* Revision 1.26 1998/02/23 19:08:00 curt
* Incorporated Durk's Astro/ tweaks. Includes unifying the sun position
* calculation code between sun display, and other FG sections that use this
* for things like lighting.
*
* Revision 1.25 1998/02/09 15:07:53 curt
* Minor tweaks.
*