dsound: Add openal support
[wine/multimedia.git] / dlls / dsound / alext.h
blobea27071e0acce2e489410541513ccf56e0d825fd
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 #include <stddef.h>
26 #ifdef __cplusplus
27 extern "C" {
28 #endif
30 #ifndef AL_LOKI_IMA_ADPCM_format
31 #define AL_LOKI_IMA_ADPCM_format 1
32 #define AL_FORMAT_IMA_ADPCM_MONO16_EXT 0x10000
33 #define AL_FORMAT_IMA_ADPCM_STEREO16_EXT 0x10001
34 #endif
36 #ifndef AL_LOKI_WAVE_format
37 #define AL_LOKI_WAVE_format 1
38 #define AL_FORMAT_WAVE_EXT 0x10002
39 #endif
41 #ifndef AL_EXT_vorbis
42 #define AL_EXT_vorbis 1
43 #define AL_FORMAT_VORBIS_EXT 0x10003
44 #endif
46 #ifndef AL_LOKI_quadriphonic
47 #define AL_LOKI_quadriphonic 1
48 #define AL_FORMAT_QUAD8_LOKI 0x10004
49 #define AL_FORMAT_QUAD16_LOKI 0x10005
50 #endif
52 #ifndef AL_EXT_float32
53 #define AL_EXT_float32 1
54 #define AL_FORMAT_MONO_FLOAT32 0x10010
55 #define AL_FORMAT_STEREO_FLOAT32 0x10011
56 #endif
58 #ifndef AL_EXT_double
59 #define AL_EXT_double 1
60 #define AL_FORMAT_MONO_DOUBLE_EXT 0x10012
61 #define AL_FORMAT_STEREO_DOUBLE_EXT 0x10013
62 #endif
64 #ifndef ALC_LOKI_audio_channel
65 #define ALC_LOKI_audio_channel 1
66 #define ALC_CHAN_MAIN_LOKI 0x500001
67 #define ALC_CHAN_PCM_LOKI 0x500002
68 #define ALC_CHAN_CD_LOKI 0x500003
69 #endif
71 #ifndef AL_EXT_MCFORMATS
72 #define AL_EXT_MCFORMATS 1
73 #define AL_FORMAT_QUAD8 0x1204
74 #define AL_FORMAT_QUAD16 0x1205
75 #define AL_FORMAT_QUAD32 0x1206
76 #define AL_FORMAT_REAR8 0x1207
77 #define AL_FORMAT_REAR16 0x1208
78 #define AL_FORMAT_REAR32 0x1209
79 #define AL_FORMAT_51CHN8 0x120A
80 #define AL_FORMAT_51CHN16 0x120B
81 #define AL_FORMAT_51CHN32 0x120C
82 #define AL_FORMAT_61CHN8 0x120D
83 #define AL_FORMAT_61CHN16 0x120E
84 #define AL_FORMAT_61CHN32 0x120F
85 #define AL_FORMAT_71CHN8 0x1210
86 #define AL_FORMAT_71CHN16 0x1211
87 #define AL_FORMAT_71CHN32 0x1212
88 #endif
90 #ifndef AL_EXT_MULAW_MCFORMATS
91 #define AL_EXT_MULAW_MCFORMATS 1
92 #define AL_FORMAT_MONO_MULAW 0x10014
93 #define AL_FORMAT_STEREO_MULAW 0x10015
94 #define AL_FORMAT_QUAD_MULAW 0x10021
95 #define AL_FORMAT_REAR_MULAW 0x10022
96 #define AL_FORMAT_51CHN_MULAW 0x10023
97 #define AL_FORMAT_61CHN_MULAW 0x10024
98 #define AL_FORMAT_71CHN_MULAW 0x10025
99 #endif
101 #ifndef AL_EXT_IMA4
102 #define AL_EXT_IMA4 1
103 #define AL_FORMAT_MONO_IMA4 0x1300
104 #define AL_FORMAT_STEREO_IMA4 0x1301
105 #endif
107 #ifndef AL_EXT_STATIC_BUFFER
108 #define AL_EXT_STATIC_BUFFER 1
109 typedef ALvoid (AL_APIENTRY*PFNALBUFFERDATASTATICPROC)(const ALint,ALenum,ALvoid*,ALsizei,ALsizei);
110 #ifdef AL_ALEXT_PROTOTYPES
111 AL_API ALvoid AL_APIENTRY alBufferDataStatic(const ALint buffer, ALenum format, ALvoid *data, ALsizei len, ALsizei freq);
112 #endif
113 #endif
115 #ifndef ALC_EXT_EFX
116 #define ALC_EXT_EFX 1
117 #include "efx.h"
118 #endif
120 #ifndef ALC_EXT_disconnect
121 #define ALC_EXT_disconnect 1
122 #define ALC_CONNECTED 0x313
123 #endif
125 #ifndef ALC_EXT_thread_local_context
126 #define ALC_EXT_thread_local_context 1
127 typedef ALCboolean (ALC_APIENTRY*PFNALCSETTHREADCONTEXTPROC)(ALCcontext *context);
128 typedef ALCcontext* (ALC_APIENTRY*PFNALCGETTHREADCONTEXTPROC)(void);
129 #ifdef AL_ALEXT_PROTOTYPES
130 ALC_API ALCboolean ALC_APIENTRY alcSetThreadContext(ALCcontext *context);
131 ALC_API ALCcontext* ALC_APIENTRY alcGetThreadContext(void);
132 #endif
133 #endif
135 #ifndef AL_EXT_source_distance_model
136 #define AL_EXT_source_distance_model 1
137 #define AL_SOURCE_DISTANCE_MODEL 0x200
138 #endif
140 #ifndef AL_SOFT_buffer_sub_data
141 #define AL_SOFT_buffer_sub_data 1
142 #define AL_BYTE_RW_OFFSETS_SOFT 0x1031
143 #define AL_SAMPLE_RW_OFFSETS_SOFT 0x1032
144 typedef ALvoid (AL_APIENTRY*PFNALBUFFERSUBDATASOFTPROC)(ALuint,ALenum,const ALvoid*,ALsizei,ALsizei);
145 #ifdef AL_ALEXT_PROTOTYPES
146 AL_API ALvoid AL_APIENTRY alBufferSubDataSOFT(ALuint buffer,ALenum format,const ALvoid *data,ALsizei offset,ALsizei length);
147 #endif
148 #endif
150 #ifndef AL_SOFT_loop_points
151 #define AL_SOFT_loop_points 1
152 #define AL_LOOP_POINTS_SOFT 0x2015
153 #endif
155 #ifndef AL_EXT_FOLDBACK
156 #define AL_EXT_FOLDBACK 1
157 #define AL_EXT_FOLDBACK_NAME "AL_EXT_FOLDBACK"
158 #define AL_FOLDBACK_EVENT_BLOCK 0x4112
159 #define AL_FOLDBACK_EVENT_START 0x4111
160 #define AL_FOLDBACK_EVENT_STOP 0x4113
161 #define AL_FOLDBACK_MODE_MONO 0x4101
162 #define AL_FOLDBACK_MODE_STEREO 0x4102
163 typedef void (AL_APIENTRY*LPALFOLDBACKCALLBACK)(ALenum,ALsizei);
164 typedef void (AL_APIENTRY*LPALREQUESTFOLDBACKSTART)(ALenum,ALsizei,ALsizei,ALfloat*,LPALFOLDBACKCALLBACK);
165 typedef void (AL_APIENTRY*LPALREQUESTFOLDBACKSTOP)(void);
166 #ifdef AL_ALEXT_PROTOTYPES
167 AL_API void AL_APIENTRY alRequestFoldbackStart(ALenum mode,ALsizei count,ALsizei length,ALfloat *mem,LPALFOLDBACKCALLBACK callback);
168 AL_API void AL_APIENTRY alRequestFoldbackStop(void);
169 #endif
170 #endif
172 #ifndef ALC_EXT_DEDICATED
173 #define ALC_EXT_DEDICATED 1
174 #define AL_DEDICATED_GAIN 0x0001
175 #define AL_EFFECT_DEDICATED_DIALOGUE 0x9001
176 #define AL_EFFECT_DEDICATED_LOW_FREQUENCY_EFFECT 0x9000
177 #endif
179 #ifdef __cplusplus
181 #endif
183 #endif