FGATC::FGATC() :
_voiceOK(false),
- _playing(false),
+ _playing(false),
_sgr(NULL),
freqClear(true),
receiving(false),
{
SGSoundMgr *smgr = globals->get_soundmgr();
_sgr = smgr->find("atc", true);
+
+ _volume = fgGetNode("/sim/sound/atc/volume", true);
+ _enabled = fgGetNode("/sim/sound/atc/enabled", true);
+ _atc_external = fgGetNode("/sim/sound/atc/external-view", true);
+ _internal = fgGetNode("/sim/current-view/internal", true);
}
FGATC::~FGATC() {
}
}
+#ifdef ENABLE_AUDIO_SUPPORT
+ bool active = _atc_external->getBoolValue() ||
+ _internal->getBoolValue();
+
+ if ( active && _enabled->getBoolValue() ) {
+ _sgr->set_volume( _volume->getFloatValue() );
+ _sgr->resume(); // no-op if already in resumed state
+ } else {
+ _sgr->suspend();
+ }
+#endif
+
if(_transmit) {
_counter = 0.0;
_max_count = 5.0; // FIXME - hardwired length of message - need to calculate it!
#ifdef ENABLE_AUDIO_SUPPORT
_voice = (_voiceOK && fgGetBool("/sim/sound/voice"));
if(_voice) {
- size_t len;
+ size_t len;
void* buf = _vPtr->WriteMessage((char*)msg.c_str(), &len);
if(buf) {
NoRender(refname);
}
double lat, lon, elev;
-
+
fin >> lat >> lon >> elev >> f >> a.range >> a.ident;
a.geod = SGGeod::fromDegM(lon, lat, elev);
a.name = "";
#include <simgear/constants.h>
#include <simgear/compiler.h>
+#include <simgear/props/props.hxx>
#include <simgear/misc/sgstream.hxx>
#include <simgear/math/sg_geodesy.hxx>
#include <simgear/debug/logstream.hxx>
bool _transmitting; // we are transmitting
double _counter;
double _max_count;
+
+ SGPropertyNode_ptr _volume;
+ SGPropertyNode_ptr _enabled;
+ SGPropertyNode_ptr _atc_external;
+ SGPropertyNode_ptr _internal;
};
std::istream& operator>> ( std::istream& fin, ATCData& a );