]> git.mxchange.org Git - simgear.git/blobdiff - simgear/sound/soundmgr_openal.cxx
add a debugging statement
[simgear.git] / simgear / sound / soundmgr_openal.cxx
index 12c4b9540fc427e38e55a30b3d15d8398b8d410a..450b5714d0cc98811747c9b72241c0807663ac5b 100644 (file)
@@ -101,11 +101,14 @@ void SGSoundMgr::init() {
 
     ALCcontext *context = alcCreateContext(device, NULL);
     if ( testForError(context, "Unable to create a valid context.") ) {
+        alcCloseDevice (device);
         return;
     }
 
     if ( !alcMakeContextCurrent(context) ) {
         testForALCError("context initialization");
+        alcDestroyContext (context);
+        alcCloseDevice (device);
         return;
     }
 
@@ -116,11 +119,11 @@ void SGSoundMgr::init() {
     _at_up_vec[3] = 0.0; _at_up_vec[4] = 1.0; _at_up_vec[5] = 0.0;
 
     alListenerf( AL_GAIN, 0.2f );
-    alListenerfv( AL_POSITION, SGVec3f::zeros().data() );
     alListenerfv( AL_ORIENTATION, _at_up_vec );
-    alListenerfv( AL_VELOCITY, toVec3f(_velocity).data() );
+    alListenerfv( AL_POSITION, SGVec3f::zeros().data() );
+    alListenerfv( AL_VELOCITY, SGVec3f::zeros().data() );
 
-    alDopplerFactor(0.5);
+    alDopplerFactor(1.0);
     alDopplerVelocity(340.3);   // speed of sound in meters per second.
 
     if ( alIsExtensionPresent((const ALchar*)"EXT_exponent_distance") ) {
@@ -131,8 +134,6 @@ void SGSoundMgr::init() {
 
     testForALError("listener initialization");
 
-    alGetError(); // clear any undetetced error, just to be sure
-
     // get a free source one at a time
     // if an error is returned no more (hardware) sources are available
     for (unsigned int i=0; i<MAX_SOURCES; i++) {
@@ -147,6 +148,10 @@ void SGSoundMgr::init() {
         }
         else break;
     }
+
+    if (_free_sources.size() == 0) {
+        SG_LOG(SG_GENERAL, SG_ALERT, "Unable to grab any OpenAL sources!");
+    }
 }
 
 // suspend the sound manager