]> git.mxchange.org Git - flightgear.git/blobdiff - src/Main/main.cxx
Tweaks to base version check code.
[flightgear.git] / src / Main / main.cxx
index 64a4f8f75301ee85f871d7f6c7b523dac232ed7b..6f3c3bb39c1327a867e7726b6a4d0b87a3530a03 100644 (file)
@@ -25,6 +25,8 @@
 #  include <config.h>
 #endif
 
+#include <simgear/compiler.h>
+
 #ifdef SG_MATH_EXCEPTION_CLASH
 #  include <math.h>
 #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 = "";