#include "fg_fx.hxx"
#include <Main/fg_props.hxx>
+#include <Main/globals.hxx>
#include <simgear/props/props.hxx>
#include <simgear/props/props_io.hxx>
#include <simgear/sound/soundmgr_openal.hxx>
#include <simgear/sound/xmlsound.hxx>
-FGFX::FGFX ( SGSoundMgr *smgr, const string &refname, SGPropertyNode *props ) :
+FGFX::FGFX ( const std::string &refname, SGPropertyNode *props ) :
_props( props )
{
if (!props) {
_avionics_ext = _props->getNode("sim/sound/avionics/external-view", true);
_internal = _props->getNode("sim/current-view/internal", true);
- SGSampleGroup::_smgr = smgr;
- SGSampleGroup::_refname = refname;
- SGSampleGroup::_smgr->add(this, refname);
+ _smgr = globals->get_soundmgr();
+ if (!_smgr) {
+ return;
+ }
+
+ _refname = refname;
+ _smgr->add(this, refname);
if (!_is_aimodel)
{
}
}
+void FGFX::unbind()
+{
+ if (_smgr)
+ {
+ _smgr->remove(_refname);
+ }
+}
FGFX::~FGFX ()
{
void
FGFX::init()
{
+ if (!_smgr) {
+ return;
+ }
+
SGPropertyNode *node = _props->getNode("sim/sound", true);
- string path_str = node->getStringValue("path");
+ std::string path_str = node->getStringValue("path");
if (path_str.empty()) {
SG_LOG(SG_SOUND, SG_ALERT, "No path in sim/sound/path");
return;
}
_sound.clear();
init();
-};
+}
void
FGFX::update (double dt)
{
+ if (!_smgr) {
+ return;
+ }
+
if ( _enabled->getBoolValue() ) {
if ( _avionics_enabled->getBoolValue())
{