#include <simgear/sound/soundmgr_openal.hxx>
#include <simgear/sound/sample_openal.hxx>
-FGSampleQueue::FGSampleQueue ( SGSoundMgr *smgr, const string &refname ) :
- last_pause( false ),
+FGSampleQueue::FGSampleQueue ( SGSoundMgr *smgr, const std::string &refname ) :
+ last_enabled( true ),
last_volume( 0.0 ),
- _pause( fgGetNode("/sim/sound/pause") ),
- _volume( fgGetNode("/sim/sound/volume") )
+ _enabled( fgGetNode("/sim/sound/chatter/enabled", true) ),
+ _volume( fgGetNode("/sim/sound/chatter/volume", true) )
{
SGSampleGroup::_smgr = smgr;
SGSampleGroup::_smgr->add(this, refname);
+ SGSampleGroup::_refname = refname;
}
FGSampleQueue::~FGSampleQueue ()
{
- while ( _messages.size() > 0 ) {
- delete _messages.front();
- _messages.pop();
- }
}
FGSampleQueue::update (double dt)
{
// command sound manger
- bool new_pause = _pause->getBoolValue();
- if ( new_pause != last_pause ) {
- if ( new_pause ) {
- suspend();
- } else {
+ bool new_enabled = _enabled->getBoolValue();
+ if ( new_enabled != last_enabled ) {
+ if ( new_enabled ) {
resume();
+ } else {
+ suspend();
}
- last_pause = new_pause;
+ last_enabled = new_enabled;
}
- if ( !new_pause ) {
+ if ( new_enabled ) {
double volume = _volume->getDoubleValue();
if ( volume != last_volume ) {
set_volume( volume );
last_volume = volume;
}
- // process mesage queue
- const string msgid = "Sequential Audio Message";
+ // process message queue
+ const std::string msgid = "Sequential Audio Message";
bool now_playing = false;
if ( exists( msgid ) ) {
now_playing = is_playing( msgid );
if ( !now_playing ) {
// message queue idle, add next sound if we have one
- if ( _messages.size() > 0 ) {
+ if ( ! _messages.empty() ) {
SGSampleGroup::add( _messages.front(), msgid );
_messages.pop();
play_once( msgid );