1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
|
/*
* al.h - Core OpenAL functions
* Copyright (C) 2021-2025, Kirill Dmitrievich
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this
* list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef AL_AL_H
#define AL_AL_H 1
#include <AL/salad.h>
#define OPENAL 1
#define AL_VERSION_1_0 1
#define AL_VERSION_1_1 1
#define AL_APIENTRY SALAD_ALX_APIENTRY
typedef salad_float32_type ALfloat;
typedef salad_float64_type ALdouble;
typedef salad_int16_type ALshort;
typedef salad_int32_type ALint;
typedef salad_int32_type ALsizei;
typedef salad_int8_type ALbyte;
typedef salad_uint16_type ALushort;
typedef salad_uint32_type ALenum;
typedef salad_uint32_type ALuint;
typedef salad_uint8_type ALboolean;
typedef salad_uint8_type ALchar;
typedef salad_uint8_type ALubyte;
typedef void ALvoid;
#define AL_INVALID (0xFFFFFFFF)
#define AL_NONE (0x0000)
#define AL_FALSE (0x0000)
#define AL_TRUE (0x0001)
#define AL_BITS (0x2002)
#define AL_BUFFER (0x1009)
#define AL_BUFFERS_PROCESSED (0x1016)
#define AL_BUFFERS_QUEUED (0x1015)
#define AL_BYTE_OFFSET (0x1026)
#define AL_CHANNEL_MASK (0x3000)
#define AL_CHANNELS (0x2003)
#define AL_CONE_INNER_ANGLE (0x1001)
#define AL_CONE_OUTER_ANGLE (0x1002)
#define AL_CONE_OUTER_GAIN (0x1022)
#define AL_DIRECTION (0x1005)
#define AL_DISTANCE_MODEL (0xD000)
#define AL_DOPPLER_FACTOR (0xC000)
#define AL_DOPPLER_VELOCITY (0xC001)
#define AL_EXPONENT_DISTANCE (0xD005)
#define AL_EXPONENT_DISTANCE_CLAMPED (0xD006)
#define AL_EXTENSIONS (0xB004)
#define AL_FORMAT_MONO16 (0x1101)
#define AL_FORMAT_MONO8 (0x1100)
#define AL_FORMAT_STEREO16 (0x1103)
#define AL_FORMAT_STEREO8 (0x1102)
#define AL_FREQUENCY (0x2001)
#define AL_GAIN (0x100A)
#define AL_INITIAL (0x1011)
#define AL_INVALID_ENUM (0xA002)
#define AL_INVALID_NAME (0xA001)
#define AL_INVALID_OPERATION (0xA004)
#define AL_INVALID_VALUE (0xA003)
#define AL_INVERSE_DISTANCE (0xD001)
#define AL_INVERSE_DISTANCE_CLAMPED (0xD002)
#define AL_LINEAR_DISTANCE (0xD003)
#define AL_LINEAR_DISTANCE_CLAMPED (0xD004)
#define AL_LOOPING (0x1007)
#define AL_MAX_DISTANCE (0x1023)
#define AL_MAX_GAIN (0x100E)
#define AL_MIN_GAIN (0x100D)
#define AL_NO_ERROR (0x0000)
#define AL_ORIENTATION (0x100F)
#define AL_OUT_OF_MEMORY (0xA005)
#define AL_PAUSED (0x1013)
#define AL_PENDING (0x2011)
#define AL_PITCH (0x1003)
#define AL_PLAYING (0x1012)
#define AL_POSITION (0x1004)
#define AL_PROCESSED (0x2012)
#define AL_REFERENCE_DISTANCE (0x1020)
#define AL_RENDERER (0xB003)
#define AL_ROLLOFF_FACTOR (0x1021)
#define AL_SAMPLE_OFFSET (0x1025)
#define AL_SEC_OFFSET (0x1024)
#define AL_SIZE (0x2004)
#define AL_SOURCE_RELATIVE (0x0202)
#define AL_SOURCE_STATE (0x1010)
#define AL_SOURCE_TYPE (0x1027)
#define AL_SPEED_OF_SOUND (0xC003)
#define AL_STATIC (0x1028)
#define AL_STOPPED (0x1014)
#define AL_STREAMING (0x1029)
#define AL_UNDETERMINED (0x1030)
#define AL_UNUSED (0x2010)
#define AL_VELOCITY (0x1006)
#define AL_VENDOR (0xB001)
#define AL_VERSION (0xB002)
typedef ALboolean(AL_APIENTRY *PFN_alGetBoolean)(ALenum param);
typedef ALboolean(AL_APIENTRY *PFN_alIsBuffer)(ALuint buffer);
typedef ALboolean(AL_APIENTRY *PFN_alIsEnabled)(ALenum capability);
typedef ALboolean(AL_APIENTRY *PFN_alIsExtensionPresent)(const ALchar *extname);
typedef ALboolean(AL_APIENTRY *PFN_alIsSource)(ALuint source);
typedef ALdouble(AL_APIENTRY *PFN_alGetDouble)(ALenum param);
typedef ALenum(AL_APIENTRY *PFN_alGetEnumValue)(const ALchar *ename);
typedef ALenum(AL_APIENTRY *PFN_alGetError)(void);
typedef ALfloat(AL_APIENTRY *PFN_alGetFloat)(ALenum param);
typedef ALint(AL_APIENTRY *PFN_alGetInteger)(ALenum param);
typedef const ALchar *(AL_APIENTRY *PFN_alGetString)(ALenum param);
typedef void(AL_APIENTRY *PFN_alBuffer3f)(ALuint buffer, ALenum param, ALfloat value1, ALfloat value2, ALfloat value3);
typedef void(AL_APIENTRY *PFN_alBuffer3i)(ALuint buffer, ALenum param, ALint value1, ALint value2, ALint value3);
typedef void(AL_APIENTRY *PFN_alBufferData)(ALuint buffer, ALenum format, const ALvoid *data, ALsizei size, ALsizei freq);
typedef void(AL_APIENTRY *PFN_alBufferf)(ALuint buffer, ALenum param, ALfloat value);
typedef void(AL_APIENTRY *PFN_alBufferfv)(ALuint buffer, ALenum param, const ALfloat *values);
typedef void(AL_APIENTRY *PFN_alBufferi)(ALuint buffer, ALenum param, ALint value);
typedef void(AL_APIENTRY *PFN_alBufferiv)(ALuint buffer, ALenum param, const ALint *values);
typedef void(AL_APIENTRY *PFN_alDeleteBuffers)(ALsizei n, const ALuint *buffers);
typedef void(AL_APIENTRY *PFN_alDeleteSources)(ALsizei n, const ALuint *sources);
typedef void(AL_APIENTRY *PFN_alDisable)(ALenum capability);
typedef void(AL_APIENTRY *PFN_alEnable)(ALenum capability);
typedef void(AL_APIENTRY *PFN_alGenBuffers)(ALsizei n, ALuint *buffers);
typedef void(AL_APIENTRY *PFN_alGenSources)(ALsizei n, ALuint *sources);
typedef void(AL_APIENTRY *PFN_alGetBooleanv)(ALenum param, ALboolean *values);
typedef void(AL_APIENTRY *PFN_alGetBuffer3f)(ALuint buffer, ALenum param, ALfloat *value1, ALfloat *value2, ALfloat *value3);
typedef void(AL_APIENTRY *PFN_alGetBuffer3i)(ALuint buffer, ALenum param, ALint *value1, ALint *value2, ALint *value3);
typedef void(AL_APIENTRY *PFN_alGetBufferf)(ALuint buffer, ALenum param, ALfloat *value);
typedef void(AL_APIENTRY *PFN_alGetBufferfv)(ALuint buffer, ALenum param, ALfloat *values);
typedef void(AL_APIENTRY *PFN_alGetBufferi)(ALuint buffer, ALenum param, ALint *value);
typedef void(AL_APIENTRY *PFN_alGetBufferiv)(ALuint buffer, ALenum param, ALint *values);
typedef void(AL_APIENTRY *PFN_alGetDoublev)(ALenum param, ALdouble *values);
typedef void(AL_APIENTRY *PFN_alGetFloatv)(ALenum param, ALfloat *values);
typedef void(AL_APIENTRY *PFN_alGetIntegerv)(ALenum param, ALint *values);
typedef void(AL_APIENTRY *PFN_alGetListener3f)(ALenum param, ALfloat *value1, ALfloat *value2, ALfloat *value3);
typedef void(AL_APIENTRY *PFN_alGetListener3i)(ALenum param, ALint *value1, ALint *value2, ALint *value3);
typedef void(AL_APIENTRY *PFN_alGetListenerf)(ALenum param, ALfloat *value);
typedef void(AL_APIENTRY *PFN_alGetListenerfv)(ALenum param, ALfloat *values);
typedef void(AL_APIENTRY *PFN_alGetListeneri)(ALenum param, ALint *value);
typedef void(AL_APIENTRY *PFN_alGetListeneriv)(ALenum param, ALint *values);
typedef void(AL_APIENTRY *PFN_alGetSource3f)(ALuint source, ALenum param, ALfloat *value1, ALfloat *value2, ALfloat *value3);
typedef void(AL_APIENTRY *PFN_alGetSource3i)(ALuint source, ALenum param, ALint *value1, ALint *value2, ALint *value3);
typedef void(AL_APIENTRY *PFN_alGetSourcef)(ALuint source, ALenum param, ALfloat *value);
typedef void(AL_APIENTRY *PFN_alGetSourcefv)(ALuint source, ALenum param, ALfloat *values);
typedef void(AL_APIENTRY *PFN_alGetSourcei)(ALuint source, ALenum param, ALint *value);
typedef void(AL_APIENTRY *PFN_alGetSourceiv)(ALuint source, ALenum param, ALint *values);
typedef void(AL_APIENTRY *PFN_alListener3f)(ALenum param, ALfloat value1, ALfloat value2, ALfloat value3);
typedef void(AL_APIENTRY *PFN_alListener3i)(ALenum param, ALint value1, ALint value2, ALint value3);
typedef void(AL_APIENTRY *PFN_alListenerf)(ALenum param, ALfloat value);
typedef void(AL_APIENTRY *PFN_alListenerfv)(ALenum param, const ALfloat *values);
typedef void(AL_APIENTRY *PFN_alListeneri)(ALenum param, ALint value);
typedef void(AL_APIENTRY *PFN_alListeneriv)(ALenum param, const ALint *values);
typedef void(AL_APIENTRY *PFN_alSource3f)(ALuint source, ALenum param, ALfloat value1, ALfloat value2, ALfloat value3);
typedef void(AL_APIENTRY *PFN_alSource3i)(ALuint source, ALenum param, ALint value1, ALint value2, ALint value3);
typedef void(AL_APIENTRY *PFN_alSourcef)(ALuint source, ALenum param, ALfloat value);
typedef void(AL_APIENTRY *PFN_alSourcefv)(ALuint source, ALenum param, const ALfloat *values);
typedef void(AL_APIENTRY *PFN_alSourcei)(ALuint source, ALenum param, ALint value);
typedef void(AL_APIENTRY *PFN_alSourceiv)(ALuint source, ALenum param, const ALint *values);
typedef void(AL_APIENTRY *PFN_alSourcePause)(ALuint source);
typedef void(AL_APIENTRY *PFN_alSourcePausev)(ALsizei n, const ALuint *sources);
typedef void(AL_APIENTRY *PFN_alSourcePlay)(ALuint source);
typedef void(AL_APIENTRY *PFN_alSourcePlayv)(ALsizei n, const ALuint *sources);
typedef void(AL_APIENTRY *PFN_alSourceQueueBuffers)(ALuint source, ALsizei nb, const ALuint *buffers);
typedef void(AL_APIENTRY *PFN_alSourceRewind)(ALuint source);
typedef void(AL_APIENTRY *PFN_alSourceRewindv)(ALsizei n, const ALuint *sources);
typedef void(AL_APIENTRY *PFN_alSourceStop)(ALuint source);
typedef void(AL_APIENTRY *PFN_alSourceStopv)(ALsizei n, const ALuint *sources);
typedef void(AL_APIENTRY *PFN_alSourceUnqueueBuffers)(ALuint source, ALsizei nb, ALuint *buffers);
typedef void*(AL_APIENTRY *PFN_alGetProcAddress)(const ALchar *fname);
SALAD_EXTERN PFN_alBuffer3f SALAD_alBuffer3f;
SALAD_EXTERN PFN_alBuffer3i SALAD_alBuffer3i;
SALAD_EXTERN PFN_alBufferData SALAD_alBufferData;
SALAD_EXTERN PFN_alBufferf SALAD_alBufferf;
SALAD_EXTERN PFN_alBufferfv SALAD_alBufferfv;
SALAD_EXTERN PFN_alBufferi SALAD_alBufferi;
SALAD_EXTERN PFN_alBufferiv SALAD_alBufferiv;
SALAD_EXTERN PFN_alDeleteBuffers SALAD_alDeleteBuffers;
SALAD_EXTERN PFN_alDeleteSources SALAD_alDeleteSources;
SALAD_EXTERN PFN_alDisable SALAD_alDisable;
SALAD_EXTERN PFN_alEnable SALAD_alEnable;
SALAD_EXTERN PFN_alGenBuffers SALAD_alGenBuffers;
SALAD_EXTERN PFN_alGenSources SALAD_alGenSources;
SALAD_EXTERN PFN_alGetBoolean SALAD_alGetBoolean;
SALAD_EXTERN PFN_alGetBooleanv SALAD_alGetBooleanv;
SALAD_EXTERN PFN_alGetBuffer3f SALAD_alGetBuffer3f;
SALAD_EXTERN PFN_alGetBuffer3i SALAD_alGetBuffer3i;
SALAD_EXTERN PFN_alGetBufferf SALAD_alGetBufferf;
SALAD_EXTERN PFN_alGetBufferfv SALAD_alGetBufferfv;
SALAD_EXTERN PFN_alGetBufferi SALAD_alGetBufferi;
SALAD_EXTERN PFN_alGetBufferiv SALAD_alGetBufferiv;
SALAD_EXTERN PFN_alGetDouble SALAD_alGetDouble;
SALAD_EXTERN PFN_alGetDoublev SALAD_alGetDoublev;
SALAD_EXTERN PFN_alGetEnumValue SALAD_alGetEnumValue;
SALAD_EXTERN PFN_alGetError SALAD_alGetError;
SALAD_EXTERN PFN_alGetFloat SALAD_alGetFloat;
SALAD_EXTERN PFN_alGetFloatv SALAD_alGetFloatv;
SALAD_EXTERN PFN_alGetInteger SALAD_alGetInteger;
SALAD_EXTERN PFN_alGetIntegerv SALAD_alGetIntegerv;
SALAD_EXTERN PFN_alGetListener3f SALAD_alGetListener3f;
SALAD_EXTERN PFN_alGetListener3i SALAD_alGetListener3i;
SALAD_EXTERN PFN_alGetListenerf SALAD_alGetListenerf;
SALAD_EXTERN PFN_alGetListenerfv SALAD_alGetListenerfv;
SALAD_EXTERN PFN_alGetListeneri SALAD_alGetListeneri;
SALAD_EXTERN PFN_alGetListeneriv SALAD_alGetListeneriv;
SALAD_EXTERN PFN_alGetProcAddress SALAD_alGetProcAddress;
SALAD_EXTERN PFN_alGetSource3f SALAD_alGetSource3f;
SALAD_EXTERN PFN_alGetSource3i SALAD_alGetSource3i;
SALAD_EXTERN PFN_alGetSourcef SALAD_alGetSourcef;
SALAD_EXTERN PFN_alGetSourcefv SALAD_alGetSourcefv;
SALAD_EXTERN PFN_alGetSourcei SALAD_alGetSourcei;
SALAD_EXTERN PFN_alGetSourceiv SALAD_alGetSourceiv;
SALAD_EXTERN PFN_alGetString SALAD_alGetString;
SALAD_EXTERN PFN_alIsBuffer SALAD_alIsBuffer;
SALAD_EXTERN PFN_alIsEnabled SALAD_alIsEnabled;
SALAD_EXTERN PFN_alIsExtensionPresent SALAD_alIsExtensionPresent;
SALAD_EXTERN PFN_alIsSource SALAD_alIsSource;
SALAD_EXTERN PFN_alListener3f SALAD_alListener3f;
SALAD_EXTERN PFN_alListener3i SALAD_alListener3i;
SALAD_EXTERN PFN_alListenerf SALAD_alListenerf;
SALAD_EXTERN PFN_alListenerfv SALAD_alListenerfv;
SALAD_EXTERN PFN_alListeneri SALAD_alListeneri;
SALAD_EXTERN PFN_alListeneriv SALAD_alListeneriv;
SALAD_EXTERN PFN_alSource3f SALAD_alSource3f;
SALAD_EXTERN PFN_alSource3i SALAD_alSource3i;
SALAD_EXTERN PFN_alSourcef SALAD_alSourcef;
SALAD_EXTERN PFN_alSourcefv SALAD_alSourcefv;
SALAD_EXTERN PFN_alSourcei SALAD_alSourcei;
SALAD_EXTERN PFN_alSourceiv SALAD_alSourceiv;
SALAD_EXTERN PFN_alSourcePause SALAD_alSourcePause;
SALAD_EXTERN PFN_alSourcePausev SALAD_alSourcePausev;
SALAD_EXTERN PFN_alSourcePlay SALAD_alSourcePlay;
SALAD_EXTERN PFN_alSourcePlayv SALAD_alSourcePlayv;
SALAD_EXTERN PFN_alSourceQueueBuffers SALAD_alSourceQueueBuffers;
SALAD_EXTERN PFN_alSourceRewind SALAD_alSourceRewind;
SALAD_EXTERN PFN_alSourceRewindv SALAD_alSourceRewindv;
SALAD_EXTERN PFN_alSourceStop SALAD_alSourceStop;
SALAD_EXTERN PFN_alSourceStopv SALAD_alSourceStopv;
SALAD_EXTERN PFN_alSourceUnqueueBuffers SALAD_alSourceUnqueueBuffers;
#define alBuffer3f SALAD_alBuffer3f
#define alBuffer3i SALAD_alBuffer3i
#define alBufferData SALAD_alBufferData
#define alBufferf SALAD_alBufferf
#define alBufferfv SALAD_alBufferfv
#define alBufferi SALAD_alBufferi
#define alBufferiv SALAD_alBufferiv
#define alDeleteBuffers SALAD_alDeleteBuffers
#define alDeleteSources SALAD_alDeleteSources
#define alDisable SALAD_alDisable
#define alEnable SALAD_alEnable
#define alGenBuffers SALAD_alGenBuffers
#define alGenSources SALAD_alGenSources
#define alGetBoolean SALAD_alGetBoolean
#define alGetBooleanv SALAD_alGetBooleanv
#define alGetBuffer3f SALAD_alGetBuffer3f
#define alGetBuffer3i SALAD_alGetBuffer3i
#define alGetBufferf SALAD_alGetBufferf
#define alGetBufferfv SALAD_alGetBufferfv
#define alGetBufferi SALAD_alGetBufferi
#define alGetBufferiv SALAD_alGetBufferiv
#define alGetDouble SALAD_alGetDouble
#define alGetDoublev SALAD_alGetDoublev
#define alGetEnumValue SALAD_alGetEnumValue
#define alGetError SALAD_alGetError
#define alGetFloat SALAD_alGetFloat
#define alGetFloatv SALAD_alGetFloatv
#define alGetInteger SALAD_alGetInteger
#define alGetIntegerv SALAD_alGetIntegerv
#define alGetListener3f SALAD_alGetListener3f
#define alGetListener3i SALAD_alGetListener3i
#define alGetListenerf SALAD_alGetListenerf
#define alGetListenerfv SALAD_alGetListenerfv
#define alGetListeneri SALAD_alGetListeneri
#define alGetListeneriv SALAD_alGetListeneriv
#define alGetProcAddress SALAD_alGetProcAddress
#define alGetSource3f SALAD_alGetSource3f
#define alGetSource3i SALAD_alGetSource3i
#define alGetSourcef SALAD_alGetSourcef
#define alGetSourcefv SALAD_alGetSourcefv
#define alGetSourcei SALAD_alGetSourcei
#define alGetSourceiv SALAD_alGetSourceiv
#define alGetString SALAD_alGetString
#define alIsBuffer SALAD_alIsBuffer
#define alIsEnabled SALAD_alIsEnabled
#define alIsExtensionPresent SALAD_alIsExtensionPresent
#define alIsSource SALAD_alIsSource
#define alListener3f SALAD_alListener3f
#define alListener3i SALAD_alListener3i
#define alListenerf SALAD_alListenerf
#define alListenerfv SALAD_alListenerfv
#define alListeneri SALAD_alListeneri
#define alListeneriv SALAD_alListeneriv
#define alSource3f SALAD_alSource3f
#define alSource3i SALAD_alSource3i
#define alSourcef SALAD_alSourcef
#define alSourcefv SALAD_alSourcefv
#define alSourcei SALAD_alSourcei
#define alSourceiv SALAD_alSourceiv
#define alSourcePause SALAD_alSourcePause
#define alSourcePausev SALAD_alSourcePausev
#define alSourcePlay SALAD_alSourcePlay
#define alSourcePlayv SALAD_alSourcePlayv
#define alSourceQueueBuffers SALAD_alSourceQueueBuffers
#define alSourceRewind SALAD_alSourceRewind
#define alSourceRewindv SALAD_alSourceRewindv
#define alSourceStop SALAD_alSourceStop
#define alSourceStopv SALAD_alSourceStopv
#define alSourceUnqueueBuffers SALAD_alSourceUnqueueBuffers
#endif /* AL_AL_H */
|