30 #define WIN32_LEAN_AND_MEAN
34 #define Sleep(x) usleep((x)*1000)
87 printf(
"Using EAX Reverb\n");
119 printf(
"Using Standard Reverb\n");
144 fprintf(stderr,
"OpenAL error: %s\n",
alGetString(err));
170 fprintf(stderr,
"Could not open audio in %s\n", filename);
178 fprintf(stderr,
"Error getting audio info for %s\n", filename);
186 fprintf(stderr,
"Unsupported format (%s, %s) for %s\n",
196 fprintf(stderr,
"Failed to read audio from %s\n", filename);
206 channels, type, data);
214 fprintf(stderr,
"OpenAL Error: %s\n",
alGetString(err));
224 int main(
int argc,
char **argv)
233 fprintf(stderr,
"Usage: %s <filename>\n", argv[0]);
243 fprintf(stderr,
"Error: EFX not supported\n");
249 #define LOAD_PROC(x) ((x) = alGetProcAddress(#x))
AL_API void AL_APIENTRY alSourcePlay(ALuint source)
#define AL_EAXREVERB_LATE_REVERB_DELAY
#define AL_EAXREVERB_LATE_REVERB_GAIN
AL_API void AL_APIENTRY alSource3i(ALuint source, ALenum param, ALint value1, ALint value2, ALint value3)
LPALBUFFERSAMPLESSOFT alBufferSamplesSOFT
void(AL_APIENTRY * LPALGETAUXILIARYEFFECTSLOTFV)(ALuint, ALenum, ALfloat *)
LPALGETAUXILIARYEFFECTSLOTF alGetAuxiliaryEffectSlotf
#define AL_REVERB_REFLECTIONS_GAIN
#define AL_EAXREVERB_DIFFUSION
GLint GLenum GLsizei GLsizei GLsizei GLint GLenum GLenum type
int main(int argc, char **argv)
FilePtr openAVFile(const char *fname)
LPALDELETEAUXILIARYEFFECTSLOTS alDeleteAuxiliaryEffectSlots
#define AL_REVERB_LATE_REVERB_DELAY
void(AL_APIENTRY * LPALAUXILIARYEFFECTSLOTIV)(ALuint, ALenum, const ALint *)
void(AL_APIENTRY * LPALGENAUXILIARYEFFECTSLOTS)(ALsizei, ALuint *)
#define AL_EAXREVERB_ECHO_TIME
#define AL_EAXREVERB_REFLECTIONS_DELAY
void(AL_APIENTRY * LPALGETAUXILIARYEFFECTSLOTIV)(ALuint, ALenum, ALint *)
void(AL_APIENTRY * LPALEFFECTIV)(ALuint, ALenum, const ALint *)
void * decodeAVAudioStream(StreamPtr stream, size_t *length)
float flReflectionsPan[3]
AL_API ALenum AL_APIENTRY alGetError(void)
LPALAUXILIARYEFFECTSLOTF alAuxiliaryEffectSlotf
#define AL_EAXREVERB_DECAY_HFRATIO
#define AL_REVERB_DECAY_HFRATIO
AL_API void AL_APIENTRY alGetSourcei(ALuint source, ALenum param, ALint *value)
#define AL_EAXREVERB_HFREFERENCE
#define AL_EAXREVERB_MODULATION_DEPTH
LPALGETAUXILIARYEFFECTSLOTIV alGetAuxiliaryEffectSlotiv
LPALGETAUXILIARYEFFECTSLOTI alGetAuxiliaryEffectSloti
void AL_APIENTRY wrap_BufferSamples(ALuint buffer, ALuint samplerate, ALenum internalformat, ALsizei samples, ALenum channels, ALenum type, const ALvoid *data)
#define AL_REVERB_DECAY_TIME
LPALGETEFFECTI alGetEffecti
LPALGETEFFECTF alGetEffectf
#define AL_EAXREVERB_LATE_REVERB_PAN
AL_API void AL_APIENTRY alGenSources(ALsizei n, ALuint *sources)
#define AL_REVERB_AIR_ABSORPTION_GAINHF
StreamPtr getAVAudioStream(FilePtr file, int streamnum)
AL_API ALenum AL_APIENTRY alGetEnumValue(const ALchar *ename)
#define AL_EFFECTSLOT_EFFECT
#define AL_REVERB_DECAY_HFLIMIT
#define AL_EAXREVERB_REFLECTIONS_GAIN
void(AL_APIENTRY * LPALEFFECTI)(ALuint, ALenum, ALint)
ALboolean(AL_APIENTRY * LPALISBUFFERFORMATSUPPORTEDSOFT)(ALenum)
ALC_API ALCcontext *ALC_APIENTRY alcGetCurrentContext(void)
void(AL_APIENTRY * LPALEFFECTF)(ALuint, ALenum, ALfloat)
EGLContext EGLenum EGLClientBuffer buffer
#define AL_REVERB_DIFFUSION
const char * TypeName(ALenum type)
void(AL_APIENTRY * LPALGETAUXILIARYEFFECTSLOTF)(ALuint, ALenum, ALfloat *)
#define AL_REVERB_REFLECTIONS_DELAY
void(AL_APIENTRY * LPALBUFFERSAMPLESSOFT)(ALuint, ALuint, ALenum, ALsizei, ALenum, ALenum, const ALvoid *)
void(AL_APIENTRY * LPALGETAUXILIARYEFFECTSLOTI)(ALuint, ALenum, ALint *)
void(AL_APIENTRY * LPALGETEFFECTFV)(ALuint, ALenum, ALfloat *)
static ALuint LoadEffect(const EFXEAXREVERBPROPERTIES *reverb)
void(AL_APIENTRY * LPALDELETEAUXILIARYEFFECTSLOTS)(ALsizei, const ALuint *)
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
#define AL_EAXREVERB_MODULATION_TIME
struct MyStream * StreamPtr
LPALGETAUXILIARYEFFECTSLOTFV alGetAuxiliaryEffectSlotfv
void(AL_APIENTRY * LPALEFFECTFV)(ALuint, ALenum, const ALfloat *)
#define AL_REVERB_DENSITY
#define AL_EAXREVERB_GAIN
LPALGETEFFECTIV alGetEffectiv
GLint GLenum GLsizei GLsizei GLsizei GLint GLenum format
AL_API void AL_APIENTRY alGenBuffers(ALsizei n, ALuint *buffers)
#define AL_EAXREVERB_GAINHF
static ALuint LoadSound(const char *filename)
#define AL_EAXREVERB_DECAY_LFRATIO
ALsizei BytesToFrames(ALsizei size, ALenum channels, ALenum type)
void(AL_APIENTRY * LPALDELETEEFFECTS)(ALsizei, const ALuint *)
float flAirAbsorptionGainHF
#define AL_EAXREVERB_ROOM_ROLLOFF_FACTOR
#define AL_EAXREVERB_DECAY_TIME
#define AL_EAXREVERB_AIR_ABSORPTION_GAINHF
void(AL_APIENTRY * LPALGETEFFECTF)(ALuint, ALenum, ALfloat *)
float flRoomRolloffFactor
#define AL_EAXREVERB_DECAY_HFLIMIT
ALC_API ALCdevice *ALC_APIENTRY alcGetContextsDevice(ALCcontext *Context)
ALenum GetFormat(ALenum channels, ALenum type, LPALISBUFFERFORMATSUPPORTEDSOFT palIsBufferFormatSupportedSOFT)
ALboolean(AL_APIENTRY * LPALISEFFECT)(ALuint)
#define AL_EAXREVERB_DENSITY
LPALAUXILIARYEFFECTSLOTI alAuxiliaryEffectSloti
#define AL_EAXREVERB_REFLECTIONS_PAN
const char * ChannelsName(ALenum chans)
void(AL_APIENTRY * LPALAUXILIARYEFFECTSLOTF)(ALuint, ALenum, ALfloat)
AL_API ALboolean AL_APIENTRY alIsExtensionPresent(const ALchar *extname)
AL_API const ALchar *AL_APIENTRY alGetString(ALenum param)
LPALAUXILIARYEFFECTSLOTFV alAuxiliaryEffectSlotfv
#define AL_REVERB_LATE_REVERB_GAIN
void(AL_APIENTRY * LPALAUXILIARYEFFECTSLOTI)(ALuint, ALenum, ALint)
void(AL_APIENTRY * LPALAUXILIARYEFFECTSLOTFV)(ALuint, ALenum, const ALfloat *)
#define EFX_REVERB_PRESET_GENERIC
#define AL_EAXREVERB_LFREFERENCE
LPALGENEFFECTS alGenEffects
#define AL_EAXREVERB_GAINLF
ALboolean(AL_APIENTRY * LPALISAUXILIARYEFFECTSLOT)(ALuint)
void(AL_APIENTRY * LPALGENEFFECTS)(ALsizei, ALuint *)
LPALGETEFFECTFV alGetEffectfv
AL_API void AL_APIENTRY alDeleteBuffers(ALsizei n, const ALuint *buffers)
void closeAVFile(FilePtr file)
#define AL_EFFECT_EAXREVERB
AL_API void AL_APIENTRY alSourcei(ALuint source, ALenum param, ALint value)
int getAVAudioInfo(StreamPtr stream, ALuint *rate, ALenum *channels, ALenum *type)
GLsizei GLsizei GLchar * source
LPALAUXILIARYEFFECTSLOTIV alAuxiliaryEffectSlotiv
#define AL_EAXREVERB_ECHO_DEPTH
LPALGENAUXILIARYEFFECTSLOTS alGenAuxiliaryEffectSlots
void(AL_APIENTRY * LPALGETEFFECTI)(ALuint, ALenum, ALint *)
#define AL_REVERB_ROOM_ROLLOFF_FACTOR
ALC_API ALCboolean ALC_APIENTRY alcIsExtensionPresent(ALCdevice *device, const ALCchar *extName)
#define AL_AUXILIARY_SEND_FILTER
LPALISBUFFERFORMATSUPPORTEDSOFT alIsBufferFormatSupportedSOFT
LPALDELETEEFFECTS alDeleteEffects
void(AL_APIENTRY * LPALGETEFFECTIV)(ALuint, ALenum, ALint *)
AL_API ALboolean AL_APIENTRY alIsBuffer(ALuint buffer)
AL_API void AL_APIENTRY alDeleteSources(ALsizei n, const ALuint *sources)
LPALISAUXILIARYEFFECTSLOT alIsAuxiliaryEffectSlot