1
0
Fork 0

Added Linux audio support.

avoid glClear( COLOR_BUFFER_BIT ) when not using it to set the sky color.
map stl tweaks.
This commit is contained in:
curt 1998-06-01 17:54:40 +00:00
parent 76587fa376
commit a6c2da9e4e
4 changed files with 50 additions and 88 deletions

View file

@ -50,6 +50,7 @@
#include <Astro/sky.hxx>
#include <Astro/stars.hxx>
#include <Astro/sun.hxx>
#include <Audio/sl.h>
#include <Cockpit/cockpit.hxx>
#include <Debug/fg_debug.h>
#include <Joystick/joystick.h>
@ -79,7 +80,13 @@ int use_signals = 0;
// Yet another other hack. Used for my prototype instrument code. (Durk)
int displayInstruments;
/*
// Global structures for the Audio library
slScheduler audio_sched ;
slMixer audio_mixer ;
slSample *s1;
slSample *s2;
// The following defines flight gear options. Because glutlib will also
// want to parse its own options, those options must not be included here
// or they will get parsed by the main program option parser. Hence case
@ -99,85 +106,7 @@ int displayInstruments;
// option parser wants only initial characters followed by numbers
// or pathnames.
//
const char *fg_cmdargopts = "a:c:Hhp:r:v:x:?";
//
// Where
// -a aircraftfilename aircraft start over ride
// -c0x0000 - 0xffffffff debug class setting
// H,h.? help on command line use (does not need Option struct)
// -p priority
// -r flightgear root path to program support files
// -v0 -v1 initial view mode (hud/no_hud currently)
// -xlogpathname debug logfile name
//
// Defaults in arguments to indicate not set on command line.
// Program defaults set variables from constants if neither command
// options or environmental variables effect values.
//
char acArgbuf [ MAXPATH + 1] = "\0";
int debugArgValue = -2;
int priorityArgValue = -1;
char rootArgbuf [ MAXPATH + 1] = "\0";
int viewArg = -1;
char logArgbuf [ MAXPATH + 1] = "\0";
// There is a reason for defining the option structs by name and then
// creating an array of pointers to options. C++ is unfriendly to
// initializing arrays of objects that are not built in types. Always
// look forward. (Besides, you can follow what is going on better and
// add or modify with greater security. -ch
//
Option aircraftOption = { 'a',
OPT_STRING,
acArgbuf,
"Startup aircraft pathname override"
};
Option debugOption = { 'c',
OPT_LHEX, // Long int (32 bits)
&debugArgValue,
"Debug trace level"
};
Option priorityOption = { 'p',
OPT_INTEGER,
&priorityArgValue,
"Debug priority Threshold"
};
Option rootOption = { 'r',
OPT_STRING,
rootArgbuf,
"Root directory for execution"
};
Option hudOption = { 'v',
OPT_INTEGER,
&viewArg,
"View mode start" // Naked,HUD,Panel,Chase,Tower...
};
// Only naked view and HUD are implemented at this time
Option logfileOption = { 'x',
OPT_STRING,
logArgbuf,
"Debug log file name"
};
#define OptsDefined 6
Option *CmdLineOptions[ OptsDefined ] = {
&aircraftOption,
&debugOption,
&hudOption,
&priorityOption,
&rootOption,
&logfileOption
};
const char *DefaultRootDir = "\\Flightgear";
const char *DefaultAircraft = "Navion.acf";
const char *DefaultDebuglog = "fgdebug.log";
const int DefaultViewMode = HUD_VIEW;
*/
// Debug defaults handled in fg_debug.c
// fgInitVisuals() -- Initialize various GL/view parameters
static void fgInitVisuals( void ) {
@ -351,11 +280,12 @@ static void fgRenderFrame( void ) {
if ( o->skyblend ) {
glClearColor(black[0], black[1], black[2], black[3]);
xglClear( GL_DEPTH_BUFFER_BIT );
} else {
glClearColor(l->sky_color[0], l->sky_color[1],
l->sky_color[2], l->sky_color[3]);
xglClear( GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT );
}
xglClear( GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT );
// Tell GL we are switching to model view parameters
xglMatrixMode(GL_MODELVIEW);
@ -432,10 +362,10 @@ static void fgRenderFrame( void ) {
xglMaterialfv (GL_FRONT, GL_DIFFUSE, white);
} else {
xglDisable( GL_TEXTURE_2D );
// xglMaterialfv (GL_FRONT, GL_AMBIENT, terrain_color);
// xglMaterialfv (GL_FRONT, GL_DIFFUSE, terrain_color);
xglMaterialfv (GL_FRONT, GL_AMBIENT, white);
xglMaterialfv (GL_FRONT, GL_DIFFUSE, white);
xglMaterialfv (GL_FRONT, GL_AMBIENT, terrain_color);
xglMaterialfv (GL_FRONT, GL_DIFFUSE, terrain_color);
// xglMaterialfv (GL_FRONT, GL_AMBIENT, white);
// xglMaterialfv (GL_FRONT, GL_DIFFUSE, white);
}
fgTileMgrRender();
@ -616,6 +546,9 @@ static void fgMainLoop( void ) {
// Process/manage pending events
global_events.Process();
// Run audio scheduler
audio_sched.update();
// redraw display
fgRenderFrame();
@ -762,6 +695,18 @@ int main( int argc, char **argv ) {
"GLUT event handler initialization failed ...\n" );
}
// Audio support
audio_mixer . setMasterVolume ( 30 ) ; /* 50% of max volume. */
audio_sched . setRate ( 8000 ) ; /* 8KHz sample rate. */
// audio_sched . setSafetyMargin ( 0.128 ) ;
audio_sched . stereo ( SL_FALSE ) ; /* Monophonic. */
audio_sched . setBps ( 8 ) ; /* 8 bit samples. */
s1 = new slSample ( "/dos/X-System-HSR/sounds/xp_recip.wav" );
s2 = new slSample ( "/dos/X-System-HSR/sounds/wind.wav" );
s2 -> adjustVolume(0.5);
audio_sched . loopSample ( s1 );
audio_sched . loopSample ( s2 );
// pass control off to the master GLUT event handler
glutMainLoop();
@ -779,6 +724,11 @@ extern "C" {
// $Log$
// Revision 1.19 1998/06/01 17:54:40 curt
// Added Linux audio support.
// avoid glClear( COLOR_BUFFER_BIT ) when not using it to set the sky color.
// map stl tweaks.
//
// Revision 1.18 1998/05/29 20:37:19 curt
// Tweaked material properties & lighting a bit in GLUTmain.cxx.
// Read airport list into a "map" STL for dynamic list sizing and fast tree

View file

@ -26,6 +26,7 @@ fg_LDADD = \
$(top_builddir)/Simulator/Time/libTime.la \
$(top_builddir)/Simulator/Weather/libWeather.la \
$(top_builddir)/Simulator/Joystick/libJoystick.la \
$(top_builddir)/Lib/Audio/libAudio.la \
$(top_builddir)/Lib/Math/libMath.la \
$(top_builddir)/Lib/Bucket/libBucket.la \
$(top_builddir)/Lib/Debug/libDebug.la \

View file

@ -36,10 +36,8 @@
#include <map.h> // STL associative "array"
#if defined(__CYGWIN32__)
#if defined(WIN32)
# include <string> // Standard C++ string library
#elif defined(WIN32)
# include <string.h> // Standard C++ string library
#else
# include <std/string.h> // Standard C++ string library
#endif
@ -47,7 +45,9 @@
typedef struct {
// char id[5];
double longitude, latitude, elevation;
double longitude;
double latitude;
double elevation;
} fgAIRPORT;
@ -75,6 +75,11 @@ public:
// $Log$
// Revision 1.3 1998/06/01 17:54:42 curt
// Added Linux audio support.
// avoid glClear( COLOR_BUFFER_BIT ) when not using it to set the sky color.
// map stl tweaks.
//
// Revision 1.2 1998/05/29 20:37:22 curt
// Tweaked material properties & lighting a bit in GLUTmain.cxx.
// Read airport list into a "map" STL for dynamic list sizing and fast tree

View file

@ -40,6 +40,7 @@
#include <Astro/sky.hxx>
#include <Astro/stars.hxx>
#include <Astro/sun.hxx>
#include <Audio/sl.h>
#include <Autopilot/autopilot.h>
#include <Cockpit/cockpit.hxx>
#include <Debug/fg_debug.h>
@ -386,6 +387,11 @@ int fgInitSubsystems( void ) {
// $Log$
// Revision 1.17 1998/06/01 17:54:42 curt
// Added Linux audio support.
// avoid glClear( COLOR_BUFFER_BIT ) when not using it to set the sky color.
// map stl tweaks.
//
// Revision 1.16 1998/05/29 20:37:24 curt
// Tweaked material properties & lighting a bit in GLUTmain.cxx.
// Read airport list into a "map" STL for dynamic list sizing and fast tree