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 *LPALIlocation)( 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 */ 733