]> git.mxchange.org Git - simgear.git/blobdiff - simgear/sound/soundmgr_openal.cxx
Compile with MSVC10
[simgear.git] / simgear / sound / soundmgr_openal.cxx
index 51b66a71630375b2ab755ff19b23ae353121378a..750c4b0f94fbb17a50899fe364e6e1b26ce449c4 100644 (file)
@@ -30,7 +30,7 @@
 #endif
 
 #if defined( __APPLE__ )
-# include <OpenAL/alut.h>
+# include <ALUT/alut.h>
 #else
 # include <AL/alut.h>
 #endif
 #include <simgear/misc/sg_path.hxx>
 #include <simgear/math/SGMath.hxx>
 
+using std::string;
+
 extern bool isNaN(float *v);
 
 #define MAX_SOURCES    128
 
+
+#ifndef ALC_ALL_DEVICES_SPECIFIER
+# define ALC_ALL_DEVICES_SPECIFIER     0x1013
+#endif
+
 //
 // Sound Manager
 //
@@ -81,6 +88,8 @@ SGSoundMgr::SGSoundMgr() :
         }
     }
     _alut_init++;
+#else
+  //#error ALUT 1.1 required, ALUT 1.0 is no longer supported, please upgrade
 #endif
 }
 
@@ -164,8 +173,9 @@ void SGSoundMgr::init(const char *devname) {
 
     _vendor = (const char *)alGetString(AL_VENDOR);
     _renderer = (const char *)alGetString(AL_RENDERER);
-    if ( (_vendor != "OpenAL Community" && _vendor != "Apple Computer Inc.") ||
-        (_renderer != "Software" && _renderer != "OpenAL Sample Implementation")
+    if ( (_vendor != "Adalin" && _vendor != "Apple Computer Inc.") &&
+          (_vendor != "OpenAL Community" || (_renderer != "Software" &&
+                        _renderer != "OpenAL Sample Implementation"))
        )
     {
        _bad_doppler = true;
@@ -554,6 +564,9 @@ bool SGSoundMgr::load(string &samplepath, void **dbuf, int *fmt,
 
 #if defined(ALUT_API_MAJOR_VERSION) && ALUT_API_MAJOR_VERSION >= 1
     ALfloat freqf;
+    // ignore previous errors to prevent the system from halting on silly errors
+    alGetError();
+    alcGetError(_device);
     data = alutLoadMemoryFromFile(samplepath.c_str(), &format, &size, &freqf );
     freq = (ALsizei)freqf;
     int error = alutGetError();