]> git.mxchange.org Git - flightgear.git/blobdiff - src/Main/fg_props.cxx
Fix line endings
[flightgear.git] / src / Main / fg_props.cxx
index 46acff3e580dc4850a274eacf16e8c3bc704a933..3980a4f82671e25c41b5f859a1a2fbfae7176ac6 100644 (file)
 // $Id$
 
 #ifdef HAVE_CONFIG_H
-#  include <simgear/compiler.h>
+#  include "config.h"
 #endif
 
+#include <simgear/compiler.h>
+
 #include <simgear/structure/exception.hxx>
 #include <simgear/magvar/magvar.hxx>
 #include <simgear/timing/sg_time.hxx>
 #include <simgear/misc/sg_path.hxx>
 #include <simgear/scene/material/matlib.hxx>
-#include <simgear/sound/soundmgr.hxx>
+#include <simgear/sound/soundmgr_openal.hxx>
 
 #include STL_IOSTREAM
 
 #include <ATC/ATCdisplay.hxx>
 #include <Aircraft/aircraft.hxx>
 #include <Time/tmp.hxx>
-#include <FDM/UIUCModel/uiuc_aircraftdir.h>
-#ifdef FG_WEATHERCM
-#  include <WeatherCM/FGLocalWeatherDatabase.h>
-#else
-#  include <Environment/environment.hxx>
-#endif // FG_WEATHERCM
+#include <Environment/environment.hxx>
 
 #include <GUI/gui.h>
 
 SG_USING_STD(istream);
 SG_USING_STD(ostream);
 
-#ifdef FG_WEATHERCM
-static double getWindNorth ();
-static double getWindEast ();
-static double getWindDown ();
-#endif // FG_WEATHERCM
-
 static bool winding_ccw = true; // FIXME: temporary
 
 static bool fdm_data_logging = false; // FIXME: temporary
@@ -92,6 +83,8 @@ LogClassMapping log_class_mappings [] = {
   LogClassMapping(SG_IO, "io"),
   LogClassMapping(SG_CLIPPER, "clipper"),
   LogClassMapping(SG_NETWORK, "network"),
+  LogClassMapping(SG_INSTR, "instrumentation"),
+  LogClassMapping(SG_SYSTEMS, "systems"),
   LogClassMapping(SG_UNDEFD, "")
 };
 
@@ -246,26 +239,6 @@ setFreeze (bool f)
 }
 
 
-/**
- * Return the current aircraft directory (UIUC) as a string.
- */
-static const char *
-getAircraftDir ()
-{
-  return aircraft_dir.c_str();
-}
-
-
-/**
- * Set the current aircraft directory (UIUC).
- */
-static void
-setAircraftDir (const char * dir)
-{
-  aircraft_dir = dir;
-}
-
-
 /**
  * Return the number of milliseconds elapsed since simulation started.
  */
@@ -351,7 +324,6 @@ getGMTString ()
   return buf;
 }
 
-
 /**
  * Return the magnetic variation
  */
@@ -384,95 +356,6 @@ getHeadingMag ()
   return magheading;
 }
 
-
-#ifdef FG_WEATHERCM
-
-/**
- * Get the current visibility (meters).
- */
-static double
-getVisibility ()
-{
-  return WeatherDatabase->getWeatherVisibility();
-}
-
-
-/**
- * Set the current visibility (meters).
- */
-static void
-setVisibility (double visibility)
-{
-  WeatherDatabase->setWeatherVisibility(visibility);
-}
-
-/**
- * Get the current wind north velocity (feet/second).
- */
-static double
-getWindNorth ()
-{
-  return current_aircraft.fdm_state->get_V_north_airmass();
-}
-
-
-/**
- * Set the current wind north velocity (feet/second).
- */
-static void
-setWindNorth (double speed)
-{
-  current_aircraft.fdm_state
-    ->set_Velocities_Local_Airmass(speed, getWindEast(), getWindDown());
-}
-
-
-/**
- * Get the current wind east velocity (feet/second).
- */
-static double
-getWindEast ()
-{
-  return current_aircraft.fdm_state->get_V_east_airmass();
-}
-
-
-/**
- * Set the current wind east velocity (feet/second).
- */
-static void
-setWindEast (double speed)
-{
-  SG_LOG(SG_GENERAL, SG_INFO,, "Set wind-east to " << speed );
-  current_aircraft.fdm_state->set_Velocities_Local_Airmass(getWindNorth(),
-                                                          speed,
-                                                          getWindDown());
-}
-
-
-/**
- * Get the current wind down velocity (feet/second).
- */
-static double
-getWindDown ()
-{
-  return current_aircraft.fdm_state->get_V_down_airmass();
-}
-
-
-/**
- * Set the current wind down velocity (feet/second).
- */
-static void
-setWindDown (double speed)
-{
-  current_aircraft.fdm_state->set_Velocities_Local_Airmass(getWindNorth(),
-                                                          getWindEast(),
-                                                          speed);
-}
-
-#endif // FG_WEATHERCM
-
 static long
 getWarp ()
 {
@@ -555,15 +438,26 @@ setFDMDataLogging (bool state)
 // Tie the properties.
 ////////////////////////////////////////////////////////////////////////
 
+FGProperties::FGProperties ()
+{
+}
+
+FGProperties::~FGProperties ()
+{
+}
+
+void
+FGProperties::init ()
+{
+}
+
 void
-fgInitProps ()
+FGProperties::bind ()
 {
-  SG_LOG(SG_GENERAL, SG_DEBUG, "start of fgInitProps()" );
                                // Simulation
   fgTie("/sim/logging/priority", getLoggingPriority, setLoggingPriority);
   fgTie("/sim/logging/classes", getLoggingClasses, setLoggingClasses);
   fgTie("/sim/freeze/master", getFreeze, setFreeze);
-  fgTie("/sim/aircraft-dir", getAircraftDir, setAircraftDir);
 
   fgTie("/sim/time/elapsed-sec", getElapsedTime_sec);
   fgTie("/sim/time/gmt", getDateString, setDateString);
@@ -573,18 +467,6 @@ fgInitProps ()
                                // Orientation
   fgTie("/orientation/heading-magnetic-deg", getHeadingMag);
 
-                               // Environment
-#ifdef FG_WEATHERCM
-  fgTie("/environment/visibility-m", getVisibility, setVisibility);
-  fgSetArchivable("/environment/visibility-m");
-  fgTie("/environment/wind-from-north-fps", getWindNorth, setWindNorth);
-  fgSetArchivable("/environment/wind-from-north-fps");
-  fgTie("/environment/wind-from-east-fps", getWindEast, setWindEast);
-  fgSetArchivable("/environment/wind-from-east-fps");
-  fgTie("/environment/wind-from-down-fps", getWindDown, setWindDown);
-  fgSetArchivable("/environment/wind-from-down-fps");
-#endif
-
   fgTie("/environment/magnetic-variation-deg", getMagVar);
   fgTie("/environment/magnetic-dip-deg", getMagDip);
 
@@ -595,14 +477,56 @@ fgInitProps ()
   fgTie("/sim/temp/winding-ccw", getWindingCCW, setWindingCCW, false);
   fgTie("/sim/temp/full-screen", getFullScreen, setFullScreen);
   fgTie("/sim/temp/fdm-data-logging", getFDMDataLogging, setFDMDataLogging);
-
-  SG_LOG(SG_GENERAL, SG_DEBUG, "end of fgInitProps()" );
 }
 
+void
+FGProperties::unbind ()
+{
+                               // Simulation
+  fgUntie("/sim/logging/priority");
+  fgUntie("/sim/logging/classes");
+  fgUntie("/sim/freeze/master");
+
+  fgUntie("/sim/time/elapsed-sec");
+  fgUntie("/sim/time/gmt");
+  fgUntie("/sim/time/gmt-string");
+
+                               // Orientation
+  fgUntie("/orientation/heading-magnetic-deg");
+
+                               // Environment
+  fgUntie("/environment/magnetic-variation-deg");
+  fgUntie("/environment/magnetic-dip-deg");
+
+  fgUntie("/sim/time/warp");
+  fgUntie("/sim/time/warp-delta");
+
+                               // Misc. Temporary junk.
+  fgUntie("/sim/temp/winding-ccw");
+  fgUntie("/sim/temp/full-screen");
+  fgUntie("/sim/temp/fdm-data-logging");
+}
 
 void
-fgUpdateProps ()
+FGProperties::update (double dt)
 {
+                                // Date and time
+    struct tm *t = globals->get_time_params()->getGmt();
+
+    fgSetInt("/sim/time/utc/year", t->tm_year + 1900);
+    fgSetInt("/sim/time/utc/month", t->tm_mon + 1);
+    fgSetInt("/sim/time/utc/day", t->tm_mday);
+    fgSetInt("/sim/time/utc/hour", t->tm_hour);
+    fgSetInt("/sim/time/utc/minute", t->tm_min);
+    fgSetInt("/sim/time/utc/second", t->tm_sec);
+
+    fgSetDouble("/sim/time/utc/day-seconds",
+                t->tm_hour * 3600 +
+                t->tm_min * 60 +
+                t->tm_sec);
+
+    fgSetInt("/sim/time/local-offset",
+             globals->get_time_params()->get_local_offset());
 }
 
 
@@ -663,7 +587,7 @@ fgLoadFlight (istream &input)
 
 
 bool
-fgLoadProps (const char * path, SGPropertyNode * props, bool in_fg_root)
+fgLoadProps (const char * path, SGPropertyNode * props, bool in_fg_root, int default_mode)
 {
     string fullpath;
     if (in_fg_root) {
@@ -675,7 +599,7 @@ fgLoadProps (const char * path, SGPropertyNode * props, bool in_fg_root)
     }
 
     try {
-        readProperties(fullpath, props);
+        readProperties(fullpath, props, default_mode);
     } catch (const sg_exception &e) {
         guiErrorMessage("Error reading properties: ", e);
         return false;