Add support for the in-progress ALC_EXT_thread_local_context extension
[openal-soft.git] / include / AL / alext.h
blobcc42e20b2e10f775a8c9a7c5632b59a36cad4302
1 /**
2 * OpenAL cross platform audio library
3 * Copyright (C) 2008 by authors.
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Library General Public
6 * License as published by the Free Software Foundation; either
7 * version 2 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Library General Public License for more details.
14 * You should have received a copy of the GNU Library General Public
15 * License along with this library; if not, write to the
16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
17 * Boston, MA 02111-1307, USA.
18 * Or go to http://www.gnu.org/copyleft/lgpl.html
21 #ifndef AL_ALEXT_H
22 #define AL_ALEXT_H
24 #ifdef __cplusplus
25 extern "C" {
26 #endif
28 #ifndef AL_LOKI_IMA_ADPCM_format
29 #define AL_LOKI_IMA_ADPCM_format 1
30 #define AL_FORMAT_IMA_ADPCM_MONO16_EXT 0x10000
31 #define AL_FORMAT_IMA_ADPCM_STEREO16_EXT 0x10001
32 #endif
34 #ifndef AL_LOKI_WAVE_format
35 #define AL_LOKI_WAVE_format 1
36 #define AL_FORMAT_WAVE_EXT 0x10002
37 #endif
39 #ifndef AL_EXT_vorbis
40 #define AL_EXT_vorbis 1
41 #define AL_FORMAT_VORBIS_EXT 0x10003
42 #endif
44 #ifndef AL_LOKI_quadriphonic
45 #define AL_LOKI_quadriphonic 1
46 #define AL_FORMAT_QUAD8_LOKI 0x10004
47 #define AL_FORMAT_QUAD16_LOKI 0x10005
48 #endif
50 #ifndef AL_EXT_float32
51 #define AL_EXT_float32 1
52 #define AL_FORMAT_MONO_FLOAT32 0x10010
53 #define AL_FORMAT_STEREO_FLOAT32 0x10011
54 #endif
56 #ifndef ALC_LOKI_audio_channel
57 #define ALC_LOKI_audio_channel 1
58 #define ALC_CHAN_MAIN_LOKI 0x500001
59 #define ALC_CHAN_PCM_LOKI 0x500002
60 #define ALC_CHAN_CD_LOKI 0x500003
61 #endif
63 #ifndef ALC_ENUMERATE_ALL_EXT
64 #define ALC_ENUMERATE_ALL_EXT 1
65 #define ALC_DEFAULT_ALL_DEVICES_SPECIFIER 0x1012
66 #define ALC_ALL_DEVICES_SPECIFIER 0x1013
67 #endif
69 #ifndef AL_EXT_MCFORMATS
70 #define AL_EXT_MCFORMATS 1
71 #define AL_FORMAT_QUAD8 0x1204
72 #define AL_FORMAT_QUAD16 0x1205
73 #define AL_FORMAT_QUAD32 0x1206
74 #define AL_FORMAT_REAR8 0x1207
75 #define AL_FORMAT_REAR16 0x1208
76 #define AL_FORMAT_REAR32 0x1209
77 #define AL_FORMAT_51CHN8 0x120A
78 #define AL_FORMAT_51CHN16 0x120B
79 #define AL_FORMAT_51CHN32 0x120C
80 #define AL_FORMAT_61CHN8 0x120D
81 #define AL_FORMAT_61CHN16 0x120E
82 #define AL_FORMAT_61CHN32 0x120F
83 #define AL_FORMAT_71CHN8 0x1210
84 #define AL_FORMAT_71CHN16 0x1211
85 #define AL_FORMAT_71CHN32 0x1212
86 #endif
88 #ifndef AL_EXT_IMA4
89 #define AL_EXT_IMA4 1
90 #define AL_FORMAT_MONO_IMA4 0x1300
91 #define AL_FORMAT_STEREO_IMA4 0x1301
92 #endif
94 #ifndef AL_EXT_buffer_sub_data
95 #define AL_EXT_buffer_sub_data 1
96 #define AL_BYTE_RW_OFFSETS_EXT 0x1031
97 #define AL_SAMPLE_RW_OFFSETS_EXT 0x1032
98 #define AL_SEC_RW_OFFSETS_EXT 0x1033
99 typedef ALvoid (AL_APIENTRY*PFNALBUFFERSUBDATAEXTPROC)(ALuint,ALenum,const ALvoid*,ALsizei,ALsizei);
100 #endif
102 #ifndef AL_EXT_BUFFER_DATA_STATIC
103 #define AL_EXT_BUFFER_DATA_STATIC 1
104 typedef ALvoid (AL_APIENTRY*PFNALBUFFERDATASTATICPROC)(const ALint,ALenum,ALvoid*,ALsizei,ALsizei);
105 #endif
107 #ifndef AL_EXT_sample_buffer_object
108 #define AL_EXT_sample_buffer_object 1
109 #define AL_SAMPLE_SOURCE_EXT 0x1040
110 #define AL_SAMPLE_SINK_EXT 0x1041
111 #define AL_READ_ONLY_EXT 0x1042
112 #define AL_WRITE_ONLY_EXT 0x1043
113 #define AL_READ_WRITE_EXT 0x1044
114 #define AL_STREAM_WRITE_EXT 0x1045
115 #define AL_STREAM_READ_EXT 0x1046
116 #define AL_STREAM_COPY_EXT 0x1047
117 #define AL_STATIC_WRITE_EXT 0x1048
118 #define AL_STATIC_READ_EXT 0x1049
119 #define AL_STATIC_COPY_EXT 0x104A
120 #define AL_DYNAMIC_WRITE_EXT 0x104B
121 #define AL_DYNAMIC_READ_EXT 0x104C
122 #define AL_DYNAMIC_COPY_EXT 0x104D
123 typedef ALvoid (AL_APIENTRY*PFNALGENDATABUFFERSEXTPROC)(ALsizei n,ALuint *puiBuffers);
124 typedef ALvoid (AL_APIENTRY*PFNALDELETEDATABUFFERSEXTPROC)(ALsizei n, const ALuint *puiBuffers);
125 typedef ALboolean (AL_APIENTRY*PFNALISDATABUFFEREXTPROC)(ALuint uiBuffer);
126 typedef ALvoid (AL_APIENTRY*PFNALDATABUFFERDATAEXTPROC)(ALuint buffer,const ALvoid *data,ALsizei size,ALenum usage);
127 typedef ALvoid (AL_APIENTRY*PFNALDATABUFFERSUBDATAEXTPROC)(ALuint buffer, ALuint start, ALsizei length, const ALvoid *);
128 typedef ALvoid (AL_APIENTRY*PFNALGETDATABUFFERSUBDATAEXTPROC)(ALuint buffer, ALuint start, ALsizei length, ALvoid *);
129 typedef ALvoid (AL_APIENTRY*PFNALDATABUFFERFEXTPROC)(ALuint buffer, ALenum eParam, ALfloat flValue);
130 typedef ALvoid (AL_APIENTRY*PFNALDATABUFFERFVEXTPROC)(ALuint buffer, ALenum eParam, const ALfloat* flValues);
131 typedef ALvoid (AL_APIENTRY*PFNALDATABUFFERIEXTPROC)(ALuint buffer, ALenum eParam, ALint lValue);
132 typedef ALvoid (AL_APIENTRY*PFNALDATABUFFERIVEXTPROC)(ALuint buffer, ALenum eParam, const ALint* plValues);
133 typedef ALvoid (AL_APIENTRY*PFNALGETDATABUFFERFEXTPROC)(ALuint buffer, ALenum eParam, ALfloat *pflValue);
134 typedef ALvoid (AL_APIENTRY*PFNALGETDATABUFFERFVEXTPROC)(ALuint buffer, ALenum eParam, ALfloat* pflValues);
135 typedef ALvoid (AL_APIENTRY*PFNALGETDATABUFFERIEXTPROC)(ALuint buffer, ALenum eParam, ALint *plValue);
136 typedef ALvoid (AL_APIENTRY*PFNALGETDATABUFFERIVEXTPROC)(ALuint buffer, ALenum eParam, ALint* plValues);
137 typedef ALvoid (AL_APIENTRY*PFNALSELECTDATABUFFEREXTPROC)(ALenum target, ALuint uiBuffer);
138 typedef ALvoid* (AL_APIENTRY*PFNALMAPDATABUFFEREXTPROC)(ALuint uiBuffer, ALuint start, ALsizei length, ALenum access);
139 typedef ALvoid (AL_APIENTRY*PFNALUNMAPDATABUFFEREXTPROC)(ALuint uiBuffer);
140 #endif
142 #ifndef ALC_EXT_disconnect
143 #define ALC_EXT_disconnect 1
144 #define ALC_CONNECTED 0x313
145 #endif
147 #ifndef ALC_EXT_thread_local_context
148 #define ALC_EXT_thread_local_context 1
149 typedef ALCboolean (ALCAPIENTRY*PFNALCMAKECURRENTPROC)(ALCcontext *context);
150 typedef ALCcontext* (ALCAPIENTRY*PFNALCGETTHREADCONTEXTPROC)(void);
151 #endif
153 #ifdef __cplusplus
155 #endif
157 #endif