1 /*
2 ===========================================================================
3 Copyright (C) 1999-2005 Id Software, Inc.
4 Copyright (C) 2005 Stuart Dalton (badcdev@gmail.com)
5 
6 This file is part of Quake III Arena source code.
7 
8 Quake III Arena source code is free software; you can redistribute it
9 and/or modify it under the terms of the GNU General Public License as
10 published by the Free Software Foundation; either version 2 of the License,
11 or (at your option) any later version.
12 
13 Quake III Arena source code is distributed in the hope that it will be
14 useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 GNU General Public License for more details.
17 
18 You should have received a copy of the GNU General Public License
19 along with Quake III Arena source code; if not, write to the Free Software
20 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
21 ===========================================================================
22 */
23 
24 
25 #ifndef __QAL_H__
26 #define __QAL_H__
27 
28 #include "../qcommon/q_shared.h"
29 #include "../qcommon/qcommon.h"
30 
31 #ifdef USE_OPENAL_DLOPEN
32 #define AL_NO_PROTOTYPES
33 #define ALC_NO_PROTOTYPES
34 #endif
35 
36 #ifdef USE_LOCAL_HEADERS
37 #include "../AL/al.h"
38 #include "../AL/alc.h"
39 #else
40 #ifdef _MSC_VER
41   // MSVC users must install the OpenAL SDK which doesn't use the AL/*.h scheme.
42   #include <al.h>
43   #include <alc.h>
44 #else
45   #include <AL/al.h>
46   #include <AL/alc.h>
47 #endif
48 #endif
49 
50 #ifdef USE_OPENAL_DLOPEN
51 extern LPALENABLE qalEnable;
52 extern LPALDISABLE qalDisable;
53 extern LPALISENABLED qalIsEnabled;
54 extern LPALGETSTRING qalGetString;
55 extern LPALGETBOOLEANV qalGetBooleanv;
56 extern LPALGETINTEGERV qalGetIntegerv;
57 extern LPALGETFLOATV qalGetFloatv;
58 extern LPALGETDOUBLEV qalGetDoublev;
59 extern LPALGETBOOLEAN qalGetBoolean;
60 extern LPALGETINTEGER qalGetInteger;
61 extern LPALGETFLOAT qalGetFloat;
62 extern LPALGETDOUBLE qalGetDouble;
63 extern LPALGETERROR qalGetError;
64 extern LPALISEXTENSIONPRESENT qalIsExtensionPresent;
65 extern LPALGETPROCADDRESS qalGetProcAddress;
66 extern LPALGETENUMVALUE qalGetEnumValue;
67 extern LPALLISTENERF qalListenerf;
68 extern LPALLISTENER3F qalListener3f;
69 extern LPALLISTENERFV qalListenerfv;
70 extern LPALLISTENERI qalListeneri;
71 extern LPALLISTENER3I qalListener3i;
72 extern LPALLISTENERIV qalListeneriv;
73 extern LPALGETLISTENERF qalGetListenerf;
74 extern LPALGETLISTENER3F qalGetListener3f;
75 extern LPALGETLISTENERFV qalGetListenerfv;
76 extern LPALGETLISTENERI qalGetListeneri;
77 extern LPALGETLISTENER3I qalGetListener3i;
78 extern LPALGETLISTENERIV qalGetListeneriv;
79 extern LPALGENSOURCES qalGenSources;
80 extern LPALDELETESOURCES qalDeleteSources;
81 extern LPALISSOURCE qalIsSource;
82 extern LPALSOURCEF qalSourcef;
83 extern LPALSOURCE3F qalSource3f;
84 extern LPALSOURCEFV qalSourcefv;
85 extern LPALSOURCEI qalSourcei;
86 extern LPALSOURCE3I qalSource3i;
87 extern LPALSOURCEIV qalSourceiv;
88 extern LPALGETSOURCEF qalGetSourcef;
89 extern LPALGETSOURCE3F qalGetSource3f;
90 extern LPALGETSOURCEFV qalGetSourcefv;
91 extern LPALGETSOURCEI qalGetSourcei;
92 extern LPALGETSOURCE3I qalGetSource3i;
93 extern LPALGETSOURCEIV qalGetSourceiv;
94 extern LPALSOURCEPLAYV qalSourcePlayv;
95 extern LPALSOURCESTOPV qalSourceStopv;
96 extern LPALSOURCEREWINDV qalSourceRewindv;
97 extern LPALSOURCEPAUSEV qalSourcePausev;
98 extern LPALSOURCEPLAY qalSourcePlay;
99 extern LPALSOURCESTOP qalSourceStop;
100 extern LPALSOURCEREWIND qalSourceRewind;
101 extern LPALSOURCEPAUSE qalSourcePause;
102 extern LPALSOURCEQUEUEBUFFERS qalSourceQueueBuffers;
103 extern LPALSOURCEUNQUEUEBUFFERS qalSourceUnqueueBuffers;
104 extern LPALGENBUFFERS qalGenBuffers;
105 extern LPALDELETEBUFFERS qalDeleteBuffers;
106 extern LPALISBUFFER qalIsBuffer;
107 extern LPALBUFFERDATA qalBufferData;
108 extern LPALBUFFERF qalBufferf;
109 extern LPALBUFFER3F qalBuffer3f;
110 extern LPALBUFFERFV qalBufferfv;
111 extern LPALBUFFERF qalBufferi;
112 extern LPALBUFFER3F qalBuffer3i;
113 extern LPALBUFFERFV qalBufferiv;
114 extern LPALGETBUFFERF qalGetBufferf;
115 extern LPALGETBUFFER3F qalGetBuffer3f;
116 extern LPALGETBUFFERFV qalGetBufferfv;
117 extern LPALGETBUFFERI qalGetBufferi;
118 extern LPALGETBUFFER3I qalGetBuffer3i;
119 extern LPALGETBUFFERIV qalGetBufferiv;
120 extern LPALDOPPLERFACTOR qalDopplerFactor;
121 extern LPALDOPPLERVELOCITY qalDopplerVelocity;
122 extern LPALSPEEDOFSOUND qalSpeedOfSound;
123 extern LPALDISTANCEMODEL qalDistanceModel;
124 
125 extern LPALCCREATECONTEXT qalcCreateContext;
126 extern LPALCMAKECONTEXTCURRENT qalcMakeContextCurrent;
127 extern LPALCPROCESSCONTEXT qalcProcessContext;
128 extern LPALCSUSPENDCONTEXT qalcSuspendContext;
129 extern LPALCDESTROYCONTEXT qalcDestroyContext;
130 extern LPALCGETCURRENTCONTEXT qalcGetCurrentContext;
131 extern LPALCGETCONTEXTSDEVICE qalcGetContextsDevice;
132 extern LPALCOPENDEVICE qalcOpenDevice;
133 extern LPALCCLOSEDEVICE qalcCloseDevice;
134 extern LPALCGETERROR qalcGetError;
135 extern LPALCISEXTENSIONPRESENT qalcIsExtensionPresent;
136 extern LPALCGETPROCADDRESS qalcGetProcAddress;
137 extern LPALCGETENUMVALUE qalcGetEnumValue;
138 extern LPALCGETSTRING qalcGetString;
139 extern LPALCGETINTEGERV qalcGetIntegerv;
140 extern LPALCCAPTUREOPENDEVICE qalcCaptureOpenDevice;
141 extern LPALCCAPTURECLOSEDEVICE qalcCaptureCloseDevice;
142 extern LPALCCAPTURESTART qalcCaptureStart;
143 extern LPALCCAPTURESTOP qalcCaptureStop;
144 extern LPALCCAPTURESAMPLES qalcCaptureSamples;
145 #else
146 #define qalEnable alEnable
147 #define qalDisable alDisable
148 #define qalIsEnabled alIsEnabled
149 #define qalGetString alGetString
150 #define qalGetBooleanv alGetBooleanv
151 #define qalGetIntegerv alGetIntegerv
152 #define qalGetFloatv alGetFloatv
153 #define qalGetDoublev alGetDoublev
154 #define qalGetBoolean alGetBoolean
155 #define qalGetInteger alGetInteger
156 #define qalGetFloat alGetFloat
157 #define qalGetDouble alGetDouble
158 #define qalGetError alGetError
159 #define qalIsExtensionPresent alIsExtensionPresent
160 #define qalGetProcAddress alGetProcAddress
161 #define qalGetEnumValue alGetEnumValue
162 #define qalListenerf alListenerf
163 #define qalListener3f alListener3f
164 #define qalListenerfv alListenerfv
165 #define qalListeneri alListeneri
166 #define qalListener3i alListener3i
167 #define qalListeneriv alListeneriv
168 #define qalGetListenerf alGetListenerf
169 #define qalGetListener3f alGetListener3f
170 #define qalGetListenerfv alGetListenerfv
171 #define qalGetListeneri alGetListeneri
172 #define qalGetListener3i alGetListener3i
173 #define qalGetListeneriv alGetListeneriv
174 #define qalGenSources alGenSources
175 #define qalDeleteSources alDeleteSources
176 #define qalIsSource alIsSource
177 #define qalSourcef alSourcef
178 #define qalSource3f alSource3f
179 #define qalSourcefv alSourcefv
180 #define qalSourcei alSourcei
181 #define qalSource3i alSource3i
182 #define qalSourceiv alSourceiv
183 #define qalGetSourcef alGetSourcef
184 #define qalGetSource3f alGetSource3f
185 #define qalGetSourcefv alGetSourcefv
186 #define qalGetSourcei alGetSourcei
187 #define qalGetSource3i alGetSource3i
188 #define qalGetSourceiv alGetSourceiv
189 #define qalSourcePlayv alSourcePlayv
190 #define qalSourceStopv alSourceStopv
191 #define qalSourceRewindv alSourceRewindv
192 #define qalSourcePausev alSourcePausev
193 #define qalSourcePlay alSourcePlay
194 #define qalSourceStop alSourceStop
195 #define qalSourceRewind alSourceRewind
196 #define qalSourcePause alSourcePause
197 #define qalSourceQueueBuffers alSourceQueueBuffers
198 #define qalSourceUnqueueBuffers alSourceUnqueueBuffers
199 #define qalGenBuffers alGenBuffers
200 #define qalDeleteBuffers alDeleteBuffers
201 #define qalIsBuffer alIsBuffer
202 #define qalBufferData alBufferData
203 #define qalBufferf alBufferf
204 #define qalBuffer3f alBuffer3f
205 #define qalBufferfv alBufferfv
206 #define qalBufferi alBufferi
207 #define qalBuffer3i alBuffer3i
208 #define qalBufferiv alBufferiv
209 #define qalGetBufferf alGetBufferf
210 #define qalGetBuffer3f alGetBuffer3f
211 #define qalGetBufferfv alGetBufferfv
212 #define qalGetBufferi alGetBufferi
213 #define qalGetBuffer3i alGetBuffer3i
214 #define qalGetBufferiv alGetBufferiv
215 #define qalDopplerFactor alDopplerFactor
216 #define qalDopplerVelocity alDopplerVelocity
217 #define qalSpeedOfSound alSpeedOfSound
218 #define qalDistanceModel alDistanceModel
219 
220 #define qalcCreateContext alcCreateContext
221 #define qalcMakeContextCurrent alcMakeContextCurrent
222 #define qalcProcessContext alcProcessContext
223 #define qalcSuspendContext alcSuspendContext
224 #define qalcDestroyContext alcDestroyContext
225 #define qalcGetCurrentContext alcGetCurrentContext
226 #define qalcGetContextsDevice alcGetContextsDevice
227 #define qalcOpenDevice alcOpenDevice
228 #define qalcCloseDevice alcCloseDevice
229 #define qalcGetError alcGetError
230 #define qalcIsExtensionPresent alcIsExtensionPresent
231 #define qalcGetProcAddress alcGetProcAddress
232 #define qalcGetEnumValue alcGetEnumValue
233 #define qalcGetString alcGetString
234 #define qalcGetIntegerv alcGetIntegerv
235 #define qalcCaptureOpenDevice alcCaptureOpenDevice
236 #define qalcCaptureCloseDevice alcCaptureCloseDevice
237 #define qalcCaptureStart alcCaptureStart
238 #define qalcCaptureStop alcCaptureStop
239 #define qalcCaptureSamples alcCaptureSamples
240 #endif
241 
242 qboolean QAL_Init(const char *libname);
243 void QAL_Shutdown( void );
244 
245 #endif	// __QAL_H__
246