--- configure.ac +++ configure.ac @@ -98,11 +98,17 @@ *) AX_FINDLIB([AUDIOLIB], [OpenAL], [OpenAL], - AX_LANG_PROGRAM([#include ], [alutInit(0,0);]), + AX_LANG_PROGRAM([#include ], [alcOpenDevice(0);]), [], [-lopenal], [], [AC_MSG_ERROR([Please install OpenAL])]) + AX_FINDLIB([AUDIOLIB], [ALUT], [ALUT], + AX_LANG_PROGRAM([#include ], [alutInit(0,0);]), + [], [-lalut], + [], + [AC_MSG_ERROR([Please install ALUT])]) + ;; esac --- src/pengine/audio.cpp +++ src/pengine/audio.cpp @@ -196,25 +196,18 @@ PHYSFS_read(pfile, wavbuffer, filesize, 1); PHYSFS_close(pfile); - ALenum format; - ALvoid *data = null; - ALsizei size, freq; - ALboolean loop; - alutLoadWAVMemory((ALbyte *)wavbuffer, &format, &data, &size, &freq, &loop); + buffer = alutCreateBufferFromFileImage(wavbuffer, filesize); delete [] wavbuffer; - if (!data) { + if (buffer == AL_NONE) { unload(); throw MakePException ("Sample load failed"); } - alGenBuffers(1, &buffer); - alBufferData(buffer, format, data, size, freq); - alutUnloadWAV(format, data, size, freq); } void PAudioSample::unload()