X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FMain%2Fmain.cxx;h=6f3c3bb39c1327a867e7726b6a4d0b87a3530a03;hb=76a94d8f0278eeddf692850918526df84a73429c;hp=bc0d80d42a8f68fda74eee88d875d0059b0abbda;hpb=72a95d570c7e99dce9ea41c64777f6996ad05dfe;p=flightgear.git diff --git a/src/Main/main.cxx b/src/Main/main.cxx index bc0d80d42..6f3c3bb39 100644 --- a/src/Main/main.cxx +++ b/src/Main/main.cxx @@ -25,6 +25,8 @@ # include #endif +#include + #ifdef SG_MATH_EXCEPTION_CLASH # include #endif @@ -1207,20 +1209,42 @@ static void fgIdleFunction ( void ) { idle_state++; } else if ( idle_state == 1 ) { + // Initialize audio support +#ifdef ENABLE_AUDIO_SUPPORT + // Start the intro music #if !defined(WIN32) if ( fgGetBool("/sim/startup/intro-music") ) { - string lockfile = "/tmp/mpg123.running"; SGPath mp3file( globals->get_fg_root() ); mp3file.append( "Sounds/intro.mp3" ); - string command = "(touch " + lockfile + "; mpg123 " - + mp3file.str() + "> /dev/null 2>&1; /bin/rm " - + lockfile + ") &"; SG_LOG( SG_GENERAL, SG_INFO, "Starting intro music: " << mp3file.str() ); + + string command = "mpg123 " + mp3file.str() + "> /dev/null 2>&1"; system ( command.c_str() ); } +#endif // !WIN32 + + FGSoundMgr *soundmgr = new FGSoundMgr; + globals->set_soundmgr( soundmgr ); + + if ( fgGetBool("/sim/sound") ) { + globals->get_soundmgr()->init(); + + s1 = new FGSimpleSound( fgGetString("/sim/sounds/engine", + "Sounds/wasp.wav") ); + globals->get_soundmgr()->add( s1, "engine loop" ); + globals->get_soundmgr()->play_looped( "engine loop" ); + SG_LOG( SG_GENERAL, SG_INFO, + "Rate = " << s1->get_sample()->getRate() + << " Bps = " << s1->get_sample()->getBps() + << " Stereo = " << s1->get_sample()->getStereo() ); + + // s2 = new FGSimpleSound( "Sounds/corflaps.wav" ); + // s2->set_volume( 0.3 ); + // globals->get_soundmgr()->add( s2, "flaps" ); + } #endif idle_state++; @@ -1256,47 +1280,6 @@ static void fgIdleFunction ( void ) { idle_state++; } else if ( idle_state == 6 ) { - // Initialize audio support -#ifdef ENABLE_AUDIO_SUPPORT - -#if !defined(WIN32) - if ( fgGetBool("/sim/startup/intro-music") ) { - // Let's wait for mpg123 to finish - string lockfile = "/tmp/mpg123.running"; - struct stat stat_buf; - - SG_LOG( SG_GENERAL, SG_INFO, - "Waiting for mpg123 player to finish ..." ); - while ( stat(lockfile.c_str(), &stat_buf) == 0 ) { - // file exist, wait ... - sleep(1); - SG_LOG( SG_GENERAL, SG_INFO, "."); - } - SG_LOG( SG_GENERAL, SG_INFO, ""); - } -#endif // WIN32 - - if ( fgGetBool("/sim/sound") ) { - globals->get_soundmgr()->init(); - - s1 = new FGSimpleSound( fgGetString("/sim/sounds/engine", - "Sounds/wasp.wav") ); - globals->get_soundmgr()->add( s1, "engine loop" ); - globals->get_soundmgr()->play_looped( "engine loop" ); - SG_LOG( SG_GENERAL, SG_INFO, - "Rate = " << s1->get_sample()->getRate() - << " Bps = " << s1->get_sample()->getBps() - << " Stereo = " << s1->get_sample()->getStereo() ); - - s2 = new FGSimpleSound( "Sounds/corflaps.wav" ); - // FGMorse mmm; - // mmm.init(); - // s2 = mmm.make_ident( "JLI" ); - s2->set_volume( 0.3 ); - globals->get_soundmgr()->add( s2, "flaps" ); - } -#endif - // sleep(1); idle_state = 1000; @@ -1479,11 +1462,6 @@ int main( int argc, char **argv ) { SGRoute *route = new SGRoute; globals->set_route( route ); -#ifdef ENABLE_AUDIO_SUPPORT - FGSoundMgr *soundmgr = new FGSoundMgr; - globals->set_soundmgr( soundmgr ); -#endif - FGViewMgr *viewmgr = new FGViewMgr; globals->set_viewmgr( viewmgr ); @@ -1503,6 +1481,15 @@ int main( int argc, char **argv ) { // fg_root was specified (ignore all other options for now) fgInitFGRoot(argc, argv); + // Check for the correct base package version + string base_version = fgBasePackageVersion(); + if ( !(base_version == "0.7.9") ) { + SG_LOG( SG_GENERAL, SG_ALERT, "Base package check failed ... " + << "Found version " << base_version ); + SG_LOG( SG_GENERAL, SG_ALERT, "Please upgrade to version 0.7.9" ); + exit(-1); + } + // Initialize the Aircraft directory to "" (UIUC) aircraft_dir = ""; @@ -1726,12 +1713,12 @@ int main( int argc, char **argv ) { sgMat4 rot_matrix; sgMat4 off_matrix; sgMat4 res_matrix; - float h_rot = fgGetFloat("/sim/model/h-rotation", 0.0); - float p_rot = fgGetFloat("/sim/model/p-rotation", 0.0); - float r_rot = fgGetFloat("/sim/model/r-rotation", 0.0); - float x_off = fgGetFloat("/sim/model/x-offset", 0.0); - float y_off = fgGetFloat("/sim/model/y-offset", 0.0); - float z_off = fgGetFloat("/sim/model/z-offset", 0.0); + float h_rot = fgGetFloat("/sim/model/heading-offset-deg", 0.0); + float p_rot = fgGetFloat("/sim/model/roll-offset-deg", 0.0); + float r_rot = fgGetFloat("/sim/model/pitch-offset-deg", 0.0); + float x_off = fgGetFloat("/sim/model/x-offset-m", 0.0); + float y_off = fgGetFloat("/sim/model/y-offset-m", 0.0); + float z_off = fgGetFloat("/sim/model/z-offset-m", 0.0); sgMakeRotMat4(rot_matrix, h_rot, p_rot, r_rot); sgMakeTransMat4(off_matrix, x_off, y_off, z_off); sgMultMat4(res_matrix, off_matrix, rot_matrix);