]> git.mxchange.org Git - flightgear.git/blobdiff - src/Sound/fg_fx.cxx
MIPSpro 7.4 fixes
[flightgear.git] / src / Sound / fg_fx.cxx
index d7b58e54390dcac6ab90a1a8e6336bb60ce7dc83..93e8b779b770ac61e256ec4c6e93c633e2d674f7 100644 (file)
 //
 // $Id$
 
-#include <simgear/misc/props.hxx>
-#include <simgear/misc/sg_path.hxx>
+#ifdef _MSC_VER
+#pragma warning (disable: 4786)
+#endif
+
 #include <simgear/debug/logstream.hxx>
-#include <simgear/misc/exception.hxx>
+#include <simgear/structure/exception.hxx>
 #ifdef __BORLANDC__
 #  define exception c_exception
 #endif
+#include <simgear/misc/sg_path.hxx>
+#include <simgear/props/props.hxx>
+#include <simgear/sound/sound.hxx>
 
 #include <Main/fg_props.hxx>
 
 #include "fg_fx.hxx"
-#include "fg_sound.hxx"
 
 
 FGFX::FGFX ()
@@ -41,14 +45,13 @@ FGFX::FGFX ()
 
 FGFX::~FGFX ()
 {
-   for (unsigned int i = 0; i < _sound.size(); i++ )
-      delete _sound[i];
+   _sound.clear();
 }
 
 void
 FGFX::init()
 {
-   const SGPropertyNode * node = fgGetNode("/sim/sound", true);
+   SGPropertyNode * node = fgGetNode("/sim/sound", true);
    int i;
 
    string path_str = node->getStringValue("path");
@@ -59,8 +62,8 @@ FGFX::init()
    }
 
    path.append(path_str.c_str());
-   SG_LOG(SG_GENERAL, SG_INFO, "Reading Instrument " << node->getName()
-         << " from " << path.str());
+   SG_LOG(SG_GENERAL, SG_INFO, "Reading sound " << node->getName()
+          << " from " << path.str());
 
    SGPropertyNode root;
    try {
@@ -73,16 +76,22 @@ FGFX::init()
 
    node = root.getNode("fx");
    for (i = 0; i < node->nChildren(); i++) {
-      FGSound * sound;
-      sound = new FGSound(node->getChild(i));
-      _sound.push_back(sound);
-   }
+      SGSound *sound = new SGSound();
 
-   for (i = 0; i < (int)_sound.size(); i++ ) {
-      _sound[i]->init();
+      sound->init(globals->get_props(), node->getChild(i),
+                  globals->get_soundmgr(), globals->get_fg_root());
+
+      _sound.push_back(sound);
    }
 }
 
+void
+FGFX::reinit()
+{
+   _sound.clear();
+   init();
+};
+
 void
 FGFX::bind ()
 {
@@ -94,10 +103,12 @@ FGFX::unbind ()
 }
 
 void
-FGFX::update (int dt)
+FGFX::update (double dt)
 {
-   for (unsigned int i = 0; i < _sound.size(); i++ )
-      _sound[i]->update(dt);
+    if (fgGetBool("/sim/sound/audible")) {
+        for (unsigned int i = 0; i < _sound.size(); i++ )
+            _sound[i]->update(dt);
+    }
 }
 
 // end of fg_fx.cxx