1 #ifndef __al_h_
2 #define __al_h_
3 
4 /**
5  * OpenAL cross platform audio library
6  * Copyright (C) 1999-2000 by authors.
7  * This library is free software; you can redistribute it and/or
8  *  modify it under the terms of the GNU Library General Public
9  *  License as published by the Free Software Foundation; either
10  *  version 2 of the License, or (at your option) any later version.
11  *
12  * This library is distributed in the hope that it will be useful,
13  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
14  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15  *  Library General Public License for more details.
16  *
17  * You should have received a copy of the GNU Library General Public
18  *  License along with this library; if not, write to the
19  *  Free Software Foundation, Inc., 59 Temple Place - Suite 330,
20  *  Boston, MA  02111-1307, USA.
21  * Or go to http://www.gnu.org/copyleft/lgpl.html
22  */
23 #include "altypes.h"
24 
25 #ifdef __cplusplus
26 extern "C" {
27 #else
28 #endif
29 
30 /* WIN32, not Xbox */
31 #ifdef _WIN32
32 #ifndef _XBOX
33 #ifdef _OPENAL32LIB
34 #define ALAPI __declspec(dllexport)
35 #else
36 #define ALAPI __declspec(dllimport)
37 #endif
38 #define ALAPIENTRY __cdecl
39 #define AL_CALLBACK
40 #endif
41 #endif
42 
43 #ifdef TARGET_OS_MAC
44 #if TARGET_OS_MAC
45 #pragma export on
46 #endif
47 #endif
48 
49 #ifndef ALAPI
50 #define ALAPI
51 #endif
52 
53 #ifndef ALAPIENTRY
54 #define ALAPIENTRY
55 #endif
56 
57 #ifndef CALLBACK
58 #define AL_CALLBACK
59 #endif
60 
61 
62 
63 #define OPENAL
64 
65 #ifndef AL_NO_PROTOTYPES
66 
67 /*
68  * Renderer State management
69  */
70 ALAPI void ALAPIENTRY alEnable( ALenum capability );
71 
72 ALAPI void ALAPIENTRY alDisable( ALenum capability );
73 
74 ALAPI ALboolean ALAPIENTRY alIsEnabled( ALenum capability );
75 
76 
77 /*
78  * State retrieval
79  */
80 ALAPI const ALchar* ALAPIENTRY alGetString( ALenum param );
81 
82 ALAPI void ALAPIENTRY alGetBooleanv( ALenum param, ALboolean* data );
83 
84 ALAPI void ALAPIENTRY alGetIntegerv( ALenum param, ALint* data );
85 
86 ALAPI void ALAPIENTRY alGetFloatv( ALenum param, ALfloat* data );
87 
88 ALAPI void ALAPIENTRY alGetDoublev( ALenum param, ALdouble* data );
89 
90 ALAPI ALboolean ALAPIENTRY alGetBoolean( ALenum param );
91 
92 ALAPI ALint ALAPIENTRY alGetInteger( ALenum param );
93 
94 ALAPI ALfloat ALAPIENTRY alGetFloat( ALenum param );
95 
96 ALAPI ALdouble ALAPIENTRY alGetDouble( ALenum param );
97 
98 
99 /*
100  * Error support.
101  * Obtain the most recent error generated in the AL state machine.
102  */
103 ALAPI ALenum ALAPIENTRY alGetError( );
104 
105 
106 /*
107  * Extension support.
108  * Query for the presence of an extension, and obtain any appropriate
109  * function pointers and enum values.
110  */
111 ALAPI ALboolean ALAPIENTRY alIsExtensionPresent( const ALchar* extname );
112 
113 ALAPI void* ALAPIENTRY alGetProcAddress( const ALchar* fname );
114 
115 ALAPI ALenum ALAPIENTRY alGetEnumValue( const ALchar* ename );
116 
117 
118 /*
119  * LISTENER
120  * Listener represents the location and orientation of the
121  * 'user' in 3D-space.
122  *
123  * Properties include: -
124  *
125  * Gain         AL_GAIN         ALfloat
126  * Position     AL_POSITION     ALfloat[3]
127  * Velocity     AL_VELOCITY     ALfloat[3]
128  * Orientation  AL_ORIENTATION  ALfloat[6] (Forward then Up vectors)
129 */
130 
131 /*
132  * Set Listener parameters
133  */
134 ALAPI void ALAPIENTRY alListenerf( ALenum param, ALfloat value );
135 
136 ALAPI void ALAPIENTRY alListener3f( ALenum param, ALfloat value1, ALfloat value2, ALfloat value3 );
137 
138 ALAPI void ALAPIENTRY alListenerfv( ALenum param, const ALfloat* values );
139 
140 ALAPI void ALAPIENTRY alListeneri( ALenum param, ALint value );
141 
142 ALAPI void ALAPIENTRY alListener3i( ALenum param, ALint value1, ALint value2, ALint value3 );
143 
144 ALAPI void ALAPIENTRY alListeneriv( ALenum param, const ALint* values );
145 
146 /*
147  * Get Listener parameters
148  */
149 ALAPI void ALAPIENTRY alGetListenerf( ALenum param, ALfloat* value );
150 
151 ALAPI void ALAPIENTRY alGetListener3f( ALenum param, ALfloat *value1, ALfloat *value2, ALfloat *value3 );
152 
153 ALAPI void ALAPIENTRY alGetListenerfv( ALenum param, ALfloat* values );
154 
155 ALAPI void ALAPIENTRY alGetListeneri( ALenum param, ALint* value );
156 
157 ALAPI void ALAPIENTRY alGetListener3i( ALenum param, ALint *value1, ALint *value2, ALint *value3 );
158 
159 ALAPI void ALAPIENTRY alGetListeneriv( ALenum param, ALint* values );
160 
161 
162 /**
163  * SOURCE
164  * Sources represent individual sound objects in 3D-space.
165  * Sources take the PCM data provided in the specified Buffer,
166  * apply Source-specific modifications, and then
167  * submit them to be mixed according to spatial arrangement etc.
168  *
169  * Properties include: -
170  *
171  * Gain                              AL_GAIN                 ALfloat
172  * Min Gain                          AL_MIN_GAIN             ALfloat
173  * Max Gain                          AL_MAX_GAIN             ALfloat
174  * Position                          AL_POSITION             ALfloat[3]
175  * Velocity                          AL_VELOCITY             ALfloat[3]
176  * Direction                         AL_DIRECTION            ALfloat[3]
177  * Head Relative Mode                AL_SOURCE_RELATIVE      ALint (AL_TRUE or AL_FALSE)
178  * Reference Distance                AL_REFERENCE_DISTANCE   ALfloat
179  * Max Distance                      AL_MAX_DISTANCE         ALfloat
180  * RollOff Factor                    AL_ROLLOFF_FACTOR       ALfloat
181  * Inner Angle                       AL_CONE_INNER_ANGLE     ALint or ALfloat
182  * Outer Angle                       AL_CONE_OUTER_ANGLE     ALint or ALfloat
183  * Cone Outer Gain                   AL_CONE_OUTER_GAIN      ALint or ALfloat
184  * Pitch                             AL_PITCH                ALfloat
185  * Looping                           AL_LOOPING			     ALint (AL_TRUE or AL_FALSE)
186  * MS Offset                         AL_MSEC_OFFSET          ALint or ALfloat
187  * Byte Offset                       AL_BYTE_OFFSET          ALint or ALfloat
188  * Sample Offset                     AL_SAMPLE_OFFSET        ALint or ALfloat
189  * Attached Buffer                   AL_BUFFER               ALint
190  * State (Query only)                AL_SOURCE_STATE         ALint
191  * Buffers Queued (Query only)       AL_BUFFERS_QUEUED       ALint
192  * Buffers Processed (Query only)    AL_BUFFERS_PROCESSED    ALint
193  */
194 
195 /* Create Source objects */
196 ALAPI void ALAPIENTRY alGenSources( ALsizei n, ALuint* sources );
197 
198 /* Delete Source objects */
199 ALAPI void ALAPIENTRY alDeleteSources( ALsizei n, const ALuint* sources );
200 
201 /* Verify a handle is a valid Source */
202 ALAPI ALboolean ALAPIENTRY alIsSource( ALuint sid );
203 
204 /*
205  * Set Source parameters
206  */
207 ALAPI void ALAPIENTRY alSourcef( ALuint sid, ALenum param, ALfloat value );
208 
209 ALAPI void ALAPIENTRY alSource3f( ALuint sid, ALenum param, ALfloat value1, ALfloat value2, ALfloat value3 );
210 
211 ALAPI void ALAPIENTRY alSourcefv( ALuint sid, ALenum param, const ALfloat* values );
212 
213 ALAPI void ALAPIENTRY alSourcei( ALuint sid, ALenum param, ALint value );
214 
215 ALAPI void ALAPIENTRY alSource3i( ALuint sid, ALenum param, ALint value1, ALint value2, ALint value3 );
216 
217 ALAPI void ALAPIENTRY alSourceiv( ALuint sid, ALenum param, const ALint* values );
218 
219 /*
220  * Get Source parameters
221  */
222 ALAPI void ALAPIENTRY alGetSourcef( ALuint sid, ALenum param, ALfloat* value );
223 
224 ALAPI void ALAPIENTRY alGetSource3f( ALuint sid, ALenum param, ALfloat* value1, ALfloat* value2, ALfloat* value3);
225 
226 ALAPI void ALAPIENTRY alGetSourcefv( ALuint sid, ALenum param, ALfloat* values );
227 
228 ALAPI void ALAPIENTRY alGetSourcei( ALuint sid,  ALenum param, ALint* value );
229 
230 ALAPI void ALAPIENTRY alGetSource3i( ALuint sid, ALenum param, ALint* value1, ALint* value2, ALint* value3);
231 
232 ALAPI void ALAPIENTRY alGetSourceiv( ALuint sid,  ALenum param, ALint* values );
233 
234 
235 /*
236  * Source vector based playback calls
237  */
238 
239 /* Play, replay, or resume (if paused) a list of Sources */
240 ALAPI void ALAPIENTRY alSourcePlayv( ALsizei ns, const ALuint *sids );
241 
242 /* Stop a list of Sources */
243 ALAPI void ALAPIENTRY alSourceStopv( ALsizei ns, const ALuint *sids );
244 
245 /* Rewind a list of Sources */
246 ALAPI void ALAPIENTRY alSourceRewindv( ALsizei ns, const ALuint *sids );
247 
248 /* Pause a list of Sources */
249 ALAPI void ALAPIENTRY alSourcePausev( ALsizei ns, const ALuint *sids );
250 
251 /*
252  * Source based playback calls
253  */
254 
255 /* Play, replay, or resume a Source */
256 ALAPI void ALAPIENTRY alSourcePlay( ALuint sid );
257 
258 /* Stop a Source */
259 ALAPI void ALAPIENTRY alSourceStop( ALuint sid );
260 
261 /* Rewind a Source (set playback postiton to beginning) */
262 ALAPI void ALAPIENTRY alSourceRewind( ALuint sid );
263 
264 /* Pause a Source */
265 ALAPI void ALAPIENTRY alSourcePause( ALuint sid );
266 
267 /*
268  * Source Queuing
269  */
270 ALAPI void ALAPIENTRY alSourceQueueBuffers( ALuint sid, ALsizei numEntries, const ALuint *bids );
271 
272 ALAPI void ALAPIENTRY alSourceUnqueueBuffers( ALuint sid, ALsizei numEntries, ALuint *bids );
273 
274 
275 /**
276  * BUFFER
277  * Buffer objects are storage space for sample data.
278  * Buffers are referred to by Sources. One Buffer can be used
279  * by multiple Sources.
280  *
281  * Properties include: -
282  *
283  * Frequency (Query only)    AL_FREQUENCY      ALint
284  * Size (Query only)         AL_SIZE           ALint
285  * Bits (Query only)         AL_BITS           ALint
286  * Channels (Query only)     AL_CHANNELS       ALint
287  */
288 
289 /* Create Buffer objects */
290 ALAPI void ALAPIENTRY alGenBuffers( ALsizei n, ALuint* buffers );
291 
292 /* Delete Buffer objects */
293 ALAPI void ALAPIENTRY alDeleteBuffers( ALsizei n, const ALuint* buffers );
294 
295 /* Verify a handle is a valid Buffer */
296 ALAPI ALboolean ALAPIENTRY alIsBuffer( ALuint bid );
297 
298 /* Specify the data to be copied into a buffer */
299 ALAPI void ALAPIENTRY alBufferData( ALuint bid, ALenum format, const ALvoid* data, ALsizei size, ALsizei freq );
300 
301 /*
302  * Set Buffer parameters
303  */
304 ALAPI void ALAPIENTRY alBufferf( ALuint bid, ALenum param, ALfloat value );
305 
306 ALAPI void ALAPIENTRY alBuffer3f( ALuint bid, ALenum param, ALfloat value1, ALfloat value2, ALfloat value3 );
307 
308 ALAPI void ALAPIENTRY alBufferfv( ALuint bid, ALenum param, const ALfloat* values );
309 
310 ALAPI void ALAPIENTRY alBufferi( ALuint bid, ALenum param, ALint value );
311 
312 ALAPI void ALAPIENTRY alBuffer3i( ALuint bid, ALenum param, ALint value1, ALint value2, ALint value3 );
313 
314 ALAPI void ALAPIENTRY alBufferiv( ALuint bid, ALenum param, const ALint* values );
315 
316 /*
317  * Get Buffer parameters
318  */
319 ALAPI void ALAPIENTRY alGetBufferf( ALuint bid, ALenum param, ALfloat* value );
320 
321 ALAPI void ALAPIENTRY alGetBuffer3f( ALuint bid, ALenum param, ALfloat* value1, ALfloat* value2, ALfloat* value3);
322 
323 ALAPI void ALAPIENTRY alGetBufferfv( ALuint bid, ALenum param, ALfloat* values );
324 
325 ALAPI void ALAPIENTRY alGetBufferi( ALuint bid, ALenum param, ALint* value );
326 
327 ALAPI void ALAPIENTRY alGetBuffer3i( ALuint bid, ALenum param, ALint* value1, ALint* value2, ALint* value3);
328 
329 ALAPI void ALAPIENTRY alGetBufferiv( ALuint bid, ALenum param, ALint* values );
330 
331 
332 /*
333  * Global Parameters
334  */
335 ALAPI void ALAPIENTRY alDopplerFactor( ALfloat value );
336 
337 ALAPI void ALAPIENTRY alDopplerVelocity( ALfloat value );
338 
339 ALAPI void ALAPIENTRY alSpeedOfSound( ALfloat value );
340 
341 ALAPI void ALAPIENTRY alDistanceModel( ALenum distanceModel );
342 
343 #else /* AL_NO_PROTOTYPES */
344 
345 /*
346 void          (ALAPIENTRY *alEnable)( ALenum capability );
347 void          (ALAPIENTRY *alDisable)( ALenum capability );
348 ALboolean     (ALAPIENTRY *alIsEnabled)( ALenum capability );
349 const ALchar* (ALAPIENTRY *alGetString)( ALenum param );
350 void          (ALAPIENTRY *alGetBooleanv)( ALenum param, ALboolean* data );
351 void          (ALAPIENTRY *alGetIntegerv)( ALenum param, ALint* data );
352 void          (ALAPIENTRY *alGetFloatv)( ALenum param, ALfloat* data );
353 void          (ALAPIENTRY *alGetDoublev)( ALenum param, ALdouble* data );
354 ALboolean     (ALAPIENTRY *alGetBoolean)( ALenum param );
355 ALint         (ALAPIENTRY *alGetInteger)( ALenum param );
356 ALfloat       (ALAPIENTRY *alGetFloat)( ALenum param );
357 ALdouble      (ALAPIENTRY *alGetDouble)( ALenum param );
358 ALenum        (ALAPIENTRY *alGetError)( ALvoid );
359 ALboolean     (ALAPIENTRY *alIsExtensionPresent)(const ALchar* extname );
360 void*         (ALAPIENTRY *alGetProcAddress)( const ALchar* fname );
361 ALenum        (ALAPIENTRY *alGetEnumValue)( const ALchar* ename );
362 void          (ALAPIENTRY *alListenerf)( ALenum param, ALfloat value );
363 void          (ALAPIENTRY *alListener3f)( ALenum param, ALfloat value1, ALfloat value2, ALfloat value3 );
364 void          (ALAPIENTRY *alListenerfv)( ALenum param, const ALfloat* values );
365 void          (ALAPIENTRY *alListeneri)( ALenum param, ALint value );
366 void          (ALAPIENTRY *alListener3i)( ALenum param, ALint value1, ALint value2, ALint value3 );
367 void          (ALAPIENTRY *alListeneriv)( ALenum param, const ALint* values );
368 void          (ALAPIENTRY *alGetListenerf)( ALenum param, ALfloat* value );
369 void          (ALAPIENTRY *alGetListener3f)( ALenum param, ALfloat *value1, ALfloat *value2, ALfloat *value3 );
370 void          (ALAPIENTRY *alGetListenerfv)( ALenum param, ALfloat* values );
371 void          (ALAPIENTRY *alGetListeneri)( ALenum param, ALint* value );
372 void          (ALAPIENTRY *alGetListener3i)( ALenum param, ALint *value1, ALint *value2, ALint *value3 );
373 void          (ALAPIENTRY *alGetListeneriv)( ALenum param, ALint* values );
374 void          (ALAPIENTRY *alGenSources)( ALsizei n, ALuint* sources );
375 void          (ALAPIENTRY *alDeleteSources)( ALsizei n, const ALuint* sources );
376 ALboolean     (ALAPIENTRY *alIsSource)( ALuint sid );
377 void          (ALAPIENTRY *alSourcef)( ALuint sid, ALenum param, ALfloat value);
378 void          (ALAPIENTRY *alSource3f)( ALuint sid, ALenum param, ALfloat value1, ALfloat value2, ALfloat value3 );
379 void          (ALAPIENTRY *alSourcefv)( ALuint sid, ALenum param, const ALfloat* values );
380 void          (ALAPIENTRY *alSourcei)( ALuint sid, ALenum param, ALint value);
381 void          (ALAPIENTRY *alSource3i)( ALuint sid, ALenum param, ALint value1, ALint value2, ALint value3 );
382 void          (ALAPIENTRY *alSourceiv)( ALuint sid, ALenum param, const ALint* values );
383 void          (ALAPIENTRY *alGetSourcef)( ALuint sid, ALenum param, ALfloat* value );
384 void          (ALAPIENTRY *alGetSource3f)( ALuint sid, ALenum param, ALfloat* value1, ALfloat* value2, ALfloat* value3);
385 void          (ALAPIENTRY *alGetSourcefv)( ALuint sid, ALenum param, ALfloat* values );
386 void          (ALAPIENTRY *alGetSourcei)( ALuint sid, ALenum param, ALint* value );
387 void          (ALAPIENTRY *alGetSource3i)( ALuint sid, ALenum param, ALint* value1, ALint* value2, ALint* value3);
388 void          (ALAPIENTRY *alGetSourceiv)( ALuint sid, ALenum param, ALint* values );
389 void          (ALAPIENTRY *alSourcePlayv)( ALsizei ns, const ALuint *sids );
390 void          (ALAPIENTRY *alSourceStopv)( ALsizei ns, const ALuint *sids );
391 void          (ALAPIENTRY *alSourceRewindv)( ALsizei ns, const ALuint *sids );
392 void          (ALAPIENTRY *alSourcePausev)( ALsizei ns, const ALuint *sids );
393 void          (ALAPIENTRY *alSourcePlay)( ALuint sid );
394 void          (ALAPIENTRY *alSourceStop)( ALuint sid );
395 void          (ALAPIENTRY *alSourceRewind)( ALuint sid );
396 void          (ALAPIENTRY *alSourcePause)( ALuint sid );
397 void          (ALAPIENTRY *alSourceQueueBuffers)( ALuint sid, ALsizei numEntries, const ALuint *bids );
398 void          (ALAPIENTRY *alSourceUnqueueBuffers)( ALuint sid, ALsizei numEntries, ALuint *bids );
399 void          (ALAPIENTRY *alGenBuffers)( ALsizei n, ALuint* buffers );
400 void          (ALAPIENTRY *alDeleteBuffers)( ALsizei n, const ALuint* buffers );
401 ALboolean     (ALAPIENTRY *alIsBuffer)( ALuint bid );
402 void          (ALAPIENTRY *alBufferData)( ALuint bid, ALenum format, const ALvoid* data, ALsizei size, ALsizei freq );
403 void          (ALAPIENTRY *alBufferf)( ALuint bid, ALenum param, ALfloat value);
404 void          (ALAPIENTRY *alBuffer3f)( ALuint bid, ALenum param, ALfloat value1, ALfloat value2, ALfloat value3 );
405 void          (ALAPIENTRY *alBufferfv)( ALuint bid, ALenum param, const ALfloat* values );
406 void          (ALAPIENTRY *alBufferi)( ALuint bid, ALenum param, ALint value);
407 void          (ALAPIENTRY *alBuffer3i)( ALuint bid, ALenum param, ALint value1, ALint value2, ALint value3 );
408 void          (ALAPIENTRY *alBufferiv)( ALuint bid, ALenum param, const ALint* values );
409 void          (ALAPIENTRY *alGetBufferf)( ALuint bid, ALenum param, ALfloat* value );
410 void          (ALAPIENTRY *alGetBuffer3f)( ALuint bid, ALenum param, ALfloat* value1, ALfloat* value2, ALfloat* value3);
411 void          (ALAPIENTRY *alGetBufferfv)( ALuint bid, ALenum param, ALfloat* values );
412 void          (ALAPIENTRY *alGetBufferi)( ALuint bid, ALenum param, ALint* value );
413 void          (ALAPIENTRY *alGetBuffer3i)( ALuint bid, ALenum param, ALint* value1, ALint* value2, ALint* value3);
414 void          (ALAPIENTRY *alGetBufferiv)( ALuint bid, ALenum param, ALint* values );
415 void          (ALAPIENTRY *alDopplerFactor)( ALfloat value );
416 void          (ALAPIENTRY *alDopplerVelocity)( ALfloat value );
417 void          (ALAPIENTRY *alSpeedOfSound)( ALfloat value );
418 void          (ALAPIENTRY *alDistanceModel)( ALenum distanceModel );
419 */
420 /* Type Definitions */
421 
422 typedef void           (ALAPIENTRY *LPALENABLE)( ALenum capability );
423 typedef void           (ALAPIENTRY *LPALDISABLE)( ALenum capability );
424 typedef ALboolean      (ALAPIENTRY *LPALISENABLED)( ALenum capability );
425 typedef const ALchar*  (ALAPIENTRY *LPALGETSTRING)( ALenum param );
426 typedef void           (ALAPIENTRY *LPALGETBOOLEANV)( ALenum param, ALboolean* data );
427 typedef void           (ALAPIENTRY *LPALGETINTEGERV)( ALenum param, ALint* data );
428 typedef void           (ALAPIENTRY *LPALGETFLOATV)( ALenum param, ALfloat* data );
429 typedef void           (ALAPIENTRY *LPALGETDOUBLEV)( ALenum param, ALdouble* data );
430 typedef ALboolean      (ALAPIENTRY *LPALGETBOOLEAN)( ALenum param );
431 typedef ALint          (ALAPIENTRY *LPALGETINTEGER)( ALenum param );
432 typedef ALfloat        (ALAPIENTRY *LPALGETFLOAT)( ALenum param );
433 typedef ALdouble       (ALAPIENTRY *LPALGETDOUBLE)( ALenum param );
434 typedef ALenum         (ALAPIENTRY *LPALGETERROR)( );
435 typedef ALboolean      (ALAPIENTRY *LPALISEXTENSIONPRESENT)(const ALchar* extname );
436 typedef void*          (ALAPIENTRY *LPALGETPROCADDRESS)( const ALchar* fname );
437 typedef ALenum         (ALAPIENTRY *LPALGETENUMVALUE)( const ALchar* ename );
438 typedef void           (ALAPIENTRY *LPALLISTENERF)( ALenum param, ALfloat value );
439 typedef void           (ALAPIENTRY *LPALLISTENER3F)( ALenum param, ALfloat value1, ALfloat value2, ALfloat value3 );
440 typedef void           (ALAPIENTRY *LPALLISTENERFV)( ALenum param, const ALfloat* values );
441 typedef void           (ALAPIENTRY *LPALLISTENERI)( ALenum param, ALint value );
442 typedef void           (ALAPIENTRY *LPALLISTENER3I)( ALenum param, ALint value1, ALint value2, ALint value3 );
443 typedef void           (ALAPIENTRY *LPALLISTENERIV)( ALenum param, const ALint* values );
444 typedef void           (ALAPIENTRY *LPALGETLISTENERF)( ALenum param, ALfloat* value );
445 typedef void           (ALAPIENTRY *LPALGETLISTENER3F)( ALenum param, ALfloat *value1, ALfloat *value2, ALfloat *value3 );
446 typedef void           (ALAPIENTRY *LPALGETLISTENERFV)( ALenum param, ALfloat* values );
447 typedef void           (ALAPIENTRY *LPALGETLISTENERI)( ALenum param, ALint* value );
448 typedef void           (ALAPIENTRY *LPALGETLISTENER3I)( ALenum param, ALint *value1, ALint *value2, ALint *value3 );
449 typedef void           (ALAPIENTRY *LPALGETLISTENERIV)( ALenum param, ALint* values );
450 typedef void           (ALAPIENTRY *LPALGENSOURCES)( ALsizei n, ALuint* sources );
451 typedef void           (ALAPIENTRY *LPALDELETESOURCES)( ALsizei n, const ALuint* sources );
452 typedef ALboolean      (ALAPIENTRY *LPALISSOURCE)( ALuint sid );
453 typedef void           (ALAPIENTRY *LPALSOURCEF)( ALuint sid, ALenum param, ALfloat value);
454 typedef void           (ALAPIENTRY *LPALSOURCE3F)( ALuint sid, ALenum param, ALfloat value1, ALfloat value2, ALfloat value3 );
455 typedef void           (ALAPIENTRY *LPALSOURCEFV)( ALuint sid, ALenum param, const ALfloat* values );
456 typedef void           (ALAPIENTRY *LPALSOURCEI)( ALuint sid, ALenum param, ALint value);
457 typedef void           (ALAPIENTRY *LPALSOURCE3I)( ALuint sid, ALenum param, ALint value1, ALint value2, ALint value3 );
458 typedef void           (ALAPIENTRY *LPALSOURCEIV)( ALuint sid, ALenum param, const ALint* values );
459 typedef void           (ALAPIENTRY *LPALGETSOURCEF)( ALuint sid, ALenum param, ALfloat* value );
460 typedef void           (ALAPIENTRY *LPALGETSOURCE3F)( ALuint sid, ALenum param, ALfloat* value1, ALfloat* value2, ALfloat* value3);
461 typedef void           (ALAPIENTRY *LPALGETSOURCEFV)( ALuint sid, ALenum param, ALfloat* values );
462 typedef void           (ALAPIENTRY *LPALGETSOURCEI)( ALuint sid, ALenum param, ALint* value );
463 typedef void           (ALAPIENTRY *LPALGETSOURCE3I)( ALuint sid, ALenum param, ALint* value1, ALint* value2, ALint* value3);
464 typedef void           (ALAPIENTRY *LPALGETSOURCEIV)( ALuint sid, ALenum param, ALint* values );
465 typedef void           (ALAPIENTRY *LPALSOURCEPLAYV)( ALsizei ns, const ALuint *sids );
466 typedef void           (ALAPIENTRY *LPALSOURCESTOPV)( ALsizei ns, const ALuint *sids );
467 typedef void           (ALAPIENTRY *LPALSOURCEREWINDV)( ALsizei ns, const ALuint *sids );
468 typedef void           (ALAPIENTRY *LPALSOURCEPAUSEV)( ALsizei ns, const ALuint *sids );
469 typedef void           (ALAPIENTRY *LPALSOURCEPLAY)( ALuint sid );
470 typedef void           (ALAPIENTRY *LPALSOURCESTOP)( ALuint sid );
471 typedef void           (ALAPIENTRY *LPALSOURCEREWIND)( ALuint sid );
472 typedef void           (ALAPIENTRY *LPALSOURCEPAUSE)( ALuint sid );
473 typedef void           (ALAPIENTRY *LPALSOURCEQUEUEBUFFERS)(ALuint sid, ALsizei numEntries, const ALuint *bids );
474 typedef void           (ALAPIENTRY *LPALSOURCEUNQUEUEBUFFERS)(ALuint sid, ALsizei numEntries, ALuint *bids );
475 typedef void           (ALAPIENTRY *LPALGENBUFFERS)( ALsizei n, ALuint* buffers );
476 typedef void           (ALAPIENTRY *LPALDELETEBUFFERS)( ALsizei n, const ALuint* buffers );
477 typedef ALboolean      (ALAPIENTRY *LPALISBUFFER)( ALuint bid );
478 typedef void           (ALAPIENTRY *LPALBUFFERDATA)( ALuint bid, ALenum format, const ALvoid* data, ALsizei size, ALsizei freq );
479 typedef void           (ALAPIENTRY *LPALBUFFERF)( ALuint bid, ALenum param, ALfloat value);
480 typedef void           (ALAPIENTRY *LPALBUFFER3F)( ALuint bid, ALenum param, ALfloat value1, ALfloat value2, ALfloat value3 );
481 typedef void           (ALAPIENTRY *LPALBUFFERFV)( ALuint bid, ALenum param, const ALfloat* values );
482 typedef void           (ALAPIENTRY *LPALBUFFERI)( ALuint bid, ALenum param, ALint value);
483 typedef void           (ALAPIENTRY *LPALBUFFER3I)( ALuint bid, ALenum param, ALint value1, ALint value2, ALint value3 );
484 typedef void           (ALAPIENTRY *LPALBUFFERIV)( ALuint bid, ALenum param, const ALint* values );
485 typedef void           (ALAPIENTRY *LPALGETBUFFERF)( ALuint bid, ALenum param, ALfloat* value );
486 typedef void           (ALAPIENTRY *LPALGETBUFFER3F)( ALuint bid, ALenum param, ALfloat* value1, ALfloat* value2, ALfloat* value3);
487 typedef void           (ALAPIENTRY *LPALGETBUFFERFV)( ALuint bid, ALenum param, ALfloat* values );
488 typedef void           (ALAPIENTRY *LPALGETBUFFERI)( ALuint bid, ALenum param, ALint* value );
489 typedef void           (ALAPIENTRY *LPALGETBUFFER3I)( ALuint bid, ALenum param, ALint* value1, ALint* value2, ALint* value3);
490 typedef void           (ALAPIENTRY *LPALGETBUFFERIV)( ALuint bid, ALenum param, ALint* values );
491 typedef void           (ALAPIENTRY *LPALDOPPLERFACTOR)( ALfloat value );
492 typedef void           (ALAPIENTRY *LPALDOPPLERVELOCITY)( ALfloat value );
493 typedef void           (ALAPIENTRY *LPALSPEEDOFSOUND)( ALfloat value );
494 typedef void           (ALAPIENTRY *LPALDISTANCEMODEL)( ALenum distanceModel );
495 
496 #endif /* AL_NO_PROTOTYPES */
497 
498 #ifdef TARGET_OS_MAC
499 #if TARGET_OS_MAC
500 #pragma export off
501 #endif /* TARGET_OS_MAC */
502 #endif /* TARGET_OS_MAC */
503 
504 
505 #ifdef __cplusplus
506 }  /* extern "C" */
507 #endif
508 
509 #endif /* __al_h_ */
510