| 
								
							 | 
							
								#ifndef AL_AL_H
							 | 
						
						
						
							| 
								
							 | 
							
								#define AL_AL_H
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								#if defined(__cplusplus)
							 | 
						
						
						
							| 
								
							 | 
							
								extern "C" {
							 | 
						
						
						
							| 
								
							 | 
							
								#endif
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								#ifndef AL_API
							 | 
						
						
						
							| 
								
							 | 
							
								 #if defined(AL_LIBTYPE_STATIC)
							 | 
						
						
						
							| 
								
							 | 
							
								  #define AL_API
							 | 
						
						
						
							| 
								
							 | 
							
								 #elif defined(_WIN32)
							 | 
						
						
						
							| 
								
							 | 
							
								  #define AL_API __declspec(dllimport)
							 | 
						
						
						
							| 
								
							 | 
							
								 #else
							 | 
						
						
						
							| 
								
							 | 
							
								  #define AL_API extern
							 | 
						
						
						
							| 
								
							 | 
							
								 #endif
							 | 
						
						
						
							| 
								
							 | 
							
								#endif
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								#if defined(_WIN32)
							 | 
						
						
						
							| 
								
							 | 
							
								 #define AL_APIENTRY __cdecl
							 | 
						
						
						
							| 
								
							 | 
							
								#else
							 | 
						
						
						
							| 
								
							 | 
							
								 #define AL_APIENTRY
							 | 
						
						
						
							| 
								
							 | 
							
								#endif
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								/** Deprecated macro. */
							 | 
						
						
						
							| 
								
							 | 
							
								#define OPENAL
							 | 
						
						
						
							| 
								
							 | 
							
								#define ALAPI                                    AL_API
							 | 
						
						
						
							| 
								
							 | 
							
								#define ALAPIENTRY                               AL_APIENTRY
							 | 
						
						
						
							| 
								
							 | 
							
								#define AL_INVALID                               (-1)
							 | 
						
						
						
							| 
								
							 | 
							
								#define AL_ILLEGAL_ENUM                          AL_INVALID_ENUM
							 | 
						
						
						
							| 
								
							 | 
							
								#define AL_ILLEGAL_COMMAND                       AL_INVALID_OPERATION
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								/** Supported AL version. */
							 | 
						
						
						
							| 
								
							 | 
							
								#define AL_VERSION_1_0
							 | 
						
						
						
							| 
								
							 | 
							
								#define AL_VERSION_1_1
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								/** 8-bit boolean */
							 | 
						
						
						
							| 
								
							 | 
							
								typedef char ALboolean;
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								/** character */
							 | 
						
						
						
							| 
								
							 | 
							
								typedef char ALchar;
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								/** signed 8-bit 2's complement integer */
							 | 
						
						
						
							| 
								
							 | 
							
								typedef signed char ALbyte;
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								/** unsigned 8-bit integer */
							 | 
						
						
						
							| 
								
							 | 
							
								typedef unsigned char ALubyte;
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								/** signed 16-bit 2's complement integer */
							 | 
						
						
						
							| 
								
							 | 
							
								typedef short ALshort;
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								/** unsigned 16-bit integer */
							 | 
						
						
						
							| 
								
							 | 
							
								typedef unsigned short ALushort;
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								/** signed 32-bit 2's complement integer */
							 | 
						
						
						
							| 
								
							 | 
							
								typedef int ALint;
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								/** unsigned 32-bit integer */
							 | 
						
						
						
							| 
								
							 | 
							
								typedef unsigned int ALuint;
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								/** non-negative 32-bit binary integer size */
							 | 
						
						
						
							| 
								
							 | 
							
								typedef int ALsizei;
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								/** enumerated 32-bit value */
							 | 
						
						
						
							| 
								
							 | 
							
								typedef int ALenum;
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								/** 32-bit IEEE754 floating-point */
							 | 
						
						
						
							| 
								
							 | 
							
								typedef float ALfloat;
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								/** 64-bit IEEE754 floating-point */
							 | 
						
						
						
							| 
								
							 | 
							
								typedef double ALdouble;
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								/** void type (for opaque pointers only) */
							 | 
						
						
						
							| 
								
							 | 
							
								typedef void ALvoid;
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								/* Enumerant values begin at column 50. No tabs. */
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								/** "no distance model" or "no buffer" */
							 | 
						
						
						
							| 
								
							 | 
							
								#define AL_NONE                                  0
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								/** Boolean False. */
							 | 
						
						
						
							| 
								
							 | 
							
								#define AL_FALSE                                 0
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								/** Boolean True. */
							 | 
						
						
						
							| 
								
							 | 
							
								#define AL_TRUE                                  1
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								/**
							 | 
						
						
						
							| 
								
							 | 
							
								 * Relative source.
							 | 
						
						
						
							| 
								
							 | 
							
								 * Type:    ALboolean
							 | 
						
						
						
							| 
								
							 | 
							
								 * Range:   [AL_TRUE, AL_FALSE]
							 | 
						
						
						
							| 
								
							 | 
							
								 * Default: AL_FALSE
							 | 
						
						
						
							| 
								
							 | 
							
								 *
							 | 
						
						
						
							| 
								
							 | 
							
								 * Specifies if the Source has relative coordinates.
							 | 
						
						
						
							| 
								
							 | 
							
								 */
							 | 
						
						
						
							| 
								
							 | 
							
								#define AL_SOURCE_RELATIVE                       0x202
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								/**
							 | 
						
						
						
							| 
								
							 | 
							
								 * Inner cone angle, in degrees.
							 | 
						
						
						
							| 
								
							 | 
							
								 * Type:    ALint, ALfloat
							 | 
						
						
						
							| 
								
							 | 
							
								 * Range:   [0 - 360]
							 | 
						
						
						
							| 
								
							 | 
							
								 * Default: 360
							 | 
						
						
						
							| 
								
							 | 
							
								 *
							 | 
						
						
						
							| 
								
							 | 
							
								 * The angle covered by the inner cone, where the source will not attenuate.
							 | 
						
						
						
							| 
								
							 | 
							
								 */
							 | 
						
						
						
							| 
								
							 | 
							
								#define AL_CONE_INNER_ANGLE                      0x1001
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								/**
							 | 
						
						
						
							| 
								
							 | 
							
								 * Outer cone angle, in degrees.
							 | 
						
						
						
							| 
								
							 | 
							
								 * Range:   [0 - 360]
							 | 
						
						
						
							| 
								
							 | 
							
								 * Default: 360
							 | 
						
						
						
							| 
								
							 | 
							
								 *
							 | 
						
						
						
							| 
								
							 | 
							
								 * The angle covered by the outer cone, where the source will be fully
							 | 
						
						
						
							| 
								
							 | 
							
								 * attenuated.
							 | 
						
						
						
							| 
								
							 | 
							
								 */
							 | 
						
						
						
							| 
								
							 | 
							
								#define AL_CONE_OUTER_ANGLE                      0x1002
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								/**
							 | 
						
						
						
							| 
								
							 | 
							
								 * Source pitch.
							 | 
						
						
						
							| 
								
							 | 
							
								 * Type:    ALfloat
							 | 
						
						
						
							| 
								
							 | 
							
								 * Range:   [0.5 - 2.0]
							 | 
						
						
						
							| 
								
							 | 
							
								 * Default: 1.0
							 | 
						
						
						
							| 
								
							 | 
							
								 *
							 | 
						
						
						
							| 
								
							 | 
							
								 * A multiplier for the frequency (sample rate) of the source's buffer.
							 | 
						
						
						
							| 
								
							 | 
							
								 */
							 | 
						
						
						
							| 
								
							 | 
							
								#define AL_PITCH                                 0x1003
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								/**
							 | 
						
						
						
							| 
								
							 | 
							
								 * Source or listener position.
							 | 
						
						
						
							| 
								
							 | 
							
								 * Type:    ALfloat[3], ALint[3]
							 | 
						
						
						
							| 
								
							 | 
							
								 * Default: {0, 0, 0}
							 | 
						
						
						
							| 
								
							 | 
							
								 *
							 | 
						
						
						
							| 
								
							 | 
							
								 * The source or listener location in three dimensional space.
							 | 
						
						
						
							| 
								
							 | 
							
								 *
							 | 
						
						
						
							| 
								
							 | 
							
								 * OpenAL, like OpenGL, uses a right handed coordinate system, where in a
							 | 
						
						
						
							| 
								
							 | 
							
								 * frontal default view X (thumb) points right, Y points up (index finger), and
							 | 
						
						
						
							| 
								
							 | 
							
								 * Z points towards the viewer/camera (middle finger).
							 | 
						
						
						
							| 
								
							 | 
							
								 *
							 | 
						
						
						
							| 
								
							 | 
							
								 * To switch from a left handed coordinate system, flip the sign on the Z
							 | 
						
						
						
							| 
								
							 | 
							
								 * coordinate.
							 | 
						
						
						
							| 
								
							 | 
							
								 */
							 | 
						
						
						
							| 
								
							 | 
							
								#define AL_POSITION                              0x1004
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								/**
							 | 
						
						
						
							| 
								
							 | 
							
								 * Source direction.
							 | 
						
						
						
							| 
								
							 | 
							
								 * Type:    ALfloat[3], ALint[3]
							 | 
						
						
						
							| 
								
							 | 
							
								 * Default: {0, 0, 0}
							 | 
						
						
						
							| 
								
							 | 
							
								 *
							 | 
						
						
						
							| 
								
							 | 
							
								 * Specifies the current direction in local space.
							 | 
						
						
						
							| 
								
							 | 
							
								 * A zero-length vector specifies an omni-directional source (cone is ignored).
							 | 
						
						
						
							| 
								
							 | 
							
								 */
							 | 
						
						
						
							| 
								
							 | 
							
								#define AL_DIRECTION                             0x1005
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								/**
							 | 
						
						
						
							| 
								
							 | 
							
								 * Source or listener velocity.
							 | 
						
						
						
							| 
								
							 | 
							
								 * Type:    ALfloat[3], ALint[3]
							 | 
						
						
						
							| 
								
							 | 
							
								 * Default: {0, 0, 0}
							 | 
						
						
						
							| 
								
							 | 
							
								 *
							 | 
						
						
						
							| 
								
							 | 
							
								 * Specifies the current velocity in local space.
							 | 
						
						
						
							| 
								
							 | 
							
								 */
							 | 
						
						
						
							| 
								
							 | 
							
								#define AL_VELOCITY                              0x1006
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								/**
							 | 
						
						
						
							| 
								
							 | 
							
								 * Source looping.
							 | 
						
						
						
							| 
								
							 | 
							
								 * Type:    ALboolean
							 | 
						
						
						
							| 
								
							 | 
							
								 * Range:   [AL_TRUE, AL_FALSE]
							 | 
						
						
						
							| 
								
							 | 
							
								 * Default: AL_FALSE
							 | 
						
						
						
							| 
								
							 | 
							
								 *
							 | 
						
						
						
							| 
								
							 | 
							
								 * Specifies whether source is looping.
							 | 
						
						
						
							| 
								
							 | 
							
								 */
							 | 
						
						
						
							| 
								
							 | 
							
								#define AL_LOOPING                               0x1007
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								/**
							 | 
						
						
						
							| 
								
							 | 
							
								 * Source buffer.
							 | 
						
						
						
							| 
								
							 | 
							
								 * Type:  ALuint
							 | 
						
						
						
							| 
								
							 | 
							
								 * Range: any valid Buffer.
							 | 
						
						
						
							| 
								
							 | 
							
								 *
							 | 
						
						
						
							| 
								
							 | 
							
								 * Specifies the buffer to provide sound samples.
							 | 
						
						
						
							| 
								
							 | 
							
								 */
							 | 
						
						
						
							| 
								
							 | 
							
								#define AL_BUFFER                                0x1009
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								/**
							 | 
						
						
						
							| 
								
							 | 
							
								 * Source or listener gain.
							 | 
						
						
						
							| 
								
							 | 
							
								 * Type:  ALfloat
							 | 
						
						
						
							| 
								
							 | 
							
								 * Range: [0.0 - ]
							 | 
						
						
						
							| 
								
							 | 
							
								 *
							 | 
						
						
						
							| 
								
							 | 
							
								 * A value of 1.0 means unattenuated. Each division by 2 equals an attenuation
							 | 
						
						
						
							| 
								
							 | 
							
								 * of about -6dB. Each multiplicaton by 2 equals an amplification of about
							 | 
						
						
						
							| 
								
							 | 
							
								 * +6dB.
							 | 
						
						
						
							| 
								
							 | 
							
								 *
							 | 
						
						
						
							| 
								
							 | 
							
								 * A value of 0.0 is meaningless with respect to a logarithmic scale; it is
							 | 
						
						
						
							| 
								
							 | 
							
								 * silent.
							 | 
						
						
						
							| 
								
							 | 
							
								 */
							 | 
						
						
						
							| 
								
							 | 
							
								#define AL_GAIN                                  0x100A
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								/**
							 | 
						
						
						
							| 
								
							 | 
							
								 * Minimum source gain.
							 | 
						
						
						
							| 
								
							 | 
							
								 * Type:  ALfloat
							 | 
						
						
						
							| 
								
							 | 
							
								 * Range: [0.0 - 1.0]
							 | 
						
						
						
							| 
								
							 | 
							
								 *
							 | 
						
						
						
							| 
								
							 | 
							
								 * The minimum gain allowed for a source, after distance and cone attenation is
							 | 
						
						
						
							| 
								
							 | 
							
								 * applied (if applicable).
							 | 
						
						
						
							| 
								
							 | 
							
								 */
							 | 
						
						
						
							| 
								
							 | 
							
								#define AL_MIN_GAIN                              0x100D
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								/**
							 | 
						
						
						
							| 
								
							 | 
							
								 * Maximum source gain.
							 | 
						
						
						
							| 
								
							 | 
							
								 * Type:  ALfloat
							 | 
						
						
						
							| 
								
							 | 
							
								 * Range: [0.0 - 1.0]
							 | 
						
						
						
							| 
								
							 | 
							
								 *
							 | 
						
						
						
							| 
								
							 | 
							
								 * The maximum gain allowed for a source, after distance and cone attenation is
							 | 
						
						
						
							| 
								
							 | 
							
								 * applied (if applicable).
							 | 
						
						
						
							| 
								
							 | 
							
								 */
							 | 
						
						
						
							| 
								
							 | 
							
								#define AL_MAX_GAIN                              0x100E
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								/**
							 | 
						
						
						
							| 
								
							 | 
							
								 * Listener orientation.
							 | 
						
						
						
							| 
								
							 | 
							
								 * Type: ALfloat[6]
							 | 
						
						
						
							| 
								
							 | 
							
								 * Default: {0.0, 0.0, -1.0, 0.0, 1.0, 0.0}
							 | 
						
						
						
							| 
								
							 | 
							
								 *
							 | 
						
						
						
							| 
								
							 | 
							
								 * Effectively two three dimensional vectors. The first vector is the front (or
							 | 
						
						
						
							| 
								
							 | 
							
								 * "at") and the second is the top (or "up").
							 | 
						
						
						
							| 
								
							 | 
							
								 *
							 | 
						
						
						
							| 
								
							 | 
							
								 * Both vectors are in local space.
							 | 
						
						
						
							| 
								
							 | 
							
								 */
							 | 
						
						
						
							| 
								
							 | 
							
								#define AL_ORIENTATION                           0x100F
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								/**
							 | 
						
						
						
							| 
								
							 | 
							
								 * Source state (query only).
							 | 
						
						
						
							| 
								
							 | 
							
								 * Type:  ALint
							 | 
						
						
						
							| 
								
							 | 
							
								 * Range: [AL_INITIAL, AL_PLAYING, AL_PAUSED, AL_STOPPED]
							 | 
						
						
						
							| 
								
							 | 
							
								 */
							 | 
						
						
						
							| 
								
							 | 
							
								#define AL_SOURCE_STATE                          0x1010
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								/** Source state value. */
							 | 
						
						
						
							| 
								
							 | 
							
								#define AL_INITIAL                               0x1011
							 | 
						
						
						
							| 
								
							 | 
							
								#define AL_PLAYING                               0x1012
							 | 
						
						
						
							| 
								
							 | 
							
								#define AL_PAUSED                                0x1013
							 | 
						
						
						
							| 
								
							 | 
							
								#define AL_STOPPED                               0x1014
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								/**
							 | 
						
						
						
							| 
								
							 | 
							
								 * Source Buffer Queue size (query only).
							 | 
						
						
						
							| 
								
							 | 
							
								 * Type: ALint
							 | 
						
						
						
							| 
								
							 | 
							
								 *
							 | 
						
						
						
							| 
								
							 | 
							
								 * The number of buffers queued using alSourceQueueBuffers, minus the buffers
							 | 
						
						
						
							| 
								
							 | 
							
								 * removed with alSourceUnqueueBuffers.
							 | 
						
						
						
							| 
								
							 | 
							
								 */
							 | 
						
						
						
							| 
								
							 | 
							
								#define AL_BUFFERS_QUEUED                        0x1015
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								/**
							 | 
						
						
						
							| 
								
							 | 
							
								 * Source Buffer Queue processed count (query only).
							 | 
						
						
						
							| 
								
							 | 
							
								 * Type: ALint
							 | 
						
						
						
							| 
								
							 | 
							
								 *
							 | 
						
						
						
							| 
								
							 | 
							
								 * The number of queued buffers that have been fully processed, and can be
							 | 
						
						
						
							| 
								
							 | 
							
								 * removed with alSourceUnqueueBuffers.
							 | 
						
						
						
							| 
								
							 | 
							
								 *
							 | 
						
						
						
							| 
								
							 | 
							
								 * Looping sources will never fully process buffers because they will be set to
							 | 
						
						
						
							| 
								
							 | 
							
								 * play again for when the source loops.
							 | 
						
						
						
							| 
								
							 | 
							
								 */
							 | 
						
						
						
							| 
								
							 | 
							
								#define AL_BUFFERS_PROCESSED                     0x1016
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								/**
							 | 
						
						
						
							| 
								
							 | 
							
								 * Source reference distance.
							 | 
						
						
						
							| 
								
							 | 
							
								 * Type:    ALfloat
							 | 
						
						
						
							| 
								
							 | 
							
								 * Range:   [0.0 - ]
							 | 
						
						
						
							| 
								
							 | 
							
								 * Default: 1.0
							 | 
						
						
						
							| 
								
							 | 
							
								 *
							 | 
						
						
						
							| 
								
							 | 
							
								 * The distance in units that no attenuation occurs.
							 | 
						
						
						
							| 
								
							 | 
							
								 *
							 | 
						
						
						
							| 
								
							 | 
							
								 * At 0.0, no distance attenuation ever occurs on non-linear attenuation models.
							 | 
						
						
						
							| 
								
							 | 
							
								 */
							 | 
						
						
						
							| 
								
							 | 
							
								#define AL_REFERENCE_DISTANCE                    0x1020
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								/**
							 | 
						
						
						
							| 
								
							 | 
							
								 * Source rolloff factor.
							 | 
						
						
						
							| 
								
							 | 
							
								 * Type:    ALfloat
							 | 
						
						
						
							| 
								
							 | 
							
								 * Range:   [0.0 - ]
							 | 
						
						
						
							| 
								
							 | 
							
								 * Default: 1.0
							 | 
						
						
						
							| 
								
							 | 
							
								 *
							 | 
						
						
						
							| 
								
							 | 
							
								 * Multiplier to exaggerate or diminish distance attenuation.
							 | 
						
						
						
							| 
								
							 | 
							
								 *
							 | 
						
						
						
							| 
								
							 | 
							
								 * At 0.0, no distance attenuation ever occurs.
							 | 
						
						
						
							| 
								
							 | 
							
								 */
							 | 
						
						
						
							| 
								
							 | 
							
								#define AL_ROLLOFF_FACTOR                        0x1021
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								/**
							 | 
						
						
						
							| 
								
							 | 
							
								 * Outer cone gain.
							 | 
						
						
						
							| 
								
							 | 
							
								 * Type:    ALfloat
							 | 
						
						
						
							| 
								
							 | 
							
								 * Range:   [0.0 - 1.0]
							 | 
						
						
						
							| 
								
							 | 
							
								 * Default: 0.0
							 | 
						
						
						
							| 
								
							 | 
							
								 *
							 | 
						
						
						
							| 
								
							 | 
							
								 * The gain attenuation applied when the listener is outside of the source's
							 | 
						
						
						
							| 
								
							 | 
							
								 * outer cone.
							 | 
						
						
						
							| 
								
							 | 
							
								 */
							 | 
						
						
						
							| 
								
							 | 
							
								#define AL_CONE_OUTER_GAIN                       0x1022
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								/**
							 | 
						
						
						
							| 
								
							 | 
							
								 * Source maximum distance.
							 | 
						
						
						
							| 
								
							 | 
							
								 * Type:    ALfloat
							 | 
						
						
						
							| 
								
							 | 
							
								 * Range:   [0.0 - ]
							 | 
						
						
						
							| 
								
							 | 
							
								 * Default: +inf
							 | 
						
						
						
							| 
								
							 | 
							
								 *
							 | 
						
						
						
							| 
								
							 | 
							
								 * The distance above which the source is not attenuated any further with a
							 | 
						
						
						
							| 
								
							 | 
							
								 * clamped distance model, or where attenuation reaches 0.0 gain for linear
							 | 
						
						
						
							| 
								
							 | 
							
								 * distance models with a default rolloff factor.
							 | 
						
						
						
							| 
								
							 | 
							
								 */
							 | 
						
						
						
							| 
								
							 | 
							
								#define AL_MAX_DISTANCE                          0x1023
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								/** Source buffer position, in seconds */
							 | 
						
						
						
							| 
								
							 | 
							
								#define AL_SEC_OFFSET                            0x1024
							 | 
						
						
						
							| 
								
							 | 
							
								/** Source buffer position, in sample frames */
							 | 
						
						
						
							| 
								
							 | 
							
								#define AL_SAMPLE_OFFSET                         0x1025
							 | 
						
						
						
							| 
								
							 | 
							
								/** Source buffer position, in bytes */
							 | 
						
						
						
							| 
								
							 | 
							
								#define AL_BYTE_OFFSET                           0x1026
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								/**
							 | 
						
						
						
							| 
								
							 | 
							
								 * Source type (query only).
							 | 
						
						
						
							| 
								
							 | 
							
								 * Type:  ALint
							 | 
						
						
						
							| 
								
							 | 
							
								 * Range: [AL_STATIC, AL_STREAMING, AL_UNDETERMINED]
							 | 
						
						
						
							| 
								
							 | 
							
								 *
							 | 
						
						
						
							| 
								
							 | 
							
								 * A Source is Static if a Buffer has been attached using AL_BUFFER.
							 | 
						
						
						
							| 
								
							 | 
							
								 *
							 | 
						
						
						
							| 
								
							 | 
							
								 * A Source is Streaming if one or more Buffers have been attached using
							 | 
						
						
						
							| 
								
							 | 
							
								 * alSourceQueueBuffers.
							 | 
						
						
						
							| 
								
							 | 
							
								 *
							 | 
						
						
						
							| 
								
							 | 
							
								 * A Source is Undetermined when it has the NULL buffer attached using
							 | 
						
						
						
							| 
								
							 | 
							
								 * AL_BUFFER.
							 | 
						
						
						
							| 
								
							 | 
							
								 */
							 | 
						
						
						
							| 
								
							 | 
							
								#define AL_SOURCE_TYPE                           0x1027
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								/** Source type value. */
							 | 
						
						
						
							| 
								
							 | 
							
								#define AL_STATIC                                0x1028
							 | 
						
						
						
							| 
								
							 | 
							
								#define AL_STREAMING                             0x1029
							 | 
						
						
						
							| 
								
							 | 
							
								#define AL_UNDETERMINED                          0x1030
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								/** Buffer format specifier. */
							 | 
						
						
						
							| 
								
							 | 
							
								#define AL_FORMAT_MONO8                          0x1100
							 | 
						
						
						
							| 
								
							 | 
							
								#define AL_FORMAT_MONO16                         0x1101
							 | 
						
						
						
							| 
								
							 | 
							
								#define AL_FORMAT_STEREO8                        0x1102
							 | 
						
						
						
							| 
								
							 | 
							
								#define AL_FORMAT_STEREO16                       0x1103
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								/** Buffer frequency (query only). */
							 | 
						
						
						
							| 
								
							 | 
							
								#define AL_FREQUENCY                             0x2001
							 | 
						
						
						
							| 
								
							 | 
							
								/** Buffer bits per sample (query only). */
							 | 
						
						
						
							| 
								
							 | 
							
								#define AL_BITS                                  0x2002
							 | 
						
						
						
							| 
								
							 | 
							
								/** Buffer channel count (query only). */
							 | 
						
						
						
							| 
								
							 | 
							
								#define AL_CHANNELS                              0x2003
							 | 
						
						
						
							| 
								
							 | 
							
								/** Buffer data size (query only). */
							 | 
						
						
						
							| 
								
							 | 
							
								#define AL_SIZE                                  0x2004
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								/**
							 | 
						
						
						
							| 
								
							 | 
							
								 * Buffer state.
							 | 
						
						
						
							| 
								
							 | 
							
								 *
							 | 
						
						
						
							| 
								
							 | 
							
								 * Not for public use.
							 | 
						
						
						
							| 
								
							 | 
							
								 */
							 | 
						
						
						
							| 
								
							 | 
							
								#define AL_UNUSED                                0x2010
							 | 
						
						
						
							| 
								
							 | 
							
								#define AL_PENDING                               0x2011
							 | 
						
						
						
							| 
								
							 | 
							
								#define AL_PROCESSED                             0x2012
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								/** No error. */
							 | 
						
						
						
							| 
								
							 | 
							
								#define AL_NO_ERROR                              0
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								/** Invalid name paramater passed to AL call. */
							 | 
						
						
						
							| 
								
							 | 
							
								#define AL_INVALID_NAME                          0xA001
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								/** Invalid enum parameter passed to AL call. */
							 | 
						
						
						
							| 
								
							 | 
							
								#define AL_INVALID_ENUM                          0xA002
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								/** Invalid value parameter passed to AL call. */
							 | 
						
						
						
							| 
								
							 | 
							
								#define AL_INVALID_VALUE                         0xA003
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								/** Illegal AL call. */
							 | 
						
						
						
							| 
								
							 | 
							
								#define AL_INVALID_OPERATION                     0xA004
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								/** Not enough memory. */
							 | 
						
						
						
							| 
								
							 | 
							
								#define AL_OUT_OF_MEMORY                         0xA005
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								/** Context string: Vendor ID. */
							 | 
						
						
						
							| 
								
							 | 
							
								#define AL_VENDOR                                0xB001
							 | 
						
						
						
							| 
								
							 | 
							
								/** Context string: Version. */
							 | 
						
						
						
							| 
								
							 | 
							
								#define AL_VERSION                               0xB002
							 | 
						
						
						
							| 
								
							 | 
							
								/** Context string: Renderer ID. */
							 | 
						
						
						
							| 
								
							 | 
							
								#define AL_RENDERER                              0xB003
							 | 
						
						
						
							| 
								
							 | 
							
								/** Context string: Space-separated extension list. */
							 | 
						
						
						
							| 
								
							 | 
							
								#define AL_EXTENSIONS                            0xB004
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								/**
							 | 
						
						
						
							| 
								
							 | 
							
								 * Doppler scale.
							 | 
						
						
						
							| 
								
							 | 
							
								 * Type:    ALfloat
							 | 
						
						
						
							| 
								
							 | 
							
								 * Range:   [0.0 - ]
							 | 
						
						
						
							| 
								
							 | 
							
								 * Default: 1.0
							 | 
						
						
						
							| 
								
							 | 
							
								 *
							 | 
						
						
						
							| 
								
							 | 
							
								 * Scale for source and listener velocities.
							 | 
						
						
						
							| 
								
							 | 
							
								 */
							 | 
						
						
						
							| 
								
							 | 
							
								#define AL_DOPPLER_FACTOR                        0xC000
							 | 
						
						
						
							| 
								
							 | 
							
								AL_API void AL_APIENTRY alDopplerFactor(ALfloat value);
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								/**
							 | 
						
						
						
							| 
								
							 | 
							
								 * Doppler velocity (deprecated).
							 | 
						
						
						
							| 
								
							 | 
							
								 *
							 | 
						
						
						
							| 
								
							 | 
							
								 * A multiplier applied to the Speed of Sound.
							 | 
						
						
						
							| 
								
							 | 
							
								 */
							 | 
						
						
						
							| 
								
							 | 
							
								#define AL_DOPPLER_VELOCITY                      0xC001
							 | 
						
						
						
							| 
								
							 | 
							
								AL_API void AL_APIENTRY alDopplerVelocity(ALfloat value);
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								/**
							 | 
						
						
						
							| 
								
							 | 
							
								 * Speed of Sound, in units per second.
							 | 
						
						
						
							| 
								
							 | 
							
								 * Type:    ALfloat
							 | 
						
						
						
							| 
								
							 | 
							
								 * Range:   [0.0001 - ]
							 | 
						
						
						
							| 
								
							 | 
							
								 * Default: 343.3
							 | 
						
						
						
							| 
								
							 | 
							
								 *
							 | 
						
						
						
							| 
								
							 | 
							
								 * The speed at which sound waves are assumed to travel, when calculating the
							 | 
						
						
						
							| 
								
							 | 
							
								 * doppler effect.
							 | 
						
						
						
							| 
								
							 | 
							
								 */
							 | 
						
						
						
							| 
								
							 | 
							
								#define AL_SPEED_OF_SOUND                        0xC003
							 | 
						
						
						
							| 
								
							 | 
							
								AL_API void AL_APIENTRY alSpeedOfSound(ALfloat value);
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								/**
							 | 
						
						
						
							| 
								
							 | 
							
								 * Distance attenuation model.
							 | 
						
						
						
							| 
								
							 | 
							
								 * Type:    ALint
							 | 
						
						
						
							| 
								
							 | 
							
								 * Range:   [AL_NONE, AL_INVERSE_DISTANCE, AL_INVERSE_DISTANCE_CLAMPED,
							 | 
						
						
						
							| 
								
							 | 
							
								 *           AL_LINEAR_DISTANCE, AL_LINEAR_DISTANCE_CLAMPED,
							 | 
						
						
						
							| 
								
							 | 
							
								 *           AL_EXPONENT_DISTANCE, AL_EXPONENT_DISTANCE_CLAMPED]
							 | 
						
						
						
							| 
								
							 | 
							
								 * Default: AL_INVERSE_DISTANCE_CLAMPED
							 | 
						
						
						
							| 
								
							 | 
							
								 *
							 | 
						
						
						
							| 
								
							 | 
							
								 * The model by which sources attenuate with distance.
							 | 
						
						
						
							| 
								
							 | 
							
								 *
							 | 
						
						
						
							| 
								
							 | 
							
								 * None     - No distance attenuation.
							 | 
						
						
						
							| 
								
							 | 
							
								 * Inverse  - Doubling the distance halves the source gain.
							 | 
						
						
						
							| 
								
							 | 
							
								 * Linear   - Linear gain scaling between the reference and max distances.
							 | 
						
						
						
							| 
								
							 | 
							
								 * Exponent - Exponential gain dropoff.
							 | 
						
						
						
							| 
								
							 | 
							
								 *
							 | 
						
						
						
							| 
								
							 | 
							
								 * Clamped variations work like the non-clamped counterparts, except the
							 | 
						
						
						
							| 
								
							 | 
							
								 * distance calculated is clamped between the reference and max distances.
							 | 
						
						
						
							| 
								
							 | 
							
								 */
							 | 
						
						
						
							| 
								
							 | 
							
								#define AL_DISTANCE_MODEL                        0xD000
							 | 
						
						
						
							| 
								
							 | 
							
								AL_API void AL_APIENTRY alDistanceModel(ALenum distanceModel);
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								/** Distance model value. */
							 | 
						
						
						
							| 
								
							 | 
							
								#define AL_INVERSE_DISTANCE                      0xD001
							 | 
						
						
						
							| 
								
							 | 
							
								#define AL_INVERSE_DISTANCE_CLAMPED              0xD002
							 | 
						
						
						
							| 
								
							 | 
							
								#define AL_LINEAR_DISTANCE                       0xD003
							 | 
						
						
						
							| 
								
							 | 
							
								#define AL_LINEAR_DISTANCE_CLAMPED               0xD004
							 | 
						
						
						
							| 
								
							 | 
							
								#define AL_EXPONENT_DISTANCE                     0xD005
							 | 
						
						
						
							| 
								
							 | 
							
								#define AL_EXPONENT_DISTANCE_CLAMPED             0xD006
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								/** Renderer State management. */
							 | 
						
						
						
							| 
								
							 | 
							
								AL_API void AL_APIENTRY alEnable(ALenum capability);
							 | 
						
						
						
							| 
								
							 | 
							
								AL_API void AL_APIENTRY alDisable(ALenum capability);
							 | 
						
						
						
							| 
								
							 | 
							
								AL_API ALboolean AL_APIENTRY alIsEnabled(ALenum capability);
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								/** State retrieval. */
							 | 
						
						
						
							| 
								
							 | 
							
								AL_API const ALchar* AL_APIENTRY alGetString(ALenum param);
							 | 
						
						
						
							| 
								
							 | 
							
								AL_API void AL_APIENTRY alGetBooleanv(ALenum param, ALboolean *values);
							 | 
						
						
						
							| 
								
							 | 
							
								AL_API void AL_APIENTRY alGetIntegerv(ALenum param, ALint *values);
							 | 
						
						
						
							| 
								
							 | 
							
								AL_API void AL_APIENTRY alGetFloatv(ALenum param, ALfloat *values);
							 | 
						
						
						
							| 
								
							 | 
							
								AL_API void AL_APIENTRY alGetDoublev(ALenum param, ALdouble *values);
							 | 
						
						
						
							| 
								
							 | 
							
								AL_API ALboolean AL_APIENTRY alGetBoolean(ALenum param);
							 | 
						
						
						
							| 
								
							 | 
							
								AL_API ALint AL_APIENTRY alGetInteger(ALenum param);
							 | 
						
						
						
							| 
								
							 | 
							
								AL_API ALfloat AL_APIENTRY alGetFloat(ALenum param);
							 | 
						
						
						
							| 
								
							 | 
							
								AL_API ALdouble AL_APIENTRY alGetDouble(ALenum param);
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								/**
							 | 
						
						
						
							| 
								
							 | 
							
								 * Error retrieval.
							 | 
						
						
						
							| 
								
							 | 
							
								 *
							 | 
						
						
						
							| 
								
							 | 
							
								 * Obtain the first error generated in the AL context since the last check.
							 | 
						
						
						
							| 
								
							 | 
							
								 */
							 | 
						
						
						
							| 
								
							 | 
							
								AL_API ALenum AL_APIENTRY alGetError(void);
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								/**
							 | 
						
						
						
							| 
								
							 | 
							
								 * Extension support.
							 | 
						
						
						
							| 
								
							 | 
							
								 *
							 | 
						
						
						
							| 
								
							 | 
							
								 * Query for the presence of an extension, and obtain any appropriate function
							 | 
						
						
						
							| 
								
							 | 
							
								 * pointers and enum values.
							 | 
						
						
						
							| 
								
							 | 
							
								 */
							 | 
						
						
						
							| 
								
							 | 
							
								AL_API ALboolean AL_APIENTRY alIsExtensionPresent(const ALchar *extname);
							 | 
						
						
						
							| 
								
							 | 
							
								AL_API void* AL_APIENTRY alGetProcAddress(const ALchar *fname);
							 | 
						
						
						
							| 
								
							 | 
							
								AL_API ALenum AL_APIENTRY alGetEnumValue(const ALchar *ename);
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								/** Set Listener parameters */
							 | 
						
						
						
							| 
								
							 | 
							
								AL_API void AL_APIENTRY alListenerf(ALenum param, ALfloat value);
							 | 
						
						
						
							| 
								
							 | 
							
								AL_API void AL_APIENTRY alListener3f(ALenum param, ALfloat value1, ALfloat value2, ALfloat value3);
							 | 
						
						
						
							| 
								
							 | 
							
								AL_API void AL_APIENTRY alListenerfv(ALenum param, const ALfloat *values);
							 | 
						
						
						
							| 
								
							 | 
							
								AL_API void AL_APIENTRY alListeneri(ALenum param, ALint value);
							 | 
						
						
						
							| 
								
							 | 
							
								AL_API void AL_APIENTRY alListener3i(ALenum param, ALint value1, ALint value2, ALint value3);
							 | 
						
						
						
							| 
								
							 | 
							
								AL_API void AL_APIENTRY alListeneriv(ALenum param, const ALint *values);
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								/** Get Listener parameters */
							 | 
						
						
						
							| 
								
							 | 
							
								AL_API void AL_APIENTRY alGetListenerf(ALenum param, ALfloat *value);
							 | 
						
						
						
							| 
								
							 | 
							
								AL_API void AL_APIENTRY alGetListener3f(ALenum param, ALfloat *value1, ALfloat *value2, ALfloat *value3);
							 | 
						
						
						
							| 
								
							 | 
							
								AL_API void AL_APIENTRY alGetListenerfv(ALenum param, ALfloat *values);
							 | 
						
						
						
							| 
								
							 | 
							
								AL_API void AL_APIENTRY alGetListeneri(ALenum param, ALint *value);
							 | 
						
						
						
							| 
								
							 | 
							
								AL_API void AL_APIENTRY alGetListener3i(ALenum param, ALint *value1, ALint *value2, ALint *value3);
							 | 
						
						
						
							| 
								
							 | 
							
								AL_API void AL_APIENTRY alGetListeneriv(ALenum param, ALint *values);
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								/** Create Source objects. */
							 | 
						
						
						
							| 
								
							 | 
							
								AL_API void AL_APIENTRY alGenSources(ALsizei n, ALuint *sources);
							 | 
						
						
						
							| 
								
							 | 
							
								/** Delete Source objects. */
							 | 
						
						
						
							| 
								
							 | 
							
								AL_API void AL_APIENTRY alDeleteSources(ALsizei n, const ALuint *sources);
							 | 
						
						
						
							| 
								
							 | 
							
								/** Verify a handle is a valid Source. */
							 | 
						
						
						
							| 
								
							 | 
							
								AL_API ALboolean AL_APIENTRY alIsSource(ALuint source);
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								/** Set Source parameters. */
							 | 
						
						
						
							| 
								
							 | 
							
								AL_API void AL_APIENTRY alSourcef(ALuint source, ALenum param, ALfloat value);
							 | 
						
						
						
							| 
								
							 | 
							
								AL_API void AL_APIENTRY alSource3f(ALuint source, ALenum param, ALfloat value1, ALfloat value2, ALfloat value3);
							 | 
						
						
						
							| 
								
							 | 
							
								AL_API void AL_APIENTRY alSourcefv(ALuint source, ALenum param, const ALfloat *values);
							 | 
						
						
						
							| 
								
							 | 
							
								AL_API void AL_APIENTRY alSourcei(ALuint source, ALenum param, ALint value);
							 | 
						
						
						
							| 
								
							 | 
							
								AL_API void AL_APIENTRY alSource3i(ALuint source, ALenum param, ALint value1, ALint value2, ALint value3);
							 | 
						
						
						
							| 
								
							 | 
							
								AL_API void AL_APIENTRY alSourceiv(ALuint source, ALenum param, const ALint *values);
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								/** Get Source parameters. */
							 | 
						
						
						
							| 
								
							 | 
							
								AL_API void AL_APIENTRY alGetSourcef(ALuint source, ALenum param, ALfloat *value);
							 | 
						
						
						
							| 
								
							 | 
							
								AL_API void AL_APIENTRY alGetSource3f(ALuint source, ALenum param, ALfloat *value1, ALfloat *value2, ALfloat *value3);
							 | 
						
						
						
							| 
								
							 | 
							
								AL_API void AL_APIENTRY alGetSourcefv(ALuint source, ALenum param, ALfloat *values);
							 | 
						
						
						
							| 
								
							 | 
							
								AL_API void AL_APIENTRY alGetSourcei(ALuint source,  ALenum param, ALint *value);
							 | 
						
						
						
							| 
								
							 | 
							
								AL_API void AL_APIENTRY alGetSource3i(ALuint source, ALenum param, ALint *value1, ALint *value2, ALint *value3);
							 | 
						
						
						
							| 
								
							 | 
							
								AL_API void AL_APIENTRY alGetSourceiv(ALuint source,  ALenum param, ALint *values);
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								/** Play, replay, or resume (if paused) a list of Sources */
							 | 
						
						
						
							| 
								
							 | 
							
								AL_API void AL_APIENTRY alSourcePlayv(ALsizei n, const ALuint *sources);
							 | 
						
						
						
							| 
								
							 | 
							
								/** Stop a list of Sources */
							 | 
						
						
						
							| 
								
							 | 
							
								AL_API void AL_APIENTRY alSourceStopv(ALsizei n, const ALuint *sources);
							 | 
						
						
						
							| 
								
							 | 
							
								/** Rewind a list of Sources */
							 | 
						
						
						
							| 
								
							 | 
							
								AL_API void AL_APIENTRY alSourceRewindv(ALsizei n, const ALuint *sources);
							 | 
						
						
						
							| 
								
							 | 
							
								/** Pause a list of Sources */
							 | 
						
						
						
							| 
								
							 | 
							
								AL_API void AL_APIENTRY alSourcePausev(ALsizei n, const ALuint *sources);
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								/** Play, replay, or resume a Source */
							 | 
						
						
						
							| 
								
							 | 
							
								AL_API void AL_APIENTRY alSourcePlay(ALuint source);
							 | 
						
						
						
							| 
								
							 | 
							
								/** Stop a Source */
							 | 
						
						
						
							| 
								
							 | 
							
								AL_API void AL_APIENTRY alSourceStop(ALuint source);
							 | 
						
						
						
							| 
								
							 | 
							
								/** Rewind a Source (set playback postiton to beginning) */
							 | 
						
						
						
							| 
								
							 | 
							
								AL_API void AL_APIENTRY alSourceRewind(ALuint source);
							 | 
						
						
						
							| 
								
							 | 
							
								/** Pause a Source */
							 | 
						
						
						
							| 
								
							 | 
							
								AL_API void AL_APIENTRY alSourcePause(ALuint source);
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								/** Queue buffers onto a source */
							 | 
						
						
						
							| 
								
							 | 
							
								AL_API void AL_APIENTRY alSourceQueueBuffers(ALuint source, ALsizei nb, const ALuint *buffers);
							 | 
						
						
						
							| 
								
							 | 
							
								/** Unqueue processed buffers from a source */
							 | 
						
						
						
							| 
								
							 | 
							
								AL_API void AL_APIENTRY alSourceUnqueueBuffers(ALuint source, ALsizei nb, ALuint *buffers);
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								/** Create Buffer objects */
							 | 
						
						
						
							| 
								
							 | 
							
								AL_API void AL_APIENTRY alGenBuffers(ALsizei n, ALuint *buffers);
							 | 
						
						
						
							| 
								
							 | 
							
								/** Delete Buffer objects */
							 | 
						
						
						
							| 
								
							 | 
							
								AL_API void AL_APIENTRY alDeleteBuffers(ALsizei n, const ALuint *buffers);
							 | 
						
						
						
							| 
								
							 | 
							
								/** Verify a handle is a valid Buffer */
							 | 
						
						
						
							| 
								
							 | 
							
								AL_API ALboolean AL_APIENTRY alIsBuffer(ALuint buffer);
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								/** Specifies the data to be copied into a buffer */
							 | 
						
						
						
							| 
								
							 | 
							
								AL_API void AL_APIENTRY alBufferData(ALuint buffer, ALenum format, const ALvoid *data, ALsizei size, ALsizei freq);
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								/** Set Buffer parameters, */
							 | 
						
						
						
							| 
								
							 | 
							
								AL_API void AL_APIENTRY alBufferf(ALuint buffer, ALenum param, ALfloat value);
							 | 
						
						
						
							| 
								
							 | 
							
								AL_API void AL_APIENTRY alBuffer3f(ALuint buffer, ALenum param, ALfloat value1, ALfloat value2, ALfloat value3);
							 | 
						
						
						
							| 
								
							 | 
							
								AL_API void AL_APIENTRY alBufferfv(ALuint buffer, ALenum param, const ALfloat *values);
							 | 
						
						
						
							| 
								
							 | 
							
								AL_API void AL_APIENTRY alBufferi(ALuint buffer, ALenum param, ALint value);
							 | 
						
						
						
							| 
								
							 | 
							
								AL_API void AL_APIENTRY alBuffer3i(ALuint buffer, ALenum param, ALint value1, ALint value2, ALint value3);
							 | 
						
						
						
							| 
								
							 | 
							
								AL_API void AL_APIENTRY alBufferiv(ALuint buffer, ALenum param, const ALint *values);
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								/** Get Buffer parameters. */
							 | 
						
						
						
							| 
								
							 | 
							
								AL_API void AL_APIENTRY alGetBufferf(ALuint buffer, ALenum param, ALfloat *value);
							 | 
						
						
						
							| 
								
							 | 
							
								AL_API void AL_APIENTRY alGetBuffer3f(ALuint buffer, ALenum param, ALfloat *value1, ALfloat *value2, ALfloat *value3);
							 | 
						
						
						
							| 
								
							 | 
							
								AL_API void AL_APIENTRY alGetBufferfv(ALuint buffer, ALenum param, ALfloat *values);
							 | 
						
						
						
							| 
								
							 | 
							
								AL_API void AL_APIENTRY alGetBufferi(ALuint buffer, ALenum param, ALint *value);
							 | 
						
						
						
							| 
								
							 | 
							
								AL_API void AL_APIENTRY alGetBuffer3i(ALuint buffer, ALenum param, ALint *value1, ALint *value2, ALint *value3);
							 | 
						
						
						
							| 
								
							 | 
							
								AL_API void AL_APIENTRY alGetBufferiv(ALuint buffer, ALenum param, ALint *values);
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								/** Pointer-to-function type, useful for dynamically getting AL entry points. */
							 | 
						
						
						
							| 
								
							 | 
							
								typedef void          (AL_APIENTRY *LPALENABLE)(ALenum capability);
							 | 
						
						
						
							| 
								
							 | 
							
								typedef void          (AL_APIENTRY *LPALDISABLE)(ALenum capability);
							 | 
						
						
						
							| 
								
							 | 
							
								typedef ALboolean     (AL_APIENTRY *LPALISENABLED)(ALenum capability);
							 | 
						
						
						
							| 
								
							 | 
							
								typedef const ALchar* (AL_APIENTRY *LPALGETSTRING)(ALenum param);
							 | 
						
						
						
							| 
								
							 | 
							
								typedef void          (AL_APIENTRY *LPALGETBOOLEANV)(ALenum param, ALboolean *values);
							 | 
						
						
						
							| 
								
							 | 
							
								typedef void          (AL_APIENTRY *LPALGETINTEGERV)(ALenum param, ALint *values);
							 | 
						
						
						
							| 
								
							 | 
							
								typedef void          (AL_APIENTRY *LPALGETFLOATV)(ALenum param, ALfloat *values);
							 | 
						
						
						
							| 
								
							 | 
							
								typedef void          (AL_APIENTRY *LPALGETDOUBLEV)(ALenum param, ALdouble *values);
							 | 
						
						
						
							| 
								
							 | 
							
								typedef ALboolean     (AL_APIENTRY *LPALGETBOOLEAN)(ALenum param);
							 | 
						
						
						
							| 
								
							 | 
							
								typedef ALint         (AL_APIENTRY *LPALGETINTEGER)(ALenum param);
							 | 
						
						
						
							| 
								
							 | 
							
								typedef ALfloat       (AL_APIENTRY *LPALGETFLOAT)(ALenum param);
							 | 
						
						
						
							| 
								
							 | 
							
								typedef ALdouble      (AL_APIENTRY *LPALGETDOUBLE)(ALenum param);
							 | 
						
						
						
							| 
								
							 | 
							
								typedef ALenum        (AL_APIENTRY *LPALGETERROR)(void);
							 | 
						
						
						
							| 
								
							 | 
							
								typedef ALboolean     (AL_APIENTRY *LPALISEXTENSIONPRESENT)(const ALchar *extname);
							 | 
						
						
						
							| 
								
							 | 
							
								typedef void*         (AL_APIENTRY *LPALGETPROCADDRESS)(const ALchar *fname);
							 | 
						
						
						
							| 
								
							 | 
							
								typedef ALenum        (AL_APIENTRY *LPALGETENUMVALUE)(const ALchar *ename);
							 | 
						
						
						
							| 
								
							 | 
							
								typedef void          (AL_APIENTRY *LPALLISTENERF)(ALenum param, ALfloat value);
							 | 
						
						
						
							| 
								
							 | 
							
								typedef void          (AL_APIENTRY *LPALLISTENER3F)(ALenum param, ALfloat value1, ALfloat value2, ALfloat value3);
							 | 
						
						
						
							| 
								
							 | 
							
								typedef void          (AL_APIENTRY *LPALLISTENERFV)(ALenum param, const ALfloat *values);
							 | 
						
						
						
							| 
								
							 | 
							
								typedef void          (AL_APIENTRY *LPALLISTENERI)(ALenum param, ALint value);
							 | 
						
						
						
							| 
								
							 | 
							
								typedef void          (AL_APIENTRY *LPALLISTENER3I)(ALenum param, ALint value1, ALint value2, ALint value3);
							 | 
						
						
						
							| 
								
							 | 
							
								typedef void          (AL_APIENTRY *LPALLISTENERIV)(ALenum param, const ALint *values);
							 | 
						
						
						
							| 
								
							 | 
							
								typedef void          (AL_APIENTRY *LPALGETLISTENERF)(ALenum param, ALfloat *value);
							 | 
						
						
						
							| 
								
							 | 
							
								typedef void          (AL_APIENTRY *LPALGETLISTENER3F)(ALenum param, ALfloat *value1, ALfloat *value2, ALfloat *value3);
							 | 
						
						
						
							| 
								
							 | 
							
								typedef void          (AL_APIENTRY *LPALGETLISTENERFV)(ALenum param, ALfloat *values);
							 | 
						
						
						
							| 
								
							 | 
							
								typedef void          (AL_APIENTRY *LPALGETLISTENERI)(ALenum param, ALint *value);
							 | 
						
						
						
							| 
								
							 | 
							
								typedef void          (AL_APIENTRY *LPALGETLISTENER3I)(ALenum param, ALint *value1, ALint *value2, ALint *value3);
							 | 
						
						
						
							| 
								
							 | 
							
								typedef void          (AL_APIENTRY *LPALGETLISTENERIV)(ALenum param, ALint *values);
							 | 
						
						
						
							| 
								
							 | 
							
								typedef void          (AL_APIENTRY *LPALGENSOURCES)(ALsizei n, ALuint *sources);
							 | 
						
						
						
							| 
								
							 | 
							
								typedef void          (AL_APIENTRY *LPALDELETESOURCES)(ALsizei n, const ALuint *sources);
							 | 
						
						
						
							| 
								
							 | 
							
								typedef ALboolean     (AL_APIENTRY *LPALISSOURCE)(ALuint source);
							 | 
						
						
						
							| 
								
							 | 
							
								typedef void          (AL_APIENTRY *LPALSOURCEF)(ALuint source, ALenum param, ALfloat value);
							 | 
						
						
						
							| 
								
							 | 
							
								typedef void          (AL_APIENTRY *LPALSOURCE3F)(ALuint source, ALenum param, ALfloat value1, ALfloat value2, ALfloat value3);
							 | 
						
						
						
							| 
								
							 | 
							
								typedef void          (AL_APIENTRY *LPALSOURCEFV)(ALuint source, ALenum param, const ALfloat *values);
							 | 
						
						
						
							| 
								
							 | 
							
								typedef void          (AL_APIENTRY *LPALSOURCEI)(ALuint source, ALenum param, ALint value);
							 | 
						
						
						
							| 
								
							 | 
							
								typedef void          (AL_APIENTRY *LPALSOURCE3I)(ALuint source, ALenum param, ALint value1, ALint value2, ALint value3);
							 | 
						
						
						
							| 
								
							 | 
							
								typedef void          (AL_APIENTRY *LPALSOURCEIV)(ALuint source, ALenum param, const ALint *values);
							 | 
						
						
						
							| 
								
							 | 
							
								typedef void          (AL_APIENTRY *LPALGETSOURCEF)(ALuint source, ALenum param, ALfloat *value);
							 | 
						
						
						
							| 
								
							 | 
							
								typedef void          (AL_APIENTRY *LPALGETSOURCE3F)(ALuint source, ALenum param, ALfloat *value1, ALfloat *value2, ALfloat *value3);
							 | 
						
						
						
							| 
								
							 | 
							
								typedef void          (AL_APIENTRY *LPALGETSOURCEFV)(ALuint source, ALenum param, ALfloat *values);
							 | 
						
						
						
							| 
								
							 | 
							
								typedef void          (AL_APIENTRY *LPALGETSOURCEI)(ALuint source, ALenum param, ALint *value);
							 | 
						
						
						
							| 
								
							 | 
							
								typedef void          (AL_APIENTRY *LPALGETSOURCE3I)(ALuint source, ALenum param, ALint *value1, ALint *value2, ALint *value3);
							 | 
						
						
						
							| 
								
							 | 
							
								typedef void          (AL_APIENTRY *LPALGETSOURCEIV)(ALuint source, ALenum param, ALint *values);
							 | 
						
						
						
							| 
								
							 | 
							
								typedef void          (AL_APIENTRY *LPALSOURCEPLAYV)(ALsizei n, const ALuint *sources);
							 | 
						
						
						
							| 
								
							 | 
							
								typedef void          (AL_APIENTRY *LPALSOURCESTOPV)(ALsizei n, const ALuint *sources);
							 | 
						
						
						
							| 
								
							 | 
							
								typedef void          (AL_APIENTRY *LPALSOURCEREWINDV)(ALsizei n, const ALuint *sources);
							 | 
						
						
						
							| 
								
							 | 
							
								typedef void          (AL_APIENTRY *LPALSOURCEPAUSEV)(ALsizei n, const ALuint *sources);
							 | 
						
						
						
							| 
								
							 | 
							
								typedef void          (AL_APIENTRY *LPALSOURCEPLAY)(ALuint source);
							 | 
						
						
						
							| 
								
							 | 
							
								typedef void          (AL_APIENTRY *LPALSOURCESTOP)(ALuint source);
							 | 
						
						
						
							| 
								
							 | 
							
								typedef void          (AL_APIENTRY *LPALSOURCEREWIND)(ALuint source);
							 | 
						
						
						
							| 
								
							 | 
							
								typedef void          (AL_APIENTRY *LPALSOURCEPAUSE)(ALuint source);
							 | 
						
						
						
							| 
								
							 | 
							
								typedef void          (AL_APIENTRY *LPALSOURCEQUEUEBUFFERS)(ALuint source, ALsizei nb, const ALuint *buffers);
							 | 
						
						
						
							| 
								
							 | 
							
								typedef void          (AL_APIENTRY *LPALSOURCEUNQUEUEBUFFERS)(ALuint source, ALsizei nb, ALuint *buffers);
							 | 
						
						
						
							| 
								
							 | 
							
								typedef void          (AL_APIENTRY *LPALGENBUFFERS)(ALsizei n, ALuint *buffers);
							 | 
						
						
						
							| 
								
							 | 
							
								typedef void          (AL_APIENTRY *LPALDELETEBUFFERS)(ALsizei n, const ALuint *buffers);
							 | 
						
						
						
							| 
								
							 | 
							
								typedef ALboolean     (AL_APIENTRY *LPALISBUFFER)(ALuint buffer);
							 | 
						
						
						
							| 
								
							 | 
							
								typedef void          (AL_APIENTRY *LPALBUFFERDATA)(ALuint buffer, ALenum format, const ALvoid *data, ALsizei size, ALsizei freq);
							 | 
						
						
						
							| 
								
							 | 
							
								typedef void          (AL_APIENTRY *LPALBUFFERF)(ALuint buffer, ALenum param, ALfloat value);
							 | 
						
						
						
							| 
								
							 | 
							
								typedef void          (AL_APIENTRY *LPALBUFFER3F)(ALuint buffer, ALenum param, ALfloat value1, ALfloat value2, ALfloat value3);
							 | 
						
						
						
							| 
								
							 | 
							
								typedef void          (AL_APIENTRY *LPALBUFFERFV)(ALuint buffer, ALenum param, const ALfloat *values);
							 | 
						
						
						
							| 
								
							 | 
							
								typedef void          (AL_APIENTRY *LPALBUFFERI)(ALuint buffer, ALenum param, ALint value);
							 | 
						
						
						
							| 
								
							 | 
							
								typedef void          (AL_APIENTRY *LPALBUFFER3I)(ALuint buffer, ALenum param, ALint value1, ALint value2, ALint value3);
							 | 
						
						
						
							| 
								
							 | 
							
								typedef void          (AL_APIENTRY *LPALBUFFERIV)(ALuint buffer, ALenum param, const ALint *values);
							 | 
						
						
						
							| 
								
							 | 
							
								typedef void          (AL_APIENTRY *LPALGETBUFFERF)(ALuint buffer, ALenum param, ALfloat *value);
							 | 
						
						
						
							| 
								
							 | 
							
								typedef void          (AL_APIENTRY *LPALGETBUFFER3F)(ALuint buffer, ALenum param, ALfloat *value1, ALfloat *value2, ALfloat *value3);
							 | 
						
						
						
							| 
								
							 | 
							
								typedef void          (AL_APIENTRY *LPALGETBUFFERFV)(ALuint buffer, ALenum param, ALfloat *values);
							 | 
						
						
						
							| 
								
							 | 
							
								typedef void          (AL_APIENTRY *LPALGETBUFFERI)(ALuint buffer, ALenum param, ALint *value);
							 | 
						
						
						
							| 
								
							 | 
							
								typedef void          (AL_APIENTRY *LPALGETBUFFER3I)(ALuint buffer, ALenum param, ALint *value1, ALint *value2, ALint *value3);
							 | 
						
						
						
							| 
								
							 | 
							
								typedef void          (AL_APIENTRY *LPALGETBUFFERIV)(ALuint buffer, ALenum param, ALint *values);
							 | 
						
						
						
							| 
								
							 | 
							
								typedef void          (AL_APIENTRY *LPALDOPPLERFACTOR)(ALfloat value);
							 | 
						
						
						
							| 
								
							 | 
							
								typedef void          (AL_APIENTRY *LPALDOPPLERVELOCITY)(ALfloat value);
							 | 
						
						
						
							| 
								
							 | 
							
								typedef void          (AL_APIENTRY *LPALSPEEDOFSOUND)(ALfloat value);
							 | 
						
						
						
							| 
								
							 | 
							
								typedef void          (AL_APIENTRY *LPALDISTANCEMODEL)(ALenum distanceModel);
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								#if defined(__cplusplus)
							 | 
						
						
						
							| 
								
							 | 
							
								}  /* extern "C" */
							 | 
						
						
						
							| 
								
							 | 
							
								#endif
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								#endif /* AL_AL_H */
							 |