Remove some unnecessary casts
[openal-soft.git] / include / AL / al.h
bloba4e3ad5159f1f9aea270f8177be26ff176706786
1 #ifndef AL_AL_H
2 #define AL_AL_H
4 /* NOLINTBEGIN */
5 #ifdef __cplusplus
6 extern "C" {
8 #ifdef _MSVC_LANG
9 #define AL_CPLUSPLUS _MSVC_LANG
10 #else
11 #define AL_CPLUSPLUS __cplusplus
12 #endif
14 #ifndef AL_DISABLE_NOEXCEPT
15 #if AL_CPLUSPLUS >= 201103L
16 #define AL_API_NOEXCEPT noexcept
17 #else
18 #define AL_API_NOEXCEPT
19 #endif
20 #if AL_CPLUSPLUS >= 201703L
21 #define AL_API_NOEXCEPT17 noexcept
22 #else
23 #define AL_API_NOEXCEPT17
24 #endif
26 #else /* AL_DISABLE_NOEXCEPT */
28 #define AL_API_NOEXCEPT
29 #define AL_API_NOEXCEPT17
30 #endif
32 #undef AL_CPLUSPLUS
34 #else /* __cplusplus */
36 #define AL_API_NOEXCEPT
37 #define AL_API_NOEXCEPT17
38 #endif
40 #ifndef AL_API
41 #if defined(AL_LIBTYPE_STATIC)
42 #define AL_API
43 #elif defined(_WIN32)
44 #define AL_API __declspec(dllimport)
45 #else
46 #define AL_API extern
47 #endif
48 #endif
50 #ifdef _WIN32
51 #define AL_APIENTRY __cdecl
52 #else
53 #define AL_APIENTRY
54 #endif
57 /* Deprecated macros. */
58 #define OPENAL
59 #define ALAPI AL_API
60 #define ALAPIENTRY AL_APIENTRY
61 #define AL_INVALID (-1)
62 #define AL_ILLEGAL_ENUM AL_INVALID_ENUM
63 #define AL_ILLEGAL_COMMAND AL_INVALID_OPERATION
65 /* Supported AL versions. */
66 #define AL_VERSION_1_0
67 #define AL_VERSION_1_1
69 /** 8-bit boolean */
70 typedef char ALboolean;
72 /** character */
73 typedef char ALchar;
75 /** signed 8-bit integer */
76 typedef signed char ALbyte;
78 /** unsigned 8-bit integer */
79 typedef unsigned char ALubyte;
81 /** signed 16-bit integer */
82 typedef short ALshort;
84 /** unsigned 16-bit integer */
85 typedef unsigned short ALushort;
87 /** signed 32-bit integer */
88 typedef int ALint;
90 /** unsigned 32-bit integer */
91 typedef unsigned int ALuint;
93 /** non-negative 32-bit integer size */
94 typedef int ALsizei;
96 /** 32-bit enumeration value */
97 typedef int ALenum;
99 /** 32-bit IEEE-754 floating-point */
100 typedef float ALfloat;
102 /** 64-bit IEEE-754 floating-point */
103 typedef double ALdouble;
105 /** void type (opaque pointers only) */
106 typedef void ALvoid;
109 /* Enumeration values begin at column 50. Do not use tabs. */
111 /** No distance model or no buffer */
112 #define AL_NONE 0
114 /** Boolean False. */
115 #define AL_FALSE 0
117 /** Boolean True. */
118 #define AL_TRUE 1
122 * Relative source.
123 * Type: ALboolean
124 * Range: [AL_FALSE, AL_TRUE]
125 * Default: AL_FALSE
127 * Specifies if the source uses relative coordinates.
129 #define AL_SOURCE_RELATIVE 0x202
133 * Inner cone angle, in degrees.
134 * Type: ALint, ALfloat
135 * Range: [0 - 360]
136 * Default: 360
138 * The angle covered by the inner cone, the area within which the source will
139 * not be attenuated by direction.
141 #define AL_CONE_INNER_ANGLE 0x1001
144 * Outer cone angle, in degrees.
145 * Range: [0 - 360]
146 * Default: 360
148 * The angle covered by the outer cone, the area outside of which the source
149 * will be fully attenuated by direction.
151 #define AL_CONE_OUTER_ANGLE 0x1002
154 * Source pitch.
155 * Type: ALfloat
156 * Range: [0.5 - 2.0]
157 * Default: 1.0
159 * A multiplier for the sample rate of the source's buffer.
161 #define AL_PITCH 0x1003
164 * Source or listener position.
165 * Type: ALfloat[3], ALint[3]
166 * Default: {0, 0, 0}
168 * The source or listener location in three dimensional space.
170 * OpenAL uses a right handed coordinate system, like OpenGL, where with a
171 * default view, X points right (thumb), Y points up (index finger), and Z
172 * points towards the viewer/camera (middle finger).
174 * To change from or to a left handed coordinate system, negate the Z
175 * component.
177 #define AL_POSITION 0x1004
180 * Source direction.
181 * Type: ALfloat[3], ALint[3]
182 * Default: {0, 0, 0}
184 * Specifies the current direction in local space. A zero-length vector
185 * specifies an omni-directional source (cone is ignored).
187 * To change from or to a left handed coordinate system, negate the Z
188 * component.
190 #define AL_DIRECTION 0x1005
193 * Source or listener velocity.
194 * Type: ALfloat[3], ALint[3]
195 * Default: {0, 0, 0}
197 * Specifies the current velocity, relative to the position.
199 * To change from or to a left handed coordinate system, negate the Z
200 * component.
202 #define AL_VELOCITY 0x1006
205 * Source looping.
206 * Type: ALboolean
207 * Range: [AL_FALSE, AL_TRUE]
208 * Default: AL_FALSE
210 * Specifies whether source playback loops.
212 #define AL_LOOPING 0x1007
215 * Source buffer.
216 * Type: ALuint
217 * Range: any valid Buffer ID
218 * Default: AL_NONE
220 * Specifies the buffer to provide sound samples for a source.
222 #define AL_BUFFER 0x1009
225 * Source or listener gain.
226 * Type: ALfloat
227 * Range: [0.0 - ]
229 * For sources, an initial linear gain value (before attenuation is applied).
230 * For the listener, an output linear gain adjustment.
232 * A value of 1.0 means unattenuated. Each division by 2 equals an attenuation
233 * of about -6dB. Each multiplication by 2 equals an amplification of about
234 * +6dB.
236 #define AL_GAIN 0x100A
239 * Minimum source gain.
240 * Type: ALfloat
241 * Range: [0.0 - 1.0]
243 * The minimum gain allowed for a source, after distance and cone attenuation
244 * are applied (if applicable).
246 #define AL_MIN_GAIN 0x100D
249 * Maximum source gain.
250 * Type: ALfloat
251 * Range: [0.0 - 1.0]
253 * The maximum gain allowed for a source, after distance and cone attenuation
254 * are applied (if applicable).
256 #define AL_MAX_GAIN 0x100E
259 * Listener orientation.
260 * Type: ALfloat[6]
261 * Default: {0.0, 0.0, -1.0, 0.0, 1.0, 0.0}
263 * Effectively two three dimensional vectors. The first vector is the front (or
264 * "at") and the second is the top (or "up"). Both vectors are relative to the
265 * listener position.
267 * To change from or to a left handed coordinate system, negate the Z
268 * component of both vectors.
270 #define AL_ORIENTATION 0x100F
273 * Source state (query only).
274 * Type: ALenum
275 * Range: [AL_INITIAL, AL_PLAYING, AL_PAUSED, AL_STOPPED]
277 #define AL_SOURCE_STATE 0x1010
279 /* Source state values. */
280 #define AL_INITIAL 0x1011
281 #define AL_PLAYING 0x1012
282 #define AL_PAUSED 0x1013
283 #define AL_STOPPED 0x1014
286 * Source Buffer Queue size (query only).
287 * Type: ALint
289 * The number of buffers queued using alSourceQueueBuffers, minus the buffers
290 * removed with alSourceUnqueueBuffers.
292 #define AL_BUFFERS_QUEUED 0x1015
295 * Source Buffer Queue processed count (query only).
296 * Type: ALint
298 * The number of queued buffers that have been fully processed, and can be
299 * removed with alSourceUnqueueBuffers.
301 * Looping sources will never fully process buffers because they will be set to
302 * play again for when the source loops.
304 #define AL_BUFFERS_PROCESSED 0x1016
307 * Source reference distance.
308 * Type: ALfloat
309 * Range: [0.0 - ]
310 * Default: 1.0
312 * The distance in units that no distance attenuation occurs.
314 * At 0.0, no distance attenuation occurs with non-linear attenuation models.
316 #define AL_REFERENCE_DISTANCE 0x1020
319 * Source rolloff factor.
320 * Type: ALfloat
321 * Range: [0.0 - ]
322 * Default: 1.0
324 * Multiplier to exaggerate or diminish distance attenuation.
326 * At 0.0, no distance attenuation ever occurs.
328 #define AL_ROLLOFF_FACTOR 0x1021
331 * Outer cone gain.
332 * Type: ALfloat
333 * Range: [0.0 - 1.0]
334 * Default: 0.0
336 * The gain attenuation applied when the listener is outside of the source's
337 * outer cone angle.
339 #define AL_CONE_OUTER_GAIN 0x1022
342 * Source maximum distance.
343 * Type: ALfloat
344 * Range: [0.0 - ]
345 * Default: FLT_MAX
347 * The distance above which the source is not attenuated any further with a
348 * clamped distance model, or where attenuation reaches 0.0 gain for linear
349 * distance models with a default rolloff factor.
351 #define AL_MAX_DISTANCE 0x1023
353 /** Source buffer offset, in seconds */
354 #define AL_SEC_OFFSET 0x1024
355 /** Source buffer offset, in sample frames */
356 #define AL_SAMPLE_OFFSET 0x1025
357 /** Source buffer offset, in bytes */
358 #define AL_BYTE_OFFSET 0x1026
361 * Source type (query only).
362 * Type: ALenum
363 * Range: [AL_STATIC, AL_STREAMING, AL_UNDETERMINED]
365 * A Source is Static if a Buffer has been attached using AL_BUFFER.
367 * A Source is Streaming if one or more Buffers have been attached using
368 * alSourceQueueBuffers.
370 * A Source is Undetermined when it has the NULL buffer attached using
371 * AL_BUFFER.
373 #define AL_SOURCE_TYPE 0x1027
375 /* Source type values. */
376 #define AL_STATIC 0x1028
377 #define AL_STREAMING 0x1029
378 #define AL_UNDETERMINED 0x1030
380 /** Unsigned 8-bit mono buffer format. */
381 #define AL_FORMAT_MONO8 0x1100
382 /** Signed 16-bit mono buffer format. */
383 #define AL_FORMAT_MONO16 0x1101
384 /** Unsigned 8-bit stereo buffer format. */
385 #define AL_FORMAT_STEREO8 0x1102
386 /** Signed 16-bit stereo buffer format. */
387 #define AL_FORMAT_STEREO16 0x1103
389 /** Buffer frequency/sample rate (query only). */
390 #define AL_FREQUENCY 0x2001
391 /** Buffer bits per sample (query only). */
392 #define AL_BITS 0x2002
393 /** Buffer channel count (query only). */
394 #define AL_CHANNELS 0x2003
395 /** Buffer data size in bytes (query only). */
396 #define AL_SIZE 0x2004
398 /* Buffer state. Not for public use. */
399 #define AL_UNUSED 0x2010
400 #define AL_PENDING 0x2011
401 #define AL_PROCESSED 0x2012
404 /** No error. */
405 #define AL_NO_ERROR 0
407 /** Invalid name (ID) passed to an AL call. */
408 #define AL_INVALID_NAME 0xA001
410 /** Invalid enumeration passed to AL call. */
411 #define AL_INVALID_ENUM 0xA002
413 /** Invalid value passed to AL call. */
414 #define AL_INVALID_VALUE 0xA003
416 /** Illegal AL call. */
417 #define AL_INVALID_OPERATION 0xA004
419 /** Not enough memory to execute the AL call. */
420 #define AL_OUT_OF_MEMORY 0xA005
423 /** Context string: Vendor name. */
424 #define AL_VENDOR 0xB001
425 /** Context string: Version. */
426 #define AL_VERSION 0xB002
427 /** Context string: Renderer name. */
428 #define AL_RENDERER 0xB003
429 /** Context string: Space-separated extension list. */
430 #define AL_EXTENSIONS 0xB004
433 * Doppler scale.
434 * Type: ALfloat
435 * Range: [0.0 - ]
436 * Default: 1.0
438 * Scale for source and listener velocities.
440 #define AL_DOPPLER_FACTOR 0xC000
443 * Doppler velocity (deprecated).
445 * A multiplier applied to the Speed of Sound.
447 #define AL_DOPPLER_VELOCITY 0xC001
450 * Speed of Sound, in units per second.
451 * Type: ALfloat
452 * Range: [0.0001 - ]
453 * Default: 343.3
455 * The speed at which sound waves are assumed to travel, when calculating the
456 * doppler effect from source and listener velocities.
458 #define AL_SPEED_OF_SOUND 0xC003
461 * Distance attenuation model.
462 * Type: ALenum
463 * Range: [AL_NONE, AL_INVERSE_DISTANCE, AL_INVERSE_DISTANCE_CLAMPED,
464 * AL_LINEAR_DISTANCE, AL_LINEAR_DISTANCE_CLAMPED,
465 * AL_EXPONENT_DISTANCE, AL_EXPONENT_DISTANCE_CLAMPED]
466 * Default: AL_INVERSE_DISTANCE_CLAMPED
468 * The model by which sources attenuate with distance.
470 * None - No distance attenuation.
471 * Inverse - Doubling the distance halves the source gain.
472 * Linear - Linear gain scaling between the reference and max distances.
473 * Exponent - Exponential gain dropoff.
475 * Clamped variations work like the non-clamped counterparts, except the
476 * distance calculated is clamped between the reference and max distances.
478 #define AL_DISTANCE_MODEL 0xD000
480 /* Distance model values. */
481 #define AL_INVERSE_DISTANCE 0xD001
482 #define AL_INVERSE_DISTANCE_CLAMPED 0xD002
483 #define AL_LINEAR_DISTANCE 0xD003
484 #define AL_LINEAR_DISTANCE_CLAMPED 0xD004
485 #define AL_EXPONENT_DISTANCE 0xD005
486 #define AL_EXPONENT_DISTANCE_CLAMPED 0xD006
488 #ifndef AL_NO_PROTOTYPES
489 /* Renderer State management. */
490 AL_API void AL_APIENTRY alEnable(ALenum capability) AL_API_NOEXCEPT;
491 AL_API void AL_APIENTRY alDisable(ALenum capability) AL_API_NOEXCEPT;
492 AL_API ALboolean AL_APIENTRY alIsEnabled(ALenum capability) AL_API_NOEXCEPT;
494 /* Context state setting. */
495 AL_API void AL_APIENTRY alDopplerFactor(ALfloat value) AL_API_NOEXCEPT;
496 AL_API void AL_APIENTRY alDopplerVelocity(ALfloat value) AL_API_NOEXCEPT;
497 AL_API void AL_APIENTRY alSpeedOfSound(ALfloat value) AL_API_NOEXCEPT;
498 AL_API void AL_APIENTRY alDistanceModel(ALenum distanceModel) AL_API_NOEXCEPT;
500 /* Context state retrieval. */
501 AL_API const ALchar* AL_APIENTRY alGetString(ALenum param) AL_API_NOEXCEPT;
502 AL_API void AL_APIENTRY alGetBooleanv(ALenum param, ALboolean *values) AL_API_NOEXCEPT;
503 AL_API void AL_APIENTRY alGetIntegerv(ALenum param, ALint *values) AL_API_NOEXCEPT;
504 AL_API void AL_APIENTRY alGetFloatv(ALenum param, ALfloat *values) AL_API_NOEXCEPT;
505 AL_API void AL_APIENTRY alGetDoublev(ALenum param, ALdouble *values) AL_API_NOEXCEPT;
506 AL_API ALboolean AL_APIENTRY alGetBoolean(ALenum param) AL_API_NOEXCEPT;
507 AL_API ALint AL_APIENTRY alGetInteger(ALenum param) AL_API_NOEXCEPT;
508 AL_API ALfloat AL_APIENTRY alGetFloat(ALenum param) AL_API_NOEXCEPT;
509 AL_API ALdouble AL_APIENTRY alGetDouble(ALenum param) AL_API_NOEXCEPT;
512 * Obtain the first error generated in the AL context since the last call to
513 * this function.
515 AL_API ALenum AL_APIENTRY alGetError(void) AL_API_NOEXCEPT;
517 /** Query for the presence of an extension on the AL context. */
518 AL_API ALboolean AL_APIENTRY alIsExtensionPresent(const ALchar *extname) AL_API_NOEXCEPT;
520 * Retrieve the address of a function. The returned function may be context-
521 * specific.
523 AL_API void* AL_APIENTRY alGetProcAddress(const ALchar *fname) AL_API_NOEXCEPT;
525 * Retrieve the value of an enum. The returned value may be context-specific.
527 AL_API ALenum AL_APIENTRY alGetEnumValue(const ALchar *ename) AL_API_NOEXCEPT;
530 /* Set listener parameters. */
531 AL_API void AL_APIENTRY alListenerf(ALenum param, ALfloat value) AL_API_NOEXCEPT;
532 AL_API void AL_APIENTRY alListener3f(ALenum param, ALfloat value1, ALfloat value2, ALfloat value3) AL_API_NOEXCEPT;
533 AL_API void AL_APIENTRY alListenerfv(ALenum param, const ALfloat *values) AL_API_NOEXCEPT;
534 AL_API void AL_APIENTRY alListeneri(ALenum param, ALint value) AL_API_NOEXCEPT;
535 AL_API void AL_APIENTRY alListener3i(ALenum param, ALint value1, ALint value2, ALint value3) AL_API_NOEXCEPT;
536 AL_API void AL_APIENTRY alListeneriv(ALenum param, const ALint *values) AL_API_NOEXCEPT;
538 /* Get listener parameters. */
539 AL_API void AL_APIENTRY alGetListenerf(ALenum param, ALfloat *value) AL_API_NOEXCEPT;
540 AL_API void AL_APIENTRY alGetListener3f(ALenum param, ALfloat *value1, ALfloat *value2, ALfloat *value3) AL_API_NOEXCEPT;
541 AL_API void AL_APIENTRY alGetListenerfv(ALenum param, ALfloat *values) AL_API_NOEXCEPT;
542 AL_API void AL_APIENTRY alGetListeneri(ALenum param, ALint *value) AL_API_NOEXCEPT;
543 AL_API void AL_APIENTRY alGetListener3i(ALenum param, ALint *value1, ALint *value2, ALint *value3) AL_API_NOEXCEPT;
544 AL_API void AL_APIENTRY alGetListeneriv(ALenum param, ALint *values) AL_API_NOEXCEPT;
547 /** Create source objects. */
548 AL_API void AL_APIENTRY alGenSources(ALsizei n, ALuint *sources) AL_API_NOEXCEPT;
549 /** Delete source objects. */
550 AL_API void AL_APIENTRY alDeleteSources(ALsizei n, const ALuint *sources) AL_API_NOEXCEPT;
551 /** Verify an ID is for a valid source. */
552 AL_API ALboolean AL_APIENTRY alIsSource(ALuint source) AL_API_NOEXCEPT;
554 /* Set source parameters. */
555 AL_API void AL_APIENTRY alSourcef(ALuint source, ALenum param, ALfloat value) AL_API_NOEXCEPT;
556 AL_API void AL_APIENTRY alSource3f(ALuint source, ALenum param, ALfloat value1, ALfloat value2, ALfloat value3) AL_API_NOEXCEPT;
557 AL_API void AL_APIENTRY alSourcefv(ALuint source, ALenum param, const ALfloat *values) AL_API_NOEXCEPT;
558 AL_API void AL_APIENTRY alSourcei(ALuint source, ALenum param, ALint value) AL_API_NOEXCEPT;
559 AL_API void AL_APIENTRY alSource3i(ALuint source, ALenum param, ALint value1, ALint value2, ALint value3) AL_API_NOEXCEPT;
560 AL_API void AL_APIENTRY alSourceiv(ALuint source, ALenum param, const ALint *values) AL_API_NOEXCEPT;
562 /* Get source parameters. */
563 AL_API void AL_APIENTRY alGetSourcef(ALuint source, ALenum param, ALfloat *value) AL_API_NOEXCEPT;
564 AL_API void AL_APIENTRY alGetSource3f(ALuint source, ALenum param, ALfloat *value1, ALfloat *value2, ALfloat *value3) AL_API_NOEXCEPT;
565 AL_API void AL_APIENTRY alGetSourcefv(ALuint source, ALenum param, ALfloat *values) AL_API_NOEXCEPT;
566 AL_API void AL_APIENTRY alGetSourcei(ALuint source, ALenum param, ALint *value) AL_API_NOEXCEPT;
567 AL_API void AL_APIENTRY alGetSource3i(ALuint source, ALenum param, ALint *value1, ALint *value2, ALint *value3) AL_API_NOEXCEPT;
568 AL_API void AL_APIENTRY alGetSourceiv(ALuint source, ALenum param, ALint *values) AL_API_NOEXCEPT;
571 /** Play, restart, or resume a source, setting its state to AL_PLAYING. */
572 AL_API void AL_APIENTRY alSourcePlay(ALuint source) AL_API_NOEXCEPT;
573 /** Stop a source, setting its state to AL_STOPPED if playing or paused. */
574 AL_API void AL_APIENTRY alSourceStop(ALuint source) AL_API_NOEXCEPT;
575 /** Rewind a source, setting its state to AL_INITIAL. */
576 AL_API void AL_APIENTRY alSourceRewind(ALuint source) AL_API_NOEXCEPT;
577 /** Pause a source, setting its state to AL_PAUSED if playing. */
578 AL_API void AL_APIENTRY alSourcePause(ALuint source) AL_API_NOEXCEPT;
580 /** Play, restart, or resume a list of sources atomically. */
581 AL_API void AL_APIENTRY alSourcePlayv(ALsizei n, const ALuint *sources) AL_API_NOEXCEPT;
582 /** Stop a list of sources atomically. */
583 AL_API void AL_APIENTRY alSourceStopv(ALsizei n, const ALuint *sources) AL_API_NOEXCEPT;
584 /** Rewind a list of sources atomically. */
585 AL_API void AL_APIENTRY alSourceRewindv(ALsizei n, const ALuint *sources) AL_API_NOEXCEPT;
586 /** Pause a list of sources atomically. */
587 AL_API void AL_APIENTRY alSourcePausev(ALsizei n, const ALuint *sources) AL_API_NOEXCEPT;
589 /** Queue buffers onto a source */
590 AL_API void AL_APIENTRY alSourceQueueBuffers(ALuint source, ALsizei nb, const ALuint *buffers) AL_API_NOEXCEPT;
591 /** Unqueue processed buffers from a source */
592 AL_API void AL_APIENTRY alSourceUnqueueBuffers(ALuint source, ALsizei nb, ALuint *buffers) AL_API_NOEXCEPT;
595 /** Create buffer objects */
596 AL_API void AL_APIENTRY alGenBuffers(ALsizei n, ALuint *buffers) AL_API_NOEXCEPT;
597 /** Delete buffer objects */
598 AL_API void AL_APIENTRY alDeleteBuffers(ALsizei n, const ALuint *buffers) AL_API_NOEXCEPT;
599 /** Verify an ID is a valid buffer (including the NULL buffer) */
600 AL_API ALboolean AL_APIENTRY alIsBuffer(ALuint buffer) AL_API_NOEXCEPT;
603 * Copies data into the buffer, interpreting it using the specified format and
604 * samplerate.
606 AL_API void AL_APIENTRY alBufferData(ALuint buffer, ALenum format, const ALvoid *data, ALsizei size, ALsizei samplerate) AL_API_NOEXCEPT;
608 /* Set buffer parameters. */
609 AL_API void AL_APIENTRY alBufferf(ALuint buffer, ALenum param, ALfloat value) AL_API_NOEXCEPT;
610 AL_API void AL_APIENTRY alBuffer3f(ALuint buffer, ALenum param, ALfloat value1, ALfloat value2, ALfloat value3) AL_API_NOEXCEPT;
611 AL_API void AL_APIENTRY alBufferfv(ALuint buffer, ALenum param, const ALfloat *values) AL_API_NOEXCEPT;
612 AL_API void AL_APIENTRY alBufferi(ALuint buffer, ALenum param, ALint value) AL_API_NOEXCEPT;
613 AL_API void AL_APIENTRY alBuffer3i(ALuint buffer, ALenum param, ALint value1, ALint value2, ALint value3) AL_API_NOEXCEPT;
614 AL_API void AL_APIENTRY alBufferiv(ALuint buffer, ALenum param, const ALint *values) AL_API_NOEXCEPT;
616 /* Get buffer parameters. */
617 AL_API void AL_APIENTRY alGetBufferf(ALuint buffer, ALenum param, ALfloat *value) AL_API_NOEXCEPT;
618 AL_API void AL_APIENTRY alGetBuffer3f(ALuint buffer, ALenum param, ALfloat *value1, ALfloat *value2, ALfloat *value3) AL_API_NOEXCEPT;
619 AL_API void AL_APIENTRY alGetBufferfv(ALuint buffer, ALenum param, ALfloat *values) AL_API_NOEXCEPT;
620 AL_API void AL_APIENTRY alGetBufferi(ALuint buffer, ALenum param, ALint *value) AL_API_NOEXCEPT;
621 AL_API void AL_APIENTRY alGetBuffer3i(ALuint buffer, ALenum param, ALint *value1, ALint *value2, ALint *value3) AL_API_NOEXCEPT;
622 AL_API void AL_APIENTRY alGetBufferiv(ALuint buffer, ALenum param, ALint *values) AL_API_NOEXCEPT;
623 #endif /* AL_NO_PROTOTYPES */
625 /* Pointer-to-function types, useful for storing dynamically loaded AL entry
626 * points.
628 typedef void (AL_APIENTRY *LPALENABLE)(ALenum capability) AL_API_NOEXCEPT17;
629 typedef void (AL_APIENTRY *LPALDISABLE)(ALenum capability) AL_API_NOEXCEPT17;
630 typedef ALboolean (AL_APIENTRY *LPALISENABLED)(ALenum capability) AL_API_NOEXCEPT17;
631 typedef const ALchar* (AL_APIENTRY *LPALGETSTRING)(ALenum param) AL_API_NOEXCEPT17;
632 typedef void (AL_APIENTRY *LPALGETBOOLEANV)(ALenum param, ALboolean *values) AL_API_NOEXCEPT17;
633 typedef void (AL_APIENTRY *LPALGETINTEGERV)(ALenum param, ALint *values) AL_API_NOEXCEPT17;
634 typedef void (AL_APIENTRY *LPALGETFLOATV)(ALenum param, ALfloat *values) AL_API_NOEXCEPT17;
635 typedef void (AL_APIENTRY *LPALGETDOUBLEV)(ALenum param, ALdouble *values) AL_API_NOEXCEPT17;
636 typedef ALboolean (AL_APIENTRY *LPALGETBOOLEAN)(ALenum param) AL_API_NOEXCEPT17;
637 typedef ALint (AL_APIENTRY *LPALGETINTEGER)(ALenum param) AL_API_NOEXCEPT17;
638 typedef ALfloat (AL_APIENTRY *LPALGETFLOAT)(ALenum param) AL_API_NOEXCEPT17;
639 typedef ALdouble (AL_APIENTRY *LPALGETDOUBLE)(ALenum param) AL_API_NOEXCEPT17;
640 typedef ALenum (AL_APIENTRY *LPALGETERROR)(void) AL_API_NOEXCEPT17;
641 typedef ALboolean (AL_APIENTRY *LPALISEXTENSIONPRESENT)(const ALchar *extname) AL_API_NOEXCEPT17;
642 typedef void* (AL_APIENTRY *LPALGETPROCADDRESS)(const ALchar *fname) AL_API_NOEXCEPT17;
643 typedef ALenum (AL_APIENTRY *LPALGETENUMVALUE)(const ALchar *ename) AL_API_NOEXCEPT17;
644 typedef void (AL_APIENTRY *LPALLISTENERF)(ALenum param, ALfloat value) AL_API_NOEXCEPT17;
645 typedef void (AL_APIENTRY *LPALLISTENER3F)(ALenum param, ALfloat value1, ALfloat value2, ALfloat value3) AL_API_NOEXCEPT17;
646 typedef void (AL_APIENTRY *LPALLISTENERFV)(ALenum param, const ALfloat *values) AL_API_NOEXCEPT17;
647 typedef void (AL_APIENTRY *LPALLISTENERI)(ALenum param, ALint value) AL_API_NOEXCEPT17;
648 typedef void (AL_APIENTRY *LPALLISTENER3I)(ALenum param, ALint value1, ALint value2, ALint value3) AL_API_NOEXCEPT17;
649 typedef void (AL_APIENTRY *LPALLISTENERIV)(ALenum param, const ALint *values) AL_API_NOEXCEPT17;
650 typedef void (AL_APIENTRY *LPALGETLISTENERF)(ALenum param, ALfloat *value) AL_API_NOEXCEPT17;
651 typedef void (AL_APIENTRY *LPALGETLISTENER3F)(ALenum param, ALfloat *value1, ALfloat *value2, ALfloat *value3) AL_API_NOEXCEPT17;
652 typedef void (AL_APIENTRY *LPALGETLISTENERFV)(ALenum param, ALfloat *values) AL_API_NOEXCEPT17;
653 typedef void (AL_APIENTRY *LPALGETLISTENERI)(ALenum param, ALint *value) AL_API_NOEXCEPT17;
654 typedef void (AL_APIENTRY *LPALGETLISTENER3I)(ALenum param, ALint *value1, ALint *value2, ALint *value3) AL_API_NOEXCEPT17;
655 typedef void (AL_APIENTRY *LPALGETLISTENERIV)(ALenum param, ALint *values) AL_API_NOEXCEPT17;
656 typedef void (AL_APIENTRY *LPALGENSOURCES)(ALsizei n, ALuint *sources) AL_API_NOEXCEPT17;
657 typedef void (AL_APIENTRY *LPALDELETESOURCES)(ALsizei n, const ALuint *sources) AL_API_NOEXCEPT17;
658 typedef ALboolean (AL_APIENTRY *LPALISSOURCE)(ALuint source) AL_API_NOEXCEPT17;
659 typedef void (AL_APIENTRY *LPALSOURCEF)(ALuint source, ALenum param, ALfloat value) AL_API_NOEXCEPT17;
660 typedef void (AL_APIENTRY *LPALSOURCE3F)(ALuint source, ALenum param, ALfloat value1, ALfloat value2, ALfloat value3) AL_API_NOEXCEPT17;
661 typedef void (AL_APIENTRY *LPALSOURCEFV)(ALuint source, ALenum param, const ALfloat *values) AL_API_NOEXCEPT17;
662 typedef void (AL_APIENTRY *LPALSOURCEI)(ALuint source, ALenum param, ALint value) AL_API_NOEXCEPT17;
663 typedef void (AL_APIENTRY *LPALSOURCE3I)(ALuint source, ALenum param, ALint value1, ALint value2, ALint value3) AL_API_NOEXCEPT17;
664 typedef void (AL_APIENTRY *LPALSOURCEIV)(ALuint source, ALenum param, const ALint *values) AL_API_NOEXCEPT17;
665 typedef void (AL_APIENTRY *LPALGETSOURCEF)(ALuint source, ALenum param, ALfloat *value) AL_API_NOEXCEPT17;
666 typedef void (AL_APIENTRY *LPALGETSOURCE3F)(ALuint source, ALenum param, ALfloat *value1, ALfloat *value2, ALfloat *value3) AL_API_NOEXCEPT17;
667 typedef void (AL_APIENTRY *LPALGETSOURCEFV)(ALuint source, ALenum param, ALfloat *values) AL_API_NOEXCEPT17;
668 typedef void (AL_APIENTRY *LPALGETSOURCEI)(ALuint source, ALenum param, ALint *value) AL_API_NOEXCEPT17;
669 typedef void (AL_APIENTRY *LPALGETSOURCE3I)(ALuint source, ALenum param, ALint *value1, ALint *value2, ALint *value3) AL_API_NOEXCEPT17;
670 typedef void (AL_APIENTRY *LPALGETSOURCEIV)(ALuint source, ALenum param, ALint *values) AL_API_NOEXCEPT17;
671 typedef void (AL_APIENTRY *LPALSOURCEPLAYV)(ALsizei n, const ALuint *sources) AL_API_NOEXCEPT17;
672 typedef void (AL_APIENTRY *LPALSOURCESTOPV)(ALsizei n, const ALuint *sources) AL_API_NOEXCEPT17;
673 typedef void (AL_APIENTRY *LPALSOURCEREWINDV)(ALsizei n, const ALuint *sources) AL_API_NOEXCEPT17;
674 typedef void (AL_APIENTRY *LPALSOURCEPAUSEV)(ALsizei n, const ALuint *sources) AL_API_NOEXCEPT17;
675 typedef void (AL_APIENTRY *LPALSOURCEPLAY)(ALuint source) AL_API_NOEXCEPT17;
676 typedef void (AL_APIENTRY *LPALSOURCESTOP)(ALuint source) AL_API_NOEXCEPT17;
677 typedef void (AL_APIENTRY *LPALSOURCEREWIND)(ALuint source) AL_API_NOEXCEPT17;
678 typedef void (AL_APIENTRY *LPALSOURCEPAUSE)(ALuint source) AL_API_NOEXCEPT17;
679 typedef void (AL_APIENTRY *LPALSOURCEQUEUEBUFFERS)(ALuint source, ALsizei nb, const ALuint *buffers) AL_API_NOEXCEPT17;
680 typedef void (AL_APIENTRY *LPALSOURCEUNQUEUEBUFFERS)(ALuint source, ALsizei nb, ALuint *buffers) AL_API_NOEXCEPT17;
681 typedef void (AL_APIENTRY *LPALGENBUFFERS)(ALsizei n, ALuint *buffers) AL_API_NOEXCEPT17;
682 typedef void (AL_APIENTRY *LPALDELETEBUFFERS)(ALsizei n, const ALuint *buffers) AL_API_NOEXCEPT17;
683 typedef ALboolean (AL_APIENTRY *LPALISBUFFER)(ALuint buffer) AL_API_NOEXCEPT17;
684 typedef void (AL_APIENTRY *LPALBUFFERDATA)(ALuint buffer, ALenum format, const ALvoid *data, ALsizei size, ALsizei samplerate) AL_API_NOEXCEPT17;
685 typedef void (AL_APIENTRY *LPALBUFFERF)(ALuint buffer, ALenum param, ALfloat value) AL_API_NOEXCEPT17;
686 typedef void (AL_APIENTRY *LPALBUFFER3F)(ALuint buffer, ALenum param, ALfloat value1, ALfloat value2, ALfloat value3) AL_API_NOEXCEPT17;
687 typedef void (AL_APIENTRY *LPALBUFFERFV)(ALuint buffer, ALenum param, const ALfloat *values) AL_API_NOEXCEPT17;
688 typedef void (AL_APIENTRY *LPALBUFFERI)(ALuint buffer, ALenum param, ALint value) AL_API_NOEXCEPT17;
689 typedef void (AL_APIENTRY *LPALBUFFER3I)(ALuint buffer, ALenum param, ALint value1, ALint value2, ALint value3) AL_API_NOEXCEPT17;
690 typedef void (AL_APIENTRY *LPALBUFFERIV)(ALuint buffer, ALenum param, const ALint *values) AL_API_NOEXCEPT17;
691 typedef void (AL_APIENTRY *LPALGETBUFFERF)(ALuint buffer, ALenum param, ALfloat *value) AL_API_NOEXCEPT17;
692 typedef void (AL_APIENTRY *LPALGETBUFFER3F)(ALuint buffer, ALenum param, ALfloat *value1, ALfloat *value2, ALfloat *value3) AL_API_NOEXCEPT17;
693 typedef void (AL_APIENTRY *LPALGETBUFFERFV)(ALuint buffer, ALenum param, ALfloat *values) AL_API_NOEXCEPT17;
694 typedef void (AL_APIENTRY *LPALGETBUFFERI)(ALuint buffer, ALenum param, ALint *value) AL_API_NOEXCEPT17;
695 typedef void (AL_APIENTRY *LPALGETBUFFER3I)(ALuint buffer, ALenum param, ALint *value1, ALint *value2, ALint *value3) AL_API_NOEXCEPT17;
696 typedef void (AL_APIENTRY *LPALGETBUFFERIV)(ALuint buffer, ALenum param, ALint *values) AL_API_NOEXCEPT17;
697 typedef void (AL_APIENTRY *LPALDOPPLERFACTOR)(ALfloat value) AL_API_NOEXCEPT17;
698 typedef void (AL_APIENTRY *LPALDOPPLERVELOCITY)(ALfloat value) AL_API_NOEXCEPT17;
699 typedef void (AL_APIENTRY *LPALSPEEDOFSOUND)(ALfloat value) AL_API_NOEXCEPT17;
700 typedef void (AL_APIENTRY *LPALDISTANCEMODEL)(ALenum distanceModel) AL_API_NOEXCEPT17;
702 #ifdef __cplusplus
703 } /* extern "C" */
704 #endif
705 /* NOLINTEND */
707 #endif /* AL_AL_H */