1 /*
2 Copyright (C) 1997-2001 Id Software, Inc.
3 
4 This program is free software; you can redistribute it and/or
5 modify it under the terms of the GNU General Public License
6 as published by the Free Software Foundation; either version 2
7 of the License, or (at your option) any later version.
8 
9 This program 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.
12 
13 See the GNU General Public License for more details.
14 
15 You should have received a copy of the GNU General Public License
16 along with this program; if not, write to the Free Software
17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
18 
19 */
20 
21 
22 #ifndef __QAL_H__
23 #define __QAL_H__
24 
25 
26 qboolean	QAL_Init (const char *driver);
27 void		QAL_Shutdown (void);
28 
29 typedef ALCAPI ALCdevice *		(ALCAPIENTRY * ALCOPENDEVICE)(ALCubyte *deviceName);
30 typedef ALCAPI ALCvoid			(ALCAPIENTRY * ALCCLOSEDEVICE)(ALCdevice *device);
31 typedef ALCAPI ALCcontext *		(ALCAPIENTRY * ALCCREATECONTEXT)(ALCdevice *device, ALCint *attrList);
32 typedef ALCAPI ALCvoid			(ALCAPIENTRY * ALCDESTROYCONTEXT)(ALCcontext *context);
33 typedef ALCAPI ALCboolean		(ALCAPIENTRY * ALCMAKECONTEXTCURRENT)(ALCcontext *context);
34 typedef ALCAPI ALCvoid			(ALCAPIENTRY * ALCPROCESSCONTEXT)(ALCcontext *context);
35 typedef ALCAPI ALCvoid			(ALCAPIENTRY * ALCSUSPENDCONTEXT)(ALCcontext *context);
36 typedef ALCAPI ALCcontext *		(ALCAPIENTRY * ALCGETCURRENTCONTEXT)(ALCvoid);
37 typedef ALCAPI ALCdevice *		(ALCAPIENTRY * ALCGETCONTEXTSDEVICE)(ALCcontext *context);
38 typedef ALCAPI ALCubyte *		(ALCAPIENTRY * ALCGETSTRING)(ALCdevice *device, ALCenum param);
39 typedef ALCAPI ALCvoid			(ALCAPIENTRY * ALCGETINTEGERV)(ALCdevice *device, ALCenum param, ALCsizei size, ALCint *data);
40 typedef ALCAPI ALCenum			(ALCAPIENTRY * ALCGETERROR)(ALCdevice *device);
41 typedef ALCAPI ALCboolean		(ALCAPIENTRY * ALCISEXTENSIONPRESENT)(ALCdevice *device, ALCubyte *extName);
42 typedef ALCAPI ALCvoid *		(ALCAPIENTRY * ALCGETPROCADDRESS)(ALCdevice *device, ALCubyte *funcName);
43 typedef ALCAPI ALCenum			(ALCAPIENTRY * ALCGETENUMVALUE)(ALCdevice *device, ALCubyte *enumName);
44 
45 typedef ALAPI ALvoid			(ALAPIENTRY * ALBUFFERDATA)(ALuint buffer, ALenum format, ALvoid *data, ALsizei size, ALsizei freq);
46 typedef ALAPI ALvoid			(ALAPIENTRY * ALDELETEBUFFERS)(ALsizei n, ALuint *buffers);
47 typedef ALAPI ALvoid			(ALAPIENTRY * ALDELETESOURCES)(ALsizei n, ALuint *sources);
48 typedef ALAPI ALvoid			(ALAPIENTRY * ALDISABLE)(ALenum capability);
49 typedef ALAPI ALvoid			(ALAPIENTRY * ALDISTANCEMODEL)(ALenum value);
50 typedef ALAPI ALvoid			(ALAPIENTRY * ALDOPPLERFACTOR)(ALfloat value);
51 typedef ALAPI ALvoid			(ALAPIENTRY * ALDOPPLERVELOCITY)(ALfloat value);
52 typedef ALAPI ALvoid			(ALAPIENTRY * ALENABLE)(ALenum capability);
53 typedef ALAPI ALvoid			(ALAPIENTRY * ALGENBUFFERS)(ALsizei n, ALuint *buffers);
54 typedef ALAPI ALvoid			(ALAPIENTRY * ALGENSOURCES)(ALsizei n, ALuint *sources);
55 typedef ALAPI ALboolean			(ALAPIENTRY * ALGETBOOLEAN)(ALenum param);
56 typedef ALAPI ALvoid			(ALAPIENTRY * ALGETBOOLEANV)(ALenum param, ALboolean *data);
57 typedef ALAPI ALvoid			(ALAPIENTRY * ALGETBUFFERF)(ALuint buffer, ALenum param, ALfloat *value);
58 typedef ALAPI ALvoid			(ALAPIENTRY * ALGETBUFFERI)(ALuint buffer, ALenum param, ALint *value);
59 typedef ALAPI ALdouble			(ALAPIENTRY * ALGETDOUBLE)(ALenum param);
60 typedef ALAPI ALvoid			(ALAPIENTRY * ALGETDOUBLEV)(ALenum param, ALdouble *data);
61 typedef ALAPI ALenum			(ALAPIENTRY * ALGETENUMVALUE)(ALubyte *enumName);
62 typedef ALAPI ALenum			(ALAPIENTRY * ALGETERROR)(ALvoid);
63 typedef ALAPI ALfloat			(ALAPIENTRY * ALGETFLOAT)(ALenum param);
64 typedef ALAPI ALvoid			(ALAPIENTRY * ALGETFLOATV)(ALenum param, ALfloat *data);
65 typedef ALAPI ALint				(ALAPIENTRY * ALGETINTEGER)(ALenum param);
66 typedef ALAPI ALvoid			(ALAPIENTRY * ALGETINTEGERV)(ALenum param, ALint *data);
67 typedef ALAPI ALvoid			(ALAPIENTRY * ALGETLISTENER3F)(ALenum param, ALfloat *v1, ALfloat *v2, ALfloat *v3);
68 typedef ALAPI ALvoid			(ALAPIENTRY * ALGETLISTENERF)(ALenum param, ALfloat *value);
69 typedef ALAPI ALvoid			(ALAPIENTRY * ALGETLISTENERFV)(ALenum param, ALfloat *values);
70 typedef ALAPI ALvoid			(ALAPIENTRY * ALGETLISTENERI)(ALenum param, ALint *value);
71 typedef ALAPI ALvoid *			(ALAPIENTRY * ALGETPROCADDRESS)(ALubyte *funcName);
72 typedef ALAPI ALvoid			(ALAPIENTRY * ALGETSOURCE3F)(ALuint source, ALenum param, ALfloat *v1, ALfloat *v2, ALfloat *v3);
73 typedef ALAPI ALvoid			(ALAPIENTRY * ALGETSOURCEF)(ALuint source, ALenum param, ALfloat *value);
74 typedef ALAPI ALvoid			(ALAPIENTRY * ALGETSOURCEFV)(ALuint source, ALenum param, ALfloat *values);
75 typedef ALAPI ALvoid			(ALAPIENTRY * ALGETSOURCEI)(ALuint source, ALenum param, ALint *value);
76 typedef ALAPI ALubyte *			(ALAPIENTRY * ALGETSTRING)(ALenum param);
77 typedef ALAPI ALvoid			(ALAPIENTRY * ALHINT)(ALenum target, ALenum mode);
78 typedef ALAPI ALboolean			(ALAPIENTRY * ALISBUFFER)(ALuint buffer);
79 typedef ALAPI ALboolean			(ALAPIENTRY * ALISENABLED)(ALenum capability);
80 typedef ALAPI ALboolean			(ALAPIENTRY * ALISEXTENSIONPRESENT)(ALubyte *extName);
81 typedef ALAPI ALboolean			(ALAPIENTRY * ALISSOURCE)(ALuint source);
82 typedef ALAPI ALvoid			(ALAPIENTRY * ALLISTENER3F)(ALenum param, ALfloat v1, ALfloat v2, ALfloat v3);
83 typedef ALAPI ALvoid			(ALAPIENTRY * ALLISTENERF)(ALenum param, ALfloat value);
84 typedef ALAPI ALvoid			(ALAPIENTRY * ALLISTENERFV)(ALenum param, ALfloat *values);
85 typedef ALAPI ALvoid			(ALAPIENTRY * ALLISTENERI)(ALenum param, ALint value);
86 typedef ALAPI ALvoid			(ALAPIENTRY * ALSOURCE3F)(ALuint source, ALenum param, ALfloat v1, ALfloat v2, ALfloat v3);
87 typedef ALAPI ALvoid			(ALAPIENTRY * ALSOURCEF)(ALuint source, ALenum param, ALfloat value);
88 typedef ALAPI ALvoid			(ALAPIENTRY * ALSOURCEFV)(ALuint source, ALenum param, ALfloat *values);
89 typedef ALAPI ALvoid			(ALAPIENTRY * ALSOURCEI)(ALuint source, ALenum param, ALint value);
90 typedef ALAPI ALvoid			(ALAPIENTRY * ALSOURCEPAUSE)(ALuint source);
91 typedef ALAPI ALvoid			(ALAPIENTRY * ALSOURCEPAUSEV)(ALsizei n, ALuint *sources);
92 typedef ALAPI ALvoid			(ALAPIENTRY * ALSOURCEPLAY)(ALuint source);
93 typedef ALAPI ALvoid			(ALAPIENTRY * ALSOURCEPLAYV)(ALsizei n, ALuint *sources);
94 typedef ALAPI ALvoid			(ALAPIENTRY * ALSOURCEQUEUEBUFFERS)(ALuint source, ALsizei n, ALuint *buffers);
95 typedef ALAPI ALvoid			(ALAPIENTRY * ALSOURCEREWIND)(ALuint source);
96 typedef ALAPI ALvoid			(ALAPIENTRY * ALSOURCEREWINDV)(ALsizei n, ALuint *sources);
97 typedef ALAPI ALvoid			(ALAPIENTRY * ALSOURCESTOP)(ALuint source);
98 typedef ALAPI ALvoid			(ALAPIENTRY * ALSOURCESTOPV)(ALsizei n, ALuint *sources);
99 typedef ALAPI ALvoid			(ALAPIENTRY * ALSOURCEUNQUEUEBUFFERS)(ALuint source, ALsizei n, ALuint *buffers);
100 
101 typedef ALAPI ALenum			(ALAPIENTRY * ALEAXSET)(const GUID*, ALuint, ALuint, ALvoid *, ALuint);
102 typedef ALAPI ALenum			(ALAPIENTRY * ALEAXGET)(const GUID*, ALuint, ALuint, ALvoid *, ALuint);
103 
104 // =====================================================================
105 
106 extern ALCOPENDEVICE			qalcOpenDevice;
107 extern ALCCLOSEDEVICE			qalcCloseDevice;
108 extern ALCCREATECONTEXT			qalcCreateContext;
109 extern ALCDESTROYCONTEXT		qalcDestroyContext;
110 extern ALCMAKECONTEXTCURRENT	qalcMakeContextCurrent;
111 extern ALCPROCESSCONTEXT		qalcProcessContext;
112 extern ALCSUSPENDCONTEXT		qalcSuspendContext;
113 extern ALCGETCURRENTCONTEXT		qalcGetCurrentContext;
114 extern ALCGETCONTEXTSDEVICE		qalcGetContextsDevice;
115 extern ALCGETSTRING				qalcGetString;
116 extern ALCGETINTEGERV			qalcGetIntegerv;
117 extern ALCGETERROR				qalcGetError;
118 extern ALCISEXTENSIONPRESENT	qalcIsExtensionPresent;
119 extern ALCGETPROCADDRESS		qalcGetProcAddress;
120 extern ALCGETENUMVALUE			qalcGetEnumValue;
121 
122 extern ALBUFFERDATA				qalBufferData;
123 extern ALDELETEBUFFERS			qalDeleteBuffers;
124 extern ALDELETESOURCES			qalDeleteSources;
125 extern ALDISABLE				qalDisable;
126 extern ALDISTANCEMODEL			qalDistanceModel;
127 extern ALDOPPLERFACTOR			qalDopplerFactor;
128 extern ALDOPPLERVELOCITY		qalDopplerVelocity;
129 extern ALENABLE					qalEnable;
130 extern ALGENBUFFERS				qalGenBuffers;
131 extern ALGENSOURCES				qalGenSources;
132 extern ALGETBOOLEAN				qalGetBoolean;
133 extern ALGETBOOLEANV			qalGetBooleanv;
134 extern ALGETBUFFERF				qalGetBufferf;
135 extern ALGETBUFFERI				qalGetBufferi;
136 extern ALGETDOUBLE				qalGetDouble;
137 extern ALGETDOUBLEV				qalGetDoublev;
138 extern ALGETENUMVALUE			qalGetEnumValue;
139 extern ALGETERROR				qalGetError;
140 extern ALGETFLOAT				qalGetFloat;
141 extern ALGETFLOATV				qalGetFloatv;
142 extern ALGETINTEGER				qalGetInteger;
143 extern ALGETINTEGERV			qalGetIntegerv;
144 extern ALGETLISTENER3F			qalGetListener3f;
145 extern ALGETLISTENERF			qalGetListenerf;
146 extern ALGETLISTENERFV			qalGetListenerfv;
147 extern ALGETLISTENERI			qalGetListeneri;
148 extern ALGETPROCADDRESS			qalGetProcAddress;
149 extern ALGETSOURCE3F			qalGetSource3f;
150 extern ALGETSOURCEF				qalGetSourcef;
151 extern ALGETSOURCEFV			qalGetSourcefv;
152 extern ALGETSOURCEI				qalGetSourcei;
153 extern ALGETSTRING				qalGetString;
154 extern ALHINT 					qalHint;
155 extern ALISBUFFER				qalIsBuffer;
156 extern ALISENABLED				qalIsEnabled;
157 extern ALISEXTENSIONPRESENT		qalIsExtensionPresent;
158 extern ALISSOURCE				qalIsSource;
159 extern ALLISTENER3F				qalListener3f;
160 extern ALLISTENERF				qalListenerf;
161 extern ALLISTENERFV				qalListenerfv;
162 extern ALLISTENERI				qalListeneri;
163 extern ALSOURCE3F				qalSource3f;
164 extern ALSOURCEF				qalSourcef;
165 extern ALSOURCEFV				qalSourcefv;
166 extern ALSOURCEI				qalSourcei;
167 extern ALSOURCEPAUSE			qalSourcePause;
168 extern ALSOURCEPAUSEV			qalSourcePausev;
169 extern ALSOURCEPLAY				qalSourcePlay;
170 extern ALSOURCEPLAYV			qalSourcePlayv;
171 extern ALSOURCEQUEUEBUFFERS		qalSourceQueueBuffers;
172 extern ALSOURCEREWIND			qalSourceRewind;
173 extern ALSOURCEREWINDV			qalSourceRewindv;
174 extern ALSOURCESTOP				qalSourceStop;
175 extern ALSOURCESTOPV			qalSourceStopv;
176 extern ALSOURCEUNQUEUEBUFFERS	qalSourceUnqueueBuffers;
177 
178 extern ALEAXSET					qalEAXSet;
179 extern ALEAXGET					qalEAXGet;
180 
181 
182 #endif	// __QAL_H__
183