]> git.mxchange.org Git - flightgear.git/blobdiff - src/Main/options.cxx
Merge branch 'curt/replay' into next
[flightgear.git] / src / Main / options.cxx
index 26054af82a6cf41f566bee2aad2827ca91ce0c42..bededfb71e43ed8cbbfe535954bb60a1f5d57440 100644 (file)
@@ -45,6 +45,7 @@
 #include <simgear/misc/sgstream.hxx>
 #include <simgear/misc/sg_path.hxx>
 #include <simgear/scene/material/mat.hxx>
+#include <simgear/sound/soundmgr_openal.hxx>
 
 // #include <Include/general.hxx>
 // #include <Airports/simple.hxx>
@@ -60,7 +61,8 @@
 #include "options.hxx"
 #include "util.hxx"
 #include "viewmgr.hxx"
-
+#include <Main/viewer.hxx>
+#include <simgear/version.h>
 
 using std::string;
 using std::sort;
@@ -81,7 +83,8 @@ enum
     FG_OPTIONS_ERROR = 2,
     FG_OPTIONS_EXIT = 3,
     FG_OPTIONS_VERBOSE_HELP = 4,
-    FG_OPTIONS_SHOW_AIRCRAFT = 5
+    FG_OPTIONS_SHOW_AIRCRAFT = 5,
+    FG_OPTIONS_SHOW_SOUND_DEVICES = 6
 };
 
 static double
@@ -186,7 +189,8 @@ fgSetDefaults ()
     fgSetBool("/sim/hud/enable3d", true);
     fgSetBool("/sim/hud/visibility", false);
     fgSetBool("/sim/panel/visibility", true);
-    fgSetBool("/sim/sound/pause", false);
+    fgSetBool("/sim/sound/enabled", true);
+    fgSetBool("/sim/sound/working", true);
 
                                // Flight Model options
     fgSetString("/sim/flight-model", "jsb");
@@ -201,7 +205,7 @@ fgSetDefaults ()
     fgSetBool("/sim/rendering/shading", true);
     fgSetBool("/sim/rendering/skyblend", true);
     fgSetBool("/sim/rendering/textures", true);
-       fgTie( "/sim/rendering/filtering", SGGetTextureFilter, SGSetTextureFilter, false);
+    fgTie( "/sim/rendering/filtering", SGGetTextureFilter, SGSetTextureFilter, false);
     fgSetInt("/sim/rendering/filtering", 1);
     fgSetBool("/sim/rendering/wireframe", false);
     fgSetBool("/sim/rendering/horizon-effect", false);
@@ -1194,9 +1198,22 @@ fgOptParking( const char *arg )
 static int
 fgOptVersion( const char *arg )
 {
-    cerr << VERSION << endl;
+    cerr << "FlightGear version: " << VERSION << endl;
     cerr << "FG_ROOT=" << globals->get_fg_root() << endl;
     cerr << "FG_HOME=" << fgGetString("/sim/fg-home") << endl;
+    cerr << "FG_SCENERY=";
+
+    int didsome = 0;
+    string_list scn = globals->get_fg_scenery();
+    for (string_list::const_iterator it = scn.begin(); it != scn.end(); it++)
+    {
+        if (didsome) cerr << ":";
+        didsome++;
+        cerr << *it;
+    }
+    cerr << endl;
+    cerr << "SimGear version: " << SG_STRINGIZE(SIMGEAR_VERSION) << endl;
+    cerr << "PLIB version: " << PLIB_VERSION << endl;
     return FG_OPTIONS_EXIT;
 }
 
@@ -1290,8 +1307,9 @@ struct OptionDesc {
     {"enable-hud",                   false, OPTION_BOOL,   "/sim/hud/visibility", true, "", 0 },
     {"disable-panel",                false, OPTION_BOOL,   "/sim/panel/visibility", false, "", 0 },
     {"enable-panel",                 false, OPTION_BOOL,   "/sim/panel/visibility", true, "", 0 },
-    {"disable-sound",                false, OPTION_BOOL,   "/sim/sound/pause", true, "", 0 },
-    {"enable-sound",                 false, OPTION_BOOL,   "/sim/sound/pause", false, "", 0 },
+    {"disable-sound",                false, OPTION_BOOL,   "/sim/sound/working", false, "", 0 },
+    {"enable-sound",                 false, OPTION_BOOL,   "/sim/sound/working", true, "", 0 },
+    {"sound-device",                 true,  OPTION_STRING, "/sim/sound/device-name", false, "", 0 },
     {"airport",                      true,  OPTION_STRING, "/sim/presets/airport-id", false, "", 0 },
     {"runway",                       true,  OPTION_FUNC,   "", false, "", fgOptRunway },
     {"vor",                          true,  OPTION_FUNC,   "", false, "", fgOptVOR },
@@ -1501,6 +1519,8 @@ parse_option (const string& arg)
         return(FG_OPTIONS_VERBOSE_HELP);
     } else if ( arg.find( "--show-aircraft") == 0) {
         return(FG_OPTIONS_SHOW_AIRCRAFT);
+    } else if ( arg.find( "--show-sound-devices") == 0) {
+        return(FG_OPTIONS_SHOW_SOUND_DEVICES);
     } else if ( arg.find( "--prop:" ) == 0 ) {
         if (!set_property(arg.substr(7))) {
             SG_LOG( SG_GENERAL, SG_ALERT, "Bad property assignment: " << arg );
@@ -1616,11 +1636,27 @@ fgParseArgs (int argc, char **argv)
               verbose = true;
 
             else if (result == FG_OPTIONS_SHOW_AIRCRAFT) {
-               fgOptLogLevel( "alert" );
-               SGPath path( globals->get_fg_root() );
-               path.append("Aircraft");
-               fgShowAircraft(path, true);
-               exit(0);
+              fgOptLogLevel( "alert" );
+              SGPath path( globals->get_fg_root() );
+              path.append("Aircraft");
+              fgShowAircraft(path, true);
+              exit(0);
+
+            } else if (result == FG_OPTIONS_SHOW_SOUND_DEVICES) {
+              SGSoundMgr smgr;
+
+              smgr.init();
+              string vendor = smgr.get_vendor();
+              string renderer = smgr.get_renderer();
+              cout << renderer << " provided by " << vendor << endl;
+              cout << endl << "No. Device" << endl;
+
+              vector <const char*>devices = smgr.get_available_devices();
+              for (int i=0; i<devices.size(); i++) {
+                cout << i << ".  \"" << devices[i] << "\"" << endl;
+              }
+              devices.clear();
+              exit(0);
             }
 
             else if (result == FG_OPTIONS_EXIT)