]> git.mxchange.org Git - flightgear.git/blobdiff - src/Main/main.cxx
Tweaks to base version check code.
[flightgear.git] / src / Main / main.cxx
index ac6cff902d502ecf81bedf0645fba3158159de2e..6f3c3bb39c1327a867e7726b6a4d0b87a3530a03 100644 (file)
@@ -25,6 +25,8 @@
 #  include <config.h>
 #endif
 
+#include <simgear/compiler.h>
+
 #ifdef SG_MATH_EXCEPTION_CLASH
 #  include <math.h>
 #endif
@@ -718,7 +720,7 @@ void fgRenderFrame( void ) {
 
            if (prop_selector != NULL) {
              int propsel_mask = 0;
-             double rpm = fgGetDouble("/engines/engine0/rpm");
+             double rpm = fgGetDouble("/engines/engine[0]/rpm");
              for (int i = 0; i < acmodel_npropsettings; i++) {
                if (rpm >= acmodel_proprpms[i][0] &&
                    rpm <= acmodel_proprpms[i][1]) {
@@ -1024,6 +1026,8 @@ static void fgMainLoop( void ) {
           cur_fdm_state->get_Runway_altitude() * SG_FEET_TO_METER,
           cur_fdm_state->get_Altitude() * SG_FEET_TO_METER); */
 
+    // cout << "Warp = " << globals->get_warp() << endl;
+
     // update "time"
     if ( globals->get_warp_delta() != 0 ) {
        globals->inc_warp( globals->get_warp_delta() );
@@ -1205,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++;
@@ -1254,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;
 
@@ -1477,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 );
 
@@ -1501,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 = "";
 
@@ -1551,14 +1540,14 @@ int main( int argc, char **argv ) {
     if ( fgGetString("/sim/startup/airport-id").length() ) {
        // fgSetPosFromAirportID( fgGetString("/sim/startup/airport-id") );
        fgSetPosFromAirportIDandHdg( fgGetString("/sim/startup/airport-id"),
-                                    fgGetDouble("/orientation/heading") );
+                                    fgGetDouble("/orientation/heading-deg") );
     }
 
     // Initialize time
     SGPath zone( globals->get_fg_root() );
     zone.append( "Timezone" );
-    SGTime *t = new SGTime( fgGetDouble("/position/longitude") * SGD_DEGREES_TO_RADIANS,
-                           fgGetDouble("/position/latitude") * SGD_DEGREES_TO_RADIANS,
+    SGTime *t = new SGTime( fgGetDouble("/position/longitude-deg") * SGD_DEGREES_TO_RADIANS,
+                           fgGetDouble("/position/latitude-deg") * SGD_DEGREES_TO_RADIANS,
                            zone.str() );
 
     // Handle potential user specified time offsets
@@ -1724,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);