Thread: [Opentnl-cvs] tnl/openal ALut.lib,NONE,1.1 OpenAL32.lib,NONE,1.1 al.h,NONE,1.1 alInclude.h,NONE,1.1
Brought to you by:
mark_frohnmayer,
s_alanet
From: Ben G. <s_a...@us...> - 2004-04-20 04:27:30
|
Update of /cvsroot/opentnl/tnl/openal In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31063/openal Added Files: ALut.lib OpenAL32.lib al.h alInclude.h alc.h alctypes.h altypes.h alu.h alut.h Log Message: Initial commit. --- NEW FILE: alut.h --- #ifndef _ALUT_H_ #define _ALUT_H_ #define ALUTAPI #define ALUTAPIENTRY __cdecl #include "al.h" #include "alu.h" #ifdef __cplusplus extern "C" { #endif ALUTAPI ALvoid ALUTAPIENTRY alutInit(ALint *argc,ALbyte **argv); ALUTAPI ALvoid ALUTAPIENTRY alutExit(ALvoid); ALUTAPI ALvoid ALUTAPIENTRY alutLoadWAVFile(ALbyte *file,ALenum *format,ALvoid **data,ALsizei *size,ALsizei *freq,ALboolean *loop); ALUTAPI ALvoid ALUTAPIENTRY alutLoadWAVMemory(ALbyte *memory,ALenum *format,ALvoid **data,ALsizei *size,ALsizei *freq,ALboolean *loop); ALUTAPI ALvoid ALUTAPIENTRY alutUnloadWAV(ALenum format,ALvoid *data,ALsizei size,ALsizei freq); #ifdef __cplusplus } #endif #endif --- NEW FILE: alc.h --- #ifndef _ALC_H_ #define _ALC_H_ #include "altypes.h" #include "alctypes.h" #ifdef __cplusplus extern "C" { #endif #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 #endif #endif #define ALCAPI #define ALCAPIENTRY __cdecl #endif #ifndef ALC_NO_PROTOTYPES ALCAPI ALCubyte* ALCAPIENTRY alcGetString(ALCdevice *device,ALCenum param); ALCAPI ALCvoid ALCAPIENTRY alcGetIntegerv(ALCdevice *device,ALCenum param,ALCsizei size,ALCint *data); ALCAPI ALCdevice* ALCAPIENTRY alcOpenDevice(ALCubyte *deviceName); ALCAPI ALCvoid ALCAPIENTRY alcCloseDevice(ALCdevice *device); ALCAPI ALCcontext*ALCAPIENTRY alcCreateContext(ALCdevice *device,ALCint *attrList); ALCAPI ALCboolean ALCAPIENTRY alcMakeContextCurrent(ALCcontext *context); ALCAPI ALCvoid ALCAPIENTRY alcProcessContext(ALCcontext *context); ALCAPI ALCcontext*ALCAPIENTRY alcGetCurrentContext(ALCvoid); ALCAPI ALCdevice* ALCAPIENTRY alcGetContextsDevice(ALCcontext *context); ALCAPI ALCvoid ALCAPIENTRY alcSuspendContext(ALCcontext *context); ALCAPI ALCvoid ALCAPIENTRY alcDestroyContext(ALCcontext *context); ALCAPI ALCenum ALCAPIENTRY alcGetError(ALCdevice *device); ALCAPI ALCboolean ALCAPIENTRY alcIsExtensionPresent(ALCdevice *device,ALCubyte *extName); ALCAPI ALCvoid * ALCAPIENTRY alcGetProcAddress(ALCdevice *device,ALCubyte *funcName); ALCAPI ALCenum ALCAPIENTRY alcGetEnumValue(ALCdevice *device,ALCubyte *enumName); #else /* AL_NO_PROTOTYPES */ ALCAPI ALCubyte* ALCAPIENTRY (*alcGetString)(ALCdevice *device,ALCenum param); ALCAPI ALCvoid ALCAPIENTRY (*alcGetIntegerv)(ALCdevice * device,ALCenum param,ALCsizei size,ALCint *data); ALCAPI ALCdevice* ALCAPIENTRY (*alcOpenDevice)(ALubyte *deviceName); ALCAPI ALCvoid ALCAPIENTRY (*alcCloseDevice)(ALCdevice *device); ALCAPI ALCcontext*ALCAPIENTRY (*alcCreateContext)(ALCdevice *device,ALCint *attrList); ALCAPI ALCboolean ALCAPIENTRY (*alcMakeContextCurrent)(ALCcontext *context); ALCAPI ALCvoid ALCAPIENTRY (*alcProcessContext)(ALCcontext *context); ALCAPI ALCcontext*ALCAPIENTRY (*alcGetCurrentContext)(ALCvoid); ALCAPI ALCdevice* ALCAPIENTRY (*alcGetContextsDevice)(ALCcontext *context); ALCAPI ALCvoid ALCAPIENTRY (*alcSuspendContext)(ALCcontext *context); ALCAPI ALCvoid ALCAPIENTRY (*alcDestroyContext)(ALCcontext *context); ALCAPI ALCenum ALCAPIENTRY (*alcGetError)(ALCdevice *device); ALCAPI ALCboolean ALCAPIENTRY (*alcIsExtensionPresent)(ALCdevice *device,ALCubyte *extName); ALCAPI ALCvoid * ALCAPIENTRY (*alcGetProcAddress)(ALCdevice *device,ALCubyte *funcName); ALCAPI ALCenum ALCAPIENTRY (*alcGetEnumValue)(ALCdevice *device,ALCubyte *enumName); #endif /* AL_NO_PROTOTYPES */ #ifdef TARGET_OS_MAC #if TARGET_OS_MAC #pragma export off #endif #endif #ifdef __cplusplus } #endif #endif --- NEW FILE: altypes.h --- #ifndef _ALTYPES_H_ #define _ALTYPES_H_ /** * OpenAL cross platform audio library * Copyright (C) 1999-2000 by authors. * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. * Or go to http://www.gnu.org/copyleft/lgpl.html */ #ifdef __cplusplus extern "C" { #endif /** OpenAL boolean type. */ typedef char ALboolean; /** OpenAL 8bit signed byte. */ typedef char ALbyte; /** OpenAL 8bit unsigned byte. */ typedef unsigned char ALubyte; /** OpenAL 16bit signed short integer type. */ typedef short ALshort; /** OpenAL 16bit unsigned short integer type. */ typedef unsigned short ALushort; /** OpenAL 32bit unsigned integer type. */ typedef unsigned ALuint; /** OpenAL 32bit signed integer type. */ typedef int ALint; /** OpenAL 32bit floating point type. */ typedef float ALfloat; /** OpenAL 64bit double point type. */ typedef double ALdouble; /** OpenAL 32bit type. */ typedef unsigned int ALsizei; /** OpenAL void type */ typedef void ALvoid; /** OpenAL enumerations. */ typedef int ALenum; /* Bad value. */ #define AL_INVALID (-1) /* Disable value. */ #define AL_NONE 0 /* Boolean False. */ #define AL_FALSE 0 /* Boolean True. */ #define AL_TRUE 1 /** * Indicate the type of AL_SOURCE. * Sources can be spatialized */ #define AL_SOURCE_TYPE 0x200 /** Indicate source has absolute coordinates. */ #define AL_SOURCE_ABSOLUTE 0x201 /** Indicate Source has listener relative coordinates. */ #define AL_SOURCE_RELATIVE 0x202 /** * Directional source, inner cone angle, in degrees. * Range: [0-360] * Default: 360 */ #define AL_CONE_INNER_ANGLE 0x1001 /** * Directional source, outer cone angle, in degrees. * Range: [0-360] * Default: 360 */ #define AL_CONE_OUTER_ANGLE 0x1002 /** * Specify the pitch to be applied, either at source, * or on mixer results, at listener. * Range: [0.5-2.0] * Default: 1.0 */ #define AL_PITCH 0x1003 /** * Specify the current 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. * Listener position is always in the world coordinate system. */ #define AL_POSITION 0x1004 /** Specify the current direction as forward vector. */ #define AL_DIRECTION 0x1005 /** Specify the current velocity in three dimensional space. */ #define AL_VELOCITY 0x1006 /** * Indicate whether source has to loop infinite. * Type: ALboolean * Range: [AL_TRUE, AL_FALSE] * Default: AL_FALSE */ #define AL_LOOPING 0x1007 /** * Indicate the buffer to provide sound samples. * Type: ALuint. * Range: any valid Buffer id. */ #define AL_BUFFER 0x1009 /** * Indicate the gain (volume amplification) applied. * Type: ALfloat. * Range: ]0.0- ] * A value of 1.0 means un-attenuated/unchanged. * Each division by 2 equals an attenuation of -6dB. * Each multiplicaton with 2 equals an amplification of +6dB. * A value of 0.0 is meaningless with respect to a logarithmic * scale; it is interpreted as zero volume - the channel * is effectively disabled. */ #define AL_GAIN 0x100A /** * Indicate minimum source attenuation. * Type: ALfloat * Range: [0.0 - 1.0] */ #define AL_MIN_GAIN 0x100D /** * Indicate maximum source attenuation. * Type: ALfloat * Range: [0.0 - 1.0] */ #define AL_MAX_GAIN 0x100E /** * Specify the current orientation. * Type: ALfv6 (at/up) * Range: N/A */ #define AL_ORIENTATION 0x100F /* byte offset into source (in canon format). -1 if source * is not playing. Don't set this, get this. * * Type: ALfloat * Range: [0.0 - ] * Default: 1.0 */ #define AL_REFERENCE_DISTANCE 0x1020 /** * Indicate the rolloff factor for the source. * Type: ALfloat * Range: [0.0 - ] * Default: 1.0 */ #define AL_ROLLOFF_FACTOR 0x1021 /** * Indicate the gain (volume amplification) applied. * Type: ALfloat. * Range: ]0.0- ] * A value of 1.0 means un-attenuated/unchanged. * Each division by 2 equals an attenuation of -6dB. * Each multiplicaton with 2 equals an amplification of +6dB. * A value of 0.0 is meaningless with respect to a logarithmic * scale; it is interpreted as zero volume - the channel * is effectively disabled. */ #define AL_CONE_OUTER_GAIN 0x1022 /** * Specify the maximum distance. * Type: ALfloat * Range: [0.0 - ] */ #define AL_MAX_DISTANCE 0x1023 /** * Specify the channel mask. (Creative) * Type: ALuint * Range: [0 - 255] */ #define AL_CHANNEL_MASK 0x3000 /** * Source state information */ #define AL_SOURCE_STATE 0x1010 #define AL_INITIAL 0x1011 #define AL_PLAYING 0x1012 #define AL_PAUSED 0x1013 #define AL_STOPPED 0x1014 /** * Buffer Queue params */ #define AL_BUFFERS_QUEUED 0x1015 #define AL_BUFFERS_PROCESSED 0x1016 /** Sound buffers: format specifier. */ #define AL_FORMAT_MONO8 0x1100 #define AL_FORMAT_MONO16 0x1101 #define AL_FORMAT_STEREO8 0x1102 #define AL_FORMAT_STEREO16 0x1103 /** * Sound buffers: frequency, in units of Hertz [Hz]. * This is the number of samples per second. Half of the * sample frequency marks the maximum significant * frequency component. */ #define AL_FREQUENCY 0x2001 #define AL_BITS 0x2002 #define AL_CHANNELS 0x2003 #define AL_SIZE 0x2004 #define AL_DATA 0x2005 /** * Buffer state. * * Not supported for public use (yet). */ #define AL_UNUSED 0x2010 #define AL_PENDING 0x2011 #define AL_PROCESSED 0x2012 /** Errors: No Error. */ #define AL_NO_ERROR AL_FALSE /** * Illegal name passed as an argument to an AL call. */ #define AL_INVALID_NAME 0xA001 /** * Illegal enum passed as an argument to an AL call. */ #define AL_INVALID_ENUM 0xA002 /** * Illegal value passed as an argument to an AL call. * Applies to parameter values, but not to enumerations. */ #define AL_INVALID_VALUE 0xA003 /** * A function was called at inappropriate time, * or in an inappropriate way, causing an illegal state. * This can be an incompatible ALenum, object ID, * and/or function. */ #define AL_INVALID_OPERATION 0xA004 /** * A function could not be completed, * because there is not enough memory available. */ #define AL_OUT_OF_MEMORY 0xA005 /** Context strings: Vendor Name. */ #define AL_VENDOR 0xB001 #define AL_VERSION 0xB002 #define AL_RENDERER 0xB003 #define AL_EXTENSIONS 0xB004 /** Global tweakage. */ /** * Doppler scale. Default 1.0 */ #define AL_DOPPLER_FACTOR 0xC000 /** * Doppler velocity. Default 1.0 */ #define AL_DOPPLER_VELOCITY 0xC001 /** * Distance model. Default AL_INVERSE_DISTANCE_CLAMPED */ #define AL_DISTANCE_MODEL 0xD000 /** Distance models. */ #define AL_INVERSE_DISTANCE 0xD001 #define AL_INVERSE_DISTANCE_CLAMPED 0xD002 /** * enables */ #ifdef __cplusplus } #endif #endif --- NEW FILE: OpenAL32.lib --- (This appears to be a binary file; contents omitted.) --- NEW FILE: ALut.lib --- (This appears to be a binary file; contents omitted.) --- NEW FILE: alInclude.h --- //----------------------------------------------------------------------------------- // // Torque Network Library - Cross-platform OpenAL include file // Copyright (C) 2004 GarageGames.com, Inc. // For more information see http://www.opentnl.org // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // For use in products that are not compatible with the terms of the GNU // General Public License, alternative licensing options are available // from GarageGames.com. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // //------------------------------------------------------------------------------------ #ifndef _ALINCLUDE_H_ #define _ALINCLUDE_H_ #include <alc.h> #include <alut.h> #endif --- NEW FILE: al.h --- #ifndef _AL_H_ #define _AL_H_ /** * OpenAL cross platform audio library * Copyright (C) 1999-2000 by authors. * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. * Or go to http://www.gnu.org/copyleft/lgpl.html */ #include "altypes.h" #ifdef __cplusplus extern "C" { #endif #ifdef _WIN32 #ifdef _OPENAL32LIB #define ALAPI __declspec(dllexport) #else #define ALAPI __declspec(dllimport) #endif #define ALAPIENTRY __cdecl #define AL_CALLBACK #else #ifdef TARGET_OS_MAC #if TARGET_OS_MAC #pragma export on #endif #endif #define ALAPI #define ALAPIENTRY __cdecl #define AL_CALLBACK #endif #define OPENAL #ifndef AL_NO_PROTOTYPES /** * OpenAL Maintenance Functions * Initialization and exiting. * State Management and Query. * Error Handling. * Extension Support. */ /** State management. */ ALAPI ALvoid ALAPIENTRY alEnable( ALenum capability ); ALAPI ALvoid ALAPIENTRY alDisable( ALenum capability ); ALAPI ALboolean ALAPIENTRY alIsEnabled( ALenum capability ); /** Application preferences for driver performance choices. */ ALAPI ALvoid ALAPIENTRY alHint( ALenum target, ALenum mode ); /** State retrieval. */ ALAPI ALboolean ALAPIENTRY alGetBoolean( ALenum param ); ALAPI ALint ALAPIENTRY alGetInteger( ALenum param ); ALAPI ALfloat ALAPIENTRY alGetFloat( ALenum param ); ALAPI ALdouble ALAPIENTRY alGetDouble( ALenum param ); ALAPI ALvoid ALAPIENTRY alGetBooleanv( ALenum param, ALboolean* data ); ALAPI ALvoid ALAPIENTRY alGetIntegerv( ALenum param, ALint* data ); ALAPI ALvoid ALAPIENTRY alGetFloatv( ALenum param, ALfloat* data ); ALAPI ALvoid ALAPIENTRY alGetDoublev( ALenum param, ALdouble* data ); ALAPI ALubyte* ALAPIENTRY alGetString( 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. */ ALAPI ALboolean ALAPIENTRY alIsExtensionPresent( ALubyte* fname ); /** * Extension support. * Obtain the address of a function (usually an extension) * with the name fname. All addresses are context-independent. */ ALAPI ALvoid* ALAPIENTRY alGetProcAddress( ALubyte* fname ); /** * Extension support. * Obtain the integer value of an enumeration (usually an extension) with the name ename. */ ALAPI ALenum ALAPIENTRY alGetEnumValue( 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 Environment: default 0. */ ALAPI ALvoid ALAPIENTRY alListeneri( ALenum param, ALint value ); /** * * Listener Gain: default 1.0f. */ ALAPI ALvoid ALAPIENTRY alListenerf( ALenum param, ALfloat value ); /** * * Listener Position. * Listener Velocity. */ ALAPI ALvoid ALAPIENTRY alListener3f( ALenum param, ALfloat v1, ALfloat v2, ALfloat v3 ); /** * * Listener Position: ALfloat[3] * Listener Velocity: ALfloat[3] * Listener Orientation: ALfloat[6] (forward and up vector). */ ALAPI ALvoid ALAPIENTRY alListenerfv( ALenum param, ALfloat* values ); ALAPI ALvoid ALAPIENTRY alGetListeneri( ALenum param, ALint* value ); ALAPI ALvoid ALAPIENTRY alGetListenerf( ALenum param, ALfloat* value ); ALAPI ALvoid ALAPIENTRY alGetListener3f( ALenum param, ALfloat* v1, ALfloat* v2, ALfloat* v3 ); ALAPI ALvoid ALAPIENTRY alGetListenerfv( ALenum param, 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. */ ALAPI ALvoid ALAPIENTRY alGenSources( ALsizei n, ALuint* sources ); /** Delete Source objects. */ ALAPI ALvoid ALAPIENTRY alDeleteSources( ALsizei n, ALuint* sources ); /** Verify a handle is a valid Source. */ ALAPI ALboolean ALAPIENTRY alIsSource( ALuint id ); /** Set an integer parameter for a Source object. */ ALAPI ALvoid ALAPIENTRY alSourcei( ALuint source, ALenum param, ALint value ); ALAPI ALvoid ALAPIENTRY alSourcef( ALuint source, ALenum param, ALfloat value ); ALAPI ALvoid ALAPIENTRY alSource3f( ALuint source, ALenum param, ALfloat v1, ALfloat v2, ALfloat v3 ); ALAPI ALvoid ALAPIENTRY alSourcefv( ALuint source, ALenum param, ALfloat* values ); /** Get an integer parameter for a Source object. */ ALAPI ALvoid ALAPIENTRY alGetSourcei( ALuint source, ALenum param, ALint* value ); ALAPI ALvoid ALAPIENTRY alGetSourcef( ALuint source, ALenum param, ALfloat* value ); ALAPI ALvoid ALAPIENTRY alGetSource3f( ALuint source, ALenum param, ALfloat* v1, ALfloat* v2, ALfloat* v3 ); ALAPI ALvoid ALAPIENTRY alGetSourcefv( ALuint source, ALenum param, ALfloat* values ); ALAPI ALvoid ALAPIENTRY alSourcePlayv( ALsizei n, ALuint *sources ); ALAPI ALvoid ALAPIENTRY alSourcePausev( ALsizei n, ALuint *sources ); ALAPI ALvoid ALAPIENTRY alSourceStopv( ALsizei n, ALuint *sources ); ALAPI ALvoid ALAPIENTRY alSourceRewindv(ALsizei n,ALuint *sources); /** Activate a source, start replay. */ ALAPI ALvoid ALAPIENTRY alSourcePlay( ALuint source ); /** * Pause a source, * temporarily remove it from the mixer list. */ ALAPI ALvoid ALAPIENTRY alSourcePause( ALuint source ); /** * 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. */ ALAPI ALvoid ALAPIENTRY alSourceStop( ALuint source ); /** * Rewinds a source, * temporarily remove it from the mixer list, * and reset its internal state to pre-Play. */ ALAPI ALvoid ALAPIENTRY alSourceRewind( ALuint source ); /** * 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. */ ALAPI ALvoid ALAPIENTRY alGenBuffers( ALsizei n, ALuint* buffers ); ALAPI ALvoid ALAPIENTRY alDeleteBuffers( ALsizei n, ALuint* buffers ); ALAPI ALboolean ALAPIENTRY alIsBuffer( ALuint buffer ); /** * Specify the data to be filled into a buffer. */ ALAPI ALvoid ALAPIENTRY alBufferData( ALuint buffer, ALenum format, ALvoid* data, ALsizei size, ALsizei freq ); ALAPI ALvoid ALAPIENTRY alGetBufferi( ALuint buffer, ALenum param, ALint* value ); ALAPI ALvoid ALAPIENTRY alGetBufferf( ALuint buffer, ALenum param, ALfloat* value ); /** * Queue stuff */ ALAPI ALvoid ALAPIENTRY alSourceQueueBuffers( ALuint source, ALsizei n, ALuint* buffers ); ALAPI ALvoid ALAPIENTRY alSourceUnqueueBuffers( ALuint source, ALsizei n, ALuint* buffers ); /** * Knobs and dials */ ALAPI ALvoid ALAPIENTRY alDistanceModel( ALenum value ); ALAPI ALvoid ALAPIENTRY alDopplerFactor( ALfloat value ); ALAPI ALvoid ALAPIENTRY alDopplerVelocity( ALfloat value ); #else /* AL_NO_PROTOTYPES */ /** * OpenAL Maintenance Functions * Initialization and exiting. * State Management and Query. * Error Handling. * Extension Support. */ /** State management. */ ALAPI ALvoid ALAPIENTRY (*alEnable)( ALenum capability ); ALAPI ALvoid ALAPIENTRY (*alDisable)( ALenum capability ); ALAPI ALboolean ALAPIENTRY (*alIsEnabled)( ALenum capability ); /** Application preferences for driver performance choices. */ ALAPI ALvoid ALAPIENTRY (*alHint)( ALenum target, ALenum mode ); /** State retrieval. */ ALAPI ALboolean ALAPIENTRY (*alGetBoolean)( ALenum param ); ALAPI ALint ALAPIENTRY (*alGetInteger)( ALenum param ); ALAPI ALfloat ALAPIENTRY (*alGetFloat)( ALenum param ); ALAPI ALdouble ALAPIENTRY (*alGetDouble)( ALenum param ); ALAPI ALvoid ALAPIENTRY (*alGetBooleanv)( ALenum param, ALboolean* data ); ALAPI ALvoid ALAPIENTRY (*alGetIntegerv)( ALenum param, ALint* data ); ALAPI ALvoid ALAPIENTRY (*alGetFloatv)( ALenum param, ALfloat* data ); ALAPI ALvoid ALAPIENTRY (*alGetDoublev)( ALenum param, ALdouble* data ); ALAPI ALubyte* ALAPIENTRY (*alGetString)( 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. */ ALAPI ALboolean ALAPIENTRY (*alIsExtensionPresent)( ALubyte* fname ); /** * Extension support. * Obtain the address of a function (usually an extension) * with the name fname. All addresses are context-independent. */ ALAPI ALvoid* ALAPIENTRY (*alGetProcAddress)( ALubyte* fname ); /** * Extension support. * Obtain the integer value of an enumeration (usually an extension) with the name ename. */ ALAPI ALenum ALAPIENTRY (*alGetEnumValue)( 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 Environment: default 0. */ ALAPI ALvoid ALAPIENTRY (*alListeneri)( ALenum param, ALint value ); /** * * Listener Gain: default 1.0f. */ ALAPI ALvoid ALAPIENTRY (*alListenerf)( ALenum param, ALfloat value ); /** * * Listener Position. * Listener Velocity. */ ALAPI ALvoid ALAPIENTRY (*alListener3f)( ALenum param, ALfloat v1, ALfloat v2, ALfloat v3 ); /** * * Listener Position: ALfloat[3] * Listener Velocity: ALfloat[3] * Listener Orientation: ALfloat[6] (forward and up vector). */ ALAPI ALvoid ALAPIENTRY (*alListenerfv)( ALenum param, ALfloat* values ); ALAPI ALvoid ALAPIENTRY (*alGetListeneri)( ALenum param, ALint* value ); ALAPI ALvoid ALAPIENTRY (*alGetListenerf)( ALenum param, ALfloat* value ); ALAPI ALvoid ALAPIENTRY (*alGetListener3f)( ALenum param, ALfloat* v1, ALfloat* v2, ALfloat* v3 ); ALAPI ALvoid ALAPIENTRY (*alGetListenerfv)( ALenum param, 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. */ ALAPI ALvoid ALAPIENTRY (*alGenSources)( ALsizei n, ALuint* sources ); /** Delete Source objects. */ ALAPI ALvoid ALAPIENTRY (*alDeleteSources)( ALsizei n, ALuint* sources ); /** Verify a handle is a valid Source. */ ALAPI ALboolean ALAPIENTRY (*alIsSource)( ALuint id ); /** Set an integer parameter for a Source object. */ ALAPI ALvoid ALAPIENTRY (*alSourcei)( ALuint source, ALenum param, ALint value ); ALAPI ALvoid ALAPIENTRY (*alSourcef)( ALuint source, ALenum param, ALfloat value ); ALAPI ALvoid ALAPIENTRY (*alSource3f)( ALuint source, ALenum param, ALfloat v1, ALfloat v2, ALfloat v3 ); ALAPI ALvoid ALAPIENTRY (*alSourcefv)( ALuint source, ALenum param, ALfloat* values ); /** Get an integer parameter for a Source object. */ ALAPI ALvoid ALAPIENTRY (*alGetSourcei)( ALuint source, ALenum param, ALint* value ); ALAPI ALvoid ALAPIENTRY (*alGetSourcef)( ALuint source, ALenum param, ALfloat* value ); ALAPI ALvoid ALAPIENTRY (*alGetSourcefv)( ALuint source, ALenum param, ALfloat* values ); ALAPI ALvoid ALAPIENTRY (*alSourcePlayv)( ALsizei n, ALuint *sources ); ALAPI ALvoid ALAPIENTRY (*alSourceStopv)( ALsizei n, ALuint *sources ); /** Activate a source, start replay. */ ALAPI ALvoid ALAPIENTRY (*alSourcePlay)( ALuint source ); /** * Pause a source, * temporarily remove it from the mixer list. */ ALAPI ALvoid ALAPIENTRY (*alSourcePause)( ALuint source ); /** * 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. */ ALAPI ALvoid ALAPIENTRY (*alSourceStop)( ALuint source ); /** * 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. */ ALAPI ALvoid ALAPIENTRY (*alGenBuffers)( ALsizei n, ALuint* buffers ); ALAPI ALvoid ALAPIENTRY (*alDeleteBuffers)( ALsizei n, ALuint* buffers ); ALAPI ALboolean ALAPIENTRY (*alIsBuffer)( ALuint buffer ); /** * Specify the data to be filled into a buffer. */ ALAPI ALvoid ALAPIENTRY (*alBufferData)( ALuint buffer, ALenum format, ALvoid* data, ALsizei size, ALsizei freq ); ALAPI ALvoid ALAPIENTRY (*alGetBufferi)( ALuint buffer, ALenum param, ALint* value ); ALAPI ALvoid ALAPIENTRY (*alGetBufferf)( ALuint buffer, ALenum param, ALfloat* value ); /** * Queue stuff */ ALAPI ALvoid ALAPIENTRY (*alSourceQueueBuffers)( ALuint source, ALsizei n, ALuint* buffers ); ALAPI ALvoid ALAPIENTRY (*alSourceUnqueueBuffers)( ALuint source, ALsizei n, ALuint* buffers ); /** * Knobs and dials */ ALAPI ALvoid ALAPIENTRY (*alDistanceModel)( ALenum value ); ALAPI ALvoid ALAPIENTRY (*alDopplerFactor)( ALfloat value ); ALAPI ALvoid ALAPIENTRY (*alDopplerVelocity)( ALfloat value ); #endif /* AL_NO_PROTOTYPES */ #ifdef TARGET_OS_MAC #if TARGET_OS_MAC #pragma export off #endif #endif #ifdef __cplusplus } #endif #endif --- NEW FILE: alctypes.h --- #ifndef _ALCTYPES_H_ #define _ALCTYPES_H_ /** * OpenAL cross platform audio library * Copyright (C) 1999-2000 by authors. * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. * Or go to http://www.gnu.org/copyleft/lgpl.html */ #ifdef __cplusplus extern "C" { #endif /** ALC boolean type. */ typedef char ALCboolean; /** ALC 8bit signed byte. */ typedef char ALCbyte; /** ALC 8bit unsigned byte. */ typedef unsigned char ALCubyte; /** 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 unsigned int ALCsizei; /** ALC void type */ typedef void ALCvoid; /** ALC enumerations. */ typedef int ALCenum; /* Bad value. */ #define ALC_INVALID (-1) /* Boolean False. */ #define ALC_FALSE 0 /* Boolean True. */ #define ALC_TRUE 1 /** Errors: No Error. */ #define ALC_NO_ERROR ALC_FALSE #define ALC_MAJOR_VERSION 0x1000 #define ALC_MINOR_VERSION 0x1001 #define ALC_ATTRIBUTES_SIZE 0x1002 #define ALC_ALL_ATTRIBUTES 0x1003 #define ALC_DEFAULT_DEVICE_SPECIFIER 0x1004 #define ALC_DEVICE_SPECIFIER 0x1005 #define ALC_EXTENSIONS 0x1006 #define ALC_FREQUENCY 0x1007 #define ALC_REFRESH 0x1008 #define ALC_SYNC 0x1009 /** * The device argument does not name a valid dvice. */ #define ALC_INVALID_DEVICE 0xA001 /** * The context argument does not name a valid context. */ #define ALC_INVALID_CONTEXT 0xA002 /** * A function was called at inappropriate time, * or in an inappropriate way, causing an illegal state. * This can be an incompatible ALenum, object ID, * and/or function. */ #define ALC_INVALID_ENUM 0xA003 /** * Illegal value passed as an argument to an AL call. * Applies to parameter values, but not to enumerations. */ #define ALC_INVALID_VALUE 0xA004 /** * A function could not be completed, * because there is not enough memory available. */ #define ALC_OUT_OF_MEMORY 0xA005 #ifdef __cplusplus } #endif #endif --- NEW FILE: alu.h --- #ifndef _ALU_H_ #define _ALU_H_ #define ALUAPI #define ALUAPIENTRY __cdecl #define BUFFERSIZE 48000 #define FRACTIONBITS 14 #define FRACTIONMASK ((1L<<FRACTIONBITS)-1) #define OUTPUTCHANNELS 2 #include "altypes.h" #ifdef __cplusplus extern "C" { #endif ALUAPI ALint ALUAPIENTRY aluF2L(ALfloat value); ALUAPI ALshort ALUAPIENTRY aluF2S(ALfloat value); ALUAPI ALvoid ALUAPIENTRY aluCrossproduct(ALfloat *inVector1,ALfloat *inVector2,ALfloat *outVector); ALUAPI ALfloat ALUAPIENTRY aluDotproduct(ALfloat *inVector1,ALfloat *inVector2); ALUAPI ALvoid ALUAPIENTRY aluNormalize(ALfloat *inVector); ALUAPI ALvoid ALUAPIENTRY aluMatrixVector(ALfloat matrix[3][3],ALfloat *vector); ALUAPI ALvoid ALUAPIENTRY aluCalculateSourceParameters(ALuint source,ALuint channels,ALfloat *drysend,ALfloat *wetsend,ALfloat *pitch); ALUAPI ALvoid ALUAPIENTRY aluMixData(ALvoid *context,ALvoid *buffer,ALsizei size,ALenum format); ALUAPI ALvoid ALUAPIENTRY aluSetReverb(ALvoid *Reverb,ALuint Environment); ALUAPI ALvoid ALUAPIENTRY aluReverb(ALvoid *Reverb,ALfloat Buffer[][2],ALsizei BufferSize); #ifdef __cplusplus } #endif #endif |