]> git.mxchange.org Git - simgear.git/commitdiff
Dont execute code in case the soundmanager isn't properly initialized
authorehofman <ehofman>
Tue, 8 Sep 2009 13:50:55 +0000 (13:50 +0000)
committerTim Moore <timoore@redhat.com>
Wed, 9 Sep 2009 06:39:56 +0000 (08:39 +0200)
simgear/sound/soundmgr_openal.cxx
simgear/sound/xmlsound.cxx

index e53eccaccddf42eb5dd614ac627a9e1510ab1b8b..fb49d247f984d074b5d3406d0e4d34e5c9a3ec68 100644 (file)
@@ -97,6 +97,7 @@ SGSoundMgr::SGSoundMgr() {
         SG_LOG( SG_GENERAL, SG_ALERT, "   "+string(alutGetErrorString(error)));
         working = false;
         context = 0;
+        return;
     }
     else
     {
@@ -111,7 +112,8 @@ SGSoundMgr::SGSoundMgr() {
     } else {
         working = false;
         context = 0;
-       SG_LOG( SG_GENERAL, SG_ALERT, "Audio initialization failed!" );
+        SG_LOG( SG_GENERAL, SG_ALERT, "Audio initialization failed!" );
+        return;
     }
 #endif
 
@@ -136,7 +138,7 @@ SGSoundMgr::SGSoundMgr() {
     alListenerfv( AL_ORIENTATION, listener_ori );
     alGetError();
     if ( alGetError() != AL_NO_ERROR) {
-       SG_LOG( SG_GENERAL, SG_ALERT,
+        SG_LOG( SG_GENERAL, SG_ALERT,
                 "Oops AL error after audio initialization!" );
     }
 
@@ -190,7 +192,7 @@ SGSoundMgr::pause ()
     if (context) {
         alcSuspendContext( context );
         if ( alGetError() != AL_NO_ERROR) {
-           SG_LOG( SG_GENERAL, SG_ALERT,
+            SG_LOG( SG_GENERAL, SG_ALERT,
                     "Oops AL error after soundmgr pause()!" );
         }
     }
@@ -203,7 +205,7 @@ SGSoundMgr::resume ()
     if (context) {
         alcProcessContext( context );
         if ( alGetError() != AL_NO_ERROR) {
-           SG_LOG( SG_GENERAL, SG_ALERT,
+            SG_LOG( SG_GENERAL, SG_ALERT,
                     "Oops AL error after soundmgr resume()!" );
         }
     }
@@ -230,12 +232,12 @@ bool SGSoundMgr::remove( const string &refname ) {
 
     sample_map_iterator sample_it = samples.find( refname );
     if ( sample_it != samples.end() ) {
-       // first stop the sound from playing (so we don't bomb the
-       // audio scheduler)
+        // first stop the sound from playing (so we don't bomb the
+        // audio scheduler)
         samples.erase( sample_it );
 
         // cout << "sndmgr: removed -> " << refname << endl;
-       return true;
+        return true;
     } else {
         // cout << "sndmgr: failed remove -> " << refname << endl;
         return false;
@@ -247,9 +249,9 @@ bool SGSoundMgr::remove( const string &refname ) {
 bool SGSoundMgr::exists( const string &refname ) {
     sample_map_iterator sample_it = samples.find( refname );
     if ( sample_it != samples.end() ) {
-       return true;
+        return true;
     } else {
-       return false;
+        return false;
     }
 }
 
@@ -259,9 +261,9 @@ bool SGSoundMgr::exists( const string &refname ) {
 SGSoundSample *SGSoundMgr::find( const string &refname ) {
     sample_map_iterator sample_it = samples.find( refname );
     if ( sample_it != samples.end() ) {
-       return sample_it->second;
+        return sample_it->second;
     } else {
-       return NULL;
+        return NULL;
     }
 }
 
@@ -328,7 +330,7 @@ void SGSoundMgr::set_source_pos_all( ALfloat *pos ) {
     sample_map_iterator sample_current = samples.begin();
     sample_map_iterator sample_end = samples.end();
     for ( ; sample_current != sample_end; ++sample_current ) {
-       SGSoundSample *sample = sample_current->second;
+        SGSoundSample *sample = sample_current->second;
         sample->set_source_pos( pos );
     }
 }
@@ -344,7 +346,7 @@ void SGSoundMgr::set_source_vel_all( ALfloat *vel ) {
     sample_map_iterator sample_current = samples.begin();
     sample_map_iterator sample_end = samples.end();
     for ( ; sample_current != sample_end; ++sample_current ) {
-       SGSoundSample *sample = sample_current->second;
+        SGSoundSample *sample = sample_current->second;
         sample->set_source_vel( vel, listener_vel );
     }
 }
index 2db0fcff2aa3a30588aa3eb2506bb54e7a81f721..fe24ce69574508c7334537e3456fe29220aea8f7 100644 (file)
@@ -91,6 +91,10 @@ SGXmlSound::init(SGPropertyNode *root, SGPropertyNode *node, SGSoundMgr *sndmgr,
    //
    // set global sound properties
    //
+
+   if (sndmgr->is_working() == false) {
+       return;
+   }
    
    _name = node->getStringValue("name", "");
    SG_LOG(SG_GENERAL, SG_INFO, "Loading sound information for: " << _name );