* Updated AL headers

* Added a Makefile option USE_LOCAL_HEADERS which can be disabled to use system
  headers if desired
This commit is contained in:
Tim Angus 2005-12-01 20:53:28 +00:00
parent acb810b972
commit 1b314e8934
12 changed files with 690 additions and 793 deletions

26
README
View file

@ -1,8 +1,8 @@
Name of this project: icculus.org/quake3
URL: http://www.icculus.org/quake3
Hello and welcome to the Quake 3 source repository on icculus.org
I'll be your maintainer, zakk@icculus.org, please send all your patches to
the bugzilla: https://bugzilla.icculus.org, or join the mailing list
I'll be your maintainer, zakk@icculus.org, please send all your patches to
the bugzilla: https://bugzilla.icculus.org, or join the mailing list
(quake3-subscribe@icculus.org) and submit your patch there.
Best case scenario is you subscribe to the ml, submit your patch to
bugzilla, and then post the url to the mailing list.
@ -40,10 +40,11 @@ Compiling (Under Linux)
2. Run 'make'
For distribution maintainers, you can set some make variables:
OPTIMIZE - use this for custom CFLAGS
DEFAULT_BASEDIR - extra path to search for baseq3 and such
BUILD_SERVER - build the 'q3ded' server binary (1 = build it, default = 1)
BUILD_CLIENT - build the 'quake3' client binary (1 = build it, default = 1)
OPTIMIZE - use this for custom CFLAGS
DEFAULT_BASEDIR - extra path to search for baseq3 and such
BUILD_SERVER - build the 'q3ded' server binary (1 = build it, default = 1)
BUILD_CLIENT - build the 'quake3' client binary (1 = build it, default = 1)
USE_LOCAL_HEADERS - use system headers instead of ones local to ioq3
Installing under Linux
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@ -109,14 +110,11 @@ follows:
4. If you didn't install the DirectX SDK in C:\DXSDK\, add DXSDK_DIR to
code/unix/Makefile.local to reflect the new location.
5. If you want OpenAL support, aquire some OpenAL headers and put them in
/include/AL/ beneath your MinGW dir. If not, add "USE_OPENAL=0" to
code/unix/Makefile.local.
6. Perform the usual precompilation sacrificial ritual.
7. Open an MSys terminal, and follow the instructions for compiling on Linux.
8. Steal underpants
9. ?????
10. Profit!
5. Perform the usual precompilation sacrificial ritual.
6. Open an MSys terminal, and follow the instructions for compiling on Linux.
7. Steal underpants
8. ?????
9. Profit!
Creating mods compatible with Q3 1.32b
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

16
code/AL/VERSION Normal file
View file

@ -0,0 +1,16 @@
This file identifies the version of the AL headers in this directory. If you
change or update the AL headers in any way, please make sure you also update
this file.
SVN revision >= 402
-------------------
Headers are from OpenAL CVS 6th August 2005:
$ cvs -d:pserver:guest@opensource.creative.com:/usr/local/cvs-repository
login
(use password "guest")
$ cvs -d:pserver:guest@opensource.creative.com:/usr/local/cvs-repository
co -D "6 Aug 2005" openal
SVN revision >= 374
-------------------
Standard OpenAL 1.0 headers

View file

@ -26,17 +26,24 @@
extern "C" {
#endif
/* WIN32, not Xbox */
#ifdef _WIN32
#define ALAPI __declspec(dllexport)
#define ALAPIENTRY __cdecl
#ifndef _XBOX
#ifdef _OPENAL32LIB
#define ALAPI __declspec(dllexport)
#else
#define ALAPI __declspec(dllimport)
#endif
#define ALAPIENTRY __cdecl
#define AL_CALLBACK
#else /* _WIN32 */
#endif
#endif
#ifdef TARGET_OS_MAC
#if TARGET_OS_MAC
#pragma export on
#endif /* TARGET_OS_MAC */
#endif /* TARGET_OS_MAC */
#endif
#endif
#ifndef ALAPI
#define ALAPI
@ -50,526 +57,437 @@ extern "C" {
#define AL_CALLBACK
#endif
#endif /* _WIN32 */
#define OPENAL
#ifndef AL_NO_PROTOTYPES
/**
* OpenAL Maintenance Functions
* State Management and Query.
* Error Handling.
* Extension Support.
/*
* Renderer State management
*/
/** Renderer State management. */
ALAPI void ALAPIENTRY alEnable( ALenum capability );
ALAPI void ALAPIENTRY alDisable( ALenum capability );
ALAPI ALboolean ALAPIENTRY alIsEnabled( ALenum capability );
/** Application preferences for driver performance choices. */
ALAPI void ALAPIENTRY alHint( ALenum target, ALenum mode );
/** State retrieval. */
/*
* State retrieval
*/
ALAPI const ALchar* ALAPIENTRY alGetString( ALenum param );
ALAPI void ALAPIENTRY alGetBooleanv( ALenum param, ALboolean* data );
/** State retrieval. */
ALAPI void ALAPIENTRY alGetIntegerv( ALenum param, ALint* data );
/** State retrieval. */
ALAPI void ALAPIENTRY alGetFloatv( ALenum param, ALfloat* data );
/** State retrieval. */
ALAPI void ALAPIENTRY alGetDoublev( ALenum param, ALdouble* data );
/** State retrieval. */
ALAPI const ALubyte* ALAPIENTRY alGetString( ALenum param );
/** State retrieval.through return value ( for compatibility ) */
ALAPI ALboolean ALAPIENTRY alGetBoolean( ALenum param );
ALAPI ALint ALAPIENTRY alGetInteger( ALenum param );
ALAPI ALfloat ALAPIENTRY alGetFloat( ALenum param );
ALAPI ALdouble ALAPIENTRY alGetDouble( ALenum param );
/**
/*
* Error support.
* Obtain the most recent error generated in the AL state machine.
*/
ALAPI ALenum ALAPIENTRY alGetError( ALvoid );
/**
/*
* Extension support.
* Obtain the address of a function (usually an extension)
* with the name fname. All addresses are context-independent.
* Query for the presence of an extension, and obtain any appropriate
* function pointers and enum values.
*/
ALAPI ALboolean ALAPIENTRY alIsExtensionPresent( const ALubyte* fname );
ALAPI ALboolean ALAPIENTRY alIsExtensionPresent( const ALchar* extname );
ALAPI void* ALAPIENTRY alGetProcAddress( const ALchar* fname );
/**
* Extension support.
* Obtain the address of a function (usually an extension)
* with the name fname. All addresses are context-independent.
*/
ALAPI void* ALAPIENTRY alGetProcAddress( const ALubyte* fname );
ALAPI ALenum ALAPIENTRY alGetEnumValue( const ALchar* ename );
/**
* Extension support.
* Obtain the integer value of an enumeration (usually an extension) with the name ename.
*/
ALAPI ALenum ALAPIENTRY alGetEnumValue( const ALubyte* ename );
/**
* LISTENER
* Listener is the sample position for a given context.
* The multi-channel (usually stereo) output stream generated
* by the mixer is parametrized by this Listener object:
* its position and velocity relative to Sources, within
* occluder and reflector geometry.
*/
/**
*
* Listener Gain: default 1.0f.
*/
ALAPI void ALAPIENTRY alListenerf( ALenum pname, ALfloat param );
ALAPI void ALAPIENTRY alListeneri( ALenum pname, ALint param );
/**
*
* Listener Position: ALfloat[3]
* Listener Velocity: ALfloat[3]
*/
ALAPI void ALAPIENTRY alListener3f( ALenum pname,
ALfloat f1, ALfloat f2, ALfloat f3 );
/**
*
* Listener Position: ALfloat[3]
* Listener Velocity: ALfloat[3]
* Listener Orientation: ALfloat[6] (forward and up vector).
*/
ALAPI void ALAPIENTRY alListenerfv( ALenum pname, ALfloat* param );
/*
* Retrieve listener information.
* LISTENER
* Listener represents the location and orientation of the
* 'user' in 3D-space.
*
* Properties include: -
*
* Gain AL_GAIN ALfloat
* Position AL_POSITION ALfloat[3]
* Velocity AL_VELOCITY ALfloat[3]
* Orientation AL_ORIENTATION ALfloat[6] (Forward then Up vectors)
*/
/*
* Set Listener parameters
*/
ALAPI void ALAPIENTRY alGetListeneri( ALenum pname, ALint* value );
ALAPI void ALAPIENTRY alGetListenerf( ALenum pname, ALfloat* value );
ALAPI void ALAPIENTRY alListenerf( ALenum param, ALfloat value );
ALAPI void ALAPIENTRY alGetListeneriv( ALenum pname, ALint* value );
ALAPI void ALAPIENTRY alGetListenerfv( ALenum pname, ALfloat* values );
ALAPI void ALAPIENTRY alListener3f( ALenum param, ALfloat value1, ALfloat value2, ALfloat value3 );
ALAPI void ALAPIENTRY alListenerfv( ALenum param, const ALfloat* values );
ALAPI void ALAPIENTRY alListeneri( ALenum param, ALint value );
ALAPI void ALAPIENTRY alListener3i( ALenum param, ALint value1, ALint value2, ALint value3 );
ALAPI void ALAPIENTRY alListeneriv( ALenum param, const ALint* values );
/*
* Get Listener parameters
*/
ALAPI void ALAPIENTRY alGetListenerf( ALenum param, ALfloat* value );
ALAPI void ALAPIENTRY alGetListener3f( ALenum param, ALfloat *value1, ALfloat *value2, ALfloat *value3 );
ALAPI void ALAPIENTRY alGetListenerfv( ALenum param, ALfloat* values );
ALAPI void ALAPIENTRY alGetListeneri( ALenum param, ALint* value );
ALAPI void ALAPIENTRY alGetListener3i( ALenum param, ALint *value1, ALint *value2, ALint *value3 );
ALAPI void ALAPIENTRY alGetListeneriv( ALenum param, ALint* values );
ALAPI void ALAPIENTRY alGetListener3f( ALenum pname,
ALfloat *f1, ALfloat *f2, ALfloat *f3 );
/**
* SOURCE
* Source objects are by default localized. Sources
* take the PCM data provided in the specified Buffer,
* apply Source-specific modifications, and then
* submit them to be mixed according to spatial
* arrangement etc.
* Sources represent individual sound objects in 3D-space.
* Sources take the PCM data provided in the specified Buffer,
* apply Source-specific modifications, and then
* submit them to be mixed according to spatial arrangement etc.
*
* Properties include: -
*
* Gain AL_GAIN ALfloat
* Min Gain AL_MIN_GAIN ALfloat
* Max Gain AL_MAX_GAIN ALfloat
* Position AL_POSITION ALfloat[3]
* Velocity AL_VELOCITY ALfloat[3]
* Direction AL_DIRECTION ALfloat[3]
* Head Relative Mode AL_SOURCE_RELATIVE ALint (AL_TRUE or AL_FALSE)
* Reference Distance AL_REFERENCE_DISTANCE ALfloat
* Max Distance AL_MAX_DISTANCE ALfloat
* RollOff Factor AL_ROLLOFF_FACTOR ALfloat
* Inner Angle AL_CONE_INNER_ANGLE ALint or ALfloat
* Outer Angle AL_CONE_OUTER_ANGLE ALint or ALfloat
* Cone Outer Gain AL_CONE_OUTER_GAIN ALint or ALfloat
* Pitch AL_PITCH ALfloat
* Looping AL_LOOPING ALint (AL_TRUE or AL_FALSE)
* MS Offset AL_MSEC_OFFSET ALint or ALfloat
* Byte Offset AL_BYTE_OFFSET ALint or ALfloat
* Sample Offset AL_SAMPLE_OFFSET ALint or ALfloat
* Attached Buffer AL_BUFFER ALint
* State (Query only) AL_SOURCE_STATE ALint
* Buffers Queued (Query only) AL_BUFFERS_QUEUED ALint
* Buffers Processed (Query only) AL_BUFFERS_PROCESSED ALint
*/
/** Create Source objects. */
/* Create Source objects */
ALAPI void ALAPIENTRY alGenSources( ALsizei n, ALuint* sources );
/** Delete Source objects. */
ALAPI void ALAPIENTRY alDeleteSources( ALsizei n, ALuint* sources );
/* Delete Source objects */
ALAPI void ALAPIENTRY alDeleteSources( ALsizei n, const ALuint* sources );
/** Verify a handle is a valid Source. */
/* Verify a handle is a valid Source */
ALAPI ALboolean ALAPIENTRY alIsSource( ALuint sid );
/** Set an integer parameter for a Source object. */
ALAPI void ALAPIENTRY alSourcei( ALuint sid, ALenum param, ALint value );
/*
* Set Source parameters
*/
ALAPI void ALAPIENTRY alSourcef( ALuint sid, ALenum param, ALfloat value );
ALAPI void ALAPIENTRY alSource3f( ALuint sid, ALenum param,
ALfloat f1, ALfloat f2, ALfloat f3 );
ALAPI void ALAPIENTRY alSourcefv( ALuint sid, ALenum param, ALfloat* values );
/** Get an integer parameter for a Source object. */
ALAPI void ALAPIENTRY alGetSourcei( ALuint sid, ALenum pname, ALint* value );
ALAPI void ALAPIENTRY alGetSourceiv( ALuint sid, ALenum pname, ALint* values );
ALAPI void ALAPIENTRY alGetSourcef( ALuint sid, ALenum pname, ALfloat* value );
ALAPI void ALAPIENTRY alGetSourcefv( ALuint sid, ALenum pname, ALfloat* values );
ALAPI void ALAPIENTRY alSource3f( ALuint sid, ALenum param, ALfloat value1, ALfloat value2, ALfloat value3 );
/* deprecated, included for Win compatibility */
ALAPI void ALAPIENTRY alGetSource3f( ALuint sid, ALenum pname, ALfloat* value1,
ALfloat* value2, ALfloat* value3);
ALAPI void ALAPIENTRY alSourcefv( ALuint sid, ALenum param, const ALfloat* values );
ALAPI void ALAPIENTRY alSourcePlayv( ALsizei ns, ALuint *ids );
ALAPI void ALAPIENTRY alSourceStopv( ALsizei ns, ALuint *ids );
ALAPI void ALAPIENTRY alSourceRewindv( ALsizei ns, ALuint *ids );
ALAPI void ALAPIENTRY alSourcePausev( ALsizei ns, ALuint *ids );
ALAPI void ALAPIENTRY alSourcei( ALuint sid, ALenum param, ALint value );
/** Activate a source, start replay. */
ALAPI void ALAPIENTRY alSource3i( ALuint sid, ALenum param, ALint value1, ALint value2, ALint value3 );
ALAPI void ALAPIENTRY alSourceiv( ALuint sid, ALenum param, const ALint* values );
/*
* Get Source parameters
*/
ALAPI void ALAPIENTRY alGetSourcef( ALuint sid, ALenum param, ALfloat* value );
ALAPI void ALAPIENTRY alGetSource3f( ALuint sid, ALenum param, ALfloat* value1, ALfloat* value2, ALfloat* value3);
ALAPI void ALAPIENTRY alGetSourcefv( ALuint sid, ALenum param, ALfloat* values );
ALAPI void ALAPIENTRY alGetSourcei( ALuint sid, ALenum param, ALint* value );
ALAPI void ALAPIENTRY alGetSource3i( ALuint sid, ALenum param, ALint* value1, ALint* value2, ALint* value3);
ALAPI void ALAPIENTRY alGetSourceiv( ALuint sid, ALenum param, ALint* values );
/*
* Source vector based playback calls
*/
/* Play, replay, or resume (if paused) a list of Sources */
ALAPI void ALAPIENTRY alSourcePlayv( ALsizei ns, const ALuint *sids );
/* Stop a list of Sources */
ALAPI void ALAPIENTRY alSourceStopv( ALsizei ns, const ALuint *sids );
/* Rewind a list of Sources */
ALAPI void ALAPIENTRY alSourceRewindv( ALsizei ns, const ALuint *sids );
/* Pause a list of Sources */
ALAPI void ALAPIENTRY alSourcePausev( ALsizei ns, const ALuint *sids );
/*
* Source based playback calls
*/
/* Play, replay, or resume a Source */
ALAPI void ALAPIENTRY alSourcePlay( ALuint sid );
/**
* Pause a source,
* temporarily remove it from the mixer list.
*/
ALAPI void ALAPIENTRY alSourcePause( ALuint sid );
/* Stop a Source */
ALAPI void ALAPIENTRY alSourceStop( ALuint sid );
/**
* Rewind a source,
* set the source to play at the beginning.
*/
/* Rewind a Source (set playback postiton to beginning) */
ALAPI void ALAPIENTRY alSourceRewind( ALuint sid );
/**
* Stop a source,
* temporarily remove it from the mixer list,
* and reset its internal state to pre-Play.
* To remove a Source completely, it has to be
* deleted following Stop, or before Play.
/* Pause a Source */
ALAPI void ALAPIENTRY alSourcePause( ALuint sid );
/*
* Source Queuing
*/
ALAPI void ALAPIENTRY alSourceStop( ALuint sid );
ALAPI void ALAPIENTRY alSourceQueueBuffers( ALuint sid, ALsizei numEntries, const ALuint *bids );
ALAPI void ALAPIENTRY alSourceUnqueueBuffers( ALuint sid, ALsizei numEntries, ALuint *bids );
/**
* BUFFER
* Buffer objects are storage space for sample data.
* Buffers are referred to by Sources. There can be more than
* one Source using the same Buffer data. If Buffers have
* to be duplicated on a per-Source basis, the driver has to
* take care of allocation, copying, and deallocation as well
* as propagating buffer data changes.
* Buffers are referred to by Sources. One Buffer can be used
* by multiple Sources.
*
* Properties include: -
*
* Frequency (Query only) AL_FREQUENCY ALint
* Size (Query only) AL_SIZE ALint
* Bits (Query only) AL_BITS ALint
* Channels (Query only) AL_CHANNELS ALint
*/
/** Buffer object generation. */
/* Create Buffer objects */
ALAPI void ALAPIENTRY alGenBuffers( ALsizei n, ALuint* buffers );
ALAPI void ALAPIENTRY alDeleteBuffers( ALsizei n, ALuint* buffers );
/* Delete Buffer objects */
ALAPI void ALAPIENTRY alDeleteBuffers( ALsizei n, const ALuint* buffers );
/* Verify a handle is a valid Buffer */
ALAPI ALboolean ALAPIENTRY alIsBuffer( ALuint bid );
ALAPI ALboolean ALAPIENTRY alIsBuffer( ALuint buffer );
/* Specify the data to be copied into a buffer */
ALAPI void ALAPIENTRY alBufferData( ALuint bid, ALenum format, const ALvoid* data, ALsizei size, ALsizei freq );
/**
* Specify the data to be filled into a buffer.
/*
* Set Buffer parameters
*/
ALAPI void ALAPIENTRY alBufferData( ALuint buffer,
ALenum format,
ALvoid* data,
ALsizei size,
ALsizei freq );
ALAPI void ALAPIENTRY alBufferf( ALuint bid, ALenum param, ALfloat value );
ALAPI void ALAPIENTRY alGetBufferi( ALuint buffer, ALenum param, ALint* value );
ALAPI void ALAPIENTRY alGetBufferf( ALuint buffer, ALenum param, ALfloat* value );
ALAPI void ALAPIENTRY alGetBufferiv( ALuint buffer, ALenum param, ALint *v);
ALAPI void ALAPIENTRY alGetBufferfv( ALuint buffer, ALenum param, ALfloat *v);
ALAPI void ALAPIENTRY alBuffer3f( ALuint bid, ALenum param, ALfloat value1, ALfloat value2, ALfloat value3 );
ALAPI void ALAPIENTRY alBufferfv( ALuint bid, ALenum param, const ALfloat* values );
ALAPI void ALAPIENTRY alBufferi( ALuint bid, ALenum param, ALint value );
/**
* Frequency Domain Filters are band filters.
* Attenuation in Media (distance based)
* Reflection Material
* Occlusion Material (separating surface)
*
* Temporal Domain Filters:
* Early Reflections
* Late Reverb
*
ALAPI void ALAPIENTRY alBuffer3i( ALuint bid, ALenum param, ALint value1, ALint value2, ALint value3 );
ALAPI void ALAPIENTRY alBufferiv( ALuint bid, ALenum param, const ALint* values );
/*
* Get Buffer parameters
*/
ALAPI void ALAPIENTRY alGetBufferf( ALuint bid, ALenum param, ALfloat* value );
ALAPI void ALAPIENTRY alGetBuffer3f( ALuint bid, ALenum param, ALfloat* value1, ALfloat* value2, ALfloat* value3);
ALAPI void ALAPIENTRY alGetBufferfv( ALuint bid, ALenum param, ALfloat* values );
ALAPI void ALAPIENTRY alGetBufferi( ALuint bid, ALenum param, ALint* value );
ALAPI void ALAPIENTRY alGetBuffer3i( ALuint bid, ALenum param, ALint* value1, ALint* value2, ALint* value3);
ALAPI void ALAPIENTRY alGetBufferiv( ALuint bid, ALenum param, ALint* values );
/**
* EXTENSION: IASIG Level 2 Environment.
* Environment object generation.
* This is an EXTension that describes the Environment/Reverb
* properties according to IASIG Level 2 specifications.
*/
/**
* Allocate n environment ids and store them in the array environs.
* Returns the number of environments actually allocated.
*/
ALAPI ALsizei ALAPIENTRY alGenEnvironmentIASIG( ALsizei n, ALuint* environs );
ALAPI void ALAPIENTRY alDeleteEnvironmentIASIG( ALsizei n, ALuint* environs );
ALAPI ALboolean ALAPIENTRY alIsEnvironmentIASIG( ALuint environ );
ALAPI void ALAPIENTRY alEnvironmentiIASIG( ALuint eid, ALenum param, ALint value );
ALAPI void ALAPIENTRY alEnvironmentfIASIG( ALuint eid, ALenum param, ALfloat value );
/**
* Queue stuff
*/
ALAPI void ALAPIENTRY alSourceQueueBuffers( ALuint sid, ALsizei numEntries, ALuint *bids );
ALAPI void ALAPIENTRY alSourceUnqueueBuffers( ALuint sid, ALsizei numEntries, ALuint *bids );
ALAPI void ALAPIENTRY alQueuei( ALuint sid, ALenum param, ALint value );
/**
* Knobs and dials
/*
* Global Parameters
*/
ALAPI void ALAPIENTRY alDopplerFactor( ALfloat value );
ALAPI void ALAPIENTRY alDopplerVelocity( ALfloat value );
ALAPI void ALAPIENTRY alSpeedOfSound( ALfloat value );
ALAPI void ALAPIENTRY alDistanceModel( ALenum distanceModel );
#else /* AL_NO_PROTOTYPES */
void (ALAPIENTRY *alEnable)( ALenum capability );
void (ALAPIENTRY *alDisable)( ALenum capability );
ALboolean (ALAPIENTRY *alIsEnabled)( ALenum capability );
const ALchar* (ALAPIENTRY *alGetString)( ALenum param );
void (ALAPIENTRY *alGetBooleanv)( ALenum param, ALboolean* data );
void (ALAPIENTRY *alGetIntegerv)( ALenum param, ALint* data );
void (ALAPIENTRY *alGetFloatv)( ALenum param, ALfloat* data );
void (ALAPIENTRY *alGetDoublev)( ALenum param, ALdouble* data );
ALboolean (ALAPIENTRY *alGetBoolean)( ALenum param );
ALint (ALAPIENTRY *alGetInteger)( ALenum param );
ALfloat (ALAPIENTRY *alGetFloat)( ALenum param );
ALdouble (ALAPIENTRY *alGetDouble)( ALenum param );
ALenum (ALAPIENTRY *alGetError)( ALvoid );
ALboolean (ALAPIENTRY *alIsExtensionPresent)(const ALchar* extname );
void* (ALAPIENTRY *alGetProcAddress)( const ALchar* fname );
ALenum (ALAPIENTRY *alGetEnumValue)( const ALchar* ename );
void (ALAPIENTRY *alListenerf)( ALenum param, ALfloat value );
void (ALAPIENTRY *alListener3f)( ALenum param, ALfloat value1, ALfloat value2, ALfloat value3 );
void (ALAPIENTRY *alListenerfv)( ALenum param, const ALfloat* values );
void (ALAPIENTRY *alListeneri)( ALenum param, ALint value );
void (ALAPIENTRY *alListener3i)( ALenum param, ALint value1, ALint value2, ALint value3 );
void (ALAPIENTRY *alListeneriv)( ALenum param, const ALint* values );
void (ALAPIENTRY *alGetListenerf)( ALenum param, ALfloat* value );
void (ALAPIENTRY *alGetListener3f)( ALenum param, ALfloat *value1, ALfloat *value2, ALfloat *value3 );
void (ALAPIENTRY *alGetListenerfv)( ALenum param, ALfloat* values );
void (ALAPIENTRY *alGetListeneri)( ALenum param, ALint* value );
void (ALAPIENTRY *alGetListener3i)( ALenum param, ALint *value1, ALint *value2, ALint *value3 );
void (ALAPIENTRY *alGetListeneriv)( ALenum param, ALint* values );
void (ALAPIENTRY *alGenSources)( ALsizei n, ALuint* sources );
void (ALAPIENTRY *alDeleteSources)( ALsizei n, const ALuint* sources );
ALboolean (ALAPIENTRY *alIsSource)( ALuint sid );
void (ALAPIENTRY *alSourcef)( ALuint sid, ALenum param, ALfloat value);
void (ALAPIENTRY *alSource3f)( ALuint sid, ALenum param, ALfloat value1, ALfloat value2, ALfloat value3 );
void (ALAPIENTRY *alSourcefv)( ALuint sid, ALenum param, const ALfloat* values );
void (ALAPIENTRY *alSourcei)( ALuint sid, ALenum param, ALint value);
void (ALAPIENTRY *alSource3i)( ALuint sid, ALenum param, ALint value1, ALint value2, ALint value3 );
void (ALAPIENTRY *alSourceiv)( ALuint sid, ALenum param, const ALint* values );
void (ALAPIENTRY *alGetSourcef)( ALuint sid, ALenum param, ALfloat* value );
void (ALAPIENTRY *alGetSource3f)( ALuint sid, ALenum param, ALfloat* value1, ALfloat* value2, ALfloat* value3);
void (ALAPIENTRY *alGetSourcefv)( ALuint sid, ALenum param, ALfloat* values );
void (ALAPIENTRY *alGetSourcei)( ALuint sid, ALenum param, ALint* value );
void (ALAPIENTRY *alGetSource3i)( ALuint sid, ALenum param, ALint* value1, ALint* value2, ALint* value3);
void (ALAPIENTRY *alGetSourceiv)( ALuint sid, ALenum param, ALint* values );
void (ALAPIENTRY *alSourcePlayv)( ALsizei ns, const ALuint *sids );
void (ALAPIENTRY *alSourceStopv)( ALsizei ns, const ALuint *sids );
void (ALAPIENTRY *alSourceRewindv)( ALsizei ns, const ALuint *sids );
void (ALAPIENTRY *alSourcePausev)( ALsizei ns, const ALuint *sids );
void (ALAPIENTRY *alSourcePlay)( ALuint sid );
void (ALAPIENTRY *alSourceStop)( ALuint sid );
void (ALAPIENTRY *alSourceRewind)( ALuint sid );
void (ALAPIENTRY *alSourcePause)( ALuint sid );
void (ALAPIENTRY *alSourceQueueBuffers)( ALuint sid, ALsizei numEntries, const ALuint *bids );
void (ALAPIENTRY *alSourceUnqueueBuffers)( ALuint sid, ALsizei numEntries, ALuint *bids );
void (ALAPIENTRY *alGenBuffers)( ALsizei n, ALuint* buffers );
void (ALAPIENTRY *alDeleteBuffers)( ALsizei n, const ALuint* buffers );
ALboolean (ALAPIENTRY *alIsBuffer)( ALuint bid );
void (ALAPIENTRY *alBufferData)( ALuint bid, ALenum format, const ALvoid* data, ALsizei size, ALsizei freq );
void (ALAPIENTRY *alBufferf)( ALuint bid, ALenum param, ALfloat value);
void (ALAPIENTRY *alBuffer3f)( ALuint bid, ALenum param, ALfloat value1, ALfloat value2, ALfloat value3 );
void (ALAPIENTRY *alBufferfv)( ALuint bid, ALenum param, const ALfloat* values );
void (ALAPIENTRY *alBufferi)( ALuint bid, ALenum param, ALint value);
void (ALAPIENTRY *alBuffer3i)( ALuint bid, ALenum param, ALint value1, ALint value2, ALint value3 );
void (ALAPIENTRY *alBufferiv)( ALuint bid, ALenum param, const ALint* values );
void (ALAPIENTRY *alGetBufferf)( ALuint bid, ALenum param, ALfloat* value );
void (ALAPIENTRY *alGetBuffer3f)( ALuint bid, ALenum param, ALfloat* value1, ALfloat* value2, ALfloat* value3);
void (ALAPIENTRY *alGetBufferfv)( ALuint bid, ALenum param, ALfloat* values );
void (ALAPIENTRY *alGetBufferi)( ALuint bid, ALenum param, ALint* value );
void (ALAPIENTRY *alGetBuffer3i)( ALuint bid, ALenum param, ALint* value1, ALint* value2, ALint* value3);
void (ALAPIENTRY *alGetBufferiv)( ALuint bid, ALenum param, ALint* values );
void (ALAPIENTRY *alDopplerFactor)( ALfloat value );
void (ALAPIENTRY *alDopplerVelocity)( ALfloat value );
void (ALAPIENTRY *alSpeedOfSound)( ALfloat value );
void (ALAPIENTRY *alDistanceModel)( ALenum distanceModel );
/** OpenAL Maintenance Functions */
/* Type Definitions */
void (*alEnable)( ALenum capability );
void (*alDisable)( ALenum capability );
ALboolean (*alIsEnabled)( ALenum capability );
void (*alHint)( ALenum target, ALenum mode );
ALboolean (*alGetBoolean)( ALenum param );
ALint (*alGetInteger)( ALenum param );
ALfloat (*alGetFloat)( ALenum param );
ALdouble (*alGetDouble)( ALenum param );
void (*alGetBooleanv)( ALenum param,
ALboolean* data );
void (*alGetIntegerv)( ALenum param,
ALint* data );
void (*alGetFloatv)( ALenum param,
ALfloat* data );
void (*alGetDoublev)( ALenum param,
ALdouble* data );
const ALubyte* (*GetString)( ALenum param );
ALenum (*alGetError)( ALvoid );
/**
* Extension support.
* Query existance of extension
*/
ALboolean (*alIsExtensionPresent)(const ALubyte* fname );
/**
* Extension support.
* Obtain the address of a function (usually an extension)
* with the name fname. All addresses are context-independent.
*/
void* (*alGetProcAddress)( const ALubyte* fname );
/**
* Extension support.
* Obtain the integer value of an enumeration (usually an extension) with the name ename.
*/
ALenum (*alGetEnumValue)( const ALubyte* ename );
/**
* LISTENER
* Listener is the sample position for a given context.
* The multi-channel (usually stereo) output stream generated
* by the mixer is parametrized by this Listener object:
* its position and velocity relative to Sources, within
* occluder and reflector geometry.
*/
/**
*
* Listener Gain: default 1.0f.
*/
void (*alListenerf)( ALenum pname, ALfloat param );
/**
*
* Listener Position: ALfloat[3]
* Listener Velocity: ALfloat[3]
* Listener Orientation: ALfloat[6] (forward and up vector).
*/
void (*alListenerfv)( ALenum pname, ALfloat* param );
/*
* Retrieve listener information.
*/
void (*alGetListeneri)( ALenum pname, ALint* value );
void (*alGetListenerf)( ALenum pname, ALfloat* value );
void (*alGetListeneriv)( ALenum pname, ALint* values );
void (*alGetListenerfv)( ALenum pname, ALfloat* values );
/**
* SOURCE
* Source objects are by default localized. Sources
* take the PCM data provided in the specified Buffer,
* apply Source-specific modifications, and then
* submit them to be mixed according to spatial
* arrangement etc.
*/
/** Create Source objects. */
void (*alGenSources)( ALsizei n, ALuint* sources );
/** Delete Source objects. */
void (*alDeleteSources)( ALsizei n, ALuint* sources );
/** Verify a handle is a valid Source. */
ALboolean (*alIsSource)( ALuint sid );
/** Set an integer parameter for a Source object. */
void (*alSourcei)( ALuint sid, ALenum param, ALint value);
/** Set a float parameter for a Source object. */
void (*alSourcef)( ALuint sid, ALenum param, ALfloat value);
/** Set a 3 float parameter for a Source object. */
void (*alSource3f)( ALuint sid, ALenum param,
ALfloat f1, ALfloat f2, ALfloat f3 );
/** Set a float vector parameter for a Source object. */
void (*alSourcefv)( ALuint sid, ALenum param,
ALfloat* values );
/** Get an integer scalar parameter for a Source object. */
void (*alGetSourcei)( ALuint sid,
ALenum pname, ALint* value );
/** Get an integer parameter for a Source object. */
void (*alGetSourceiv)( ALuint sid,
ALenum pname, ALint* values );
/** Get a float scalar parameter for a Source object. */
void (*alGetSourcef)( ALuint sid,
ALenum pname, ALfloat* value );
/** Get three float scalar parameter for a Source object. */
void (*alGetSource3f)( ALuint sid, ALenum pname,
ALfloat* value1,
ALfloat* value2,
ALfloat* value3);
/** Get a float vector parameter for a Source object. */
void (*alGetSourcefv)( ALuint sid,
ALenum pname, ALfloat* values );
/** Activate a source, start replay. */
void (*alSourcePlay)( ALuint sid );
/**
* Pause a source,
* temporarily remove it from the mixer list.
*/
void (*alSourcePause)( ALuint sid );
/**
* Stop a source,
* temporarily remove it from the mixer list,
* and reset its internal state to pre-Play.
* To remove a Source completely, it has to be
* deleted following Stop, or before Play.
*/
void (*alSourceStop)( ALuint sid );
/**
* Rewind a souce. Stopped paused and playing sources,
* resets the offset into the PCM data and sets state to
* AL_INITIAL.
*/
void (*alSourceRewind)( ALuint sid );
/**
* vector forms of those functions we all love
*/
void (*alSourcePlayv)( ALsizei ns, ALuint *ids );
void (*alSourceStopv)( ALsizei ns, ALuint *ids );
void (*alSourceRewindv)( ALsizei ns, ALuint *ids );
void (*alSourcePausev)( ALsizei ns, ALuint *ids );
/**
* BUFFER
* Buffer objects are storage space for sample data.
* Buffers are referred to by Sources. There can be more than
* one Source using the same Buffer data. If Buffers have
* to be duplicated on a per-Source basis, the driver has to
* take care of allocation, copying, and deallocation as well
* as propagating buffer data changes.
*/
/** Buffer object generation. */
void (*alGenBuffers)( ALsizei n, ALuint* buffers );
void (*alDeleteBuffers)( ALsizei n, ALuint* buffers );
ALboolean (*alIsBuffer)( ALuint buffer );
/**
* Specify the data to be filled into a buffer.
*/
void (*alBufferData)( ALuint buffer,
ALenum format,
ALvoid* data,
ALsizei size,
ALsizei freq );
void (*alGetBufferi)( ALuint buffer,
ALenum param, ALint* value );
void (*alGetBufferf)( ALuint buffer,
ALenum param, ALfloat* value );
void (*alGetBufferiv)( ALuint buffer,
ALenum param, ALint* value );
void (*alGetBufferfv)( ALuint buffer,
ALenum param, ALfloat* value );
/**
* EXTENSION: IASIG Level 2 Environment.
* Environment object generation.
* This is an EXTension that describes the Environment/Reverb
* properties according to IASIG Level 2 specifications.
*/
/**
* Allocate n environment ids and store them in the array environs.
* Returns the number of environments actually allocated.
*/
ALsizei (*alGenEnvironmentIASIG)( ALsizei n, ALuint* environs );
void (*alDeleteEnvironmentIASIG)(ALsizei n,
ALuint* environs);
ALboolean (*alIsEnvironmentIASIG)( ALuint environ );
void (*alEnvironmentiIASIG)( ALuint eid,
ALenum param, ALint value );
void (*alEnvironmentfIASIG)( ALuint eid,
ALenum param, ALuint value );
/**
* Queue stuff
*/
void (*alQueuei)(ALuint sid, ALenum param, ALint value );
void (*alSourceUnqueueBuffers)(ALuint sid, ALsizei numEntries, ALuint *bids );
void (*alSourceQueueBuffers)(ALuint sid, ALsizei numEntries, ALuint *bids );
void (*alDopplerFactor)( ALfloat value );
void (*alDopplerVelocity)( ALfloat value );
void (*alDistanceModel)( ALenum distanceModel );
/**
* Frequency Domain Filters are band filters.
* Attenuation in Media (distance based)
* Reflection Material
* Occlusion Material (separating surface)
*
* Temporal Domain Filters:
* Early Reflections
* Late Reverb
*
*/
typedef void (ALAPIENTRY *LPALENABLE)( ALenum capability );
typedef void (ALAPIENTRY *LPALDISABLE)( ALenum capability );
typedef ALboolean (ALAPIENTRY *LPALISENABLED)( ALenum capability );
typedef const ALchar* (ALAPIENTRY *LPALGETSTRING)( ALenum param );
typedef void (ALAPIENTRY *LPALGETBOOLEANV)( ALenum param, ALboolean* data );
typedef void (ALAPIENTRY *LPALGETINTEGERV)( ALenum param, ALint* data );
typedef void (ALAPIENTRY *LPALGETFLOATV)( ALenum param, ALfloat* data );
typedef void (ALAPIENTRY *LPALGETDOUBLEV)( ALenum param, ALdouble* data );
typedef ALboolean (ALAPIENTRY *LPALGETBOOLEAN)( ALenum param );
typedef ALint (ALAPIENTRY *LPALGETINTEGER)( ALenum param );
typedef ALfloat (ALAPIENTRY *LPALGETFLOAT)( ALenum param );
typedef ALdouble (ALAPIENTRY *LPALGETDOUBLE)( ALenum param );
typedef ALenum (ALAPIENTRY *LPALGETERROR)( ALvoid );
typedef ALboolean (ALAPIENTRY *LPALISEXTENSIONPRESENT)(const ALchar* extname );
typedef void* (ALAPIENTRY *LPALGETPROCADDRESS)( const ALchar* fname );
typedef ALenum (ALAPIENTRY *LPALGETENUMVALUE)( const ALchar* ename );
typedef void (ALAPIENTRY *LPALLISTENERF)( ALenum param, ALfloat value );
typedef void (ALAPIENTRY *LPALLISTENER3F)( ALenum param, ALfloat value1, ALfloat value2, ALfloat value3 );
typedef void (ALAPIENTRY *LPALLISTENERFV)( ALenum param, const ALfloat* values );
typedef void (ALAPIENTRY *LPALLISTENERI)( ALenum param, ALint value );
typedef void (ALAPIENTRY *LPALLISTENER3I)( ALenum param, ALint value1, ALint value2, ALint value3 );
typedef void (ALAPIENTRY *LPALLISTENERIV)( ALenum param, const ALint* values );
typedef void (ALAPIENTRY *LPALGETLISTENERF)( ALenum param, ALfloat* value );
typedef void (ALAPIENTRY *LPALGETLISTENER3F)( ALenum param, ALfloat *value1, ALfloat *value2, ALfloat *value3 );
typedef void (ALAPIENTRY *LPALGETLISTENERFV)( ALenum param, ALfloat* values );
typedef void (ALAPIENTRY *LPALGETLISTENERI)( ALenum param, ALint* value );
typedef void (ALAPIENTRY *LPALGETLISTENER3I)( ALenum param, ALint *value1, ALint *value2, ALint *value3 );
typedef void (ALAPIENTRY *LPALGETLISTENERIV)( ALenum param, ALint* values );
typedef void (ALAPIENTRY *LPALGENSOURCES)( ALsizei n, ALuint* sources );
typedef void (ALAPIENTRY *LPALDELETESOURCES)( ALsizei n, const ALuint* sources );
typedef ALboolean (ALAPIENTRY *LPALISSOURCE)( ALuint sid );
typedef void (ALAPIENTRY *LPALSOURCEF)( ALuint sid, ALenum param, ALfloat value);
typedef void (ALAPIENTRY *LPALSOURCE3F)( ALuint sid, ALenum param, ALfloat value1, ALfloat value2, ALfloat value3 );
typedef void (ALAPIENTRY *LPALSOURCEFV)( ALuint sid, ALenum param, const ALfloat* values );
typedef void (ALAPIENTRY *LPALSOURCEI)( ALuint sid, ALenum param, ALint value);
typedef void (ALAPIENTRY *LPALSOURCE3I)( ALuint sid, ALenum param, ALint value1, ALint value2, ALint value3 );
typedef void (ALAPIENTRY *LPALSOURCEIV)( ALuint sid, ALenum param, const ALint* values );
typedef void (ALAPIENTRY *LPALGETSOURCEF)( ALuint sid, ALenum param, ALfloat* value );
typedef void (ALAPIENTRY *LPALGETSOURCE3F)( ALuint sid, ALenum param, ALfloat* value1, ALfloat* value2, ALfloat* value3);
typedef void (ALAPIENTRY *LPALGETSOURCEFV)( ALuint sid, ALenum param, ALfloat* values );
typedef void (ALAPIENTRY *LPALGETSOURCEI)( ALuint sid, ALenum param, ALint* value );
typedef void (ALAPIENTRY *LPALGETSOURCE3I)( ALuint sid, ALenum param, ALint* value1, ALint* value2, ALint* value3);
typedef void (ALAPIENTRY *LPALGETSOURCEIV)( ALuint sid, ALenum param, ALint* values );
typedef void (ALAPIENTRY *LPALSOURCEPLAYV)( ALsizei ns, const ALuint *sids );
typedef void (ALAPIENTRY *LPALSOURCESTOPV)( ALsizei ns, const ALuint *sids );
typedef void (ALAPIENTRY *LPALSOURCEREWINDV)( ALsizei ns, const ALuint *sids );
typedef void (ALAPIENTRY *LPALSOURCEPAUSEV)( ALsizei ns, const ALuint *sids );
typedef void (ALAPIENTRY *LPALSOURCEPLAY)( ALuint sid );
typedef void (ALAPIENTRY *LPALSOURCESTOP)( ALuint sid );
typedef void (ALAPIENTRY *LPALSOURCEREWIND)( ALuint sid );
typedef void (ALAPIENTRY *LPALSOURCEPAUSE)( ALuint sid );
typedef void (ALAPIENTRY *LPALSOURCEQUEUEBUFFERS)(ALuint sid, ALsizei numEntries, const ALuint *bids );
typedef void (ALAPIENTRY *LPALSOURCEUNQUEUEBUFFERS)(ALuint sid, ALsizei numEntries, ALuint *bids );
typedef void (ALAPIENTRY *LPALGENBUFFERS)( ALsizei n, ALuint* buffers );
typedef void (ALAPIENTRY *LPALDELETEBUFFERS)( ALsizei n, const ALuint* buffers );
typedef ALboolean (ALAPIENTRY *LPALISBUFFER)( ALuint bid );
typedef void (ALAPIENTRY *LPALBUFFERDATA)( ALuint bid, ALenum format, const ALvoid* data, ALsizei size, ALsizei freq );
typedef void (ALAPIENTRY *LPALBUFFERF)( ALuint bid, ALenum param, ALfloat value);
typedef void (ALAPIENTRY *LPALBUFFER3F)( ALuint bid, ALenum param, ALfloat value1, ALfloat value2, ALfloat value3 );
typedef void (ALAPIENTRY *LPALBUFFERFV)( ALuint bid, ALenum param, const ALfloat* values );
typedef void (ALAPIENTRY *LPALBUFFERI)( ALuint bid, ALenum param, ALint value);
typedef void (ALAPIENTRY *LPALBUFFER3I)( ALuint bid, ALenum param, ALint value1, ALint value2, ALint value3 );
typedef void (ALAPIENTRY *LPALBUFFERIV)( ALuint bid, ALenum param, const ALint* values );
typedef void (ALAPIENTRY *LPALGETBUFFERF)( ALuint bid, ALenum param, ALfloat* value );
typedef void (ALAPIENTRY *LPALGETBUFFER3F)( ALuint bid, ALenum param, ALfloat* value1, ALfloat* value2, ALfloat* value3);
typedef void (ALAPIENTRY *LPALGETBUFFERFV)( ALuint bid, ALenum param, ALfloat* values );
typedef void (ALAPIENTRY *LPALGETBUFFERI)( ALuint bid, ALenum param, ALint* value );
typedef void (ALAPIENTRY *LPALGETBUFFER3I)( ALuint bid, ALenum param, ALint* value1, ALint* value2, ALint* value3);
typedef void (ALAPIENTRY *LPALGETBUFFERIV)( ALuint bid, ALenum param, ALint* values );
typedef void (ALAPIENTRY *LPALDOPPLERFACTOR)( ALfloat value );
typedef void (ALAPIENTRY *LPALDOPPLERVELOCITY)( ALfloat value );
typedef void (ALAPIENTRY *LPALSPEEDOFSOUND)( ALfloat value );
typedef void (ALAPIENTRY *LPALDISTANCEMODEL)( ALenum distanceModel );
#endif /* AL_NO_PROTOTYPES */

View file

@ -11,91 +11,147 @@ extern "C" {
#define ALC_VERSION_0_1 1
#ifdef _WIN32
#ifdef _OPENAL32LIB
#define ALCAPI __declspec(dllexport)
#else
#define ALCAPI __declspec(dllimport)
#endif
typedef struct ALCdevice_struct ALCdevice;
typedef struct ALCcontext_struct ALCcontext;
#define ALCAPIENTRY __cdecl
#else
#ifdef TARGET_OS_MAC
#if TARGET_OS_MAC
#pragma export on
#ifndef _XBOX
#ifdef _OPENAL32LIB
#define ALCAPI __declspec(dllexport)
#else
#define ALCAPI __declspec(dllimport)
#endif
#define ALCAPIENTRY __cdecl
#endif
#endif
#ifdef TARGET_OS_MAC
#if TARGET_OS_MAC
#pragma export on
#endif
#endif
#ifndef ALCAPI
#define ALCAPI
#endif
#ifndef ALCAPIENTRY
#define ALCAPIENTRY
#endif
#ifndef AL_NO_PROTOTYPES
ALCAPI ALCcontext * ALCAPIENTRY alcCreateContext( ALCdevice *dev,
ALint* attrlist );
#ifndef ALC_NO_PROTOTYPES
/**
* There is no current context, as we can mix
* several active contexts. But al* calls
* only affect the current context.
/*
* Context Management
*/
ALCAPI ALCenum ALCAPIENTRY alcMakeContextCurrent( ALCcontext *alcHandle );
ALCAPI ALCcontext * ALCAPIENTRY alcCreateContext( ALCdevice *device, const ALCint* attrlist );
/**
* Perform processing on a synced context, non-op on a asynchronous
* context.
ALCAPI ALCboolean ALCAPIENTRY alcMakeContextCurrent( ALCcontext *context );
ALCAPI void ALCAPIENTRY alcProcessContext( ALCcontext *context );
ALCAPI void ALCAPIENTRY alcSuspendContext( ALCcontext *context );
ALCAPI void ALCAPIENTRY alcDestroyContext( ALCcontext *context );
ALCAPI ALCcontext * ALCAPIENTRY alcGetCurrentContext( ALCvoid );
ALCAPI ALCdevice* ALCAPIENTRY alcGetContextsDevice( ALCcontext *context );
/*
* Device Management
*/
ALCAPI ALCcontext * ALCAPIENTRY alcProcessContext( ALCcontext *alcHandle );
ALCAPI ALCdevice * ALCAPIENTRY alcOpenDevice( const ALchar *devicename );
/**
* Suspend processing on an asynchronous context, non-op on a
* synced context.
ALCAPI ALCboolean ALCAPIENTRY alcCloseDevice( ALCdevice *device );
/*
* Error support.
* Obtain the most recent Context error
*/
ALCAPI void ALCAPIENTRY alcSuspendContext( ALCcontext *alcHandle );
ALCAPI ALCenum ALCAPIENTRY alcDestroyContext( ALCcontext *alcHandle );
ALCAPI ALCenum ALCAPIENTRY alcGetError( ALCdevice *dev );
ALCAPI ALCcontext * ALCAPIENTRY alcGetCurrentContext( ALvoid );
ALCAPI ALCdevice *alcOpenDevice( const ALubyte *tokstr );
ALCAPI void alcCloseDevice( ALCdevice *dev );
ALCAPI ALboolean ALCAPIENTRY alcIsExtensionPresent(ALCdevice *device, ALubyte *extName);
ALCAPI ALvoid * ALCAPIENTRY alcGetProcAddress(ALCdevice *device, ALubyte *funcName);
ALCAPI ALenum ALCAPIENTRY alcGetEnumValue(ALCdevice *device, ALubyte *enumName);
ALCAPI ALCdevice* ALCAPIENTRY alcGetContextsDevice(ALCcontext *context);
ALCAPI ALCenum ALCAPIENTRY alcGetError( ALCdevice *device );
/**
/*
* Extension support.
* Query for the presence of an extension, and obtain any appropriate
* function pointers and enum values.
*/
ALCAPI ALCboolean ALCAPIENTRY alcIsExtensionPresent( ALCdevice *device, const ALCchar *extname );
ALCAPI void * ALCAPIENTRY alcGetProcAddress( ALCdevice *device, const ALCchar *funcname );
ALCAPI ALCenum ALCAPIENTRY alcGetEnumValue( ALCdevice *device, const ALCchar *enumname );
/*
* Query functions
*/
const ALubyte * alcGetString( ALCdevice *deviceHandle, ALenum token );
void alcGetIntegerv( ALCdevice *deviceHandle, ALenum token , ALsizei size , ALint *dest );
ALCAPI const ALCchar * ALCAPIENTRY alcGetString( ALCdevice *device, ALCenum param );
#else
ALCcontext * (*alcCreateContext)( ALCdevice *dev, ALint* attrlist );
ALCenum (*alcMakeContextCurrent)( ALCcontext *alcHandle );
ALCcontext * (*alcProcessContext)( ALCcontext *alcHandle );
void (*alcSuspendContext)( ALCcontext *alcHandle );
ALCenum (*alcDestroyContext)( ALCcontext *alcHandle );
ALCenum (*alcGetError)( ALCdevice *dev );
ALCcontext * (*alcGetCurrentContext)( ALvoid );
ALCdevice * (*alcOpenDevice)( const ALubyte *tokstr );
void (*alcCloseDevice)( ALCdevice *dev );
ALboolean (*alcIsExtensionPresent)( ALCdevice *device, ALubyte *extName );
ALvoid * (*alcGetProcAddress)(ALCdevice *device, ALubyte *funcName );
ALenum (*alcGetEnumValue)(ALCdevice *device, ALubyte *enumName);
ALCdevice* (*alcGetContextsDevice)(ALCcontext *context);
const ALubyte* (*alcGetString)( ALCdevice *deviceHandle, ALenum token );
void (*alcGetIntegerv)( ALCdevice *deviceHandle, ALenum token , ALsizei size , ALint *dest );
ALCAPI void ALCAPIENTRY alcGetIntegerv( ALCdevice *device, ALCenum param, ALCsizei size, ALCint *data );
#endif /* AL_NO_PROTOTYPES */
/*
* Capture functions
*/
ALCAPI ALCdevice* ALCAPIENTRY alcCaptureOpenDevice( const ALCchar *devicename, ALCuint frequency, ALCenum format, ALCsizei buffersize );
ALCAPI ALCboolean ALCAPIENTRY alcCaptureCloseDevice( ALCdevice *device );
ALCAPI void ALCAPIENTRY alcCaptureStart( ALCdevice *device );
ALCAPI void ALCAPIENTRY alcCaptureStop( ALCdevice *device );
ALCAPI void ALCAPIENTRY alcCaptureSamples( ALCdevice *device, ALCvoid *buffer, ALCsizei samples );
#else /* ALC_NO_PROTOTYPES */
ALCAPI ALCcontext * (ALCAPIENTRY *alcCreateContext)( ALCdevice *device, const ALCint* attrlist );
ALCAPI ALCboolean (ALCAPIENTRY *alcMakeContextCurrent)( ALCcontext *context );
ALCAPI void (ALCAPIENTRY *alcProcessContext)( ALCcontext *context );
ALCAPI void (ALCAPIENTRY *alcSuspendContext)( ALCcontext *context );
ALCAPI void (ALCAPIENTRY *alcDestroyContext)( ALCcontext *context );
ALCAPI ALCcontext * (ALCAPIENTRY *alcGetCurrentContext)( ALCvoid );
ALCAPI ALCdevice * (ALCAPIENTRY *alcGetContextsDevice)( ALCcontext *context );
ALCAPI ALCdevice * (ALCAPIENTRY *alcOpenDevice)( const ALCchar *devicename );
ALCAPI ALCboolean (ALCAPIENTRY *alcCloseDevice)( ALCdevice *device );
ALCAPI ALCenum (ALCAPIENTRY *alcGetError)( ALCdevice *device );
ALCAPI ALCboolean (ALCAPIENTRY *alcIsExtensionPresent)( ALCdevice *device, const ALCchar *extname );
ALCAPI void * (ALCAPIENTRY *alcGetProcAddress)( ALCdevice *device, const ALCchar *funcname );
ALCAPI ALCenum (ALCAPIENTRY *alcGetEnumValue)( ALCdevice *device, const ALCchar *enumname );
ALCAPI const ALCchar* (ALCAPIENTRY *alcGetString)( ALCdevice *device, ALCenum param );
ALCAPI void (ALCAPIENTRY *alcGetIntegerv)( ALCdevice *device, ALCenum param, ALCsizei size, ALCint *dest );
ALCAPI ALCdevice * (ALCAPIENTRY *alcCaptureOpenDevice)( const ALCchar *devicename, ALCuint frequency, ALCenum format, ALCsizei buffersize );
ALCAPI ALCboolean (ALCAPIENTRY *alcCaptureCloseDevice)( ALCdevice *device );
ALCAPI void (ALCAPIENTRY *alcCaptureStart)( ALCdevice *device );
ALCAPI void (ALCAPIENTRY *alcCaptureStop)( ALCdevice *device );
ALCAPI void (ALCAPIENTRY *alcCaptureSamples)( ALCdevice *device, ALCvoid *buffer, ALCsizei samples );
/* Type definitions */
typedef ALCcontext * (ALCAPIENTRY *LPALCCREATECONTEXT) (ALCdevice *device, const ALCint *attrlist);
typedef ALCboolean (ALCAPIENTRY *LPALCMAKECONTEXTCURRENT)( ALCcontext *context );
typedef void (ALCAPIENTRY *LPALCPROCESSCONTEXT)( ALCcontext *context );
typedef void (ALCAPIENTRY *LPALCSUSPENDCONTEXT)( ALCcontext *context );
typedef void (ALCAPIENTRY *LPALCDESTROYCONTEXT)( ALCcontext *context );
typedef ALCcontext * (ALCAPIENTRY *LPALCGETCURRENTCONTEXT)( ALCvoid );
typedef ALCdevice * (ALCAPIENTRY *LPALCGETCONTEXTSDEVICE)( ALCcontext *context );
typedef ALCdevice * (ALCAPIENTRY *LPALCOPENDEVICE)( const ALCchar *devicename );
typedef ALCboolean (ALCAPIENTRY *LPALCCLOSEDEVICE)( ALCdevice *device );
typedef ALCenum (ALCAPIENTRY *LPALCGETERROR)( ALCdevice *device );
typedef ALCboolean (ALCAPIENTRY *LPALCISEXTENSIONPRESENT)( ALCdevice *device, const ALCchar *extname );
typedef void * (ALCAPIENTRY *LPALCGETPROCADDRESS)(ALCdevice *device, const ALCchar *funcname );
typedef ALCenum (ALCAPIENTRY *LPALCGETENUMVALUE)(ALCdevice *device, const ALCchar *enumname );
typedef const ALCchar* (ALCAPIENTRY *LPALCGETSTRING)( ALCdevice *device, ALCenum param );
typedef void (ALCAPIENTRY *LPALCGETINTEGERV)( ALCdevice *device, ALCenum param, ALCsizei size, ALCint *dest );
typedef ALCdevice * (ALCAPIENTRY *LPALCCAPTUREOPENDEVICE)( const ALCchar *devicename, ALCuint frequency, ALCenum format, ALCsizei buffersize );
typedef ALCboolean (ALCAPIENTRY *LPALCCAPTURECLOSEDEVICE)( ALCdevice *device );
typedef void (ALCAPIENTRY *LPALCCAPTURESTART)( ALCdevice *device );
typedef void (ALCAPIENTRY *LPALCCAPTURESTOP)( ALCdevice *device );
typedef void (ALCAPIENTRY *LPALCCAPTURESAMPLES)( ALCdevice *device, ALCvoid *buffer, ALCsizei samples );
#endif /* ALC_NO_PROTOTYPES */
#ifdef TARGET_OS_MAC
#if TARGET_OS_MAC

View file

@ -10,25 +10,77 @@ typedef void ALCcontext;
typedef int ALCenum;
/** ALC boolean type. */
typedef char ALCboolean;
/** ALC 8bit signed byte. */
typedef char ALCbyte;
/** ALC 8bit unsigned byte. */
typedef unsigned char ALCubyte;
/** OpenAL 8bit char */
typedef char ALCchar;
/** ALC 16bit signed short integer type. */
typedef short ALCshort;
/** ALC 16bit unsigned short integer type. */
typedef unsigned short ALCushort;
/** ALC 32bit unsigned integer type. */
typedef unsigned ALCuint;
/** ALC 32bit signed integer type. */
typedef int ALCint;
/** ALC 32bit floating point type. */
typedef float ALCfloat;
/** ALC 64bit double point type. */
typedef double ALCdouble;
/** ALC 32bit type. */
typedef int ALCsizei;
/** ALC void type */
typedef void ALCvoid;
/* Enumerant values begin at column 50. No tabs. */
/* bad value */
#define ALC_INVALID 0
/**
* followed by <int> Hz
*/
#define ALC_FREQUENCY 0x100
/* Boolean False. */
#define ALC_FALSE 0
/* Boolean True. */
#define ALC_TRUE 1
/**
* followed by <int> Hz
*/
#define ALC_REFRESH 0x101
#define ALC_FREQUENCY 0x1007
/**
* followed by <int> Hz
*/
#define ALC_REFRESH 0x1008
/**
* followed by AL_TRUE, AL_FALSE
*/
#define ALC_SYNC 0x102
#define ALC_SYNC 0x1009
/**
* followed by <int> Num of requested Mono (3D) Sources
*/
#define ALC_MONO_SOURCES 0x1010
/**
* followed by <int> Num of requested Stereo Sources
*/
#define ALC_STEREO_SOURCES 0x1011
/**
* errors
@ -37,52 +89,54 @@ typedef int ALCenum;
/**
* No error
*/
#define ALC_NO_ERROR 0
#define ALC_NO_ERROR ALC_FALSE
/**
* No device
*/
#define ALC_INVALID_DEVICE 0x200
#define ALC_INVALID_DEVICE 0xA001
/**
* invalid context ID
*/
#define ALC_INVALID_CONTEXT 0x201
#define ALC_INVALID_CONTEXT 0xA002
/**
* bad enum
*/
#define ALC_INVALID_ENUM 0x202
#define ALC_INVALID_ENUM 0xA003
/**
* bad value
*/
#define ALC_INVALID_VALUE 0x203
#define ALC_INVALID_VALUE 0xA004
/**
* Out of memory.
*/
#define ALC_OUT_OF_MEMORY 0x204
#define ALC_OUT_OF_MEMORY 0xA005
/**
* The Specifier string for default device
*/
#define ALC_DEFAULT_DEVICE_SPECIFIER 0x300
#define ALC_DEVICE_SPECIFIER 0x301
#define ALC_EXTENSIONS 0x302
#define ALC_DEFAULT_DEVICE_SPECIFIER 0x1004
#define ALC_DEVICE_SPECIFIER 0x1005
#define ALC_EXTENSIONS 0x1006
#define ALC_MAJOR_VERSION 0x303
#define ALC_MINOR_VERSION 0x304
#define ALC_MAJOR_VERSION 0x1000
#define ALC_MINOR_VERSION 0x1001
#define ALC_ATTRIBUTES_SIZE 0x305
#define ALC_ALL_ATTRIBUTES 0x306
#define ALC_ATTRIBUTES_SIZE 0x1002
#define ALC_ALL_ATTRIBUTES 0x1003
/**
* Not sure if the following are conformant
* Capture extension
*/
#define ALC_FALSE 0
#define ALC_TRUE (!(ALC_FALSE))
#define ALC_CAPTURE_DEVICE_SPECIFIER 0x310
#define ALC_CAPTURE_DEFAULT_DEVICE_SPECIFIER 0x311
#define ALC_CAPTURE_SAMPLES 0x312
#endif /* _ALCTYPES_H */

View file

@ -1,15 +1,31 @@
#ifndef _AL_TYPES_H_
#define _AL_TYPES_H_
/* define platform type */
#if !defined(MACINTOSH_AL) && !defined(LINUX_AL) && !defined(WINDOWS_AL)
#ifdef __APPLE__
#define MACINTOSH_AL
#else
#ifdef _WIN32
#define WINDOWS_AL
#else
#define LINUX_AL
#endif
#endif
#endif
/** OpenAL bool type. */
typedef char ALboolean;
/** OpenAL 8bit signed byte. */
typedef signed char ALbyte;
typedef char ALbyte;
/** OpenAL 8bit unsigned byte. */
typedef unsigned char ALubyte;
/** OpenAL 8bit char */
typedef char ALchar;
/** OpenAL 16bit signed short integer type. */
typedef short ALshort;
@ -29,14 +45,10 @@ typedef float ALfloat;
typedef double ALdouble;
/** OpenAL 32bit type. */
typedef signed int ALsizei;
typedef int ALsizei;
/** OpenAL void type (for params, not returns). */
#ifdef __GNUC__
typedef void ALvoid;
#else
#define ALvoid void
#endif /* __GNUC__ */
/** OpenAL enumerations. */
typedef int ALenum;
@ -63,14 +75,10 @@ typedef ALdouble ALclampd;
/** Boolean True. */
#define AL_TRUE 1
/**
* Indicate the type of AL_SOURCE.
* Sources can be spatialized
*/
#define AL_SOURCE_TYPE 0x0200
/** Indicate Source has relative coordinates. */
#define AL_SOURCE_RELATIVE 0x0202
#define AL_SOURCE_RELATIVE 0x202
/**
* Directional source, inner cone angle, in degrees.
@ -120,14 +128,6 @@ typedef ALdouble ALclampd;
*/
#define AL_LOOPING 0x1007
/**
* Indicate whether source is meant to be streaming.
* Type: ALboolean?
* Range: [AL_TRUE, AL_FALSE]
* Default: FALSE.
*/
#define AL_STREAMING 0x1008
/**
* Indicate the buffer to provide sound samples.
* Type: ALuint.
@ -148,14 +148,6 @@ typedef ALdouble ALclampd;
*/
#define AL_GAIN 0x100A
/* byte offset into source (in canon format). -1 if source
* is not playing. Don't set this, get this.
*
* Type: ALint
* Range: -1 - +inf
*/
#define AL_BYTE_LOKI 0x100C
/*
* Indicate minimum source attenuation
* Type: ALfloat
@ -181,6 +173,14 @@ typedef ALdouble ALclampd;
*/
#define AL_ORIENTATION 0x100F
/**
* Specify the channel mask. (Creative)
* Type: ALuint
* Range: [0 - 255]
*/
#define AL_CHANNEL_MASK 0x3000
/**
* Source state information.
*/
@ -197,11 +197,22 @@ typedef ALdouble ALclampd;
#define AL_BUFFERS_PROCESSED 0x1016
/**
* Buffer states
* Source buffer position information
*/
#define AL_PENDING 0x1017
#define AL_PROCESSED 0x1018
#define AL_SEC_OFFSET 0x1024
#define AL_SAMPLE_OFFSET 0x1025
#define AL_BYTE_OFFSET 0x1026
/*
* Source type (Static, Streaming or undetermined)
* Source is Static if a Buffer has been attached using AL_BUFFER
* Source is Streaming if one or more Buffers have been attached using alSourceQueueBuffers
* Source is undetermined when it has the NULL buffer attached
*/
#define AL_SOURCE_TYPE 0x1027
#define AL_STATIC 0x1028
#define AL_STREAMING 0x1029
#define AL_UNDETERMINED 0x1030
/** Sound samples: format specifier. */
#define AL_FORMAT_MONO8 0x1100
@ -256,6 +267,7 @@ typedef ALdouble ALclampd;
#define AL_BITS 0x2002
#define AL_CHANNELS 0x2003
#define AL_SIZE 0x2004
#define AL_DATA 0x2005
/**
* Buffer state.
@ -263,8 +275,9 @@ typedef ALdouble ALclampd;
* Not supported for public use (yet).
*/
#define AL_UNUSED 0x2010
#define AL_QUEUED 0x2011
#define AL_CURRENT 0x2012
#define AL_PENDING 0x2011
#define AL_PROCESSED 0x2012
/** Errors: No Error. */
#define AL_NO_ERROR AL_FALSE
@ -278,6 +291,7 @@ typedef ALdouble ALclampd;
* Invalid parameter passed to AL call.
*/
#define AL_ILLEGAL_ENUM 0xA002
#define AL_INVALID_ENUM 0xA002
/**
* Invalid enum parameter value.
@ -288,6 +302,8 @@ typedef ALdouble ALclampd;
* Illegal call.
*/
#define AL_ILLEGAL_COMMAND 0xA004
#define AL_INVALID_OPERATION 0xA004
/**
* No mojo.
@ -314,9 +330,9 @@ typedef ALdouble ALclampd;
#define AL_DOPPLER_VELOCITY 0xC001
/**
* Distance scaling
* Speed of Sound in units per second
*/
#define AL_DISTANCE_SCALE 0xC002
#define AL_SPEED_OF_SOUND 0xC003
/**
* Distance models
@ -328,114 +344,9 @@ typedef ALdouble ALclampd;
#define AL_DISTANCE_MODEL 0xD000
#define AL_INVERSE_DISTANCE 0xD001
#define AL_INVERSE_DISTANCE_CLAMPED 0xD002
/**
* enables
*/
/* #define AL_SOME_ENABLE 0xE000 */
/** IASIG Level 2 Environment. */
/**
* Parameter: IASIG ROOM blah
* Type: intgeger
* Range: [-10000, 0]
* Default: -10000
*/
#define AL_ENV_ROOM_IASIG 0x3001
/**
* Parameter: IASIG ROOM_HIGH_FREQUENCY
* Type: integer
* Range: [-10000, 0]
* Default: 0
*/
#define AL_ENV_ROOM_HIGH_FREQUENCY_IASIG 0x3002
/**
* Parameter: IASIG ROOM_ROLLOFF_FACTOR
* Type: float
* Range: [0.0, 10.0]
* Default: 0.0
*/
#define AL_ENV_ROOM_ROLLOFF_FACTOR_IASIG 0x3003
/**
* Parameter: IASIG DECAY_TIME
* Type: float
* Range: [0.1, 20.0]
* Default: 1.0
*/
#define AL_ENV_DECAY_TIME_IASIG 0x3004
/**
* Parameter: IASIG DECAY_HIGH_FREQUENCY_RATIO
* Type: float
* Range: [0.1, 2.0]
* Default: 0.5
*/
#define AL_ENV_DECAY_HIGH_FREQUENCY_RATIO_IASIG 0x3005
/**
* Parameter: IASIG REFLECTIONS
* Type: integer
* Range: [-10000, 1000]
* Default: -10000
*/
#define AL_ENV_REFLECTIONS_IASIG 0x3006
/**
* Parameter: IASIG REFLECTIONS_DELAY
* Type: float
* Range: [0.0, 0.3]
* Default: 0.02
*/
#define AL_ENV_REFLECTIONS_DELAY_IASIG 0x3006
/**
* Parameter: IASIG REVERB
* Type: integer
* Range: [-10000,2000]
* Default: -10000
*/
#define AL_ENV_REVERB_IASIG 0x3007
/**
* Parameter: IASIG REVERB_DELAY
* Type: float
* Range: [0.0, 0.1]
* Default: 0.04
*/
#define AL_ENV_REVERB_DELAY_IASIG 0x3008
/**
* Parameter: IASIG DIFFUSION
* Type: float
* Range: [0.0, 100.0]
* Default: 100.0
*/
#define AL_ENV_DIFFUSION_IASIG 0x3009
/**
* Parameter: IASIG DENSITY
* Type: float
* Range: [0.0, 100.0]
* Default: 100.0
*/
#define AL_ENV_DENSITY_IASIG 0x300A
/**
* Parameter: IASIG HIGH_FREQUENCY_REFERENCE
* Type: float
* Range: [20.0, 20000.0]
* Default: 5000.0
*/
#define AL_ENV_HIGH_FREQUENCY_REFERENCE_IASIG 0x300B
#define AL_INVALID_ENUM 0xA002
#define AL_INVALID_OPERATION 0xA004
#define AL_LINEAR_DISTANCE 0xD003
#define AL_LINEAR_DISTANCE_CLAMPED 0xD004
#define AL_EXPONENT_DISTANCE 0xD005
#define AL_EXPONENT_DISTANCE_CLAMPED 0xD006
#endif

View file

@ -1,55 +0,0 @@
#ifndef __alu_h_
#define __alu_h_
#ifdef _WIN32
#define ALAPI __declspec(dllexport)
#define ALAPIENTRY __cdecl
#else /* _WIN32 */
#ifdef TARGET_OS_MAC
#if TARGET_OS_MAC
#pragma export on
#endif /* TARGET_OS_MAC */
#endif /* TARGET_OS_MAC */
#define ALAPI
#define ALAPIENTRY
#define AL_CALLBACK
#endif /* _WIN32 */
#if defined(__MACH__) && defined(__APPLE__)
#include <OpenAL/al.h>
#include <OpenAL/alutypes.h>
#else
#include <AL/al.h>
#include <AL/alutypes.h>
#endif
#ifdef __cplusplus
extern "C" {
#endif
#ifndef AL_NO_PROTOTYPES
#else
#endif /* AL_NO_PROTOTYPES */
#ifdef TARGET_OS_MAC
#if TARGET_OS_MAC
#pragma export off
#endif /* TARGET_OS_MAC */
#endif /* TARGET_OS_MAC */
#ifdef __cplusplus
}
#endif
#endif /* __alu_h_ */

View file

@ -1,12 +1,24 @@
#ifndef _ALUT_H_
#define _ALUT_H_
/* define platform type */
#if !defined(MACINTOSH_AL) && !defined(LINUX_AL) && !defined(WINDOWS_AL)
#ifdef __APPLE__
#define MACINTOSH_AL
#else
#ifdef _WIN32
#define WINDOWS_AL
#else
#define LINUX_AL
#endif
#endif
#endif
#include "altypes.h"
#include "aluttypes.h"
#ifdef _WIN32
#define ALAPI __declspec(dllexport)
#define ALAPIENTRY __cdecl
#define ALUTAPI
#define ALUTAPIENTRY __cdecl
#define AL_CALLBACK
#else /* _WIN32 */
@ -16,12 +28,12 @@
#endif /* TARGET_OS_MAC */
#endif /* TARGET_OS_MAC */
#ifndef ALAPI
#define ALAPI
#ifndef ALUTAPI
#define ALUTAPI
#endif
#ifndef ALAPIENTRY
#define ALAPIENTRY
#ifndef ALUTAPIENTRY
#define ALUTAPIENTRY
#endif
#ifndef AL_CALLBACK
@ -34,52 +46,36 @@
extern "C" {
#endif
#ifndef AL_NO_PROTOTYPES
#ifndef ALUT_NO_PROTOTYPES
ALAPI void ALAPIENTRY alutInit(ALint *argc, ALbyte **argv);
ALAPI void ALAPIENTRY alutExit(ALvoid);
ALAPI ALboolean ALAPIENTRY alutLoadWAV( const char *fname,
ALvoid **wave,
ALsizei *format,
ALsizei *size,
ALsizei *bits,
ALsizei *freq );
ALAPI void ALAPIENTRY alutLoadWAVFile(ALbyte *file,
ALenum *format,
ALvoid **data,
ALsizei *size,
ALsizei *freq,
ALboolean *loop);
ALAPI void ALAPIENTRY alutLoadWAVMemory(ALbyte *memory,
ALenum *format,
ALvoid **data,
ALsizei *size,
ALsizei *freq,
ALboolean *loop);
ALAPI void ALAPIENTRY alutUnloadWAV(ALenum format,
ALvoid *data,
ALsizei size,
ALsizei freq);
ALUTAPI void ALUTAPIENTRY alutInit(int *argc, char *argv[]);
ALUTAPI void ALUTAPIENTRY alutExit(ALvoid);
#ifndef MACINTOSH_AL
/* Windows and Linux versions have a loop parameter, Macintosh doesn't */
ALUTAPI void ALUTAPIENTRY alutLoadWAVFile(ALbyte *file, ALenum *format, ALvoid **data, ALsizei *size, ALsizei *freq, ALboolean *loop);
ALUTAPI void ALUTAPIENTRY alutLoadWAVMemory(ALbyte *memory, ALenum *format, ALvoid **data, ALsizei *size, ALsizei *freq, ALboolean *loop);
#else
void (*alutInit)(int *argc, char *argv[]);
void (*alutExit)(ALvoid);
ALUTAPI void ALUTAPIENTRY alutLoadWAVFile(ALbyte *file, ALenum *format, ALvoid **data, ALsizei *size, ALsizei *freq);
ALUTAPI void ALUTAPIENTRY alutLoadWAVMemory(ALbyte *memory, ALenum *format, ALvoid **data, ALsizei *size, ALsizei *freq);
#endif
ALboolean (*alutLoadWAV)( const char *fname,
ALvoid **wave,
ALsizei *format,
ALsizei *size,
ALsizei *bits,
ALsizei *freq );
ALUTAPI void ALUTAPIENTRY alutUnloadWAV(ALenum format, ALvoid *data, ALsizei size, ALsizei freq);
void (*alutLoadWAVFile(ALbyte *file,ALenum *format,ALvoid **data,ALsizei *size,ALsizei *freq,ALboolean *loop);
void (*alutLoadWAVMemory)(ALbyte *memory,ALenum *format,ALvoid **data,ALsizei *size,ALsizei *freq,ALboolean *loop);
void (*alutUnloadWAV)(ALenum format,ALvoid *data,ALsizei size,ALsizei freq);
#else /* ALUT_NO_PROTOTYPES */
void (ALUTAPIENTRY *alutInit)( int *argc, char *argv[] );
void (ALUTAPIENTRY *alutExit)( ALvoid );
#ifndef MACINTOSH_AL
void (ALUTAPIENTRY *alutLoadWAVFile)( ALbyte *file,ALenum *format,ALvoid **data,ALsizei *size,ALsizei *freq,ALboolean *loop );
void (ALUTAPIENTRY *alutLoadWAVMemory)( ALbyte *memory,ALenum *format,ALvoid **data,ALsizei *size,ALsizei *freq,ALboolean *loop );
#else
void (ALUTAPIENTRY *alutLoadWAVFile( ALbyte *file,ALenum *format,ALvoid **data,ALsizei *size,ALsizei *freq );
void (ALUTAPIENTRY *alutLoadWAVMemory)( ALbyte *memory,ALenum *format,ALvoid **data,ALsizei *size,ALsizei *freq );
#endif
void (ALUTAPIENTRY *alutUnloadWAV)( ALenum format,ALvoid *data,ALsizei size,ALsizei freq );
#endif /* AL_NO_PROTOTYPES */
#endif /* ALUT_NO_PROTOTYPES */
#ifdef TARGET_OS_MAC
#if TARGET_OS_MAC

View file

@ -1,6 +0,0 @@
#ifndef _ALUTTYPES_H_
#define _ALUTTYPES_H_
#define AL_PROVIDES_ALUT 1
#endif /* _ALUTTYPES_H_ */

View file

@ -1,5 +0,0 @@
#ifndef _ALUTYPES_H_
#define _ALUTYPES_H_
#endif /* _ALUTYPES_H_ */

View file

@ -32,8 +32,14 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#define AL_NO_PROTOTYPES
#define ALC_NO_PROTOTYPES
#endif
#if USE_LOCAL_HEADERS
#include "../AL/al.h"
#include "../AL/alc.h"
#else
#include <AL/al.h>
#include <AL/alc.h>
#endif
#if USE_OPENAL_DLOPEN
extern LPALENABLE qalEnable;

View file

@ -70,6 +70,10 @@ ifndef USE_OPENAL_DLOPEN
USE_OPENAL_DLOPEN=0
endif
ifndef USE_LOCAL_HEADERS
USE_LOCAL_HEADERS=1
endif
ifndef BUILD_CLIENT
BUILD_CLIENT=1
endif
@ -653,6 +657,10 @@ ifdef DEFAULT_BASEDIR
BASE_CFLAGS += -DDEFAULT_BASEDIR=\\\"$(DEFAULT_BASEDIR)\\\"
endif
ifeq ($(USE_LOCAL_HEADERS),1)
BASE_CFLAGS += -DUSE_LOCAL_HEADERS=1
endif
ifeq ($(GENERATE_DEPENDENCIES),1)
ifeq ($(CC),gcc)
DEPEND_CFLAGS=-MMD