#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; }
+#ifdef _WIN32
+#include <windows.h>
+#define sleep(x) Sleep(x*1000)
#else
#include <unistd.h> // sleep()
#endif
# include <OpenAL/al.h>
# include <OpenAL/alc.h>
# include <OpenAL/alut.h>
+#elif defined(OPENALSDK)
+# include <al.h>
+# include <alc.h>
+# include <AL/alut.h>
#else
# include <AL/al.h>
# include <AL/alc.h>
# include <AL/alut.h>
#endif
+#define AUDIOFILE SRC_DIR"/jet.wav"
+
#include <simgear/debug/logstream.hxx>
static void print_openal_error( ALuint error ) {
ALCdevice *dev;
ALCcontext *context;
+ alutInit(&argc, argv);
+ sglog().setLogLevels( SG_ALL, SG_ALERT );
+
// initialize OpenAL
if ( (dev = alcOpenDevice( NULL )) != NULL
&& ( context = alcCreateContext( dev, NULL )) != NULL ) {
ALfloat source_vel[3];
// configuration values
- ALenum format;
- ALsizei size;
- ALvoid* data;
- ALsizei freq;
- ALboolean loop;
+// ALenum format;
+// ALsizei size;
+// ALvoid* data;
+// ALsizei freq;
+ ALboolean loop = false;
source_pos[0] = 0.0; source_pos[1] = 0.0; source_pos[2] = 0.0;
source_vel[0] = 0.0; source_vel[1] = 0.0; source_vel[2] = 0.0;
}
// Load the sample file
-#if defined (__APPLE__)
- alutLoadWAVFile( (ALbyte *)"jet.wav", &format, &data, &size, &freq );
+#if defined(ALUT_API_MAJOR_VERSION) && ALUT_API_MAJOR_VERSION >= 1
+
+ buffer = alutCreateBufferFromFile(AUDIOFILE);
+ if (buffer == AL_NONE) {
+ SG_LOG( SG_GENERAL, SG_ALERT, "Failed to buffer data.");
+ }
+
#else
- alutLoadWAVFile( (ALbyte *)"jet.wav", &format, &data, &size, &freq, &loop );
-#endif
+# if defined (__APPLE__)
+ alutLoadWAVFile( (ALbyte *)AUDIOFILE, &format, &data, &size, &freq );
+# else
+ alutLoadWAVFile( (ALbyte *)AUDIOFILE, &format, &data, &size, &freq, &loop );
+# endif
if (alGetError() != AL_NO_ERROR) {
SG_LOG( SG_GENERAL, SG_ALERT, "Failed to load wav file.");
}
}
alutUnloadWAV( format, data, size, freq );
+#endif
alGenSources(1, &source);
if (alGetError() != AL_NO_ERROR) {
alSourcePlay( source );
sleep(10);
+ alutExit();
return 0;
}