rlm@0: /** rlm@0: * OpenAL cross platform audio library rlm@0: * Copyright (C) 2008 by authors. rlm@0: * This library is free software; you can redistribute it and/or rlm@0: * modify it under the terms of the GNU Library General Public rlm@0: * License as published by the Free Software Foundation; either rlm@0: * version 2 of the License, or (at your option) any later version. rlm@0: * rlm@0: * This library is distributed in the hope that it will be useful, rlm@0: * but WITHOUT ANY WARRANTY; without even the implied warranty of rlm@0: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU rlm@0: * Library General Public License for more details. rlm@0: * rlm@0: * You should have received a copy of the GNU Library General Public rlm@0: * License along with this library; if not, write to the rlm@0: * Free Software Foundation, Inc., 59 Temple Place - Suite 330, rlm@0: * Boston, MA 02111-1307, USA. rlm@0: * Or go to http://www.gnu.org/copyleft/lgpl.html rlm@0: */ rlm@0: rlm@0: #ifndef AL_ALEXT_H rlm@0: #define AL_ALEXT_H rlm@0: rlm@0: #include rlm@0: rlm@0: #ifdef __cplusplus rlm@0: extern "C" { rlm@0: #endif rlm@0: rlm@0: #ifndef AL_LOKI_IMA_ADPCM_format rlm@0: #define AL_LOKI_IMA_ADPCM_format 1 rlm@0: #define AL_FORMAT_IMA_ADPCM_MONO16_EXT 0x10000 rlm@0: #define AL_FORMAT_IMA_ADPCM_STEREO16_EXT 0x10001 rlm@0: #endif rlm@0: rlm@0: #ifndef AL_LOKI_WAVE_format rlm@0: #define AL_LOKI_WAVE_format 1 rlm@0: #define AL_FORMAT_WAVE_EXT 0x10002 rlm@0: #endif rlm@0: rlm@0: #ifndef AL_EXT_vorbis rlm@0: #define AL_EXT_vorbis 1 rlm@0: #define AL_FORMAT_VORBIS_EXT 0x10003 rlm@0: #endif rlm@0: rlm@0: #ifndef AL_LOKI_quadriphonic rlm@0: #define AL_LOKI_quadriphonic 1 rlm@0: #define AL_FORMAT_QUAD8_LOKI 0x10004 rlm@0: #define AL_FORMAT_QUAD16_LOKI 0x10005 rlm@0: #endif rlm@0: rlm@0: #ifndef AL_EXT_float32 rlm@0: #define AL_EXT_float32 1 rlm@0: #define AL_FORMAT_MONO_FLOAT32 0x10010 rlm@0: #define AL_FORMAT_STEREO_FLOAT32 0x10011 rlm@0: #endif rlm@0: rlm@0: #ifndef AL_EXT_double rlm@0: #define AL_EXT_double 1 rlm@0: #define AL_FORMAT_MONO_DOUBLE_EXT 0x10012 rlm@0: #define AL_FORMAT_STEREO_DOUBLE_EXT 0x10013 rlm@0: #endif rlm@0: rlm@0: #ifndef ALC_LOKI_audio_channel rlm@0: #define ALC_LOKI_audio_channel 1 rlm@0: #define ALC_CHAN_MAIN_LOKI 0x500001 rlm@0: #define ALC_CHAN_PCM_LOKI 0x500002 rlm@0: #define ALC_CHAN_CD_LOKI 0x500003 rlm@0: #endif rlm@0: rlm@0: #ifndef AL_EXT_MCFORMATS rlm@0: #define AL_EXT_MCFORMATS 1 rlm@0: #define AL_FORMAT_QUAD8 0x1204 rlm@0: #define AL_FORMAT_QUAD16 0x1205 rlm@0: #define AL_FORMAT_QUAD32 0x1206 rlm@0: #define AL_FORMAT_REAR8 0x1207 rlm@0: #define AL_FORMAT_REAR16 0x1208 rlm@0: #define AL_FORMAT_REAR32 0x1209 rlm@0: #define AL_FORMAT_51CHN8 0x120A rlm@0: #define AL_FORMAT_51CHN16 0x120B rlm@0: #define AL_FORMAT_51CHN32 0x120C rlm@0: #define AL_FORMAT_61CHN8 0x120D rlm@0: #define AL_FORMAT_61CHN16 0x120E rlm@0: #define AL_FORMAT_61CHN32 0x120F rlm@0: #define AL_FORMAT_71CHN8 0x1210 rlm@0: #define AL_FORMAT_71CHN16 0x1211 rlm@0: #define AL_FORMAT_71CHN32 0x1212 rlm@0: #endif rlm@0: rlm@0: #ifndef AL_EXT_MULAW_MCFORMATS rlm@0: #define AL_EXT_MULAW_MCFORMATS 1 rlm@0: #define AL_FORMAT_MONO_MULAW 0x10014 rlm@0: #define AL_FORMAT_STEREO_MULAW 0x10015 rlm@0: #define AL_FORMAT_QUAD_MULAW 0x10021 rlm@0: #define AL_FORMAT_REAR_MULAW 0x10022 rlm@0: #define AL_FORMAT_51CHN_MULAW 0x10023 rlm@0: #define AL_FORMAT_61CHN_MULAW 0x10024 rlm@0: #define AL_FORMAT_71CHN_MULAW 0x10025 rlm@0: #endif rlm@0: rlm@0: #ifndef AL_EXT_IMA4 rlm@0: #define AL_EXT_IMA4 1 rlm@0: #define AL_FORMAT_MONO_IMA4 0x1300 rlm@0: #define AL_FORMAT_STEREO_IMA4 0x1301 rlm@0: #endif rlm@0: rlm@0: #ifndef AL_EXT_STATIC_BUFFER rlm@0: #define AL_EXT_STATIC_BUFFER 1 rlm@0: typedef ALvoid (AL_APIENTRY*PFNALBUFFERDATASTATICPROC)(const ALint,ALenum,ALvoid*,ALsizei,ALsizei); rlm@0: #ifdef AL_ALEXT_PROTOTYPES rlm@0: AL_API ALvoid AL_APIENTRY alBufferDataStatic(const ALint buffer, ALenum format, ALvoid *data, ALsizei len, ALsizei freq); rlm@0: #endif rlm@0: #endif rlm@0: rlm@0: #ifndef ALC_EXT_EFX rlm@0: #define ALC_EXT_EFX 1 rlm@0: #include "efx.h" rlm@0: #endif rlm@0: rlm@0: #ifndef ALC_EXT_disconnect rlm@0: #define ALC_EXT_disconnect 1 rlm@0: #define ALC_CONNECTED 0x313 rlm@0: #endif rlm@0: rlm@0: #ifndef ALC_EXT_thread_local_context rlm@0: #define ALC_EXT_thread_local_context 1 rlm@0: typedef ALCboolean (ALC_APIENTRY*PFNALCSETTHREADCONTEXTPROC)(ALCcontext *context); rlm@0: typedef ALCcontext* (ALC_APIENTRY*PFNALCGETTHREADCONTEXTPROC)(void); rlm@0: #ifdef AL_ALEXT_PROTOTYPES rlm@0: ALC_API ALCboolean ALC_APIENTRY alcSetThreadContext(ALCcontext *context); rlm@0: ALC_API ALCcontext* ALC_APIENTRY alcGetThreadContext(void); rlm@0: #endif rlm@0: #endif rlm@0: rlm@0: #ifndef AL_EXT_source_distance_model rlm@0: #define AL_EXT_source_distance_model 1 rlm@0: #define AL_SOURCE_DISTANCE_MODEL 0x200 rlm@0: #endif rlm@0: rlm@0: #ifndef AL_SOFT_buffer_sub_data rlm@0: #define AL_SOFT_buffer_sub_data 1 rlm@0: #define AL_BYTE_RW_OFFSETS_SOFT 0x1031 rlm@0: #define AL_SAMPLE_RW_OFFSETS_SOFT 0x1032 rlm@0: typedef ALvoid (AL_APIENTRY*PFNALBUFFERSUBDATASOFTPROC)(ALuint,ALenum,const ALvoid*,ALsizei,ALsizei); rlm@0: #ifdef AL_ALEXT_PROTOTYPES rlm@0: AL_API ALvoid AL_APIENTRY alBufferSubDataSOFT(ALuint buffer,ALenum format,const ALvoid *data,ALsizei offset,ALsizei length); rlm@0: #endif rlm@0: #endif rlm@0: rlm@0: #ifndef AL_SOFT_loop_points rlm@0: #define AL_SOFT_loop_points 1 rlm@0: #define AL_LOOP_POINTS_SOFT 0x2015 rlm@0: #endif rlm@0: rlm@0: #ifndef AL_EXT_FOLDBACK rlm@0: #define AL_EXT_FOLDBACK 1 rlm@0: #define AL_EXT_FOLDBACK_NAME "AL_EXT_FOLDBACK" rlm@0: #define AL_FOLDBACK_EVENT_BLOCK 0x4112 rlm@0: #define AL_FOLDBACK_EVENT_START 0x4111 rlm@0: #define AL_FOLDBACK_EVENT_STOP 0x4113 rlm@0: #define AL_FOLDBACK_MODE_MONO 0x4101 rlm@0: #define AL_FOLDBACK_MODE_STEREO 0x4102 rlm@0: typedef void (AL_APIENTRY*LPALFOLDBACKCALLBACK)(ALenum,ALsizei); rlm@0: typedef void (AL_APIENTRY*LPALREQUESTFOLDBACKSTART)(ALenum,ALsizei,ALsizei,ALfloat*,LPALFOLDBACKCALLBACK); rlm@0: typedef void (AL_APIENTRY*LPALREQUESTFOLDBACKSTOP)(void); rlm@0: #ifdef AL_ALEXT_PROTOTYPES rlm@0: AL_API void AL_APIENTRY alRequestFoldbackStart(ALenum mode,ALsizei count,ALsizei length,ALfloat *mem,LPALFOLDBACKCALLBACK callback); rlm@0: AL_API void AL_APIENTRY alRequestFoldbackStop(void); rlm@0: #endif rlm@0: #endif rlm@0: rlm@0: #ifndef ALC_EXT_DEDICATED rlm@0: #define ALC_EXT_DEDICATED 1 rlm@0: #define AL_DEDICATED_GAIN 0x0001 rlm@0: #define AL_EFFECT_DEDICATED_DIALOGUE 0x9001 rlm@0: #define AL_EFFECT_DEDICATED_LOW_FREQUENCY_EFFECT 0x9000 rlm@0: #endif rlm@0: rlm@0: #ifdef __cplusplus rlm@0: } rlm@0: #endif rlm@0: rlm@0: #endif