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