]> git.mxchange.org Git - flightgear.git/blobdiff - src/Sound/sample_queue.cxx
apt.dat parser: clearer log and exception messages
[flightgear.git] / src / Sound / sample_queue.cxx
index 863cbcbdc602600943f952206810477e0ca195c3..f6a1a49b51dd33856572c4754f0ed9ccb1c4edf0 100644 (file)
 #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);
@@ -50,10 +50,6 @@ FGSampleQueue::FGSampleQueue ( SGSoundMgr *smgr, const string &refname ) :
 
 FGSampleQueue::~FGSampleQueue ()
 {
-    while ( _messages.size() > 0 ) {
-        delete _messages.front();
-        _messages.pop();
-    }
 }
 
 
@@ -61,25 +57,25 @@ void
 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 );
@@ -92,7 +88,7 @@ FGSampleQueue::update (double dt)
 
         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 );