rlm@0: #ifndef AL_AL_H rlm@0: #define AL_AL_H rlm@0: rlm@0: #if defined(__cplusplus) rlm@0: extern "C" { rlm@0: #endif rlm@0: rlm@0: #ifndef AL_API rlm@0: #if defined(AL_LIBTYPE_STATIC) rlm@0: #define AL_API rlm@0: #elif defined(_WIN32) rlm@0: #define AL_API __declspec(dllimport) rlm@0: #else rlm@0: #define AL_API extern rlm@0: #endif rlm@0: #endif rlm@0: rlm@0: #if defined(_WIN32) rlm@0: #define AL_APIENTRY __cdecl rlm@0: #else rlm@0: #define AL_APIENTRY rlm@0: #endif rlm@0: rlm@0: #if defined(TARGET_OS_MAC) && TARGET_OS_MAC rlm@0: #pragma export on rlm@0: #endif rlm@0: rlm@0: /* rlm@0: * The OPENAL, ALAPI, ALAPIENTRY, AL_INVALID, AL_ILLEGAL_ENUM, and rlm@0: * AL_ILLEGAL_COMMAND macros are deprecated, but are included for rlm@0: * applications porting code from AL 1.0 rlm@0: */ rlm@0: #define OPENAL rlm@0: #define ALAPI AL_API rlm@0: #define ALAPIENTRY AL_APIENTRY rlm@0: #define AL_INVALID (-1) rlm@0: #define AL_ILLEGAL_ENUM AL_INVALID_ENUM rlm@0: #define AL_ILLEGAL_COMMAND AL_INVALID_OPERATION rlm@0: rlm@0: #define AL_VERSION_1_0 rlm@0: #define AL_VERSION_1_1 rlm@0: rlm@0: rlm@0: /** 8-bit boolean */ rlm@0: typedef char ALboolean; rlm@0: rlm@0: /** character */ rlm@0: typedef char ALchar; rlm@0: rlm@0: /** signed 8-bit 2's complement integer */ rlm@0: typedef signed char ALbyte; rlm@0: rlm@0: /** unsigned 8-bit integer */ rlm@0: typedef unsigned char ALubyte; rlm@0: rlm@0: /** signed 16-bit 2's complement integer */ rlm@0: typedef short ALshort; rlm@0: rlm@0: /** unsigned 16-bit integer */ rlm@0: typedef unsigned short ALushort; rlm@0: rlm@0: /** signed 32-bit 2's complement integer */ rlm@0: typedef int ALint; rlm@0: rlm@0: /** unsigned 32-bit integer */ rlm@0: typedef unsigned int ALuint; rlm@0: rlm@0: /** non-negative 32-bit binary integer size */ rlm@0: typedef int ALsizei; rlm@0: rlm@0: /** enumerated 32-bit value */ rlm@0: typedef int ALenum; rlm@0: rlm@0: /** 32-bit IEEE754 floating-point */ rlm@0: typedef float ALfloat; rlm@0: rlm@0: /** 64-bit IEEE754 floating-point */ rlm@0: typedef double ALdouble; rlm@0: rlm@0: /** void type (for opaque pointers only) */ rlm@0: typedef void ALvoid; rlm@0: rlm@0: rlm@0: /* Enumerant values begin at column 50. No tabs. */ rlm@0: rlm@0: /* "no distance model" or "no buffer" */ rlm@0: #define AL_NONE 0 rlm@0: rlm@0: /* Boolean False. */ rlm@0: #define AL_FALSE 0 rlm@0: rlm@0: /** Boolean True. */ rlm@0: #define AL_TRUE 1 rlm@0: rlm@0: /** Indicate Source has relative coordinates. */ rlm@0: #define AL_SOURCE_RELATIVE 0x202 rlm@0: rlm@0: rlm@0: rlm@0: /** rlm@0: * Directional source, inner cone angle, in degrees. rlm@0: * Range: [0-360] rlm@0: * Default: 360 rlm@0: */ rlm@0: #define AL_CONE_INNER_ANGLE 0x1001 rlm@0: rlm@0: /** rlm@0: * Directional source, outer cone angle, in degrees. rlm@0: * Range: [0-360] rlm@0: * Default: 360 rlm@0: */ rlm@0: #define AL_CONE_OUTER_ANGLE 0x1002 rlm@0: rlm@0: /** rlm@0: * Specify the pitch to be applied at source. rlm@0: * Range: [0.5-2.0] rlm@0: * Default: 1.0 rlm@0: */ rlm@0: #define AL_PITCH 0x1003 rlm@0: rlm@0: /** rlm@0: * Specify the current location in three dimensional space. rlm@0: * OpenAL, like OpenGL, uses a right handed coordinate system, rlm@0: * where in a frontal default view X (thumb) points right, rlm@0: * Y points up (index finger), and Z points towards the rlm@0: * viewer/camera (middle finger). rlm@0: * To switch from a left handed coordinate system, flip the rlm@0: * sign on the Z coordinate. rlm@0: * Listener position is always in the world coordinate system. rlm@0: */ rlm@0: #define AL_POSITION 0x1004 rlm@0: rlm@0: /** Specify the current direction. */ rlm@0: #define AL_DIRECTION 0x1005 rlm@0: rlm@0: /** Specify the current velocity in three dimensional space. */ rlm@0: #define AL_VELOCITY 0x1006 rlm@0: rlm@0: /** rlm@0: * Indicate whether source is looping. rlm@0: * Type: ALboolean? rlm@0: * Range: [AL_TRUE, AL_FALSE] rlm@0: * Default: FALSE. rlm@0: */ rlm@0: #define AL_LOOPING 0x1007 rlm@0: rlm@0: /** rlm@0: * Indicate the buffer to provide sound samples. rlm@0: * Type: ALuint. rlm@0: * Range: any valid Buffer id. rlm@0: */ rlm@0: #define AL_BUFFER 0x1009 rlm@0: rlm@0: /** rlm@0: * Indicate the gain (volume amplification) applied. rlm@0: * Type: ALfloat. rlm@0: * Range: ]0.0- ] rlm@0: * A value of 1.0 means un-attenuated/unchanged. rlm@0: * Each division by 2 equals an attenuation of -6dB. rlm@0: * Each multiplicaton with 2 equals an amplification of +6dB. rlm@0: * A value of 0.0 is meaningless with respect to a logarithmic rlm@0: * scale; it is interpreted as zero volume - the channel rlm@0: * is effectively disabled. rlm@0: */ rlm@0: #define AL_GAIN 0x100A rlm@0: rlm@0: /* rlm@0: * Indicate minimum source attenuation rlm@0: * Type: ALfloat rlm@0: * Range: [0.0 - 1.0] rlm@0: * rlm@0: * Logarthmic rlm@0: */ rlm@0: #define AL_MIN_GAIN 0x100D rlm@0: rlm@0: /** rlm@0: * Indicate maximum source attenuation rlm@0: * Type: ALfloat rlm@0: * Range: [0.0 - 1.0] rlm@0: * rlm@0: * Logarthmic rlm@0: */ rlm@0: #define AL_MAX_GAIN 0x100E rlm@0: rlm@0: /** rlm@0: * Indicate listener orientation. rlm@0: * rlm@0: * at/up rlm@0: */ rlm@0: #define AL_ORIENTATION 0x100F rlm@0: rlm@0: /** rlm@0: * Source state information. rlm@0: */ rlm@0: #define AL_SOURCE_STATE 0x1010 rlm@0: #define AL_INITIAL 0x1011 rlm@0: #define AL_PLAYING 0x1012 rlm@0: #define AL_PAUSED 0x1013 rlm@0: #define AL_STOPPED 0x1014 rlm@0: rlm@0: /** rlm@0: * Buffer Queue params rlm@0: */ rlm@0: #define AL_BUFFERS_QUEUED 0x1015 rlm@0: #define AL_BUFFERS_PROCESSED 0x1016 rlm@0: rlm@0: /** rlm@0: * Source buffer position information rlm@0: */ rlm@0: #define AL_SEC_OFFSET 0x1024 rlm@0: #define AL_SAMPLE_OFFSET 0x1025 rlm@0: #define AL_BYTE_OFFSET 0x1026 rlm@0: rlm@0: /* rlm@0: * Source type (Static, Streaming or undetermined) rlm@0: * Source is Static if a Buffer has been attached using AL_BUFFER rlm@0: * Source is Streaming if one or more Buffers have been attached using alSourceQueueBuffers rlm@0: * Source is undetermined when it has the NULL buffer attached rlm@0: */ rlm@0: #define AL_SOURCE_TYPE 0x1027 rlm@0: #define AL_STATIC 0x1028 rlm@0: #define AL_STREAMING 0x1029 rlm@0: #define AL_UNDETERMINED 0x1030 rlm@0: rlm@0: /** Sound samples: format specifier. */ rlm@0: #define AL_FORMAT_MONO8 0x1100 rlm@0: #define AL_FORMAT_MONO16 0x1101 rlm@0: #define AL_FORMAT_STEREO8 0x1102 rlm@0: #define AL_FORMAT_STEREO16 0x1103 rlm@0: rlm@0: /** rlm@0: * source specific reference distance rlm@0: * Type: ALfloat rlm@0: * Range: 0.0 - +inf rlm@0: * rlm@0: * At 0.0, no distance attenuation occurs. Default is rlm@0: * 1.0. rlm@0: */ rlm@0: #define AL_REFERENCE_DISTANCE 0x1020 rlm@0: rlm@0: /** rlm@0: * source specific rolloff factor rlm@0: * Type: ALfloat rlm@0: * Range: 0.0 - +inf rlm@0: * rlm@0: */ rlm@0: #define AL_ROLLOFF_FACTOR 0x1021 rlm@0: rlm@0: /** rlm@0: * Directional source, outer cone gain. rlm@0: * rlm@0: * Default: 0.0 rlm@0: * Range: [0.0 - 1.0] rlm@0: * Logarithmic rlm@0: */ rlm@0: #define AL_CONE_OUTER_GAIN 0x1022 rlm@0: rlm@0: /** rlm@0: * Indicate distance above which sources are not rlm@0: * attenuated using the inverse clamped distance model. rlm@0: * rlm@0: * Default: +inf rlm@0: * Type: ALfloat rlm@0: * Range: 0.0 - +inf rlm@0: */ rlm@0: #define AL_MAX_DISTANCE 0x1023 rlm@0: rlm@0: /** rlm@0: * Sound samples: frequency, in units of Hertz [Hz]. rlm@0: * This is the number of samples per second. Half of the rlm@0: * sample frequency marks the maximum significant rlm@0: * frequency component. rlm@0: */ rlm@0: #define AL_FREQUENCY 0x2001 rlm@0: #define AL_BITS 0x2002 rlm@0: #define AL_CHANNELS 0x2003 rlm@0: #define AL_SIZE 0x2004 rlm@0: rlm@0: /** rlm@0: * Buffer state. rlm@0: * rlm@0: * Not supported for public use (yet). rlm@0: */ rlm@0: #define AL_UNUSED 0x2010 rlm@0: #define AL_PENDING 0x2011 rlm@0: #define AL_PROCESSED 0x2012 rlm@0: rlm@0: rlm@0: /** Errors: No Error. */ rlm@0: #define AL_NO_ERROR AL_FALSE rlm@0: rlm@0: /** rlm@0: * Invalid Name paramater passed to AL call. rlm@0: */ rlm@0: #define AL_INVALID_NAME 0xA001 rlm@0: rlm@0: /** rlm@0: * Invalid parameter passed to AL call. rlm@0: */ rlm@0: #define AL_INVALID_ENUM 0xA002 rlm@0: rlm@0: /** rlm@0: * Invalid enum parameter value. rlm@0: */ rlm@0: #define AL_INVALID_VALUE 0xA003 rlm@0: rlm@0: /** rlm@0: * Illegal call. rlm@0: */ rlm@0: #define AL_INVALID_OPERATION 0xA004 rlm@0: rlm@0: rlm@0: /** rlm@0: * No mojo. rlm@0: */ rlm@0: #define AL_OUT_OF_MEMORY 0xA005 rlm@0: rlm@0: rlm@0: /** Context strings: Vendor Name. */ rlm@0: #define AL_VENDOR 0xB001 rlm@0: #define AL_VERSION 0xB002 rlm@0: #define AL_RENDERER 0xB003 rlm@0: #define AL_EXTENSIONS 0xB004 rlm@0: rlm@0: /** Global tweakage. */ rlm@0: rlm@0: /** rlm@0: * Doppler scale. Default 1.0 rlm@0: */ rlm@0: #define AL_DOPPLER_FACTOR 0xC000 rlm@0: rlm@0: /** rlm@0: * Tweaks speed of propagation. rlm@0: */ rlm@0: #define AL_DOPPLER_VELOCITY 0xC001 rlm@0: rlm@0: /** rlm@0: * Speed of Sound in units per second rlm@0: */ rlm@0: #define AL_SPEED_OF_SOUND 0xC003 rlm@0: rlm@0: /** rlm@0: * Distance models rlm@0: * rlm@0: * used in conjunction with DistanceModel rlm@0: * rlm@0: * implicit: NONE, which disances distance attenuation. rlm@0: */ rlm@0: #define AL_DISTANCE_MODEL 0xD000 rlm@0: #define AL_INVERSE_DISTANCE 0xD001 rlm@0: #define AL_INVERSE_DISTANCE_CLAMPED 0xD002 rlm@0: #define AL_LINEAR_DISTANCE 0xD003 rlm@0: #define AL_LINEAR_DISTANCE_CLAMPED 0xD004 rlm@0: #define AL_EXPONENT_DISTANCE 0xD005 rlm@0: #define AL_EXPONENT_DISTANCE_CLAMPED 0xD006 rlm@0: rlm@0: /* rlm@0: * Renderer State management rlm@0: */ rlm@0: AL_API void AL_APIENTRY alEnable( ALenum capability ); rlm@0: rlm@0: AL_API void AL_APIENTRY alDisable( ALenum capability ); rlm@0: rlm@0: AL_API ALboolean AL_APIENTRY alIsEnabled( ALenum capability ); rlm@0: rlm@0: rlm@0: /* rlm@0: * State retrieval rlm@0: */ rlm@0: AL_API const ALchar* AL_APIENTRY alGetString( ALenum param ); rlm@0: rlm@0: AL_API void AL_APIENTRY alGetBooleanv( ALenum param, ALboolean* data ); rlm@0: rlm@0: AL_API void AL_APIENTRY alGetIntegerv( ALenum param, ALint* data ); rlm@0: rlm@0: AL_API void AL_APIENTRY alGetFloatv( ALenum param, ALfloat* data ); rlm@0: rlm@0: AL_API void AL_APIENTRY alGetDoublev( ALenum param, ALdouble* data ); rlm@0: rlm@0: AL_API ALboolean AL_APIENTRY alGetBoolean( ALenum param ); rlm@0: rlm@0: AL_API ALint AL_APIENTRY alGetInteger( ALenum param ); rlm@0: rlm@0: AL_API ALfloat AL_APIENTRY alGetFloat( ALenum param ); rlm@0: rlm@0: AL_API ALdouble AL_APIENTRY alGetDouble( ALenum param ); rlm@0: rlm@0: rlm@0: /* rlm@0: * Error support. rlm@0: * Obtain the most recent error generated in the AL state machine. rlm@0: */ rlm@0: AL_API ALenum AL_APIENTRY alGetError( void ); rlm@0: rlm@0: rlm@0: /* rlm@0: * Extension support. rlm@0: * Query for the presence of an extension, and obtain any appropriate rlm@0: * function pointers and enum values. rlm@0: */ rlm@0: AL_API ALboolean AL_APIENTRY alIsExtensionPresent( const ALchar* extname ); rlm@0: rlm@0: AL_API void* AL_APIENTRY alGetProcAddress( const ALchar* fname ); rlm@0: rlm@0: AL_API ALenum AL_APIENTRY alGetEnumValue( const ALchar* ename ); rlm@0: rlm@0: rlm@0: /* rlm@0: * LISTENER rlm@0: * Listener represents the location and orientation of the rlm@0: * 'user' in 3D-space. rlm@0: * rlm@0: * Properties include: - rlm@0: * rlm@0: * Gain AL_GAIN ALfloat rlm@0: * Position AL_POSITION ALfloat[3] rlm@0: * Velocity AL_VELOCITY ALfloat[3] rlm@0: * Orientation AL_ORIENTATION ALfloat[6] (Forward then Up vectors) rlm@0: */ rlm@0: rlm@0: /* rlm@0: * Set Listener parameters rlm@0: */ rlm@0: AL_API void AL_APIENTRY alListenerf( ALenum param, ALfloat value ); rlm@0: rlm@0: AL_API void AL_APIENTRY alListener3f( ALenum param, ALfloat value1, ALfloat value2, ALfloat value3 ); rlm@0: rlm@0: AL_API void AL_APIENTRY alListenerfv( ALenum param, const ALfloat* values ); rlm@0: rlm@0: AL_API void AL_APIENTRY alListeneri( ALenum param, ALint value ); rlm@0: rlm@0: AL_API void AL_APIENTRY alListener3i( ALenum param, ALint value1, ALint value2, ALint value3 ); rlm@0: rlm@0: AL_API void AL_APIENTRY alListeneriv( ALenum param, const ALint* values ); rlm@0: rlm@0: /* rlm@0: * Get Listener parameters rlm@0: */ rlm@0: AL_API void AL_APIENTRY alGetListenerf( ALenum param, ALfloat* value ); rlm@0: rlm@0: AL_API void AL_APIENTRY alGetListener3f( ALenum param, ALfloat *value1, ALfloat *value2, ALfloat *value3 ); rlm@0: rlm@0: AL_API void AL_APIENTRY alGetListenerfv( ALenum param, ALfloat* values ); rlm@0: rlm@0: AL_API void AL_APIENTRY alGetListeneri( ALenum param, ALint* value ); rlm@0: rlm@0: AL_API void AL_APIENTRY alGetListener3i( ALenum param, ALint *value1, ALint *value2, ALint *value3 ); rlm@0: rlm@0: AL_API void AL_APIENTRY alGetListeneriv( ALenum param, ALint* values ); rlm@0: rlm@0: rlm@0: /** rlm@0: * SOURCE rlm@0: * Sources represent individual sound objects in 3D-space. rlm@0: * Sources take the PCM data provided in the specified Buffer, rlm@0: * apply Source-specific modifications, and then rlm@0: * submit them to be mixed according to spatial arrangement etc. rlm@0: * rlm@0: * Properties include: - rlm@0: * rlm@0: * Gain AL_GAIN ALfloat rlm@0: * Min Gain AL_MIN_GAIN ALfloat rlm@0: * Max Gain AL_MAX_GAIN ALfloat rlm@0: * Position AL_POSITION ALfloat[3] rlm@0: * Velocity AL_VELOCITY ALfloat[3] rlm@0: * Direction AL_DIRECTION ALfloat[3] rlm@0: * Head Relative Mode AL_SOURCE_RELATIVE ALint (AL_TRUE or AL_FALSE) rlm@0: * Reference Distance AL_REFERENCE_DISTANCE ALfloat rlm@0: * Max Distance AL_MAX_DISTANCE ALfloat rlm@0: * RollOff Factor AL_ROLLOFF_FACTOR ALfloat rlm@0: * Inner Angle AL_CONE_INNER_ANGLE ALint or ALfloat rlm@0: * Outer Angle AL_CONE_OUTER_ANGLE ALint or ALfloat rlm@0: * Cone Outer Gain AL_CONE_OUTER_GAIN ALint or ALfloat rlm@0: * Pitch AL_PITCH ALfloat rlm@0: * Looping AL_LOOPING ALint (AL_TRUE or AL_FALSE) rlm@0: * MS Offset AL_MSEC_OFFSET ALint or ALfloat rlm@0: * Byte Offset AL_BYTE_OFFSET ALint or ALfloat rlm@0: * Sample Offset AL_SAMPLE_OFFSET ALint or ALfloat rlm@0: * Attached Buffer AL_BUFFER ALint rlm@0: * State (Query only) AL_SOURCE_STATE ALint rlm@0: * Buffers Queued (Query only) AL_BUFFERS_QUEUED ALint rlm@0: * Buffers Processed (Query only) AL_BUFFERS_PROCESSED ALint rlm@0: */ rlm@0: rlm@0: /* Create Source objects */ rlm@0: AL_API void AL_APIENTRY alGenSources( ALsizei n, ALuint* sources ); rlm@0: rlm@0: /* Delete Source objects */ rlm@0: AL_API void AL_APIENTRY alDeleteSources( ALsizei n, const ALuint* sources ); rlm@0: rlm@0: /* Verify a handle is a valid Source */ rlm@0: AL_API ALboolean AL_APIENTRY alIsSource( ALuint sid ); rlm@0: rlm@0: /* rlm@0: * Set Source parameters rlm@0: */ rlm@0: AL_API void AL_APIENTRY alSourcef( ALuint sid, ALenum param, ALfloat value ); rlm@0: rlm@0: AL_API void AL_APIENTRY alSource3f( ALuint sid, ALenum param, ALfloat value1, ALfloat value2, ALfloat value3 ); rlm@0: rlm@0: AL_API void AL_APIENTRY alSourcefv( ALuint sid, ALenum param, const ALfloat* values ); rlm@0: rlm@0: AL_API void AL_APIENTRY alSourcei( ALuint sid, ALenum param, ALint value ); rlm@0: rlm@0: AL_API void AL_APIENTRY alSource3i( ALuint sid, ALenum param, ALint value1, ALint value2, ALint value3 ); rlm@0: rlm@0: AL_API void AL_APIENTRY alSourceiv( ALuint sid, ALenum param, const ALint* values ); rlm@0: rlm@0: /* rlm@0: * Get Source parameters rlm@0: */ rlm@0: AL_API void AL_APIENTRY alGetSourcef( ALuint sid, ALenum param, ALfloat* value ); rlm@0: rlm@0: AL_API void AL_APIENTRY alGetSource3f( ALuint sid, ALenum param, ALfloat* value1, ALfloat* value2, ALfloat* value3); rlm@0: rlm@0: AL_API void AL_APIENTRY alGetSourcefv( ALuint sid, ALenum param, ALfloat* values ); rlm@0: rlm@0: AL_API void AL_APIENTRY alGetSourcei( ALuint sid, ALenum param, ALint* value ); rlm@0: rlm@0: AL_API void AL_APIENTRY alGetSource3i( ALuint sid, ALenum param, ALint* value1, ALint* value2, ALint* value3); rlm@0: rlm@0: AL_API void AL_APIENTRY alGetSourceiv( ALuint sid, ALenum param, ALint* values ); rlm@0: rlm@0: rlm@0: /* rlm@0: * Source vector based playback calls rlm@0: */ rlm@0: rlm@0: /* Play, replay, or resume (if paused) a list of Sources */ rlm@0: AL_API void AL_APIENTRY alSourcePlayv( ALsizei ns, const ALuint *sids ); rlm@0: rlm@0: /* Stop a list of Sources */ rlm@0: AL_API void AL_APIENTRY alSourceStopv( ALsizei ns, const ALuint *sids ); rlm@0: rlm@0: /* Rewind a list of Sources */ rlm@0: AL_API void AL_APIENTRY alSourceRewindv( ALsizei ns, const ALuint *sids ); rlm@0: rlm@0: /* Pause a list of Sources */ rlm@0: AL_API void AL_APIENTRY alSourcePausev( ALsizei ns, const ALuint *sids ); rlm@0: rlm@0: /* rlm@0: * Source based playback calls rlm@0: */ rlm@0: rlm@0: /* Play, replay, or resume a Source */ rlm@0: AL_API void AL_APIENTRY alSourcePlay( ALuint sid ); rlm@0: rlm@0: /* Stop a Source */ rlm@0: AL_API void AL_APIENTRY alSourceStop( ALuint sid ); rlm@0: rlm@0: /* Rewind a Source (set playback postiton to beginning) */ rlm@0: AL_API void AL_APIENTRY alSourceRewind( ALuint sid ); rlm@0: rlm@0: /* Pause a Source */ rlm@0: AL_API void AL_APIENTRY alSourcePause( ALuint sid ); rlm@0: rlm@0: /* rlm@0: * Source Queuing rlm@0: */ rlm@0: AL_API void AL_APIENTRY alSourceQueueBuffers( ALuint sid, ALsizei numEntries, const ALuint *bids ); rlm@0: rlm@0: AL_API void AL_APIENTRY alSourceUnqueueBuffers( ALuint sid, ALsizei numEntries, ALuint *bids ); rlm@0: rlm@0: rlm@0: /** rlm@0: * BUFFER rlm@0: * Buffer objects are storage space for sample data. rlm@0: * Buffers are referred to by Sources. One Buffer can be used rlm@0: * by multiple Sources. rlm@0: * rlm@0: * Properties include: - rlm@0: * rlm@0: * Frequency (Query only) AL_FREQUENCY ALint rlm@0: * Size (Query only) AL_SIZE ALint rlm@0: * Bits (Query only) AL_BITS ALint rlm@0: * Channels (Query only) AL_CHANNELS ALint rlm@0: */ rlm@0: rlm@0: /* Create Buffer objects */ rlm@0: AL_API void AL_APIENTRY alGenBuffers( ALsizei n, ALuint* buffers ); rlm@0: rlm@0: /* Delete Buffer objects */ rlm@0: AL_API void AL_APIENTRY alDeleteBuffers( ALsizei n, const ALuint* buffers ); rlm@0: rlm@0: /* Verify a handle is a valid Buffer */ rlm@0: AL_API ALboolean AL_APIENTRY alIsBuffer( ALuint bid ); rlm@0: rlm@0: /* Specify the data to be copied into a buffer */ rlm@0: AL_API void AL_APIENTRY alBufferData( ALuint bid, ALenum format, const ALvoid* data, ALsizei size, ALsizei freq ); rlm@0: rlm@0: /* rlm@0: * Set Buffer parameters rlm@0: */ rlm@0: AL_API void AL_APIENTRY alBufferf( ALuint bid, ALenum param, ALfloat value ); rlm@0: rlm@0: AL_API void AL_APIENTRY alBuffer3f( ALuint bid, ALenum param, ALfloat value1, ALfloat value2, ALfloat value3 ); rlm@0: rlm@0: AL_API void AL_APIENTRY alBufferfv( ALuint bid, ALenum param, const ALfloat* values ); rlm@0: rlm@0: AL_API void AL_APIENTRY alBufferi( ALuint bid, ALenum param, ALint value ); rlm@0: rlm@0: AL_API void AL_APIENTRY alBuffer3i( ALuint bid, ALenum param, ALint value1, ALint value2, ALint value3 ); rlm@0: rlm@0: AL_API void AL_APIENTRY alBufferiv( ALuint bid, ALenum param, const ALint* values ); rlm@0: rlm@0: /* rlm@0: * Get Buffer parameters rlm@0: */ rlm@0: AL_API void AL_APIENTRY alGetBufferf( ALuint bid, ALenum param, ALfloat* value ); rlm@0: rlm@0: AL_API void AL_APIENTRY alGetBuffer3f( ALuint bid, ALenum param, ALfloat* value1, ALfloat* value2, ALfloat* value3); rlm@0: rlm@0: AL_API void AL_APIENTRY alGetBufferfv( ALuint bid, ALenum param, ALfloat* values ); rlm@0: rlm@0: AL_API void AL_APIENTRY alGetBufferi( ALuint bid, ALenum param, ALint* value ); rlm@0: rlm@0: AL_API void AL_APIENTRY alGetBuffer3i( ALuint bid, ALenum param, ALint* value1, ALint* value2, ALint* value3); rlm@0: rlm@0: AL_API void AL_APIENTRY alGetBufferiv( ALuint bid, ALenum param, ALint* values ); rlm@0: rlm@0: rlm@0: /* rlm@0: * Global Parameters rlm@0: */ rlm@0: AL_API void AL_APIENTRY alDopplerFactor( ALfloat value ); rlm@0: rlm@0: AL_API void AL_APIENTRY alDopplerVelocity( ALfloat value ); rlm@0: rlm@0: AL_API void AL_APIENTRY alSpeedOfSound( ALfloat value ); rlm@0: rlm@0: AL_API void AL_APIENTRY alDistanceModel( ALenum distanceModel ); rlm@0: rlm@0: /* rlm@0: * Pointer-to-function types, useful for dynamically getting AL entry points. rlm@0: */ rlm@0: typedef void (AL_APIENTRY *LPALENABLE)( ALenum capability ); rlm@0: typedef void (AL_APIENTRY *LPALDISABLE)( ALenum capability ); rlm@0: typedef ALboolean (AL_APIENTRY *LPALISENABLED)( ALenum capability ); rlm@0: typedef const ALchar* (AL_APIENTRY *LPALGETSTRING)( ALenum param ); rlm@0: typedef void (AL_APIENTRY *LPALGETBOOLEANV)( ALenum param, ALboolean* data ); rlm@0: typedef void (AL_APIENTRY *LPALGETINTEGERV)( ALenum param, ALint* data ); rlm@0: typedef void (AL_APIENTRY *LPALGETFLOATV)( ALenum param, ALfloat* data ); rlm@0: typedef void (AL_APIENTRY *LPALGETDOUBLEV)( ALenum param, ALdouble* data ); rlm@0: typedef ALboolean (AL_APIENTRY *LPALGETBOOLEAN)( ALenum param ); rlm@0: typedef ALint (AL_APIENTRY *LPALGETINTEGER)( ALenum param ); rlm@0: typedef ALfloat (AL_APIENTRY *LPALGETFLOAT)( ALenum param ); rlm@0: typedef ALdouble (AL_APIENTRY *LPALGETDOUBLE)( ALenum param ); rlm@0: typedef ALenum (AL_APIENTRY *LPALGETERROR)( void ); rlm@0: typedef ALboolean (AL_APIENTRY *LPALISEXTENSIONPRESENT)(const ALchar* extname ); rlm@0: typedef void* (AL_APIENTRY *LPALGETPROCADDRESS)( const ALchar* fname ); rlm@0: typedef ALenum (AL_APIENTRY *LPALGETENUMVALUE)( const ALchar* ename ); rlm@0: typedef void (AL_APIENTRY *LPALLISTENERF)( ALenum param, ALfloat value ); rlm@0: typedef void (AL_APIENTRY *LPALLISTENER3F)( ALenum param, ALfloat value1, ALfloat value2, ALfloat value3 ); rlm@0: typedef void (AL_APIENTRY *LPALLISTENERFV)( ALenum param, const ALfloat* values ); rlm@0: typedef void (AL_APIENTRY *LPALLISTENERI)( ALenum param, ALint value ); rlm@0: typedef void (AL_APIENTRY *LPALLISTENER3I)( ALenum param, ALint value1, ALint value2, ALint value3 ); rlm@0: typedef void (AL_APIENTRY *LPALLISTENERIV)( ALenum param, const ALint* values ); rlm@0: typedef void (AL_APIENTRY *LPALGETLISTENERF)( ALenum param, ALfloat* value ); rlm@0: typedef void (AL_APIENTRY *LPALGETLISTENER3F)( ALenum param, ALfloat *value1, ALfloat *value2, ALfloat *value3 ); rlm@0: typedef void (AL_APIENTRY *LPALGETLISTENERFV)( ALenum param, ALfloat* values ); rlm@0: typedef void (AL_APIENTRY *LPALGETLISTENERI)( ALenum param, ALint* value ); rlm@0: typedef void (AL_APIENTRY *LPALGETLISTENER3I)( ALenum param, ALint *value1, ALint *value2, ALint *value3 ); rlm@0: typedef void (AL_APIENTRY *LPALGETLISTENERIV)( ALenum param, ALint* values ); rlm@0: typedef void (AL_APIENTRY *LPALGENSOURCES)( ALsizei n, ALuint* sources ); rlm@0: typedef void (AL_APIENTRY *LPALDELETESOURCES)( ALsizei n, const ALuint* sources ); rlm@0: typedef ALboolean (AL_APIENTRY *LPALISSOURCE)( ALuint sid ); rlm@0: typedef void (AL_APIENTRY *LPALSOURCEF)( ALuint sid, ALenum param, ALfloat value); rlm@0: typedef void (AL_APIENTRY *LPALSOURCE3F)( ALuint sid, ALenum param, ALfloat value1, ALfloat value2, ALfloat value3 ); rlm@0: typedef void (AL_APIENTRY *LPALSOURCEFV)( ALuint sid, ALenum param, const ALfloat* values ); rlm@0: typedef void (AL_APIENTRY *LPALSOURCEI)( ALuint sid, ALenum param, ALint value); rlm@0: typedef void (AL_APIENTRY *LPALSOURCE3I)( ALuint sid, ALenum param, ALint value1, ALint value2, ALint value3 ); rlm@0: typedef void (AL_APIENTRY *LPALSOURCEIV)( ALuint sid, ALenum param, const ALint* values ); rlm@0: typedef void (AL_APIENTRY *LPALGETSOURCEF)( ALuint sid, ALenum param, ALfloat* value ); rlm@0: typedef void (AL_APIENTRY *LPALGETSOURCE3F)( ALuint sid, ALenum param, ALfloat* value1, ALfloat* value2, ALfloat* value3); rlm@0: typedef void (AL_APIENTRY *LPALGETSOURCEFV)( ALuint sid, ALenum param, ALfloat* values ); rlm@0: typedef void (AL_APIENTRY *LPALGETSOURCEI)( ALuint sid, ALenum param, ALint* value ); rlm@0: typedef void (AL_APIENTRY *LPALGETSOURCE3I)( ALuint sid, ALenum param, ALint* value1, ALint* value2, ALint* value3); rlm@0: typedef void (AL_APIENTRY *LPALGETSOURCEIV)( ALuint sid, ALenum param, ALint* values ); rlm@0: typedef void (AL_APIENTRY *LPALSOURCEPLAYV)( ALsizei ns, const ALuint *sids ); rlm@0: typedef void (AL_APIENTRY *LPALSOURCESTOPV)( ALsizei ns, const ALuint *sids ); rlm@0: typedef void (AL_APIENTRY *LPALSOURCEREWINDV)( ALsizei ns, const ALuint *sids ); rlm@0: typedef void (AL_APIENTRY *LPALSOURCEPAUSEV)( ALsizei ns, const ALuint *sids ); rlm@0: typedef void (AL_APIENTRY *LPALSOURCEPLAY)( ALuint sid ); rlm@0: typedef void (AL_APIENTRY *LPALSOURCESTOP)( ALuint sid ); rlm@0: typedef void (AL_APIENTRY *LPALSOURCEREWIND)( ALuint sid ); rlm@0: typedef void (AL_APIENTRY *LPALSOURCEPAUSE)( ALuint sid ); rlm@0: typedef void (AL_APIENTRY *LPALSOURCEQUEUEBUFFERS)(ALuint sid, ALsizei numEntries, const ALuint *bids ); rlm@0: typedef void (AL_APIENTRY *LPALSOURCEUNQUEUEBUFFERS)(ALuint sid, ALsizei numEntries, ALuint *bids ); rlm@0: typedef void (AL_APIENTRY *LPALGENBUFFERS)( ALsizei n, ALuint* buffers ); rlm@0: typedef void (AL_APIENTRY *LPALDELETEBUFFERS)( ALsizei n, const ALuint* buffers ); rlm@0: typedef ALboolean (AL_APIENTRY *LPALISBUFFER)( ALuint bid ); rlm@0: typedef void (AL_APIENTRY *LPALBUFFERDATA)( ALuint bid, ALenum format, const ALvoid* data, ALsizei size, ALsizei freq ); rlm@0: typedef void (AL_APIENTRY *LPALBUFFERF)( ALuint bid, ALenum param, ALfloat value); rlm@0: typedef void (AL_APIENTRY *LPALBUFFER3F)( ALuint bid, ALenum param, ALfloat value1, ALfloat value2, ALfloat value3 ); rlm@0: typedef void (AL_APIENTRY *LPALBUFFERFV)( ALuint bid, ALenum param, const ALfloat* values ); rlm@0: typedef void (AL_APIENTRY *LPALBUFFERI)( ALuint bid, ALenum param, ALint value); rlm@0: typedef void (AL_APIENTRY *LPALBUFFER3I)( ALuint bid, ALenum param, ALint value1, ALint value2, ALint value3 ); rlm@0: typedef void (AL_APIENTRY *LPALBUFFERIV)( ALuint bid, ALenum param, const ALint* values ); rlm@0: typedef void (AL_APIENTRY *LPALGETBUFFERF)( ALuint bid, ALenum param, ALfloat* value ); rlm@0: typedef void (AL_APIENTRY *LPALGETBUFFER3F)( ALuint bid, ALenum param, ALfloat* value1, ALfloat* value2, ALfloat* value3); rlm@0: typedef void (AL_APIENTRY *LPALGETBUFFERFV)( ALuint bid, ALenum param, ALfloat* values ); rlm@0: typedef void (AL_APIENTRY *LPALGETBUFFERI)( ALuint bid, ALenum param, ALint* value ); rlm@0: typedef void (AL_APIENTRY *LPALGETBUFFER3I)( ALuint bid, ALenum param, ALint* value1, ALint* value2, ALint* value3); rlm@0: typedef void (AL_APIENTRY *LPALGETBUFFERIV)( ALuint bid, ALenum param, ALint* values ); rlm@0: typedef void (AL_APIENTRY *LPALDOPPLERFACTOR)( ALfloat value ); rlm@0: typedef void (AL_APIENTRY *LPALDOPPLERVELOCITY)( ALfloat value ); rlm@0: typedef void (AL_APIENTRY *LPALSPEEDOFSOUND)( ALfloat value ); rlm@0: typedef void (AL_APIENTRY *LPALDISTANCEMODEL)( ALenum distanceModel ); rlm@0: rlm@0: #if defined(TARGET_OS_MAC) && TARGET_OS_MAC rlm@0: #pragma export off rlm@0: #endif rlm@0: rlm@0: #if defined(__cplusplus) rlm@0: } /* extern "C" */ rlm@0: #endif rlm@0: rlm@0: #endif /* AL_AL_H */