Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/branches/audio/src/openal/al.h @ 318

Last change on this file since 318 was 318, checked in by nicolape, 17 years ago

Added OpenAL Includes and Libs, and a small starter script

File size: 26.1 KB
Line 
1#ifndef AL_AL_H
2#define AL_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
24#if defined(__cplusplus)
25extern "C" {
26#endif
27
28#if defined(_WIN32) && !defined(_XBOX)
29 /* _OPENAL32LIB is deprecated */
30 #if defined(AL_BUILD_LIBRARY) || defined (_OPENAL32LIB)
31  #define AL_API __declspec(dllexport)
32 #else
33  #define AL_API __declspec(dllimport)
34 #endif
35#else
36 #if defined(AL_BUILD_LIBRARY) && defined(HAVE_GCC_VISIBILITY)
37  #define AL_API __attribute__((visibility("default")))
38 #else
39  #define AL_API extern
40 #endif
41#endif
42
43#if defined(_WIN32)
44 #define AL_APIENTRY __cdecl
45#else
46 #define AL_APIENTRY
47#endif
48
49#if defined(TARGET_OS_MAC) && TARGET_OS_MAC
50 #pragma export on
51#endif
52
53/*
54 * The OPENAL, ALAPI, ALAPIENTRY, AL_INVALID, AL_ILLEGAL_ENUM, and
55 * AL_ILLEGAL_COMMAND macros are deprecated, but are included for
56 * applications porting code from AL 1.0
57 */
58#define OPENAL
59#define ALAPI AL_API
60#define ALAPIENTRY AL_APIENTRY
61#define AL_INVALID                                (-1)
62#define AL_ILLEGAL_ENUM                           AL_INVALID_ENUM
63#define AL_ILLEGAL_COMMAND                        AL_INVALID_OPERATION
64
65#define AL_VERSION_1_0
66#define AL_VERSION_1_1
67
68
69/** 8-bit boolean */
70typedef char ALboolean;
71
72/** character */
73typedef char ALchar;
74
75/** signed 8-bit 2's complement integer */
76typedef char ALbyte;
77
78/** unsigned 8-bit integer */
79typedef unsigned char ALubyte;
80
81/** signed 16-bit 2's complement integer */
82typedef short ALshort;
83
84/** unsigned 16-bit integer */
85typedef unsigned short ALushort;
86
87/** signed 32-bit 2's complement integer */
88typedef int ALint;
89
90/** unsigned 32-bit integer */
91typedef unsigned int ALuint;
92
93/** non-negative 32-bit binary integer size */
94typedef int ALsizei;
95
96/** enumerated 32-bit value */
97typedef int ALenum;
98
99/** 32-bit IEEE754 floating-point */
100typedef float ALfloat;
101
102/** 64-bit IEEE754 floating-point */
103typedef double ALdouble;
104
105/** void type (for opaque pointers only) */
106typedef void ALvoid;
107
108
109/* Enumerant values begin at column 50. No tabs. */
110
111/* "no distance model" or "no buffer" */
112#define AL_NONE                                   0
113
114/* Boolean False. */
115#define AL_FALSE                                  0
116
117/** Boolean True. */
118#define AL_TRUE                                   1
119
120/** Indicate Source has relative coordinates. */
121#define AL_SOURCE_RELATIVE                        0x202
122
123
124
125/**
126 * Directional source, inner cone angle, in degrees.
127 * Range:    [0-360]
128 * Default:  360
129 */
130#define AL_CONE_INNER_ANGLE                       0x1001
131
132/**
133 * Directional source, outer cone angle, in degrees.
134 * Range:    [0-360]
135 * Default:  360
136 */
137#define AL_CONE_OUTER_ANGLE                       0x1002
138
139/**
140 * Specify the pitch to be applied, either at source,
141 *  or on mixer results, at listener.
142 * Range:   [0.5-2.0]
143 * Default: 1.0
144 */
145#define AL_PITCH                                  0x1003
146 
147/**
148 * Specify the current location in three dimensional space.
149 * OpenAL, like OpenGL, uses a right handed coordinate system,
150 *  where in a frontal default view X (thumb) points right,
151 *  Y points up (index finger), and Z points towards the
152 *  viewer/camera (middle finger).
153 * To switch from a left handed coordinate system, flip the
154 *  sign on the Z coordinate.
155 * Listener position is always in the world coordinate system.
156 */ 
157#define AL_POSITION                               0x1004
158 
159/** Specify the current direction. */
160#define AL_DIRECTION                              0x1005
161 
162/** Specify the current velocity in three dimensional space. */
163#define AL_VELOCITY                               0x1006
164
165/**
166 * Indicate whether source is looping.
167 * Type: ALboolean?
168 * Range:   [AL_TRUE, AL_FALSE]
169 * Default: FALSE.
170 */
171#define AL_LOOPING                                0x1007
172
173/**
174 * Indicate the buffer to provide sound samples.
175 * Type: ALuint.
176 * Range: any valid Buffer id.
177 */
178#define AL_BUFFER                                 0x1009
179 
180/**
181 * Indicate the gain (volume amplification) applied.
182 * Type:   ALfloat.
183 * Range:  ]0.0-  ]
184 * A value of 1.0 means un-attenuated/unchanged.
185 * Each division by 2 equals an attenuation of -6dB.
186 * Each multiplicaton with 2 equals an amplification of +6dB.
187 * A value of 0.0 is meaningless with respect to a logarithmic
188 *  scale; it is interpreted as zero volume - the channel
189 *  is effectively disabled.
190 */
191#define AL_GAIN                                   0x100A
192
193/*
194 * Indicate minimum source attenuation
195 * Type: ALfloat
196 * Range:  [0.0 - 1.0]
197 *
198 * Logarthmic
199 */
200#define AL_MIN_GAIN                               0x100D
201
202/**
203 * Indicate maximum source attenuation
204 * Type: ALfloat
205 * Range:  [0.0 - 1.0]
206 *
207 * Logarthmic
208 */
209#define AL_MAX_GAIN                               0x100E
210
211/**
212 * Indicate listener orientation.
213 *
214 * at/up
215 */
216#define AL_ORIENTATION                            0x100F
217
218/**
219 * Source state information.
220 */
221#define AL_SOURCE_STATE                           0x1010
222#define AL_INITIAL                                0x1011
223#define AL_PLAYING                                0x1012
224#define AL_PAUSED                                 0x1013
225#define AL_STOPPED                                0x1014
226
227/**
228 * Buffer Queue params
229 */
230#define AL_BUFFERS_QUEUED                         0x1015
231#define AL_BUFFERS_PROCESSED                      0x1016
232
233/**
234 * Source buffer position information
235 */
236#define AL_SEC_OFFSET                             0x1024
237#define AL_SAMPLE_OFFSET                          0x1025
238#define AL_BYTE_OFFSET                            0x1026
239
240/*
241 * Source type (Static, Streaming or undetermined)
242 * Source is Static if a Buffer has been attached using AL_BUFFER
243 * Source is Streaming if one or more Buffers have been attached using alSourceQueueBuffers
244 * Source is undetermined when it has the NULL buffer attached
245 */
246#define AL_SOURCE_TYPE                            0x1027
247#define AL_STATIC                                 0x1028
248#define AL_STREAMING                              0x1029
249#define AL_UNDETERMINED                           0x1030
250
251/** Sound samples: format specifier. */
252#define AL_FORMAT_MONO8                           0x1100
253#define AL_FORMAT_MONO16                          0x1101
254#define AL_FORMAT_STEREO8                         0x1102
255#define AL_FORMAT_STEREO16                        0x1103
256
257/**
258 * source specific reference distance
259 * Type: ALfloat
260 * Range:  0.0 - +inf
261 *
262 * At 0.0, no distance attenuation occurs.  Default is
263 * 1.0.
264 */
265#define AL_REFERENCE_DISTANCE                     0x1020
266
267/**
268 * source specific rolloff factor
269 * Type: ALfloat
270 * Range:  0.0 - +inf
271 *
272 */
273#define AL_ROLLOFF_FACTOR                         0x1021
274
275/**
276 * Directional source, outer cone gain.
277 *
278 * Default:  0.0
279 * Range:    [0.0 - 1.0]
280 * Logarithmic
281 */
282#define AL_CONE_OUTER_GAIN                        0x1022
283
284/**
285 * Indicate distance above which sources are not
286 * attenuated using the inverse clamped distance model.
287 *
288 * Default: +inf
289 * Type: ALfloat
290 * Range:  0.0 - +inf
291 */
292#define AL_MAX_DISTANCE                           0x1023
293
294/**
295 * Sound samples: frequency, in units of Hertz [Hz].
296 * This is the number of samples per second. Half of the
297 *  sample frequency marks the maximum significant
298 *  frequency component.
299 */
300#define AL_FREQUENCY                              0x2001
301#define AL_BITS                                   0x2002
302#define AL_CHANNELS                               0x2003
303#define AL_SIZE                                   0x2004
304
305/**
306 * Buffer state.
307 *
308 * Not supported for public use (yet).
309 */
310#define AL_UNUSED                                 0x2010
311#define AL_PENDING                                0x2011
312#define AL_PROCESSED                              0x2012
313
314
315/** Errors: No Error. */
316#define AL_NO_ERROR                               AL_FALSE
317
318/**
319 * Invalid Name paramater passed to AL call.
320 */
321#define AL_INVALID_NAME                           0xA001
322
323/**
324 * Invalid parameter passed to AL call.
325 */
326#define AL_INVALID_ENUM                           0xA002
327
328/**
329 * Invalid enum parameter value.
330 */
331#define AL_INVALID_VALUE                          0xA003
332
333/**
334 * Illegal call.
335 */
336#define AL_INVALID_OPERATION                      0xA004
337
338 
339/**
340 * No mojo.
341 */
342#define AL_OUT_OF_MEMORY                          0xA005
343
344
345/** Context strings: Vendor Name. */
346#define AL_VENDOR                                 0xB001
347#define AL_VERSION                                0xB002
348#define AL_RENDERER                               0xB003
349#define AL_EXTENSIONS                             0xB004
350
351/** Global tweakage. */
352
353/**
354 * Doppler scale.  Default 1.0
355 */
356#define AL_DOPPLER_FACTOR                         0xC000
357
358/**
359 * Tweaks speed of propagation.
360 */
361#define AL_DOPPLER_VELOCITY                       0xC001
362
363/**
364 * Speed of Sound in units per second
365 */
366#define AL_SPEED_OF_SOUND                         0xC003
367
368/**
369 * Distance models
370 *
371 * used in conjunction with DistanceModel
372 *
373 * implicit: NONE, which disances distance attenuation.
374 */
375#define AL_DISTANCE_MODEL                         0xD000
376#define AL_INVERSE_DISTANCE                       0xD001
377#define AL_INVERSE_DISTANCE_CLAMPED               0xD002
378#define AL_LINEAR_DISTANCE                        0xD003
379#define AL_LINEAR_DISTANCE_CLAMPED                0xD004
380#define AL_EXPONENT_DISTANCE                      0xD005
381#define AL_EXPONENT_DISTANCE_CLAMPED              0xD006
382
383/*
384 * Renderer State management
385 */
386AL_API void AL_APIENTRY alEnable( ALenum capability );
387
388AL_API void AL_APIENTRY alDisable( ALenum capability ); 
389
390AL_API ALboolean AL_APIENTRY alIsEnabled( ALenum capability ); 
391
392
393/*
394 * State retrieval
395 */
396AL_API const ALchar* AL_APIENTRY alGetString( ALenum param );
397
398AL_API void AL_APIENTRY alGetBooleanv( ALenum param, ALboolean* data );
399
400AL_API void AL_APIENTRY alGetIntegerv( ALenum param, ALint* data );
401
402AL_API void AL_APIENTRY alGetFloatv( ALenum param, ALfloat* data );
403
404AL_API void AL_APIENTRY alGetDoublev( ALenum param, ALdouble* data );
405
406AL_API ALboolean AL_APIENTRY alGetBoolean( ALenum param );
407
408AL_API ALint AL_APIENTRY alGetInteger( ALenum param );
409
410AL_API ALfloat AL_APIENTRY alGetFloat( ALenum param );
411
412AL_API ALdouble AL_APIENTRY alGetDouble( ALenum param );
413
414
415/*
416 * Error support.
417 * Obtain the most recent error generated in the AL state machine.
418 */
419AL_API ALenum AL_APIENTRY alGetError( void );
420
421
422/*
423 * Extension support.
424 * Query for the presence of an extension, and obtain any appropriate
425 * function pointers and enum values.
426 */
427AL_API ALboolean AL_APIENTRY alIsExtensionPresent( const ALchar* extname );
428
429AL_API void* AL_APIENTRY alGetProcAddress( const ALchar* fname );
430
431AL_API ALenum AL_APIENTRY alGetEnumValue( const ALchar* ename );
432
433
434/*
435 * LISTENER
436 * Listener represents the location and orientation of the
437 * 'user' in 3D-space.
438 *
439 * Properties include: -
440 *
441 * Gain         AL_GAIN         ALfloat
442 * Position     AL_POSITION     ALfloat[3]
443 * Velocity     AL_VELOCITY     ALfloat[3]
444 * Orientation  AL_ORIENTATION  ALfloat[6] (Forward then Up vectors)
445*/
446
447/*
448 * Set Listener parameters
449 */
450AL_API void AL_APIENTRY alListenerf( ALenum param, ALfloat value );
451
452AL_API void AL_APIENTRY alListener3f( ALenum param, ALfloat value1, ALfloat value2, ALfloat value3 );
453
454AL_API void AL_APIENTRY alListenerfv( ALenum param, const ALfloat* values ); 
455
456AL_API void AL_APIENTRY alListeneri( ALenum param, ALint value );
457
458AL_API void AL_APIENTRY alListener3i( ALenum param, ALint value1, ALint value2, ALint value3 );
459
460AL_API void AL_APIENTRY alListeneriv( ALenum param, const ALint* values );
461
462/*
463 * Get Listener parameters
464 */
465AL_API void AL_APIENTRY alGetListenerf( ALenum param, ALfloat* value );
466
467AL_API void AL_APIENTRY alGetListener3f( ALenum param, ALfloat *value1, ALfloat *value2, ALfloat *value3 );
468
469AL_API void AL_APIENTRY alGetListenerfv( ALenum param, ALfloat* values );
470
471AL_API void AL_APIENTRY alGetListeneri( ALenum param, ALint* value );
472
473AL_API void AL_APIENTRY alGetListener3i( ALenum param, ALint *value1, ALint *value2, ALint *value3 );
474
475AL_API void AL_APIENTRY alGetListeneriv( ALenum param, ALint* values );
476
477
478/**
479 * SOURCE
480 * Sources represent individual sound objects in 3D-space.
481 * Sources take the PCM data provided in the specified Buffer,
482 * apply Source-specific modifications, and then
483 * submit them to be mixed according to spatial arrangement etc.
484 *
485 * Properties include: -
486 *
487 * Gain                              AL_GAIN                 ALfloat
488 * Min Gain                          AL_MIN_GAIN             ALfloat
489 * Max Gain                          AL_MAX_GAIN             ALfloat
490 * Position                          AL_POSITION             ALfloat[3]
491 * Velocity                          AL_VELOCITY             ALfloat[3]
492 * Direction                         AL_DIRECTION            ALfloat[3]
493 * Head Relative Mode                AL_SOURCE_RELATIVE      ALint (AL_TRUE or AL_FALSE)
494 * Reference Distance                AL_REFERENCE_DISTANCE   ALfloat
495 * Max Distance                      AL_MAX_DISTANCE         ALfloat
496 * RollOff Factor                    AL_ROLLOFF_FACTOR       ALfloat
497 * Inner Angle                       AL_CONE_INNER_ANGLE     ALint or ALfloat
498 * Outer Angle                       AL_CONE_OUTER_ANGLE     ALint or ALfloat
499 * Cone Outer Gain                   AL_CONE_OUTER_GAIN      ALint or ALfloat
500 * Pitch                             AL_PITCH                ALfloat
501 * Looping                           AL_LOOPING              ALint (AL_TRUE or AL_FALSE)
502 * MS Offset                         AL_MSEC_OFFSET          ALint or ALfloat
503 * Byte Offset                       AL_BYTE_OFFSET          ALint or ALfloat
504 * Sample Offset                     AL_SAMPLE_OFFSET        ALint or ALfloat
505 * Attached Buffer                   AL_BUFFER               ALint
506 * State (Query only)                AL_SOURCE_STATE         ALint
507 * Buffers Queued (Query only)       AL_BUFFERS_QUEUED       ALint
508 * Buffers Processed (Query only)    AL_BUFFERS_PROCESSED    ALint
509 */
510
511/* Create Source objects */
512AL_API void AL_APIENTRY alGenSources( ALsizei n, ALuint* sources ); 
513
514/* Delete Source objects */
515AL_API void AL_APIENTRY alDeleteSources( ALsizei n, const ALuint* sources );
516
517/* Verify a handle is a valid Source */ 
518AL_API ALboolean AL_APIENTRY alIsSource( ALuint sid ); 
519
520/*
521 * Set Source parameters
522 */
523AL_API void AL_APIENTRY alSourcef( ALuint sid, ALenum param, ALfloat value ); 
524
525AL_API void AL_APIENTRY alSource3f( ALuint sid, ALenum param, ALfloat value1, ALfloat value2, ALfloat value3 );
526
527AL_API void AL_APIENTRY alSourcefv( ALuint sid, ALenum param, const ALfloat* values ); 
528
529AL_API void AL_APIENTRY alSourcei( ALuint sid, ALenum param, ALint value ); 
530
531AL_API void AL_APIENTRY alSource3i( ALuint sid, ALenum param, ALint value1, ALint value2, ALint value3 );
532
533AL_API void AL_APIENTRY alSourceiv( ALuint sid, ALenum param, const ALint* values );
534
535/*
536 * Get Source parameters
537 */
538AL_API void AL_APIENTRY alGetSourcef( ALuint sid, ALenum param, ALfloat* value );
539
540AL_API void AL_APIENTRY alGetSource3f( ALuint sid, ALenum param, ALfloat* value1, ALfloat* value2, ALfloat* value3);
541
542AL_API void AL_APIENTRY alGetSourcefv( ALuint sid, ALenum param, ALfloat* values );
543
544AL_API void AL_APIENTRY alGetSourcei( ALuint sid,  ALenum param, ALint* value );
545
546AL_API void AL_APIENTRY alGetSource3i( ALuint sid, ALenum param, ALint* value1, ALint* value2, ALint* value3);
547
548AL_API void AL_APIENTRY alGetSourceiv( ALuint sid,  ALenum param, ALint* values );
549
550
551/*
552 * Source vector based playback calls
553 */
554
555/* Play, replay, or resume (if paused) a list of Sources */
556AL_API void AL_APIENTRY alSourcePlayv( ALsizei ns, const ALuint *sids );
557
558/* Stop a list of Sources */
559AL_API void AL_APIENTRY alSourceStopv( ALsizei ns, const ALuint *sids );
560
561/* Rewind a list of Sources */
562AL_API void AL_APIENTRY alSourceRewindv( ALsizei ns, const ALuint *sids );
563
564/* Pause a list of Sources */
565AL_API void AL_APIENTRY alSourcePausev( ALsizei ns, const ALuint *sids );
566
567/*
568 * Source based playback calls
569 */
570
571/* Play, replay, or resume a Source */
572AL_API void AL_APIENTRY alSourcePlay( ALuint sid );
573
574/* Stop a Source */
575AL_API void AL_APIENTRY alSourceStop( ALuint sid );
576
577/* Rewind a Source (set playback postiton to beginning) */
578AL_API void AL_APIENTRY alSourceRewind( ALuint sid );
579
580/* Pause a Source */
581AL_API void AL_APIENTRY alSourcePause( ALuint sid );
582
583/*
584 * Source Queuing
585 */
586AL_API void AL_APIENTRY alSourceQueueBuffers( ALuint sid, ALsizei numEntries, const ALuint *bids );
587
588AL_API void AL_APIENTRY alSourceUnqueueBuffers( ALuint sid, ALsizei numEntries, ALuint *bids );
589
590
591/**
592 * BUFFER
593 * Buffer objects are storage space for sample data.
594 * Buffers are referred to by Sources. One Buffer can be used
595 * by multiple Sources.
596 *
597 * Properties include: -
598 *
599 * Frequency (Query only)    AL_FREQUENCY      ALint
600 * Size (Query only)         AL_SIZE           ALint
601 * Bits (Query only)         AL_BITS           ALint
602 * Channels (Query only)     AL_CHANNELS       ALint
603 */
604
605/* Create Buffer objects */
606AL_API void AL_APIENTRY alGenBuffers( ALsizei n, ALuint* buffers );
607
608/* Delete Buffer objects */
609AL_API void AL_APIENTRY alDeleteBuffers( ALsizei n, const ALuint* buffers );
610
611/* Verify a handle is a valid Buffer */
612AL_API ALboolean AL_APIENTRY alIsBuffer( ALuint bid );
613
614/* Specify the data to be copied into a buffer */
615AL_API void AL_APIENTRY alBufferData( ALuint bid, ALenum format, const ALvoid* data, ALsizei size, ALsizei freq );
616
617/*
618 * Set Buffer parameters
619 */
620AL_API void AL_APIENTRY alBufferf( ALuint bid, ALenum param, ALfloat value );
621
622AL_API void AL_APIENTRY alBuffer3f( ALuint bid, ALenum param, ALfloat value1, ALfloat value2, ALfloat value3 );
623
624AL_API void AL_APIENTRY alBufferfv( ALuint bid, ALenum param, const ALfloat* values );
625
626AL_API void AL_APIENTRY alBufferi( ALuint bid, ALenum param, ALint value );
627
628AL_API void AL_APIENTRY alBuffer3i( ALuint bid, ALenum param, ALint value1, ALint value2, ALint value3 );
629
630AL_API void AL_APIENTRY alBufferiv( ALuint bid, ALenum param, const ALint* values );
631
632/*
633 * Get Buffer parameters
634 */
635AL_API void AL_APIENTRY alGetBufferf( ALuint bid, ALenum param, ALfloat* value );
636
637AL_API void AL_APIENTRY alGetBuffer3f( ALuint bid, ALenum param, ALfloat* value1, ALfloat* value2, ALfloat* value3);
638
639AL_API void AL_APIENTRY alGetBufferfv( ALuint bid, ALenum param, ALfloat* values );
640
641AL_API void AL_APIENTRY alGetBufferi( ALuint bid, ALenum param, ALint* value );
642
643AL_API void AL_APIENTRY alGetBuffer3i( ALuint bid, ALenum param, ALint* value1, ALint* value2, ALint* value3);
644
645AL_API void AL_APIENTRY alGetBufferiv( ALuint bid, ALenum param, ALint* values );
646
647
648/*
649 * Global Parameters
650 */
651AL_API void AL_APIENTRY alDopplerFactor( ALfloat value );
652
653AL_API void AL_APIENTRY alDopplerVelocity( ALfloat value );
654
655AL_API void AL_APIENTRY alSpeedOfSound( ALfloat value );
656
657AL_API void AL_APIENTRY alDistanceModel( ALenum distanceModel );
658
659/*
660 * Pointer-to-function types, useful for dynamically getting AL entry points.
661 */
662typedef void           (AL_APIENTRY *LPALENABLE)( ALenum capability );
663typedef void           (AL_APIENTRY *LPALDISABLE)( ALenum capability ); 
664typedef ALboolean      (AL_APIENTRY *LPALISENABLED)( ALenum capability ); 
665typedef const ALchar*  (AL_APIENTRY *LPALGETSTRING)( ALenum param );
666typedef void           (AL_APIENTRY *LPALGETBOOLEANV)( ALenum param, ALboolean* data );
667typedef void           (AL_APIENTRY *LPALGETINTEGERV)( ALenum param, ALint* data );
668typedef void           (AL_APIENTRY *LPALGETFLOATV)( ALenum param, ALfloat* data );
669typedef void           (AL_APIENTRY *LPALGETDOUBLEV)( ALenum param, ALdouble* data );
670typedef ALboolean      (AL_APIENTRY *LPALGETBOOLEAN)( ALenum param );
671typedef ALint          (AL_APIENTRY *LPALGETINTEGER)( ALenum param );
672typedef ALfloat        (AL_APIENTRY *LPALGETFLOAT)( ALenum param );
673typedef ALdouble       (AL_APIENTRY *LPALGETDOUBLE)( ALenum param );
674typedef ALenum         (AL_APIENTRY *LPALGETERROR)( void );
675typedef ALboolean      (AL_APIENTRY *LPALISEXTENSIONPRESENT)(const ALchar* extname );
676typedef void*          (AL_APIENTRY *LPALGETPROCADDRESS)( const ALchar* fname );
677typedef ALenum         (AL_APIENTRY *LPALGETENUMVALUE)( const ALchar* ename );
678typedef void           (AL_APIENTRY *LPALLISTENERF)( ALenum param, ALfloat value );
679typedef void           (AL_APIENTRY *LPALLISTENER3F)( ALenum param, ALfloat value1, ALfloat value2, ALfloat value3 );
680typedef void           (AL_APIENTRY *LPALLISTENERFV)( ALenum param, const ALfloat* values );
681typedef void           (AL_APIENTRY *LPALLISTENERI)( ALenum param, ALint value );
682typedef void           (AL_APIENTRY *LPALLISTENER3I)( ALenum param, ALint value1, ALint value2, ALint value3 );
683typedef void           (AL_APIENTRY *LPALLISTENERIV)( ALenum param, const ALint* values );
684typedef void           (AL_APIENTRY *LPALGETLISTENERF)( ALenum param, ALfloat* value );
685typedef void           (AL_APIENTRY *LPALGETLISTENER3F)( ALenum param, ALfloat *value1, ALfloat *value2, ALfloat *value3 );
686typedef void           (AL_APIENTRY *LPALGETLISTENERFV)( ALenum param, ALfloat* values );
687typedef void           (AL_APIENTRY *LPALGETLISTENERI)( ALenum param, ALint* value );
688typedef void           (AL_APIENTRY *LPALGETLISTENER3I)( ALenum param, ALint *value1, ALint *value2, ALint *value3 );
689typedef void           (AL_APIENTRY *LPALGETLISTENERIV)( ALenum param, ALint* values );
690typedef void           (AL_APIENTRY *LPALGENSOURCES)( ALsizei n, ALuint* sources ); 
691typedef void           (AL_APIENTRY *LPALDELETESOURCES)( ALsizei n, const ALuint* sources );
692typedef ALboolean      (AL_APIENTRY *LPALISSOURCE)( ALuint sid ); 
693typedef void           (AL_APIENTRY *LPALSOURCEF)( ALuint sid, ALenum param, ALfloat value); 
694typedef void           (AL_APIENTRY *LPALSOURCE3F)( ALuint sid, ALenum param, ALfloat value1, ALfloat value2, ALfloat value3 );
695typedef void           (AL_APIENTRY *LPALSOURCEFV)( ALuint sid, ALenum param, const ALfloat* values );
696typedef void           (AL_APIENTRY *LPALSOURCEI)( ALuint sid, ALenum param, ALint value); 
697typedef void           (AL_APIENTRY *LPALSOURCE3I)( ALuint sid, ALenum param, ALint value1, ALint value2, ALint value3 );
698typedef void           (AL_APIENTRY *LPALSOURCEIV)( ALuint sid, ALenum param, const ALint* values );
699typedef void           (AL_APIENTRY *LPALGETSOURCEF)( ALuint sid, ALenum param, ALfloat* value );
700typedef void           (AL_APIENTRY *LPALGETSOURCE3F)( ALuint sid, ALenum param, ALfloat* value1, ALfloat* value2, ALfloat* value3);
701typedef void           (AL_APIENTRY *LPALGETSOURCEFV)( ALuint sid, ALenum param, ALfloat* values );
702typedef void           (AL_APIENTRY *LPALGETSOURCEI)( ALuint sid, ALenum param, ALint* value );
703typedef void           (AL_APIENTRY *LPALGETSOURCE3I)( ALuint sid, ALenum param, ALint* value1, ALint* value2, ALint* value3);
704typedef void           (AL_APIENTRY *LPALGETSOURCEIV)( ALuint sid, ALenum param, ALint* values );
705typedef void           (AL_APIENTRY *LPALSOURCEPLAYV)( ALsizei ns, const ALuint *sids );
706typedef void           (AL_APIENTRY *LPALSOURCESTOPV)( ALsizei ns, const ALuint *sids );
707typedef void           (AL_APIENTRY *LPALSOURCEREWINDV)( ALsizei ns, const ALuint *sids );
708typedef void           (AL_APIENTRY *LPALSOURCEPAUSEV)( ALsizei ns, const ALuint *sids );
709typedef void           (AL_APIENTRY *LPALSOURCEPLAY)( ALuint sid );
710typedef void           (AL_APIENTRY *LPALSOURCESTOP)( ALuint sid );
711typedef void           (AL_APIENTRY *LPALSOURCEREWIND)( ALuint sid );
712typedef void           (AL_APIENTRY *LPALSOURCEPAUSE)( ALuint sid );
713typedef void           (AL_APIENTRY *LPALSOURCEQUEUEBUFFERS)(ALuint sid, ALsizei numEntries, const ALuint *bids );
714typedef void           (AL_APIENTRY *LPALSOURCEUNQUEUEBUFFERS)(ALuint sid, ALsizei numEntries, ALuint *bids );
715typedef void           (AL_APIENTRY *LPALGENBUFFERS)( ALsizei n, ALuint* buffers );
716typedef void           (AL_APIENTRY *LPALDELETEBUFFERS)( ALsizei n, const ALuint* buffers );
717typedef ALboolean      (AL_APIENTRY *LPALISBUFFER)( ALuint bid );
718typedef void           (AL_APIENTRY *LPALBUFFERDATA)( ALuint bid, ALenum format, const ALvoid* data, ALsizei size, ALsizei freq );
719typedef void           (AL_APIENTRY *LPALBUFFERF)( ALuint bid, ALenum param, ALfloat value);
720typedef void           (AL_APIENTRY *LPALBUFFER3F)( ALuint bid, ALenum param, ALfloat value1, ALfloat value2, ALfloat value3 );
721typedef void           (AL_APIENTRY *LPALBUFFERFV)( ALuint bid, ALenum param, const ALfloat* values );
722typedef void           (AL_APIENTRY *LPALBUFFERI)( ALuint bid, ALenum param, ALint value);
723typedef void           (AL_APIENTRY *LPALBUFFER3I)( ALuint bid, ALenum param, ALint value1, ALint value2, ALint value3 );
724typedef void           (AL_APIENTRY *LPALBUFFERIV)( ALuint bid, ALenum param, const ALint* values );
725typedef void           (AL_APIENTRY *LPALGETBUFFERF)( ALuint bid, ALenum param, ALfloat* value );
726typedef void           (AL_APIENTRY *LPALGETBUFFER3F)( ALuint bid, ALenum param, ALfloat* value1, ALfloat* value2, ALfloat* value3);
727typedef void           (AL_APIENTRY *LPALGETBUFFERFV)( ALuint bid, ALenum param, ALfloat* values );
728typedef void           (AL_APIENTRY *LPALGETBUFFERI)( ALuint bid, ALenum param, ALint* value );
729typedef void           (AL_APIENTRY *LPALGETBUFFER3I)( ALuint bid, ALenum param, ALint* value1, ALint* value2, ALint* value3);
730typedef void           (AL_APIENTRY *LPALGETBUFFERIV)( ALuint bid, ALenum param, ALint* values );
731typedef void           (AL_APIENTRY *LPALDOPPLERFACTOR)( ALfloat value );
732typedef void           (AL_APIENTRY *LPALDOPPLERVELOCITY)( ALfloat value );
733typedef void           (AL_APIENTRY *LPALSPEEDOFSOUND)( ALfloat value );
734typedef void           (AL_APIENTRY *LPALDISTANCEMODEL)( ALenum distanceModel );
735
736#if defined(TARGET_OS_MAC) && TARGET_OS_MAC
737 #pragma export off
738#endif
739
740#if defined(__cplusplus)
741}  /* extern "C" */
742#endif
743
744#endif /* AL_AL_H */
Note: See TracBrowser for help on using the repository browser.