Moved fg_debug to it's own library, added zlib support.
This commit is contained in:
parent
ab59ca78b9
commit
09fc7f812e
9 changed files with 51 additions and 462 deletions
|
@ -35,8 +35,8 @@
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
#include <Debug/fg_debug.h>
|
||||||
#include <Main/GLUTkey.h>
|
#include <Main/GLUTkey.h>
|
||||||
#include <Main/fg_debug.h>
|
|
||||||
#include <Main/views.h>
|
#include <Main/views.h>
|
||||||
|
|
||||||
#include <Include/fg_constants.h>
|
#include <Include/fg_constants.h>
|
||||||
|
@ -257,10 +257,13 @@ void GLUTspecialkey(int k, int x, int y) {
|
||||||
|
|
||||||
|
|
||||||
/* $Log$
|
/* $Log$
|
||||||
/* Revision 1.32 1998/04/14 02:21:01 curt
|
/* Revision 1.33 1998/04/18 04:11:25 curt
|
||||||
/* Incorporated autopilot heading hold contributed by: Jeff Goeke-Smith
|
/* Moved fg_debug to it's own library, added zlib support.
|
||||||
/* <jgoeke@voyager.net>
|
|
||||||
/*
|
/*
|
||||||
|
* Revision 1.32 1998/04/14 02:21:01 curt
|
||||||
|
* Incorporated autopilot heading hold contributed by: Jeff Goeke-Smith
|
||||||
|
* <jgoeke@voyager.net>
|
||||||
|
*
|
||||||
* Revision 1.31 1998/04/08 23:34:05 curt
|
* Revision 1.31 1998/04/08 23:34:05 curt
|
||||||
* Patch from Durk to fix trim reversal with numlock key active.
|
* Patch from Durk to fix trim reversal with numlock key active.
|
||||||
*
|
*
|
||||||
|
|
|
@ -41,9 +41,9 @@
|
||||||
# include <getopt.h>
|
# include <getopt.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include <Debug/fg_debug.h>
|
||||||
#include <Main/GLUTkey.h>
|
#include <Main/GLUTkey.h>
|
||||||
#include <Main/fg_init.h>
|
#include <Main/fg_init.h>
|
||||||
#include <Main/fg_debug.h>
|
|
||||||
#include <Main/fg_getopt.h>
|
#include <Main/fg_getopt.h>
|
||||||
#include <Main/views.h>
|
#include <Main/views.h>
|
||||||
|
|
||||||
|
@ -347,6 +347,7 @@ static void fgRenderFrame( void ) {
|
||||||
struct fgVIEW *v;
|
struct fgVIEW *v;
|
||||||
double angle;
|
double angle;
|
||||||
GLfloat white[4] = { 1.0, 1.0, 1.0, 1.0 };
|
GLfloat white[4] = { 1.0, 1.0, 1.0, 1.0 };
|
||||||
|
GLfloat black[4] = { 0.0, 0.0, 0.0, 1.0 };
|
||||||
|
|
||||||
l = &cur_light_params;
|
l = &cur_light_params;
|
||||||
t = &cur_time_params;
|
t = &cur_time_params;
|
||||||
|
@ -417,6 +418,8 @@ static void fgRenderFrame( void ) {
|
||||||
GL_LINEAR /* GL_LINEAR_MIPMAP_LINEAR */ ) ;
|
GL_LINEAR /* GL_LINEAR_MIPMAP_LINEAR */ ) ;
|
||||||
xglTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE ) ;
|
xglTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE ) ;
|
||||||
xglHint( GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST ) ;
|
xglHint( GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST ) ;
|
||||||
|
/* set base color (I don't think this is doing anything here) */
|
||||||
|
xglColor4fv(white);
|
||||||
|
|
||||||
fgTileMgrRender();
|
fgTileMgrRender();
|
||||||
|
|
||||||
|
@ -824,10 +827,13 @@ extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* $Log$
|
/* $Log$
|
||||||
/* Revision 1.70 1998/04/14 02:21:02 curt
|
/* Revision 1.71 1998/04/18 04:11:26 curt
|
||||||
/* Incorporated autopilot heading hold contributed by: Jeff Goeke-Smith
|
/* Moved fg_debug to it's own library, added zlib support.
|
||||||
/* <jgoeke@voyager.net>
|
|
||||||
/*
|
/*
|
||||||
|
* Revision 1.70 1998/04/14 02:21:02 curt
|
||||||
|
* Incorporated autopilot heading hold contributed by: Jeff Goeke-Smith
|
||||||
|
* <jgoeke@voyager.net>
|
||||||
|
*
|
||||||
* Revision 1.69 1998/04/08 23:35:34 curt
|
* Revision 1.69 1998/04/08 23:35:34 curt
|
||||||
* Tweaks to Gnu automake/autoconf system.
|
* Tweaks to Gnu automake/autoconf system.
|
||||||
*
|
*
|
||||||
|
|
|
@ -8,7 +8,6 @@ fg_SOURCES = \
|
||||||
GLUTkey.c GLUTkey.h \
|
GLUTkey.c GLUTkey.h \
|
||||||
GLUTmain.c \
|
GLUTmain.c \
|
||||||
fg_config.h \
|
fg_config.h \
|
||||||
fg_debug.c fg_debug.h \
|
|
||||||
fg_getopt.c fg_getopt.h \
|
fg_getopt.c fg_getopt.h \
|
||||||
fg_init.c fg_init.h \
|
fg_init.c fg_init.h \
|
||||||
views.c views.h
|
views.c views.h
|
||||||
|
@ -26,8 +25,10 @@ fg_LDADD = \
|
||||||
$(top_builddir)/Simulator/Time/libTime.la \
|
$(top_builddir)/Simulator/Time/libTime.la \
|
||||||
$(top_builddir)/Simulator/Weather/libWeather.la \
|
$(top_builddir)/Simulator/Weather/libWeather.la \
|
||||||
$(top_builddir)/Simulator/Joystick/libJoystick.la \
|
$(top_builddir)/Simulator/Joystick/libJoystick.la \
|
||||||
$(top_builddir)/Simulator/Math/libMath.la \
|
$(top_builddir)/Lib/Math/libMath.la \
|
||||||
$(top_builddir)/Lib/Bucket/libBucket.la
|
$(top_builddir)/Lib/Bucket/libBucket.la \
|
||||||
|
$(top_builddir)/Lib/Debug/libDebug.la \
|
||||||
|
$(top_builddir)/Lib/zlib/libz.la
|
||||||
|
|
||||||
INCLUDES += \
|
INCLUDES += \
|
||||||
-DGLUT \
|
-DGLUT \
|
||||||
|
|
|
@ -81,7 +81,6 @@ fg_SOURCES = \
|
||||||
GLUTkey.c GLUTkey.h \
|
GLUTkey.c GLUTkey.h \
|
||||||
GLUTmain.c \
|
GLUTmain.c \
|
||||||
fg_config.h \
|
fg_config.h \
|
||||||
fg_debug.c fg_debug.h \
|
|
||||||
fg_getopt.c fg_getopt.h \
|
fg_getopt.c fg_getopt.h \
|
||||||
fg_init.c fg_init.h \
|
fg_init.c fg_init.h \
|
||||||
views.c views.h
|
views.c views.h
|
||||||
|
@ -99,8 +98,10 @@ fg_LDADD = \
|
||||||
$(top_builddir)/Simulator/Time/libTime.la \
|
$(top_builddir)/Simulator/Time/libTime.la \
|
||||||
$(top_builddir)/Simulator/Weather/libWeather.la \
|
$(top_builddir)/Simulator/Weather/libWeather.la \
|
||||||
$(top_builddir)/Simulator/Joystick/libJoystick.la \
|
$(top_builddir)/Simulator/Joystick/libJoystick.la \
|
||||||
$(top_builddir)/Simulator/Math/libMath.la \
|
$(top_builddir)/Lib/Math/libMath.la \
|
||||||
$(top_builddir)/Lib/Bucket/libBucket.la
|
$(top_builddir)/Lib/Bucket/libBucket.la \
|
||||||
|
$(top_builddir)/Lib/Debug/libDebug.la \
|
||||||
|
$(top_builddir)/Lib/zlib/libz.la
|
||||||
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
|
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
|
||||||
CONFIG_HEADER = ../../Include/config.h
|
CONFIG_HEADER = ../../Include/config.h
|
||||||
CONFIG_CLEAN_FILES = runfg runfg.bat
|
CONFIG_CLEAN_FILES = runfg runfg.bat
|
||||||
|
@ -115,8 +116,7 @@ X_CFLAGS = @X_CFLAGS@
|
||||||
X_LIBS = @X_LIBS@
|
X_LIBS = @X_LIBS@
|
||||||
X_EXTRA_LIBS = @X_EXTRA_LIBS@
|
X_EXTRA_LIBS = @X_EXTRA_LIBS@
|
||||||
X_PRE_LIBS = @X_PRE_LIBS@
|
X_PRE_LIBS = @X_PRE_LIBS@
|
||||||
fg_OBJECTS = GLUTkey.o GLUTmain.o fg_debug.o fg_getopt.o fg_init.o \
|
fg_OBJECTS = GLUTkey.o GLUTmain.o fg_getopt.o fg_init.o views.o
|
||||||
views.o
|
|
||||||
fg_DEPENDENCIES = $(top_builddir)/Simulator/Aircraft/libAircraft.la \
|
fg_DEPENDENCIES = $(top_builddir)/Simulator/Aircraft/libAircraft.la \
|
||||||
$(top_builddir)/Simulator/Astro/libAstro.la \
|
$(top_builddir)/Simulator/Astro/libAstro.la \
|
||||||
$(top_builddir)/Simulator/Autopilot/libAutopilot.la \
|
$(top_builddir)/Simulator/Autopilot/libAutopilot.la \
|
||||||
|
@ -129,8 +129,9 @@ $(top_builddir)/Simulator/Scenery/libScenery.la \
|
||||||
$(top_builddir)/Simulator/Time/libTime.la \
|
$(top_builddir)/Simulator/Time/libTime.la \
|
||||||
$(top_builddir)/Simulator/Weather/libWeather.la \
|
$(top_builddir)/Simulator/Weather/libWeather.la \
|
||||||
$(top_builddir)/Simulator/Joystick/libJoystick.la \
|
$(top_builddir)/Simulator/Joystick/libJoystick.la \
|
||||||
$(top_builddir)/Simulator/Math/libMath.la \
|
$(top_builddir)/Lib/Math/libMath.la \
|
||||||
$(top_builddir)/Lib/Bucket/libBucket.la
|
$(top_builddir)/Lib/Bucket/libBucket.la \
|
||||||
|
$(top_builddir)/Lib/Debug/libDebug.la $(top_builddir)/Lib/zlib/libz.la
|
||||||
fg_LDFLAGS =
|
fg_LDFLAGS =
|
||||||
SCRIPTS = $(bin_SCRIPTS)
|
SCRIPTS = $(bin_SCRIPTS)
|
||||||
|
|
||||||
|
@ -145,8 +146,8 @@ DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
|
||||||
|
|
||||||
TAR = tar
|
TAR = tar
|
||||||
GZIP = --best
|
GZIP = --best
|
||||||
DEP_FILES = .deps/GLUTkey.P .deps/GLUTmain.P .deps/fg_debug.P \
|
DEP_FILES = .deps/GLUTkey.P .deps/GLUTmain.P .deps/fg_getopt.P \
|
||||||
.deps/fg_getopt.P .deps/fg_init.P .deps/views.P
|
.deps/fg_init.P .deps/views.P
|
||||||
SOURCES = $(fg_SOURCES)
|
SOURCES = $(fg_SOURCES)
|
||||||
OBJECTS = $(fg_OBJECTS)
|
OBJECTS = $(fg_OBJECTS)
|
||||||
|
|
||||||
|
|
281
Main/fg_debug.c
281
Main/fg_debug.c
|
@ -1,281 +0,0 @@
|
||||||
/* -*- Mode: C++ -*-
|
|
||||||
*
|
|
||||||
* fg_debug.c -- Flight Gear debug utility functions
|
|
||||||
*
|
|
||||||
* Written by Paul Bleisch, started January 1998.
|
|
||||||
*
|
|
||||||
* Copyright (C) 1998 Paul Bleisch, pbleisch@acm.org
|
|
||||||
*
|
|
||||||
* 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)
|
|
||||||
**************************************************************************/
|
|
||||||
|
|
||||||
|
|
||||||
#include <string.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <stdarg.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
|
|
||||||
#include <Include/cmdargs.h> // Line to command line arguments
|
|
||||||
#include <Main/fg_debug.h>
|
|
||||||
|
|
||||||
|
|
||||||
static int fg_DebugSem = 1;
|
|
||||||
fgDebugClass fg_DebugClass = FG_NONE; // Need visibility for
|
|
||||||
fgDebugPriority fg_DebugPriority = FG_INFO; // command line processing.
|
|
||||||
static fgDebugCallback fg_DebugCallback = NULL;
|
|
||||||
|
|
||||||
FILE *fg_DebugOutput = NULL; // Visibility needed for command line processor.
|
|
||||||
// This can be set to a FILE from the command
|
|
||||||
// line. If not, it will be set to stderr.
|
|
||||||
|
|
||||||
/* TODO: Actually make this thing thread safe */
|
|
||||||
#ifdef USETHREADS
|
|
||||||
#define FG_GRABDEBUGSEM while( --fg_DebugSem < 0 ) { fg_DebugSem++; }
|
|
||||||
#define FG_RELEASEDEBUGSEM fg_DebugSem++;
|
|
||||||
#else
|
|
||||||
#define FG_GRABDEBUGSEM
|
|
||||||
#define FG_RELEASEDEBUGSEM
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Used for convienence initialization from env variables.
|
|
||||||
*/
|
|
||||||
static struct {
|
|
||||||
char *str;
|
|
||||||
fgDebugClass dbg_class;
|
|
||||||
} fg_DebugClasses[] = {
|
|
||||||
{ "FG_NONE", 0x00000000 },
|
|
||||||
{ "FG_TERRAIN", 0x00000001 },
|
|
||||||
{ "FG_ASTRO", 0x00000002 },
|
|
||||||
{ "FG_FLIGHT", 0x00000004 },
|
|
||||||
{ "FG_INPUT", 0x00000008 },
|
|
||||||
{ "FG_GL", 0x00000010 },
|
|
||||||
{ "FG_VIEW", 0x00000020 },
|
|
||||||
{ "FG_COCKPIT", 0x00000040 },
|
|
||||||
{ "FG_GENERAL", 0x00000080 },
|
|
||||||
{ "FG_MATH", 0x00000100 },
|
|
||||||
{ "FG_EVENT", 0x00000200 },
|
|
||||||
{ "FG_AIRCRAFT",0x00000400 },
|
|
||||||
|
|
||||||
/* Do not edit below here, last entry should be null */
|
|
||||||
{ "FG_ALL", 0xFFFFFFFF },
|
|
||||||
{ NULL, 0 }
|
|
||||||
};
|
|
||||||
|
|
||||||
static fgDebugClass fgDebugStrToClass( char *str );
|
|
||||||
|
|
||||||
|
|
||||||
/* fgInitDebug =============================================================*/
|
|
||||||
void fgInitDebug( void ) {
|
|
||||||
char *pszClass, *pszPrio, *pszFile;
|
|
||||||
|
|
||||||
// Support for log file/alt debug output via command line, environment or
|
|
||||||
// reasonable default.
|
|
||||||
|
|
||||||
if( strlen( logArgbuf ) > 3) { // First check for command line option
|
|
||||||
// Assumed that we will append.
|
|
||||||
fg_DebugOutput = fopen(logArgbuf, "a+" );
|
|
||||||
}
|
|
||||||
|
|
||||||
if( !fg_DebugOutput ) { // If not set on command line, environment?
|
|
||||||
pszFile = getenv( "FG_DEBUGFILE" );
|
|
||||||
if( pszFile ) { // There is such an environmental variable.
|
|
||||||
fg_DebugOutput = fopen( pszFile, "a+" );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if( !fg_DebugOutput ) { // If neither command line nor environment
|
|
||||||
fg_DebugOutput = stderr; // then we use the fallback position
|
|
||||||
}
|
|
||||||
|
|
||||||
FG_GRABDEBUGSEM;
|
|
||||||
fg_DebugSem = fg_DebugSem; /* shut up GCC */
|
|
||||||
|
|
||||||
// Test command line option overridge of debug priority. If the value
|
|
||||||
// is in range (properly optioned) the we will override both defaults
|
|
||||||
// and the environmental value.
|
|
||||||
|
|
||||||
if ((priorityArgValue >= FG_BULK) && (priorityArgValue <= FG_ABORT)) {
|
|
||||||
fg_DebugPriority = priorityArgValue;
|
|
||||||
} else { // Either not set or out of range. We will not warn the user.
|
|
||||||
pszPrio = getenv( "FG_DEBUGPRIORITY" );
|
|
||||||
if( pszPrio ) {
|
|
||||||
fg_DebugPriority = atoi( pszPrio );
|
|
||||||
fprintf( stderr,
|
|
||||||
"fg_debug.c: Environment overrides default debug priority (%d)\n",
|
|
||||||
fg_DebugPriority );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if ((debugArgValue >= FG_ALL) && (debugArgValue < FG_UNDEFD)) {
|
|
||||||
fg_DebugPriority = priorityArgValue;
|
|
||||||
} else { // Either not set or out of range. We will not warn the user.
|
|
||||||
pszClass = getenv( "FG_DEBUGCLASS" );
|
|
||||||
if( pszClass ) {
|
|
||||||
fg_DebugClass = fgDebugStrToClass( pszClass );
|
|
||||||
fprintf( stderr,
|
|
||||||
"fg_debug.c: Environment overrides default debug class (0x%08X)\n",
|
|
||||||
fg_DebugClass );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
FG_RELEASEDEBUGSEM;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* fgDebugStrToClass ======================================================*/
|
|
||||||
fgDebugClass fgDebugStrToClass( char *str ) {
|
|
||||||
char *hex = "0123456789ABCDEF";
|
|
||||||
char *hexl = "0123456789abcdef";
|
|
||||||
char *pt, *p, *ph, ps = 1;
|
|
||||||
unsigned int val = 0, i;
|
|
||||||
|
|
||||||
if( str == NULL ) {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Check for 0xXXXXXX notation */
|
|
||||||
if( (p = strstr( str, "0x")) ) {
|
|
||||||
p++; p++;
|
|
||||||
while (*p) {
|
|
||||||
if( (ph = strchr(hex,*p)) || (ph = strchr(hexl,*p)) ){
|
|
||||||
val <<= 4;
|
|
||||||
val += ph-hex;
|
|
||||||
p++;
|
|
||||||
} else {
|
|
||||||
// fprintf( stderr, "Error in hex string '%s'\n", str );
|
|
||||||
return FG_NONE;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
/* Must be in string format */
|
|
||||||
p = str;
|
|
||||||
ps = 1;
|
|
||||||
while( ps ) {
|
|
||||||
while( *p && (*p==' ' || *p=='\t') ) p++; /* remove whitespace */
|
|
||||||
pt = p; /* mark token */
|
|
||||||
while( *p && (*p!='|') ) p++; /* find OR or EOS */
|
|
||||||
ps = *p; /* save value at p so we can attempt to be bounds safe */
|
|
||||||
*p++ = 0; /* terminate token */
|
|
||||||
/* determine value for token */
|
|
||||||
i=0;
|
|
||||||
while( fg_DebugClasses[i].str &&
|
|
||||||
strncmp( fg_DebugClasses[i].str, pt,
|
|
||||||
strlen(fg_DebugClasses[i].str)) ) i++;
|
|
||||||
if( fg_DebugClasses[i].str == NULL ) {
|
|
||||||
fprintf( stderr,
|
|
||||||
"fg_debug.c: Could not find message class '%s'\n",
|
|
||||||
pt );
|
|
||||||
} else {
|
|
||||||
val |= fg_DebugClasses[i].dbg_class;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return (fgDebugClass)val;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* fgSetDebugOutput =======================================================*/
|
|
||||||
void fgSetDebugOutput( FILE *out ) {
|
|
||||||
FG_GRABDEBUGSEM;
|
|
||||||
fflush( fg_DebugOutput );
|
|
||||||
fg_DebugOutput = out;
|
|
||||||
FG_RELEASEDEBUGSEM;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* fgSetDebugLevels =======================================================*/
|
|
||||||
void fgSetDebugLevels( fgDebugClass dbg_class, fgDebugPriority prio ) {
|
|
||||||
FG_GRABDEBUGSEM;
|
|
||||||
fg_DebugClass = dbg_class;
|
|
||||||
fg_DebugPriority = prio;
|
|
||||||
FG_RELEASEDEBUGSEM;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* fgRegisterDebugCallback ================================================*/
|
|
||||||
fgDebugCallback fgRegisterDebugCallback( fgDebugCallback callback ) {
|
|
||||||
fgDebugCallback old;
|
|
||||||
FG_GRABDEBUGSEM;
|
|
||||||
old = fg_DebugCallback;
|
|
||||||
fg_DebugCallback = callback;
|
|
||||||
FG_RELEASEDEBUGSEM;
|
|
||||||
return old;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* fgPrintf ===============================================================*/
|
|
||||||
int fgPrintf( fgDebugClass dbg_class, fgDebugPriority prio, char *fmt, ... ) {
|
|
||||||
char szOut[1024+1];
|
|
||||||
va_list ap;
|
|
||||||
int ret = 0;
|
|
||||||
|
|
||||||
// If no action to take, then don't bother with the semaphore
|
|
||||||
// activity Slight speed benefit.
|
|
||||||
|
|
||||||
// printf("dbg_class = %d fg_DebugClass = %d\n", dbg_class, fg_DebugClass);
|
|
||||||
// printf("prio = %d fg_DebugPriority = %d\n", prio, fg_DebugPriority);
|
|
||||||
|
|
||||||
if( !(dbg_class & fg_DebugClass) ) {
|
|
||||||
// Failed to match a specific debug class
|
|
||||||
if ( prio < fg_DebugPriority ) {
|
|
||||||
// priority is less than requested
|
|
||||||
|
|
||||||
// "ret" is zero anyway. But we might think about changing
|
|
||||||
// it upon some error condition?
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
FG_GRABDEBUGSEM;
|
|
||||||
|
|
||||||
/* ret = vsprintf( szOut, fmt, (&fmt+1)); (but it didn't work, thus ... */
|
|
||||||
va_start (ap, fmt);
|
|
||||||
ret = vsprintf( szOut, fmt, ap);
|
|
||||||
va_end (ap);
|
|
||||||
|
|
||||||
if( fg_DebugCallback!=NULL && fg_DebugCallback(dbg_class, prio, szOut) ) {
|
|
||||||
FG_RELEASEDEBUGSEM;
|
|
||||||
return ret;
|
|
||||||
} else {
|
|
||||||
fprintf( fg_DebugOutput, szOut );
|
|
||||||
FG_RELEASEDEBUGSEM;
|
|
||||||
if( prio == FG_EXIT ) {
|
|
||||||
exit(0);
|
|
||||||
} else if( prio == FG_ABORT ) {
|
|
||||||
abort();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* $Log$
|
|
||||||
/* Revision 1.10 1998/03/14 00:31:21 curt
|
|
||||||
/* Beginning initial terrain texturing experiments.
|
|
||||||
/*
|
|
||||||
* Revision 1.9 1998/03/09 22:44:58 curt
|
|
||||||
* Modified so that you can specify FG_DEBUGCLASS ***or*** FG_DEBUG_PRIORITY
|
|
||||||
*
|
|
||||||
* Revision 1.8 1998/03/09 22:11:00 curt
|
|
||||||
* Processed through the format-o-matic.
|
|
||||||
*
|
|
||||||
* Revision 1.7 1998/02/16 13:39:43 curt
|
|
||||||
* Miscellaneous weekend tweaks. Fixed? a cache problem that caused whole
|
|
||||||
* tiles to occasionally be missing.
|
|
||||||
*
|
|
||||||
*/
|
|
143
Main/fg_debug.h
143
Main/fg_debug.h
|
@ -1,143 +0,0 @@
|
||||||
/* -*- Mode: C++ -*-
|
|
||||||
*
|
|
||||||
* fg_debug.h -- Flight Gear debug utility functions
|
|
||||||
*
|
|
||||||
* Written by Paul Bleisch, started January 1998.
|
|
||||||
*
|
|
||||||
* Copyright (C) 1998 Paul Bleisch, pbleisch@acm.org
|
|
||||||
*
|
|
||||||
* 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.
|
|
||||||
*
|
|
||||||
* (Log is kept at end of this file)
|
|
||||||
**************************************************************************/
|
|
||||||
|
|
||||||
|
|
||||||
#ifndef _FG_DEBUG_H
|
|
||||||
#define _FG_DEBUG_H
|
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
|
|
||||||
/* NB: To add a dbg_class, add it here, and add it to the structure in
|
|
||||||
fg_debug.c */
|
|
||||||
typedef enum {
|
|
||||||
FG_NONE = 0x00000000,
|
|
||||||
|
|
||||||
FG_TERRAIN = 0x00000001,
|
|
||||||
FG_ASTRO = 0x00000002,
|
|
||||||
FG_FLIGHT = 0x00000004,
|
|
||||||
FG_INPUT = 0x00000008,
|
|
||||||
FG_GL = 0x00000010,
|
|
||||||
FG_VIEW = 0x00000020,
|
|
||||||
FG_COCKPIT = 0x00000040,
|
|
||||||
FG_GENERAL = 0x00000080,
|
|
||||||
FG_MATH = 0x00000100,
|
|
||||||
FG_EVENT = 0x00000200,
|
|
||||||
FG_AIRCRAFT= 0x00000400,
|
|
||||||
FG_UNDEFD = 0x00001000, // For range checking
|
|
||||||
|
|
||||||
FG_ALL = 0xFFFFFFFF
|
|
||||||
} fgDebugClass;
|
|
||||||
|
|
||||||
/* NB: To add a priority, add it here. */
|
|
||||||
typedef enum {
|
|
||||||
FG_BULK, /* For frequent messages */
|
|
||||||
FG_DEBUG, /* Less frequent debug type messages */
|
|
||||||
FG_INFO, /* Informatory messages */
|
|
||||||
FG_WARN, /* Possible impending problem */
|
|
||||||
FG_ALERT, /* Very possible impending problem */
|
|
||||||
FG_EXIT, /* Problem (no core) */
|
|
||||||
FG_ABORT /* Abandon ship (core) */
|
|
||||||
} fgDebugPriority;
|
|
||||||
|
|
||||||
|
|
||||||
/* Initialize the debuggin stuff. */
|
|
||||||
void fgInitDebug( void );
|
|
||||||
|
|
||||||
|
|
||||||
/* fgPrintf
|
|
||||||
|
|
||||||
Expects:
|
|
||||||
class fgDebugClass mask for this message.
|
|
||||||
prio fgDebugPriority of this message.
|
|
||||||
fmt printf like string format
|
|
||||||
... var args for fmt
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
number of items in fmt handled.
|
|
||||||
|
|
||||||
This function works like the standard C library function printf() with
|
|
||||||
the addition of message classes and priorities (see fgDebugClasses
|
|
||||||
and fgDebugPriorities). These additions allow us to classify messages
|
|
||||||
and disable sets of messages at runtime. Only messages with a prio
|
|
||||||
greater than or equal to fg_DebugPriority and in the current debug class
|
|
||||||
(fg_DebugClass) are printed.
|
|
||||||
*/
|
|
||||||
int fgPrintf( fgDebugClass dbg_class, fgDebugPriority prio, char *fmt, ... );
|
|
||||||
|
|
||||||
|
|
||||||
/* fgSetDebugLevels()
|
|
||||||
|
|
||||||
Expects:
|
|
||||||
dbg_class Bitmask representing classes to display.
|
|
||||||
prio Minimum priority of messages to display.
|
|
||||||
*/
|
|
||||||
void fgSetDebugLevels( fgDebugClass dbg_class, fgDebugPriority prio );
|
|
||||||
|
|
||||||
/* fgSetDebugOutput()
|
|
||||||
|
|
||||||
Expects:
|
|
||||||
file A FILE* to a stream to send messages to.
|
|
||||||
|
|
||||||
It is assumed the file stream is open and writable. The system
|
|
||||||
defaults to stderr. The current stream is flushed but not
|
|
||||||
closed.
|
|
||||||
*/
|
|
||||||
void fgSetDebugOutput( FILE *out );
|
|
||||||
|
|
||||||
|
|
||||||
/* fgRegisterDebugCallback
|
|
||||||
|
|
||||||
Expects:
|
|
||||||
callback A function that takes parameters as defined by the
|
|
||||||
fgDebugCallback type.
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
a pointer to the previously registered callback (if any)
|
|
||||||
|
|
||||||
Install a user defined debug log callback. This callback is called w
|
|
||||||
whenever fgPrintf is called. The parameters passed to the callback are
|
|
||||||
defined above by fgDebugCallback. outstr is the string that is to be
|
|
||||||
printed. If callback returns nonzero, it is assumed that the message
|
|
||||||
was handled fully by the callback and **fgPrintf need do no further
|
|
||||||
processing of the message.** Only one callback may be installed at a
|
|
||||||
time.
|
|
||||||
*/
|
|
||||||
|
|
||||||
//typedef int (*fgDebugCallback)(fgDebugClass, fgDebugPriority, char *outstr);
|
|
||||||
//fgDebugCallback fgRegisterDebugCallback( fgDebugCallback callback );
|
|
||||||
|
|
||||||
typedef int (*fgDebugCallback)( int DebugClass, int DebugPriority, char *outstr);
|
|
||||||
fgDebugCallback fgRegisterDebugCallback( fgDebugCallback callback );
|
|
||||||
|
|
||||||
|
|
||||||
// Leave these alone. Access intended for fg_debug and command line processing.
|
|
||||||
//
|
|
||||||
extern fgDebugClass fg_DebugClass;
|
|
||||||
extern fgDebugPriority fg_DebugPriority;
|
|
||||||
|
|
||||||
extern FILE * fg_DebugOutput;
|
|
||||||
|
|
||||||
#endif /* _FG_DEBUG_H */
|
|
||||||
|
|
|
@ -44,6 +44,7 @@
|
||||||
#include <Astro/sun.h>
|
#include <Astro/sun.h>
|
||||||
#include <Autopilot/autopilot.h>
|
#include <Autopilot/autopilot.h>
|
||||||
#include <Cockpit/cockpit.h>
|
#include <Cockpit/cockpit.h>
|
||||||
|
#include <Debug/fg_debug.h>
|
||||||
#include <Joystick/joystick.h>
|
#include <Joystick/joystick.h>
|
||||||
#include <Math/fg_random.h>
|
#include <Math/fg_random.h>
|
||||||
#include <Scenery/scenery.h>
|
#include <Scenery/scenery.h>
|
||||||
|
@ -52,7 +53,6 @@
|
||||||
#include <Time/fg_time.h>
|
#include <Time/fg_time.h>
|
||||||
#include <Time/sunpos.h>
|
#include <Time/sunpos.h>
|
||||||
#include <Weather/weather.h>
|
#include <Weather/weather.h>
|
||||||
#include <Main/fg_debug.h>
|
|
||||||
|
|
||||||
extern int show_hud; /* HUD state */
|
extern int show_hud; /* HUD state */
|
||||||
extern int displayInstruments;
|
extern int displayInstruments;
|
||||||
|
@ -228,14 +228,10 @@ int fgInitSubsystems( void ) {
|
||||||
// FG_Altitude = FG_Runway_altitude + 3.758099;
|
// FG_Altitude = FG_Runway_altitude + 3.758099;
|
||||||
|
|
||||||
// Test Position
|
// Test Position
|
||||||
FG_Longitude = ( -113.5 ) * DEG_TO_RAD;
|
// FG_Longitude = ( -109.5 ) * DEG_TO_RAD;
|
||||||
FG_Latitude = ( 33.5 ) * DEG_TO_RAD;
|
// FG_Latitude = ( 32.5 ) * DEG_TO_RAD;
|
||||||
FG_Runway_altitude = 8000.0;
|
// FG_Runway_altitude = (2646 + 2000);
|
||||||
FG_Altitude = FG_Runway_altitude + 3.758099;
|
// FG_Altitude = FG_Runway_altitude + 3.758099;
|
||||||
|
|
||||||
// A random test position
|
|
||||||
// FG_Longitude = ( 88128.00 / 3600.0 ) * DEG_TO_RAD;
|
|
||||||
// FG_Latitude = ( 93312.00 / 3600.0 ) * DEG_TO_RAD;
|
|
||||||
|
|
||||||
fgPrintf( FG_GENERAL, FG_INFO,
|
fgPrintf( FG_GENERAL, FG_INFO,
|
||||||
"Initial position is: (%.4f, %.4f, %.2f)\n",
|
"Initial position is: (%.4f, %.4f, %.2f)\n",
|
||||||
|
@ -405,10 +401,13 @@ int fgInitSubsystems( void ) {
|
||||||
|
|
||||||
|
|
||||||
/* $Log$
|
/* $Log$
|
||||||
/* Revision 1.55 1998/04/14 02:21:03 curt
|
/* Revision 1.56 1998/04/18 04:11:28 curt
|
||||||
/* Incorporated autopilot heading hold contributed by: Jeff Goeke-Smith
|
/* Moved fg_debug to it's own library, added zlib support.
|
||||||
/* <jgoeke@voyager.net>
|
|
||||||
/*
|
/*
|
||||||
|
* Revision 1.55 1998/04/14 02:21:03 curt
|
||||||
|
* Incorporated autopilot heading hold contributed by: Jeff Goeke-Smith
|
||||||
|
* <jgoeke@voyager.net>
|
||||||
|
*
|
||||||
* Revision 1.54 1998/04/08 23:35:36 curt
|
* Revision 1.54 1998/04/08 23:35:36 curt
|
||||||
* Tweaks to Gnu automake/autoconf system.
|
* Tweaks to Gnu automake/autoconf system.
|
||||||
*
|
*
|
||||||
|
|
|
@ -8,16 +8,16 @@ SET FG_ROOT=@prefix@
|
||||||
:CONT1
|
:CONT1
|
||||||
|
|
||||||
REM Check for the existance of the executable
|
REM Check for the existance of the executable
|
||||||
IF NOT EXIST %FG_ROOT%/BIN/FG.EXE GOTO ERROR1
|
IF NOT EXIST %FG_ROOT%\BIN\FG.EXE GOTO ERROR1
|
||||||
|
|
||||||
REM Now that FG_ROOT has been set, run the program
|
REM Now that FG_ROOT has been set, run the program
|
||||||
ECHO FG_ROOT = %FG_ROOT%
|
ECHO FG_ROOT = %FG_ROOT%
|
||||||
%FG_ROOT%/BIN/FG.EXE
|
%FG_ROOT%\BIN\FG.EXE
|
||||||
|
|
||||||
GOTO END
|
GOTO END
|
||||||
|
|
||||||
:ERROR1
|
:ERROR1
|
||||||
ECHO Cannot find %FG_ROOT%/BIN/FG.EXE
|
ECHO Cannot find %FG_ROOT%\BIN\FG.EXE
|
||||||
GOTO END
|
GOTO END
|
||||||
|
|
||||||
:END
|
:END
|
||||||
|
|
|
@ -28,13 +28,13 @@
|
||||||
|
|
||||||
#include <Include/fg_constants.h>
|
#include <Include/fg_constants.h>
|
||||||
|
|
||||||
|
#include <Debug/fg_debug.h>
|
||||||
#include <Flight/flight.h>
|
#include <Flight/flight.h>
|
||||||
#include <Math/mat3.h>
|
#include <Math/mat3.h>
|
||||||
#include <Math/polar.h>
|
#include <Math/polar.h>
|
||||||
#include <Math/vector.h>
|
#include <Math/vector.h>
|
||||||
#include <Scenery/scenery.h>
|
#include <Scenery/scenery.h>
|
||||||
#include <Time/fg_time.h>
|
#include <Time/fg_time.h>
|
||||||
#include <Main/fg_debug.h>
|
|
||||||
|
|
||||||
/* This is a record containing current view parameters */
|
/* This is a record containing current view parameters */
|
||||||
struct fgVIEW current_view;
|
struct fgVIEW current_view;
|
||||||
|
@ -188,9 +188,12 @@ void fgViewUpdate(fgFLIGHT *f, struct fgVIEW *v, struct fgLIGHT *l) {
|
||||||
|
|
||||||
|
|
||||||
/* $Log$
|
/* $Log$
|
||||||
/* Revision 1.15 1998/02/20 00:16:24 curt
|
/* Revision 1.16 1998/04/18 04:11:29 curt
|
||||||
/* Thursday's tweaks.
|
/* Moved fg_debug to it's own library, added zlib support.
|
||||||
/*
|
/*
|
||||||
|
* Revision 1.15 1998/02/20 00:16:24 curt
|
||||||
|
* Thursday's tweaks.
|
||||||
|
*
|
||||||
* Revision 1.14 1998/02/09 15:07:50 curt
|
* Revision 1.14 1998/02/09 15:07:50 curt
|
||||||
* Minor tweaks.
|
* Minor tweaks.
|
||||||
*
|
*
|
||||||
|
|
Loading…
Reference in a new issue