]> git.mxchange.org Git - simgear.git/blobdiff - simgear/sound/openal_test1.cxx
Cygwin fixes.
[simgear.git] / simgear / sound / openal_test1.cxx
index 55127b2b4c73cb203981976ca83a811d54cc1b1d..e94391e3cf283558a6246e6b9b6eba3648589707 100644 (file)
@@ -1,12 +1,22 @@
 #include <stdio.h>
 
+#ifdef __MINGW32__
+// This is broken, but allows the file to compile without a POSIX
+// environment.
+static unsigned int sleep(unsigned int secs) { return 0; }
+#else
+#include <unistd.h>    // sleep()
+#endif
+
 #if defined( __APPLE__ )
 # define AL_ILLEGAL_ENUM AL_INVALID_ENUM
 # define AL_ILLEGAL_COMMAND AL_INVALID_OPERATION
 # include <OpenAL/al.h>
+# include <OpenAL/alc.h>
 # include <OpenAL/alut.h>
 #else
 # include <AL/al.h>
+# include <AL/alc.h>
 # include <AL/alut.h>
 #endif
 
@@ -31,10 +41,16 @@ static void print_openal_error( ALuint error ) {
 
 int main( int argc, char *argv[] ) {
     // initialize OpenAL
-    alutInit( 0, NULL );
-    alGetError();
-    if ( alGetError() != AL_NO_ERROR) {
-       SG_LOG( SG_GENERAL, SG_ALERT, "Audio initialization failed!" );
+    ALCdevice *dev;
+    ALCcontext *context;
+
+    // initialize OpenAL
+    if ( (dev = alcOpenDevice( NULL )) != NULL
+            && ( context = alcCreateContext( dev, NULL )) != NULL ) {
+        alcMakeContextCurrent( context );
+    } else {
+        context = 0;
+        SG_LOG( SG_GENERAL, SG_ALERT, "Audio initialization failed!" );
     }
 
     // Position of the listener.