Fixes so that FG will still run when there is no sound device (or when it couldn't open the sound device/find a sound device that it can use).
It would be, IMHO, good, if we're not creating the sound manager, and the FGFX and FGVoiceMgr if either we couldn't find a sound device we could use or we want to disable sound completely. Pigeon.
Index: src/Sound/fg_fx.cxx =================================================================== RCS file: /var/cvs/FlightGear-0.9/source/src/Sound/fg_fx.cxx,v retrieving revision 1.19 diff -u -r1.19 fg_fx.cxx --- src/Sound/fg_fx.cxx 21 Feb 2006 01:20:04 -0000 1.19 +++ src/Sound/fg_fx.cxx 23 Apr 2006 11:47:17 -0000 @@ -129,6 +129,10 @@ { SGSoundMgr *smgr = globals->get_soundmgr(); + if (smgr->is_working() == false) { + return; + } + // command sound manger bool pause = _pause->getBoolValue(); if ( pause != last_pause ) { @@ -189,6 +193,9 @@ void FGFX::play_message( const string path, const string fname ) { + if (globals->get_soundmgr()->is_working() == false) { + return; + } SGSoundSample *sample; sample = new SGSoundSample( path.c_str(), fname.c_str() ); play_message( sample ); Index: src/Instrumentation/mk_viii.cxx =================================================================== RCS file: /var/cvs/FlightGear-0.9/source/src/Instrumentation/mk_viii.cxx,v retrieving revision 1.3 diff -u -r1.3 mk_viii.cxx --- src/Instrumentation/mk_viii.cxx 10 Mar 2006 21:26:44 -0000 1.3 +++ src/Instrumentation/mk_viii.cxx 23 Apr 2006 11:47:27 -0000 @@ -2299,7 +2299,13 @@ std::ostringstream refname; refname << mk->name << "[" << mk->num << "]" << "/" << name; - SGSoundSample *sample = globals->get_soundmgr()->find(refname.str()); + SGSoundMgr *soundmgr = globals->get_soundmgr(); + if (soundmgr->is_working() == false) + { + return NULL; + } + + SGSoundSample *sample = soundmgr->find(refname.str()); if (! sample) { SGPath sample_path(globals->get_fg_root()); @@ -2316,7 +2322,7 @@ exit(1); } - globals->get_soundmgr()->add(sample, refname.str()); + soundmgr->add(sample, refname.str()); samples[refname.str()] = sample; }