1 | /** |
2 | * OpenAL cross platform audio library |
3 | * Copyright (C) 2008 by authors. |
4 | * This library is free software; you can redistribute it and/or |
5 | * modify it under the terms of the GNU Library General Public |
6 | * License as published by the Free Software Foundation; either |
7 | * version 2 of the License, or (at your option) any later version. |
8 | * |
9 | * This library is distributed in the hope that it will be useful, |
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
12 | * Library General Public License for more details. |
13 | * |
14 | * You should have received a copy of the GNU Library General Public |
15 | * License along with this library; if not, write to the |
16 | * Free Software Foundation, Inc., |
17 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. |
18 | * Or go to http://www.gnu.org/copyleft/lgpl.html |
19 | */ |
20 | |
21 | #ifndef AL_ALEXT_H |
22 | #define AL_ALEXT_H |
23 | |
24 | #include <stddef.h> |
25 | /* Define int64_t and uint64_t types */ |
26 | #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L |
27 | #include <inttypes.h> |
28 | #elif defined(_WIN32) && defined(__GNUC__) |
29 | #include <stdint.h> |
30 | #elif defined(_WIN32) |
31 | typedef __int64 int64_t; |
32 | typedef unsigned __int64 uint64_t; |
33 | #else |
34 | /* Fallback if nothing above works */ |
35 | #include <inttypes.h> |
36 | #endif |
37 | |
38 | #include "alc.h" |
39 | #include "al.h" |
40 | |
41 | #ifdef __cplusplus |
42 | extern "C" { |
43 | #endif |
44 | |
45 | #ifndef AL_LOKI_IMA_ADPCM_format |
46 | #define AL_LOKI_IMA_ADPCM_format 1 |
47 | #define AL_FORMAT_IMA_ADPCM_MONO16_EXT 0x10000 |
48 | #define AL_FORMAT_IMA_ADPCM_STEREO16_EXT 0x10001 |
49 | #endif |
50 | |
51 | #ifndef AL_LOKI_WAVE_format |
52 | #define AL_LOKI_WAVE_format 1 |
53 | #define AL_FORMAT_WAVE_EXT 0x10002 |
54 | #endif |
55 | |
56 | #ifndef AL_EXT_vorbis |
57 | #define AL_EXT_vorbis 1 |
58 | #define AL_FORMAT_VORBIS_EXT 0x10003 |
59 | #endif |
60 | |
61 | #ifndef AL_LOKI_quadriphonic |
62 | #define AL_LOKI_quadriphonic 1 |
63 | #define AL_FORMAT_QUAD8_LOKI 0x10004 |
64 | #define AL_FORMAT_QUAD16_LOKI 0x10005 |
65 | #endif |
66 | |
67 | #ifndef AL_EXT_float32 |
68 | #define AL_EXT_float32 1 |
69 | #define AL_FORMAT_MONO_FLOAT32 0x10010 |
70 | #define AL_FORMAT_STEREO_FLOAT32 0x10011 |
71 | #endif |
72 | |
73 | #ifndef AL_EXT_double |
74 | #define AL_EXT_double 1 |
75 | #define AL_FORMAT_MONO_DOUBLE_EXT 0x10012 |
76 | #define AL_FORMAT_STEREO_DOUBLE_EXT 0x10013 |
77 | #endif |
78 | |
79 | #ifndef AL_EXT_MULAW |
80 | #define AL_EXT_MULAW 1 |
81 | #define AL_FORMAT_MONO_MULAW_EXT 0x10014 |
82 | #define AL_FORMAT_STEREO_MULAW_EXT 0x10015 |
83 | #endif |
84 | |
85 | #ifndef AL_EXT_ALAW |
86 | #define AL_EXT_ALAW 1 |
87 | #define AL_FORMAT_MONO_ALAW_EXT 0x10016 |
88 | #define AL_FORMAT_STEREO_ALAW_EXT 0x10017 |
89 | #endif |
90 | |
91 | #ifndef ALC_LOKI_audio_channel |
92 | #define ALC_LOKI_audio_channel 1 |
93 | #define ALC_CHAN_MAIN_LOKI 0x500001 |
94 | #define ALC_CHAN_PCM_LOKI 0x500002 |
95 | #define ALC_CHAN_CD_LOKI 0x500003 |
96 | #endif |
97 | |
98 | #ifndef AL_EXT_MCFORMATS |
99 | #define AL_EXT_MCFORMATS 1 |
100 | /* Provides support for surround sound buffer formats with 8, 16, and 32-bit |
101 | * samples. |
102 | * |
103 | * QUAD8: Unsigned 8-bit, Quadraphonic (Front Left, Front Right, Rear Left, |
104 | * Rear Right). |
105 | * QUAD16: Signed 16-bit, Quadraphonic. |
106 | * QUAD32: 32-bit float, Quadraphonic. |
107 | * REAR8: Unsigned 8-bit, Rear Stereo (Rear Left, Rear Right). |
108 | * REAR16: Signed 16-bit, Rear Stereo. |
109 | * REAR32: 32-bit float, Rear Stereo. |
110 | * 51CHN8: Unsigned 8-bit, 5.1 Surround (Front Left, Front Right, Front Center, |
111 | * LFE, Side Left, Side Right). Note that some audio systems may label |
112 | * 5.1's Side channels as Rear or Surround; they are equivalent for the |
113 | * purposes of this extension. |
114 | * 51CHN16: Signed 16-bit, 5.1 Surround. |
115 | * 51CHN32: 32-bit float, 5.1 Surround. |
116 | * 61CHN8: Unsigned 8-bit, 6.1 Surround (Front Left, Front Right, Front Center, |
117 | * LFE, Rear Center, Side Left, Side Right). |
118 | * 61CHN16: Signed 16-bit, 6.1 Surround. |
119 | * 61CHN32: 32-bit float, 6.1 Surround. |
120 | * 71CHN8: Unsigned 8-bit, 7.1 Surround (Front Left, Front Right, Front Center, |
121 | * LFE, Rear Left, Rear Right, Side Left, Side Right). |
122 | * 71CHN16: Signed 16-bit, 7.1 Surround. |
123 | * 71CHN32: 32-bit float, 7.1 Surround. |
124 | */ |
125 | #define AL_FORMAT_QUAD8 0x1204 |
126 | #define AL_FORMAT_QUAD16 0x1205 |
127 | #define AL_FORMAT_QUAD32 0x1206 |
128 | #define AL_FORMAT_REAR8 0x1207 |
129 | #define AL_FORMAT_REAR16 0x1208 |
130 | #define AL_FORMAT_REAR32 0x1209 |
131 | #define AL_FORMAT_51CHN8 0x120A |
132 | #define AL_FORMAT_51CHN16 0x120B |
133 | #define AL_FORMAT_51CHN32 0x120C |
134 | #define AL_FORMAT_61CHN8 0x120D |
135 | #define AL_FORMAT_61CHN16 0x120E |
136 | #define AL_FORMAT_61CHN32 0x120F |
137 | #define AL_FORMAT_71CHN8 0x1210 |
138 | #define AL_FORMAT_71CHN16 0x1211 |
139 | #define AL_FORMAT_71CHN32 0x1212 |
140 | #endif |
141 | |
142 | #ifndef AL_EXT_MULAW_MCFORMATS |
143 | #define AL_EXT_MULAW_MCFORMATS 1 |
144 | #define AL_FORMAT_MONO_MULAW 0x10014 |
145 | #define AL_FORMAT_STEREO_MULAW 0x10015 |
146 | #define AL_FORMAT_QUAD_MULAW 0x10021 |
147 | #define AL_FORMAT_REAR_MULAW 0x10022 |
148 | #define AL_FORMAT_51CHN_MULAW 0x10023 |
149 | #define AL_FORMAT_61CHN_MULAW 0x10024 |
150 | #define AL_FORMAT_71CHN_MULAW 0x10025 |
151 | #endif |
152 | |
153 | #ifndef AL_EXT_IMA4 |
154 | #define AL_EXT_IMA4 1 |
155 | #define AL_FORMAT_MONO_IMA4 0x1300 |
156 | #define AL_FORMAT_STEREO_IMA4 0x1301 |
157 | #endif |
158 | |
159 | #ifndef AL_EXT_STATIC_BUFFER |
160 | #define AL_EXT_STATIC_BUFFER 1 |
161 | typedef ALvoid (AL_APIENTRY*PFNALBUFFERDATASTATICPROC)(const ALint,ALenum,ALvoid*,ALsizei,ALsizei); |
162 | #ifdef AL_ALEXT_PROTOTYPES |
163 | AL_API ALvoid AL_APIENTRY alBufferDataStatic(const ALint buffer, ALenum format, ALvoid *data, ALsizei len, ALsizei freq); |
164 | #endif |
165 | #endif |
166 | |
167 | #ifndef ALC_EXT_EFX |
168 | #define ALC_EXT_EFX 1 |
169 | #include "efx.h" |
170 | #endif |
171 | |
172 | #ifndef ALC_EXT_disconnect |
173 | #define ALC_EXT_disconnect 1 |
174 | #define ALC_CONNECTED 0x313 |
175 | #endif |
176 | |
177 | #ifndef ALC_EXT_thread_local_context |
178 | #define ALC_EXT_thread_local_context 1 |
179 | typedef ALCboolean (ALC_APIENTRY*PFNALCSETTHREADCONTEXTPROC)(ALCcontext *context); |
180 | typedef ALCcontext* (ALC_APIENTRY*PFNALCGETTHREADCONTEXTPROC)(void); |
181 | #ifdef AL_ALEXT_PROTOTYPES |
182 | ALC_API ALCboolean ALC_APIENTRY alcSetThreadContext(ALCcontext *context); |
183 | ALC_API ALCcontext* ALC_APIENTRY alcGetThreadContext(void); |
184 | #endif |
185 | #endif |
186 | |
187 | #ifndef AL_EXT_source_distance_model |
188 | #define AL_EXT_source_distance_model 1 |
189 | #define AL_SOURCE_DISTANCE_MODEL 0x200 |
190 | #endif |
191 | |
192 | #ifndef AL_SOFT_buffer_sub_data |
193 | #define AL_SOFT_buffer_sub_data 1 |
194 | #define AL_BYTE_RW_OFFSETS_SOFT 0x1031 |
195 | #define AL_SAMPLE_RW_OFFSETS_SOFT 0x1032 |
196 | typedef ALvoid (AL_APIENTRY*PFNALBUFFERSUBDATASOFTPROC)(ALuint,ALenum,const ALvoid*,ALsizei,ALsizei); |
197 | #ifdef AL_ALEXT_PROTOTYPES |
198 | AL_API ALvoid AL_APIENTRY alBufferSubDataSOFT(ALuint buffer,ALenum format,const ALvoid *data,ALsizei offset,ALsizei length); |
199 | #endif |
200 | #endif |
201 | |
202 | #ifndef AL_SOFT_loop_points |
203 | #define AL_SOFT_loop_points 1 |
204 | #define AL_LOOP_POINTS_SOFT 0x2015 |
205 | #endif |
206 | |
207 | #ifndef AL_EXT_FOLDBACK |
208 | #define AL_EXT_FOLDBACK 1 |
209 | #define AL_EXT_FOLDBACK_NAME "AL_EXT_FOLDBACK" |
210 | #define AL_FOLDBACK_EVENT_BLOCK 0x4112 |
211 | #define AL_FOLDBACK_EVENT_START 0x4111 |
212 | #define AL_FOLDBACK_EVENT_STOP 0x4113 |
213 | #define AL_FOLDBACK_MODE_MONO 0x4101 |
214 | #define AL_FOLDBACK_MODE_STEREO 0x4102 |
215 | typedef void (AL_APIENTRY*LPALFOLDBACKCALLBACK)(ALenum,ALsizei); |
216 | typedef void (AL_APIENTRY*LPALREQUESTFOLDBACKSTART)(ALenum,ALsizei,ALsizei,ALfloat*,LPALFOLDBACKCALLBACK); |
217 | typedef void (AL_APIENTRY*LPALREQUESTFOLDBACKSTOP)(void); |
218 | #ifdef AL_ALEXT_PROTOTYPES |
219 | AL_API void AL_APIENTRY alRequestFoldbackStart(ALenum mode,ALsizei count,ALsizei length,ALfloat *mem,LPALFOLDBACKCALLBACK callback); |
220 | AL_API void AL_APIENTRY alRequestFoldbackStop(void); |
221 | #endif |
222 | #endif |
223 | |
224 | #ifndef ALC_EXT_DEDICATED |
225 | #define ALC_EXT_DEDICATED 1 |
226 | #define AL_DEDICATED_GAIN 0x0001 |
227 | #define AL_EFFECT_DEDICATED_DIALOGUE 0x9001 |
228 | #define AL_EFFECT_DEDICATED_LOW_FREQUENCY_EFFECT 0x9000 |
229 | #endif |
230 | |
231 | #ifndef AL_SOFT_buffer_samples |
232 | #define AL_SOFT_buffer_samples 1 |
233 | /* Channel configurations */ |
234 | #define AL_MONO_SOFT 0x1500 |
235 | #define AL_STEREO_SOFT 0x1501 |
236 | #define AL_REAR_SOFT 0x1502 |
237 | #define AL_QUAD_SOFT 0x1503 |
238 | #define AL_5POINT1_SOFT 0x1504 |
239 | #define AL_6POINT1_SOFT 0x1505 |
240 | #define AL_7POINT1_SOFT 0x1506 |
241 | |
242 | /* Sample types */ |
243 | #define AL_BYTE_SOFT 0x1400 |
244 | #define AL_UNSIGNED_BYTE_SOFT 0x1401 |
245 | #define AL_SHORT_SOFT 0x1402 |
246 | #define AL_UNSIGNED_SHORT_SOFT 0x1403 |
247 | #define AL_INT_SOFT 0x1404 |
248 | #define AL_UNSIGNED_INT_SOFT 0x1405 |
249 | #define AL_FLOAT_SOFT 0x1406 |
250 | #define AL_DOUBLE_SOFT 0x1407 |
251 | #define AL_BYTE3_SOFT 0x1408 |
252 | #define AL_UNSIGNED_BYTE3_SOFT 0x1409 |
253 | |
254 | /* Storage formats */ |
255 | #define AL_MONO8_SOFT 0x1100 |
256 | #define AL_MONO16_SOFT 0x1101 |
257 | #define AL_MONO32F_SOFT 0x10010 |
258 | #define AL_STEREO8_SOFT 0x1102 |
259 | #define AL_STEREO16_SOFT 0x1103 |
260 | #define AL_STEREO32F_SOFT 0x10011 |
261 | #define AL_QUAD8_SOFT 0x1204 |
262 | #define AL_QUAD16_SOFT 0x1205 |
263 | #define AL_QUAD32F_SOFT 0x1206 |
264 | #define AL_REAR8_SOFT 0x1207 |
265 | #define AL_REAR16_SOFT 0x1208 |
266 | #define AL_REAR32F_SOFT 0x1209 |
267 | #define AL_5POINT1_8_SOFT 0x120A |
268 | #define AL_5POINT1_16_SOFT 0x120B |
269 | #define AL_5POINT1_32F_SOFT 0x120C |
270 | #define AL_6POINT1_8_SOFT 0x120D |
271 | #define AL_6POINT1_16_SOFT 0x120E |
272 | #define AL_6POINT1_32F_SOFT 0x120F |
273 | #define AL_7POINT1_8_SOFT 0x1210 |
274 | #define AL_7POINT1_16_SOFT 0x1211 |
275 | #define AL_7POINT1_32F_SOFT 0x1212 |
276 | |
277 | /* Buffer attributes */ |
278 | #define AL_INTERNAL_FORMAT_SOFT 0x2008 |
279 | #define AL_BYTE_LENGTH_SOFT 0x2009 |
280 | #define AL_SAMPLE_LENGTH_SOFT 0x200A |
281 | #define AL_SEC_LENGTH_SOFT 0x200B |
282 | |
283 | typedef void (AL_APIENTRY*LPALBUFFERSAMPLESSOFT)(ALuint,ALuint,ALenum,ALsizei,ALenum,ALenum,const ALvoid*); |
284 | typedef void (AL_APIENTRY*LPALBUFFERSUBSAMPLESSOFT)(ALuint,ALsizei,ALsizei,ALenum,ALenum,const ALvoid*); |
285 | typedef void (AL_APIENTRY*LPALGETBUFFERSAMPLESSOFT)(ALuint,ALsizei,ALsizei,ALenum,ALenum,ALvoid*); |
286 | typedef ALboolean (AL_APIENTRY*LPALISBUFFERFORMATSUPPORTEDSOFT)(ALenum); |
287 | #ifdef AL_ALEXT_PROTOTYPES |
288 | AL_API void AL_APIENTRY alBufferSamplesSOFT(ALuint buffer, ALuint samplerate, ALenum internalformat, ALsizei samples, ALenum channels, ALenum type, const ALvoid *data); |
289 | AL_API void AL_APIENTRY alBufferSubSamplesSOFT(ALuint buffer, ALsizei offset, ALsizei samples, ALenum channels, ALenum type, const ALvoid *data); |
290 | AL_API void AL_APIENTRY alGetBufferSamplesSOFT(ALuint buffer, ALsizei offset, ALsizei samples, ALenum channels, ALenum type, ALvoid *data); |
291 | AL_API ALboolean AL_APIENTRY alIsBufferFormatSupportedSOFT(ALenum format); |
292 | #endif |
293 | #endif |
294 | |
295 | #ifndef AL_SOFT_direct_channels |
296 | #define AL_SOFT_direct_channels 1 |
297 | #define AL_DIRECT_CHANNELS_SOFT 0x1033 |
298 | #endif |
299 | |
300 | #ifndef ALC_SOFT_loopback |
301 | #define ALC_SOFT_loopback 1 |
302 | #define ALC_FORMAT_CHANNELS_SOFT 0x1990 |
303 | #define ALC_FORMAT_TYPE_SOFT 0x1991 |
304 | |
305 | /* Sample types */ |
306 | #define ALC_BYTE_SOFT 0x1400 |
307 | #define ALC_UNSIGNED_BYTE_SOFT 0x1401 |
308 | #define ALC_SHORT_SOFT 0x1402 |
309 | #define ALC_UNSIGNED_SHORT_SOFT 0x1403 |
310 | #define ALC_INT_SOFT 0x1404 |
311 | #define ALC_UNSIGNED_INT_SOFT 0x1405 |
312 | #define ALC_FLOAT_SOFT 0x1406 |
313 | |
314 | /* Channel configurations */ |
315 | #define ALC_MONO_SOFT 0x1500 |
316 | #define ALC_STEREO_SOFT 0x1501 |
317 | #define ALC_QUAD_SOFT 0x1503 |
318 | #define ALC_5POINT1_SOFT 0x1504 |
319 | #define ALC_6POINT1_SOFT 0x1505 |
320 | #define ALC_7POINT1_SOFT 0x1506 |
321 | |
322 | typedef ALCdevice* (ALC_APIENTRY*LPALCLOOPBACKOPENDEVICESOFT)(const ALCchar*); |
323 | typedef ALCboolean (ALC_APIENTRY*LPALCISRENDERFORMATSUPPORTEDSOFT)(ALCdevice*,ALCsizei,ALCenum,ALCenum); |
324 | typedef void (ALC_APIENTRY*LPALCRENDERSAMPLESSOFT)(ALCdevice*,ALCvoid*,ALCsizei); |
325 | #ifdef AL_ALEXT_PROTOTYPES |
326 | ALC_API ALCdevice* ALC_APIENTRY alcLoopbackOpenDeviceSOFT(const ALCchar *deviceName); |
327 | ALC_API ALCboolean ALC_APIENTRY alcIsRenderFormatSupportedSOFT(ALCdevice *device, ALCsizei freq, ALCenum channels, ALCenum type); |
328 | ALC_API void ALC_APIENTRY alcRenderSamplesSOFT(ALCdevice *device, ALCvoid *buffer, ALCsizei samples); |
329 | #endif |
330 | #endif |
331 | |
332 | #ifndef AL_EXT_STEREO_ANGLES |
333 | #define AL_EXT_STEREO_ANGLES 1 |
334 | #define AL_STEREO_ANGLES 0x1030 |
335 | #endif |
336 | |
337 | #ifndef AL_EXT_SOURCE_RADIUS |
338 | #define AL_EXT_SOURCE_RADIUS 1 |
339 | #define AL_SOURCE_RADIUS 0x1031 |
340 | #endif |
341 | |
342 | #ifndef AL_SOFT_source_latency |
343 | #define AL_SOFT_source_latency 1 |
344 | #define AL_SAMPLE_OFFSET_LATENCY_SOFT 0x1200 |
345 | #define AL_SEC_OFFSET_LATENCY_SOFT 0x1201 |
346 | typedef int64_t ALint64SOFT; |
347 | typedef uint64_t ALuint64SOFT; |
348 | typedef void (AL_APIENTRY*LPALSOURCEDSOFT)(ALuint,ALenum,ALdouble); |
349 | typedef void (AL_APIENTRY*LPALSOURCE3DSOFT)(ALuint,ALenum,ALdouble,ALdouble,ALdouble); |
350 | typedef void (AL_APIENTRY*LPALSOURCEDVSOFT)(ALuint,ALenum,const ALdouble*); |
351 | typedef void (AL_APIENTRY*LPALGETSOURCEDSOFT)(ALuint,ALenum,ALdouble*); |
352 | typedef void (AL_APIENTRY*LPALGETSOURCE3DSOFT)(ALuint,ALenum,ALdouble*,ALdouble*,ALdouble*); |
353 | typedef void (AL_APIENTRY*LPALGETSOURCEDVSOFT)(ALuint,ALenum,ALdouble*); |
354 | typedef void (AL_APIENTRY*LPALSOURCEI64SOFT)(ALuint,ALenum,ALint64SOFT); |
355 | typedef void (AL_APIENTRY*LPALSOURCE3I64SOFT)(ALuint,ALenum,ALint64SOFT,ALint64SOFT,ALint64SOFT); |
356 | typedef void (AL_APIENTRY*LPALSOURCEI64VSOFT)(ALuint,ALenum,const ALint64SOFT*); |
357 | typedef void (AL_APIENTRY*LPALGETSOURCEI64SOFT)(ALuint,ALenum,ALint64SOFT*); |
358 | typedef void (AL_APIENTRY*LPALGETSOURCE3I64SOFT)(ALuint,ALenum,ALint64SOFT*,ALint64SOFT*,ALint64SOFT*); |
359 | typedef void (AL_APIENTRY*LPALGETSOURCEI64VSOFT)(ALuint,ALenum,ALint64SOFT*); |
360 | #ifdef AL_ALEXT_PROTOTYPES |
361 | AL_API void AL_APIENTRY alSourcedSOFT(ALuint source, ALenum param, ALdouble value); |
362 | AL_API void AL_APIENTRY alSource3dSOFT(ALuint source, ALenum param, ALdouble value1, ALdouble value2, ALdouble value3); |
363 | AL_API void AL_APIENTRY alSourcedvSOFT(ALuint source, ALenum param, const ALdouble *values); |
364 | AL_API void AL_APIENTRY alGetSourcedSOFT(ALuint source, ALenum param, ALdouble *value); |
365 | AL_API void AL_APIENTRY alGetSource3dSOFT(ALuint source, ALenum param, ALdouble *value1, ALdouble *value2, ALdouble *value3); |
366 | AL_API void AL_APIENTRY alGetSourcedvSOFT(ALuint source, ALenum param, ALdouble *values); |
367 | AL_API void AL_APIENTRY alSourcei64SOFT(ALuint source, ALenum param, ALint64SOFT value); |
368 | AL_API void AL_APIENTRY alSource3i64SOFT(ALuint source, ALenum param, ALint64SOFT value1, ALint64SOFT value2, ALint64SOFT value3); |
369 | AL_API void AL_APIENTRY alSourcei64vSOFT(ALuint source, ALenum param, const ALint64SOFT *values); |
370 | AL_API void AL_APIENTRY alGetSourcei64SOFT(ALuint source, ALenum param, ALint64SOFT *value); |
371 | AL_API void AL_APIENTRY alGetSource3i64SOFT(ALuint source, ALenum param, ALint64SOFT *value1, ALint64SOFT *value2, ALint64SOFT *value3); |
372 | AL_API void AL_APIENTRY alGetSourcei64vSOFT(ALuint source, ALenum param, ALint64SOFT *values); |
373 | #endif |
374 | #endif |
375 | |
376 | #ifndef ALC_EXT_DEFAULT_FILTER_ORDER |
377 | #define ALC_EXT_DEFAULT_FILTER_ORDER 1 |
378 | #define ALC_DEFAULT_FILTER_ORDER 0x1100 |
379 | #endif |
380 | |
381 | #ifndef AL_SOFT_deferred_updates |
382 | #define AL_SOFT_deferred_updates 1 |
383 | #define AL_DEFERRED_UPDATES_SOFT 0xC002 |
384 | typedef ALvoid (AL_APIENTRY*LPALDEFERUPDATESSOFT)(void); |
385 | typedef ALvoid (AL_APIENTRY*LPALPROCESSUPDATESSOFT)(void); |
386 | #ifdef AL_ALEXT_PROTOTYPES |
387 | AL_API ALvoid AL_APIENTRY alDeferUpdatesSOFT(void); |
388 | AL_API ALvoid AL_APIENTRY alProcessUpdatesSOFT(void); |
389 | #endif |
390 | #endif |
391 | |
392 | #ifndef AL_SOFT_block_alignment |
393 | #define AL_SOFT_block_alignment 1 |
394 | #define AL_UNPACK_BLOCK_ALIGNMENT_SOFT 0x200C |
395 | #define AL_PACK_BLOCK_ALIGNMENT_SOFT 0x200D |
396 | #endif |
397 | |
398 | #ifndef AL_SOFT_MSADPCM |
399 | #define AL_SOFT_MSADPCM 1 |
400 | #define AL_FORMAT_MONO_MSADPCM_SOFT 0x1302 |
401 | #define AL_FORMAT_STEREO_MSADPCM_SOFT 0x1303 |
402 | #endif |
403 | |
404 | #ifndef AL_SOFT_source_length |
405 | #define AL_SOFT_source_length 1 |
406 | /*#define AL_BYTE_LENGTH_SOFT 0x2009*/ |
407 | /*#define AL_SAMPLE_LENGTH_SOFT 0x200A*/ |
408 | /*#define AL_SEC_LENGTH_SOFT 0x200B*/ |
409 | #endif |
410 | |
411 | #ifndef ALC_SOFT_pause_device |
412 | #define ALC_SOFT_pause_device 1 |
413 | typedef void (ALC_APIENTRY*LPALCDEVICEPAUSESOFT)(ALCdevice *device); |
414 | typedef void (ALC_APIENTRY*LPALCDEVICERESUMESOFT)(ALCdevice *device); |
415 | #ifdef AL_ALEXT_PROTOTYPES |
416 | ALC_API void ALC_APIENTRY alcDevicePauseSOFT(ALCdevice *device); |
417 | ALC_API void ALC_APIENTRY alcDeviceResumeSOFT(ALCdevice *device); |
418 | #endif |
419 | #endif |
420 | |
421 | #ifndef AL_EXT_BFORMAT |
422 | #define AL_EXT_BFORMAT 1 |
423 | /* Provides support for B-Format ambisonic buffers (first-order, FuMa scaling |
424 | * and layout). |
425 | * |
426 | * BFORMAT2D_8: Unsigned 8-bit, 3-channel non-periphonic (WXY). |
427 | * BFORMAT2D_16: Signed 16-bit, 3-channel non-periphonic (WXY). |
428 | * BFORMAT2D_FLOAT32: 32-bit float, 3-channel non-periphonic (WXY). |
429 | * BFORMAT3D_8: Unsigned 8-bit, 4-channel periphonic (WXYZ). |
430 | * BFORMAT3D_16: Signed 16-bit, 4-channel periphonic (WXYZ). |
431 | * BFORMAT3D_FLOAT32: 32-bit float, 4-channel periphonic (WXYZ). |
432 | */ |
433 | #define AL_FORMAT_BFORMAT2D_8 0x20021 |
434 | #define AL_FORMAT_BFORMAT2D_16 0x20022 |
435 | #define AL_FORMAT_BFORMAT2D_FLOAT32 0x20023 |
436 | #define AL_FORMAT_BFORMAT3D_8 0x20031 |
437 | #define AL_FORMAT_BFORMAT3D_16 0x20032 |
438 | #define AL_FORMAT_BFORMAT3D_FLOAT32 0x20033 |
439 | #endif |
440 | |
441 | #ifndef AL_EXT_MULAW_BFORMAT |
442 | #define AL_EXT_MULAW_BFORMAT 1 |
443 | #define AL_FORMAT_BFORMAT2D_MULAW 0x10031 |
444 | #define AL_FORMAT_BFORMAT3D_MULAW 0x10032 |
445 | #endif |
446 | |
447 | #ifndef ALC_SOFT_HRTF |
448 | #define ALC_SOFT_HRTF 1 |
449 | #define ALC_HRTF_SOFT 0x1992 |
450 | #define ALC_DONT_CARE_SOFT 0x0002 |
451 | #define ALC_HRTF_STATUS_SOFT 0x1993 |
452 | #define ALC_HRTF_DISABLED_SOFT 0x0000 |
453 | #define ALC_HRTF_ENABLED_SOFT 0x0001 |
454 | #define ALC_HRTF_DENIED_SOFT 0x0002 |
455 | #define ALC_HRTF_REQUIRED_SOFT 0x0003 |
456 | #define ALC_HRTF_HEADPHONES_DETECTED_SOFT 0x0004 |
457 | #define ALC_HRTF_UNSUPPORTED_FORMAT_SOFT 0x0005 |
458 | #define ALC_NUM_HRTF_SPECIFIERS_SOFT 0x1994 |
459 | #define ALC_HRTF_SPECIFIER_SOFT 0x1995 |
460 | #define ALC_HRTF_ID_SOFT 0x1996 |
461 | typedef const ALCchar* (ALC_APIENTRY*LPALCGETSTRINGISOFT)(ALCdevice *device, ALCenum paramName, ALCsizei index); |
462 | typedef ALCboolean (ALC_APIENTRY*LPALCRESETDEVICESOFT)(ALCdevice *device, const ALCint *attribs); |
463 | #ifdef AL_ALEXT_PROTOTYPES |
464 | ALC_API const ALCchar* ALC_APIENTRY alcGetStringiSOFT(ALCdevice *device, ALCenum paramName, ALCsizei index); |
465 | ALC_API ALCboolean ALC_APIENTRY alcResetDeviceSOFT(ALCdevice *device, const ALCint *attribs); |
466 | #endif |
467 | #endif |
468 | |
469 | #ifndef AL_SOFT_gain_clamp_ex |
470 | #define AL_SOFT_gain_clamp_ex 1 |
471 | #define AL_GAIN_LIMIT_SOFT 0x200E |
472 | #endif |
473 | |
474 | #ifndef AL_SOFT_source_resampler |
475 | #define AL_SOFT_source_resampler |
476 | #define AL_NUM_RESAMPLERS_SOFT 0x1210 |
477 | #define AL_DEFAULT_RESAMPLER_SOFT 0x1211 |
478 | #define AL_SOURCE_RESAMPLER_SOFT 0x1212 |
479 | #define AL_RESAMPLER_NAME_SOFT 0x1213 |
480 | typedef const ALchar* (AL_APIENTRY*LPALGETSTRINGISOFT)(ALenum pname, ALsizei index); |
481 | #ifdef AL_ALEXT_PROTOTYPES |
482 | AL_API const ALchar* AL_APIENTRY alGetStringiSOFT(ALenum pname, ALsizei index); |
483 | #endif |
484 | #endif |
485 | |
486 | #ifndef AL_SOFT_source_spatialize |
487 | #define AL_SOFT_source_spatialize |
488 | #define AL_SOURCE_SPATIALIZE_SOFT 0x1214 |
489 | #define AL_AUTO_SOFT 0x0002 |
490 | #endif |
491 | |
492 | #ifndef ALC_SOFT_output_limiter |
493 | #define ALC_SOFT_output_limiter |
494 | #define ALC_OUTPUT_LIMITER_SOFT 0x199A |
495 | #endif |
496 | |
497 | #ifndef ALC_SOFT_device_clock |
498 | #define ALC_SOFT_device_clock 1 |
499 | typedef int64_t ALCint64SOFT; |
500 | typedef uint64_t ALCuint64SOFT; |
501 | #define ALC_DEVICE_CLOCK_SOFT 0x1600 |
502 | #define ALC_DEVICE_LATENCY_SOFT 0x1601 |
503 | #define ALC_DEVICE_CLOCK_LATENCY_SOFT 0x1602 |
504 | #define AL_SAMPLE_OFFSET_CLOCK_SOFT 0x1202 |
505 | #define AL_SEC_OFFSET_CLOCK_SOFT 0x1203 |
506 | typedef void (ALC_APIENTRY*LPALCGETINTEGER64VSOFT)(ALCdevice *device, ALCenum pname, ALsizei size, ALCint64SOFT *values); |
507 | #ifdef AL_ALEXT_PROTOTYPES |
508 | ALC_API void ALC_APIENTRY alcGetInteger64vSOFT(ALCdevice *device, ALCenum pname, ALsizei size, ALCint64SOFT *values); |
509 | #endif |
510 | #endif |
511 | |
512 | #ifdef __cplusplus |
513 | } |
514 | #endif |
515 | |
516 | #endif |
517 | |