1
0
Fork 0

activate atc settings in the sound mixer dialog

This commit is contained in:
ehofman 2009-12-10 09:56:42 +00:00 committed by Tim Moore
parent 641f000860
commit 61ffbf4615
2 changed files with 26 additions and 3 deletions

View file

@ -36,7 +36,7 @@
FGATC::FGATC() :
_voiceOK(false),
_playing(false),
_playing(false),
_sgr(NULL),
freqClear(true),
receiving(false),
@ -59,6 +59,11 @@ FGATC::FGATC() :
{
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() {
@ -107,6 +112,18 @@ void FGATC::Update(double dt) {
}
}
#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!
@ -232,7 +249,7 @@ void FGATC::Render(string& msg, const float volume,
#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);

View file

@ -24,6 +24,7 @@
#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>
@ -247,6 +248,11 @@ private:
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 );