naev 0.12.6
nopenal.h
1/*
2 * See Licensing and Copyright notice in naev.h
3 */
4#pragma once
5
7#include "AL/al.h"
8#include "AL/alc.h"
10
11/*
12 * EFX stuff.
13 */
14#ifndef ALC_EXT_EFX
15/* Auxiliary Effect Slot. */
16#define AL_EFFECTSLOT_NULL 0x0000
17#define AL_EFFECTSLOT_EFFECT 0x0001
18#define AL_EFFECTSLOT_GAIN 0x0002
19#define AL_EFFECTSLOT_AUXILIARY_SEND_AUTO 0x0003
20/* Filters. */
21#define AL_FILTER_TYPE 0x8001
22#define AL_FILTER_NULL 0x0000
23#define AL_FILTER_LOWPASS 0x0001
24#define AL_FILTER_HIGHPASS 0x0002
25#define AL_FILTER_BANDPASS 0x0003
26/* Effects. */
27#define AL_EFFECT_TYPE 0x8001
28#define AL_EFFECT_NULL 0x0000
29#define AL_EFFECT_EAXREVERB 0x8000
30#define AL_EFFECT_REVERB 0x0001
31#define AL_EFFECT_CHORUS 0x0002
32#define AL_EFFECT_DISTORTION 0x0003
33#define AL_EFFECT_ECHO 0x0004
34#define AL_EFFECT_FLANGER 0x0005
35#define AL_EFFECT_FREQUENCY_SHIFTER 0x0006
36#define AL_EFFECT_VOCAL_MORPHER 0x0007
37#define AL_EFFECT_PITCH_SHIFTER 0x0008
38#define AL_EFFECT_RING_MODULATOR 0x0009
39#define AL_EFFECT_AUTOWAH 0x000A
40#define AL_EFFECT_COMPRESSOR 0x000B
41#define AL_EFFECT_EQUALIZER 0x000C
42/* Reverb Effect. */
43#define AL_REVERB_DENSITY 0x0001
44#define AL_REVERB_DIFFUSION 0x0002
45#define AL_REVERB_GAIN 0x0003
46#define AL_REVERB_GAINHF 0x0004
47#define AL_REVERB_DECAY_TIME 0x0005
48#define AL_REVERB_DECAY_HFRATIO 0x0006
49#define AL_REVERB_REFLECTIONS_GAIN 0x0007
50#define AL_REVERB_REFLECTIONS_DELAY 0x0008
51#define AL_REVERB_LATE_REVERB_GAIN 0x0009
52#define AL_REVERB_LATE_REVERB_DELAY 0x000A
53#define AL_REVERB_AIR_ABSORPTION_GAINHF 0x000B
54#define AL_REVERB_ROOM_ROLLOFF_FACTOR 0x000C
55#define AL_REVERB_DECAY_HFLIMIT 0x000D
56/* Echo Effect. */
57#define AL_ECHO_DELAY 0x0001
58#define AL_ECHO_LRDELAY 0x0002
59#define AL_ECHO_DAMPING 0x0003
60#define AL_ECHO_FEEDBACK 0x0004
61#define AL_ECHO_SPREAD 0x0005
62/* Listener Object Extensions. */
63#define AL_METERS_PER_UNIT 0x20004
64/* Source Object Extensions. */
65#define AL_DIRECT_FILTER 0x20005
66#define AL_AUXILIARY_SEND_FILTER 0x20006
67#define AL_AIR_ABSORPTION_FACTOR 0x20007
68#define AL_ROOM_ROLLOFF_FACTOR 0x20008
69#define AL_CONE_OUTER_GAINHF 0x20009
70#define AL_DIRECT_FILTER_GAINHF_AUTO 0x2000A
71#define AL_AUXILIARY_SEND_FILTER_GAIN_AUTO 0x2000B
72#define AL_AUXILIARY_SEND_FILTER_GAINHF_AUTO 0x2000C
73/* Context Object Extensions. */
74#define ALC_EFX_MAJOR_VERSION 0x20001
75#define ALC_EFX_MINOR_VERSION 0x20002
76#define ALC_MAX_AUXILIARY_SENDS 0x20003
77#endif
78/* Auxiliary Effect Slot. */
79extern ALvoid( AL_APIENTRY *nalGenAuxiliaryEffectSlots )( ALsizei, ALuint * );
80extern ALvoid( AL_APIENTRY *nalDeleteAuxiliaryEffectSlots )( ALsizei,
81 ALuint * );
82extern ALboolean( AL_APIENTRY *nalIsAuxiliaryEffectSlot )( ALuint );
83extern ALvoid( AL_APIENTRY *nalAuxiliaryEffectSloti )( ALuint, ALenum, ALint );
84extern ALvoid( AL_APIENTRY *nalAuxiliaryEffectSlotiv )( ALuint, ALenum,
85 ALint * );
86extern ALvoid( AL_APIENTRY *nalAuxiliaryEffectSlotf )( ALuint, ALenum,
87 ALfloat );
88extern ALvoid( AL_APIENTRY *nalAuxiliaryEffectSlotfv )( ALuint, ALenum,
89 ALfloat * );
90extern ALvoid( AL_APIENTRY *nalGetAuxiliaryEffectSloti )( ALuint, ALenum,
91 ALint * );
92extern ALvoid( AL_APIENTRY *nalGetAuxiliaryEffectSlotiv )( ALuint, ALenum,
93 ALint * );
94extern ALvoid( AL_APIENTRY *nalGetAuxiliaryEffectSlotf )( ALuint, ALenum,
95 ALfloat * );
96extern ALvoid( AL_APIENTRY *nalGetAuxiliaryEffectSlotfv )( ALuint, ALenum,
97 ALfloat * );
98/* Filter. */
99extern ALvoid( AL_APIENTRY *nalGenFilters )( ALsizei, ALuint * );
100extern ALvoid( AL_APIENTRY *nalDeleteFilters )( ALsizei, ALuint * );
101extern ALvoid( AL_APIENTRY *nalFilteri )( ALuint, ALenum, ALint );
102extern ALvoid( AL_APIENTRY *nalFilteriv )( ALuint, ALenum, ALint * );
103extern ALvoid( AL_APIENTRY *nalFilterf )( ALuint, ALenum, ALfloat );
104extern ALvoid( AL_APIENTRY *nalFilterfv )( ALuint, ALenum, ALfloat * );
105/* Effect. */
106extern ALvoid( AL_APIENTRY *nalGenEffects )( ALsizei, ALuint * );
107extern ALvoid( AL_APIENTRY *nalDeleteEffects )( ALsizei, ALuint * );
108extern ALvoid( AL_APIENTRY *nalEffecti )( ALuint, ALenum, ALint );
109extern ALvoid( AL_APIENTRY *nalEffectiv )( ALuint, ALenum, ALint * );
110extern ALvoid( AL_APIENTRY *nalEffectf )( ALuint, ALenum, ALfloat );
111extern ALvoid( AL_APIENTRY *nalEffectfv )( ALuint, ALenum, ALfloat * );
112
113/* Debugging. */
114#ifdef DEBUGGING
115#define al_checkErr() al_checkHandleError( alGetError(), __func__, __LINE__ )
116void al_checkHandleError( ALenum err, const char *func, int line );
117#else /* DEBUGGING */
118#define al_checkErr()
119#endif /* DEBUGGING */