1 #ifndef AL_AL_H 2 #define AL_AL_H 3 4 #if defined(__cplusplus) 5 extern "C" { 6 #endif 7 8 #ifndef AL_API 9 #if defined(AL_LIBTYPE_STATIC) 10 #define AL_API 11 #elif defined(_WIN32) 12 #define AL_API __declspec(dllimport) 13 #else 14 #define AL_API extern 15 #endif 16 #endif 17 18 #if defined(_WIN32) 19 #define AL_APIENTRY __cdecl 20 #else 21 #define AL_APIENTRY 22 #endif 23 24 25 /* Deprecated macros. */ 26 #define OPENAL 27 #define ALAPI AL_API 28 #define ALAPIENTRY AL_APIENTRY 29 #define AL_INVALID (-1) 30 #define AL_ILLEGAL_ENUM AL_INVALID_ENUM 31 #define AL_ILLEGAL_COMMAND AL_INVALID_OPERATION 32 33 /* Supported AL versions. */ 34 #define AL_VERSION_1_0 35 #define AL_VERSION_1_1 36 37 /** 8-bit boolean */ 38 typedef char ALboolean; 39 40 /** character */ 41 typedef char ALchar; 42 43 /** signed 8-bit 2's complement integer */ 44 typedef signed char ALbyte; 45 46 /** unsigned 8-bit integer */ 47 typedef unsigned char ALubyte; 48 49 /** signed 16-bit 2's complement integer */ 50 typedef short ALshort; 51 52 /** unsigned 16-bit integer */ 53 typedef unsigned short ALushort; 54 55 /** signed 32-bit 2's complement integer */ 56 typedef int ALint; 57 58 /** unsigned 32-bit integer */ 59 typedef unsigned int ALuint; 60 61 /** non-negative 32-bit binary integer size */ 62 typedef int ALsizei; 63 64 /** enumerated 32-bit value */ 65 typedef int ALenum; 66 67 /** 32-bit IEEE754 floating-point */ 68 typedef float ALfloat; 69 70 /** 64-bit IEEE754 floating-point */ 71 typedef double ALdouble; 72 73 /** void type (for opaque pointers only) */ 74 typedef void ALvoid; 75 76 77 /* Enumerant values begin at column 50. No tabs. */ 78 79 /** "no distance model" or "no buffer" */ 80 #define AL_NONE 0 81 82 /** Boolean False. */ 83 #define AL_FALSE 0 84 85 /** Boolean True. */ 86 #define AL_TRUE 1 87 88 89 /** 90 * Relative source. 91 * Type: ALboolean 92 * Range: [AL_TRUE, AL_FALSE] 93 * Default: AL_FALSE 94 * 95 * Specifies if the Source has relative coordinates. 96 */ 97 #define AL_SOURCE_RELATIVE 0x202 98 99 100 /** 101 * Inner cone angle, in degrees. 102 * Type: ALint, ALfloat 103 * Range: [0 - 360] 104 * Default: 360 105 * 106 * The angle covered by the inner cone, where the source will not attenuate. 107 */ 108 #define AL_CONE_INNER_ANGLE 0x1001 109 110 /** 111 * Outer cone angle, in degrees. 112 * Range: [0 - 360] 113 * Default: 360 114 * 115 * The angle covered by the outer cone, where the source will be fully 116 * attenuated. 117 */ 118 #define AL_CONE_OUTER_ANGLE 0x1002 119 120 /** 121 * Source pitch. 122 * Type: ALfloat 123 * Range: [0.5 - 2.0] 124 * Default: 1.0 125 * 126 * A multiplier for the frequency (sample rate) of the source's buffer. 127 */ 128 #define AL_PITCH 0x1003 129 130 /** 131 * Source or listener position. 132 * Type: ALfloat[3], ALint[3] 133 * Default: {0, 0, 0} 134 * 135 * The source or listener location in three dimensional space. 136 * 137 * OpenAL, like OpenGL, uses a right handed coordinate system, where in a 138 * frontal default view X (thumb) points right, Y points up (index finger), and 139 * Z points towards the viewer/camera (middle finger). 140 * 141 * To switch from a left handed coordinate system, flip the sign on the Z 142 * coordinate. 143 */ 144 #define AL_POSITION 0x1004 145 146 /** 147 * Source direction. 148 * Type: ALfloat[3], ALint[3] 149 * Default: {0, 0, 0} 150 * 151 * Specifies the current direction in local space. 152 * A zero-length vector specifies an omni-directional source (cone is ignored). 153 */ 154 #define AL_DIRECTION 0x1005 155 156 /** 157 * Source or listener velocity. 158 * Type: ALfloat[3], ALint[3] 159 * Default: {0, 0, 0} 160 * 161 * Specifies the current velocity in local space. 162 */ 163 #define AL_VELOCITY 0x1006 164 165 /** 166 * Source looping. 167 * Type: ALboolean 168 * Range: [AL_TRUE, AL_FALSE] 169 * Default: AL_FALSE 170 * 171 * Specifies whether source is looping. 172 */ 173 #define AL_LOOPING 0x1007 174 175 /** 176 * Source buffer. 177 * Type: ALuint 178 * Range: any valid Buffer. 179 * 180 * Specifies the buffer to provide sound samples. 181 */ 182 #define AL_BUFFER 0x1009 183 184 /** 185 * Source or listener gain. 186 * Type: ALfloat 187 * Range: [0.0 - ] 188 * 189 * A value of 1.0 means unattenuated. Each division by 2 equals an attenuation 190 * of about -6dB. Each multiplicaton by 2 equals an amplification of about 191 * +6dB. 192 * 193 * A value of 0.0 is meaningless with respect to a logarithmic scale; it is 194 * silent. 195 */ 196 #define AL_GAIN 0x100A 197 198 /** 199 * Minimum source gain. 200 * Type: ALfloat 201 * Range: [0.0 - 1.0] 202 * 203 * The minimum gain allowed for a source, after distance and cone attenation is 204 * applied (if applicable). 205 */ 206 #define AL_MIN_GAIN 0x100D 207 208 /** 209 * Maximum source gain. 210 * Type: ALfloat 211 * Range: [0.0 - 1.0] 212 * 213 * The maximum gain allowed for a source, after distance and cone attenation is 214 * applied (if applicable). 215 */ 216 #define AL_MAX_GAIN 0x100E 217 218 /** 219 * Listener orientation. 220 * Type: ALfloat[6] 221 * Default: {0.0, 0.0, -1.0, 0.0, 1.0, 0.0} 222 * 223 * Effectively two three dimensional vectors. The first vector is the front (or 224 * "at") and the second is the top (or "up"). 225 * 226 * Both vectors are in local space. 227 */ 228 #define AL_ORIENTATION 0x100F 229 230 /** 231 * Source state (query only). 232 * Type: ALint 233 * Range: [AL_INITIAL, AL_PLAYING, AL_PAUSED, AL_STOPPED] 234 */ 235 #define AL_SOURCE_STATE 0x1010 236 237 /* Source state values. */ 238 #define AL_INITIAL 0x1011 239 #define AL_PLAYING 0x1012 240 #define AL_PAUSED 0x1013 241 #define AL_STOPPED 0x1014 242 243 /** 244 * Source Buffer Queue size (query only). 245 * Type: ALint 246 * 247 * The number of buffers queued using alSourceQueueBuffers, minus the buffers 248 * removed with alSourceUnqueueBuffers. 249 */ 250 #define AL_BUFFERS_QUEUED 0x1015 251 252 /** 253 * Source Buffer Queue processed count (query only). 254 * Type: ALint 255 * 256 * The number of queued buffers that have been fully processed, and can be 257 * removed with alSourceUnqueueBuffers. 258 * 259 * Looping sources will never fully process buffers because they will be set to 260 * play again for when the source loops. 261 */ 262 #define AL_BUFFERS_PROCESSED 0x1016 263 264 /** 265 * Source reference distance. 266 * Type: ALfloat 267 * Range: [0.0 - ] 268 * Default: 1.0 269 * 270 * The distance in units that no attenuation occurs. 271 * 272 * At 0.0, no distance attenuation ever occurs on non-linear attenuation models. 273 */ 274 #define AL_REFERENCE_DISTANCE 0x1020 275 276 /** 277 * Source rolloff factor. 278 * Type: ALfloat 279 * Range: [0.0 - ] 280 * Default: 1.0 281 * 282 * Multiplier to exaggerate or diminish distance attenuation. 283 * 284 * At 0.0, no distance attenuation ever occurs. 285 */ 286 #define AL_ROLLOFF_FACTOR 0x1021 287 288 /** 289 * Outer cone gain. 290 * Type: ALfloat 291 * Range: [0.0 - 1.0] 292 * Default: 0.0 293 * 294 * The gain attenuation applied when the listener is outside of the source's 295 * outer cone. 296 */ 297 #define AL_CONE_OUTER_GAIN 0x1022 298 299 /** 300 * Source maximum distance. 301 * Type: ALfloat 302 * Range: [0.0 - ] 303 * Default: FLT_MAX 304 * 305 * The distance above which the source is not attenuated any further with a 306 * clamped distance model, or where attenuation reaches 0.0 gain for linear 307 * distance models with a default rolloff factor. 308 */ 309 #define AL_MAX_DISTANCE 0x1023 310 311 /** Source buffer position, in seconds */ 312 #define AL_SEC_OFFSET 0x1024 313 /** Source buffer position, in sample frames */ 314 #define AL_SAMPLE_OFFSET 0x1025 315 /** Source buffer position, in bytes */ 316 #define AL_BYTE_OFFSET 0x1026 317 318 /** 319 * Source type (query only). 320 * Type: ALint 321 * Range: [AL_STATIC, AL_STREAMING, AL_UNDETERMINED] 322 * 323 * A Source is Static if a Buffer has been attached using AL_BUFFER. 324 * 325 * A Source is Streaming if one or more Buffers have been attached using 326 * alSourceQueueBuffers. 327 * 328 * A Source is Undetermined when it has the NULL buffer attached using 329 * AL_BUFFER. 330 */ 331 #define AL_SOURCE_TYPE 0x1027 332 333 /* Source type values. */ 334 #define AL_STATIC 0x1028 335 #define AL_STREAMING 0x1029 336 #define AL_UNDETERMINED 0x1030 337 338 /** Unsigned 8-bit mono buffer format. */ 339 #define AL_FORMAT_MONO8 0x1100 340 /** Signed 16-bit mono buffer format. */ 341 #define AL_FORMAT_MONO16 0x1101 342 /** Unsigned 8-bit stereo buffer format. */ 343 #define AL_FORMAT_STEREO8 0x1102 344 /** Signed 16-bit stereo buffer format. */ 345 #define AL_FORMAT_STEREO16 0x1103 346 347 /** Buffer frequency (query only). */ 348 #define AL_FREQUENCY 0x2001 349 /** Buffer bits per sample (query only). */ 350 #define AL_BITS 0x2002 351 /** Buffer channel count (query only). */ 352 #define AL_CHANNELS 0x2003 353 /** Buffer data size (query only). */ 354 #define AL_SIZE 0x2004 355 356 /* Buffer state. Not for public use. */ 357 #define AL_UNUSED 0x2010 358 #define AL_PENDING 0x2011 359 #define AL_PROCESSED 0x2012 360 361 362 /** No error. */ 363 #define AL_NO_ERROR 0 364 365 /** Invalid name paramater passed to AL call. */ 366 #define AL_INVALID_NAME 0xA001 367 368 /** Invalid enum parameter passed to AL call. */ 369 #define AL_INVALID_ENUM 0xA002 370 371 /** Invalid value parameter passed to AL call. */ 372 #define AL_INVALID_VALUE 0xA003 373 374 /** Illegal AL call. */ 375 #define AL_INVALID_OPERATION 0xA004 376 377 /** Not enough memory. */ 378 #define AL_OUT_OF_MEMORY 0xA005 379 380 381 /** Context string: Vendor ID. */ 382 #define AL_VENDOR 0xB001 383 /** Context string: Version. */ 384 #define AL_VERSION 0xB002 385 /** Context string: Renderer ID. */ 386 #define AL_RENDERER 0xB003 387 /** Context string: Space-separated extension list. */ 388 #define AL_EXTENSIONS 0xB004 389 390 391 /** 392 * Doppler scale. 393 * Type: ALfloat 394 * Range: [0.0 - ] 395 * Default: 1.0 396 * 397 * Scale for source and listener velocities. 398 */ 399 #define AL_DOPPLER_FACTOR 0xC000 400 AL_API void AL_APIENTRY alDopplerFactor(ALfloat value); 401 402 /** 403 * Doppler velocity (deprecated). 404 * 405 * A multiplier applied to the Speed of Sound. 406 */ 407 #define AL_DOPPLER_VELOCITY 0xC001 408 AL_API void AL_APIENTRY alDopplerVelocity(ALfloat value); 409 410 /** 411 * Speed of Sound, in units per second. 412 * Type: ALfloat 413 * Range: [0.0001 - ] 414 * Default: 343.3 415 * 416 * The speed at which sound waves are assumed to travel, when calculating the 417 * doppler effect. 418 */ 419 #define AL_SPEED_OF_SOUND 0xC003 420 AL_API void AL_APIENTRY alSpeedOfSound(ALfloat value); 421 422 /** 423 * Distance attenuation model. 424 * Type: ALint 425 * Range: [AL_NONE, AL_INVERSE_DISTANCE, AL_INVERSE_DISTANCE_CLAMPED, 426 * AL_LINEAR_DISTANCE, AL_LINEAR_DISTANCE_CLAMPED, 427 * AL_EXPONENT_DISTANCE, AL_EXPONENT_DISTANCE_CLAMPED] 428 * Default: AL_INVERSE_DISTANCE_CLAMPED 429 * 430 * The model by which sources attenuate with distance. 431 * 432 * None - No distance attenuation. 433 * Inverse - Doubling the distance halves the source gain. 434 * Linear - Linear gain scaling between the reference and max distances. 435 * Exponent - Exponential gain dropoff. 436 * 437 * Clamped variations work like the non-clamped counterparts, except the 438 * distance calculated is clamped between the reference and max distances. 439 */ 440 #define AL_DISTANCE_MODEL 0xD000 441 AL_API void AL_APIENTRY alDistanceModel(ALenum distanceModel); 442 443 /* Distance model values. */ 444 #define AL_INVERSE_DISTANCE 0xD001 445 #define AL_INVERSE_DISTANCE_CLAMPED 0xD002 446 #define AL_LINEAR_DISTANCE 0xD003 447 #define AL_LINEAR_DISTANCE_CLAMPED 0xD004 448 #define AL_EXPONENT_DISTANCE 0xD005 449 #define AL_EXPONENT_DISTANCE_CLAMPED 0xD006 450 451 /* Renderer State management. */ 452 AL_API void AL_APIENTRY alEnable(ALenum capability); 453 AL_API void AL_APIENTRY alDisable(ALenum capability); 454 AL_API ALboolean AL_APIENTRY alIsEnabled(ALenum capability); 455 456 /* State retrieval. */ 457 AL_API const ALchar* AL_APIENTRY alGetString(ALenum param); 458 AL_API void AL_APIENTRY alGetBooleanv(ALenum param, ALboolean *values); 459 AL_API void AL_APIENTRY alGetIntegerv(ALenum param, ALint *values); 460 AL_API void AL_APIENTRY alGetFloatv(ALenum param, ALfloat *values); 461 AL_API void AL_APIENTRY alGetDoublev(ALenum param, ALdouble *values); 462 AL_API ALboolean AL_APIENTRY alGetBoolean(ALenum param); 463 AL_API ALint AL_APIENTRY alGetInteger(ALenum param); 464 AL_API ALfloat AL_APIENTRY alGetFloat(ALenum param); 465 AL_API ALdouble AL_APIENTRY alGetDouble(ALenum param); 466 467 /* Error retrieval. */ 468 469 /** Obtain the first error generated in the AL context since the last check. */ 470 AL_API ALenum AL_APIENTRY alGetError(void); 471 472 /** Query for the presence of an extension on the AL context. */ 473 AL_API ALboolean AL_APIENTRY alIsExtensionPresent(const ALchar *extname); 474 /** 475 * Retrieve the address of a function. The returned function may be context- 476 * specific. 477 */ 478 AL_API void* AL_APIENTRY alGetProcAddress(const ALchar *fname); 479 /** 480 * Retrieve the value of an enum. The returned value may be context-specific. 481 */ 482 AL_API ALenum AL_APIENTRY alGetEnumValue(const ALchar *ename); 483 484 485 /* Set Listener parameters */ 486 AL_API void AL_APIENTRY alListenerf(ALenum param, ALfloat value); 487 AL_API void AL_APIENTRY alListener3f(ALenum param, ALfloat value1, ALfloat value2, ALfloat value3); 488 AL_API void AL_APIENTRY alListenerfv(ALenum param, const ALfloat *values); 489 AL_API void AL_APIENTRY alListeneri(ALenum param, ALint value); 490 AL_API void AL_APIENTRY alListener3i(ALenum param, ALint value1, ALint value2, ALint value3); 491 AL_API void AL_APIENTRY alListeneriv(ALenum param, const ALint *values); 492 493 /* Get Listener parameters */ 494 AL_API void AL_APIENTRY alGetListenerf(ALenum param, ALfloat *value); 495 AL_API void AL_APIENTRY alGetListener3f(ALenum param, ALfloat *value1, ALfloat *value2, ALfloat *value3); 496 AL_API void AL_APIENTRY alGetListenerfv(ALenum param, ALfloat *values); 497 AL_API void AL_APIENTRY alGetListeneri(ALenum param, ALint *value); 498 AL_API void AL_APIENTRY alGetListener3i(ALenum param, ALint *value1, ALint *value2, ALint *value3); 499 AL_API void AL_APIENTRY alGetListeneriv(ALenum param, ALint *values); 500 501 502 /** Create Source objects. */ 503 AL_API void AL_APIENTRY alGenSources(ALsizei n, ALuint *sources); 504 /** Delete Source objects. */ 505 AL_API void AL_APIENTRY alDeleteSources(ALsizei n, const ALuint *sources); 506 /** Verify a handle is a valid Source. */ 507 AL_API ALboolean AL_APIENTRY alIsSource(ALuint source); 508 509 /* Set Source parameters. */ 510 AL_API void AL_APIENTRY alSourcef(ALuint source, ALenum param, ALfloat value); 511 AL_API void AL_APIENTRY alSource3f(ALuint source, ALenum param, ALfloat value1, ALfloat value2, ALfloat value3); 512 AL_API void AL_APIENTRY alSourcefv(ALuint source, ALenum param, const ALfloat *values); 513 AL_API void AL_APIENTRY alSourcei(ALuint source, ALenum param, ALint value); 514 AL_API void AL_APIENTRY alSource3i(ALuint source, ALenum param, ALint value1, ALint value2, ALint value3); 515 AL_API void AL_APIENTRY alSourceiv(ALuint source, ALenum param, const ALint *values); 516 517 /* Get Source parameters. */ 518 AL_API void AL_APIENTRY alGetSourcef(ALuint source, ALenum param, ALfloat *value); 519 AL_API void AL_APIENTRY alGetSource3f(ALuint source, ALenum param, ALfloat *value1, ALfloat *value2, ALfloat *value3); 520 AL_API void AL_APIENTRY alGetSourcefv(ALuint source, ALenum param, ALfloat *values); 521 AL_API void AL_APIENTRY alGetSourcei(ALuint source, ALenum param, ALint *value); 522 AL_API void AL_APIENTRY alGetSource3i(ALuint source, ALenum param, ALint *value1, ALint *value2, ALint *value3); 523 AL_API void AL_APIENTRY alGetSourceiv(ALuint source, ALenum param, ALint *values); 524 525 526 /** Play, replay, or resume (if paused) a list of Sources */ 527 AL_API void AL_APIENTRY alSourcePlayv(ALsizei n, const ALuint *sources); 528 /** Stop a list of Sources */ 529 AL_API void AL_APIENTRY alSourceStopv(ALsizei n, const ALuint *sources); 530 /** Rewind a list of Sources */ 531 AL_API void AL_APIENTRY alSourceRewindv(ALsizei n, const ALuint *sources); 532 /** Pause a list of Sources */ 533 AL_API void AL_APIENTRY alSourcePausev(ALsizei n, const ALuint *sources); 534 535 /** Play, replay, or resume a Source */ 536 AL_API void AL_APIENTRY alSourcePlay(ALuint source); 537 /** Stop a Source */ 538 AL_API void AL_APIENTRY alSourceStop(ALuint source); 539 /** Rewind a Source (set playback postiton to beginning) */ 540 AL_API void AL_APIENTRY alSourceRewind(ALuint source); 541 /** Pause a Source */ 542 AL_API void AL_APIENTRY alSourcePause(ALuint source); 543 544 /** Queue buffers onto a source */ 545 AL_API void AL_APIENTRY alSourceQueueBuffers(ALuint source, ALsizei nb, const ALuint *buffers); 546 /** Unqueue processed buffers from a source */ 547 AL_API void AL_APIENTRY alSourceUnqueueBuffers(ALuint source, ALsizei nb, ALuint *buffers); 548 549 550 /** Create Buffer objects */ 551 AL_API void AL_APIENTRY alGenBuffers(ALsizei n, ALuint *buffers); 552 /** Delete Buffer objects */ 553 AL_API void AL_APIENTRY alDeleteBuffers(ALsizei n, const ALuint *buffers); 554 /** Verify a handle is a valid Buffer */ 555 AL_API ALboolean AL_APIENTRY alIsBuffer(ALuint buffer); 556 557 /** Specifies the data to be copied into a buffer */ 558 AL_API void AL_APIENTRY alBufferData(ALuint buffer, ALenum format, const ALvoid *data, ALsizei size, ALsizei freq); 559 560 /* Set Buffer parameters, */ 561 AL_API void AL_APIENTRY alBufferf(ALuint buffer, ALenum param, ALfloat value); 562 AL_API void AL_APIENTRY alBuffer3f(ALuint buffer, ALenum param, ALfloat value1, ALfloat value2, ALfloat value3); 563 AL_API void AL_APIENTRY alBufferfv(ALuint buffer, ALenum param, const ALfloat *values); 564 AL_API void AL_APIENTRY alBufferi(ALuint buffer, ALenum param, ALint value); 565 AL_API void AL_APIENTRY alBuffer3i(ALuint buffer, ALenum param, ALint value1, ALint value2, ALint value3); 566 AL_API void AL_APIENTRY alBufferiv(ALuint buffer, ALenum param, const ALint *values); 567 568 /* Get Buffer parameters. */ 569 AL_API void AL_APIENTRY alGetBufferf(ALuint buffer, ALenum param, ALfloat *value); 570 AL_API void AL_APIENTRY alGetBuffer3f(ALuint buffer, ALenum param, ALfloat *value1, ALfloat *value2, ALfloat *value3); 571 AL_API void AL_APIENTRY alGetBufferfv(ALuint buffer, ALenum param, ALfloat *values); 572 AL_API void AL_APIENTRY alGetBufferi(ALuint buffer, ALenum param, ALint *value); 573 AL_API void AL_APIENTRY alGetBuffer3i(ALuint buffer, ALenum param, ALint *value1, ALint *value2, ALint *value3); 574 AL_API void AL_APIENTRY alGetBufferiv(ALuint buffer, ALenum param, ALint *values); 575 576 /* Pointer-to-function type, useful for dynamically getting AL entry points. */ 577 typedef void (AL_APIENTRY *LPALENABLE)(ALenum capability); 578 typedef void (AL_APIENTRY *LPALDISABLE)(ALenum capability); 579 typedef ALboolean (AL_APIENTRY *LPALISENABLED)(ALenum capability); 580 typedef const ALchar* (AL_APIENTRY *LPALGETSTRING)(ALenum param); 581 typedef void (AL_APIENTRY *LPALGETBOOLEANV)(ALenum param, ALboolean *values); 582 typedef void (AL_APIENTRY *LPALGETINTEGERV)(ALenum param, ALint *values); 583 typedef void (AL_APIENTRY *LPALGETFLOATV)(ALenum param, ALfloat *values); 584 typedef void (AL_APIENTRY *LPALGETDOUBLEV)(ALenum param, ALdouble *values); 585 typedef ALboolean (AL_APIENTRY *LPALGETBOOLEAN)(ALenum param); 586 typedef ALint (AL_APIENTRY *LPALGETINTEGER)(ALenum param); 587 typedef ALfloat (AL_APIENTRY *LPALGETFLOAT)(ALenum param); 588 typedef ALdouble (AL_APIENTRY *LPALGETDOUBLE)(ALenum param); 589 typedef ALenum (AL_APIENTRY *LPALGETERROR)(void); 590 typedef ALboolean (AL_APIENTRY *LPALISEXTENSIONPRESENT)(const ALchar *extname); 591 typedef void* (AL_APIENTRY *LPALGETPROCADDRESS)(const ALchar *fname); 592 typedef ALenum (AL_APIENTRY *LPALGETENUMVALUE)(const ALchar *ename); 593 typedef void (AL_APIENTRY *LPALLISTENERF)(ALenum param, ALfloat value); 594 typedef void (AL_APIENTRY *LPALLISTENER3F)(ALenum param, ALfloat value1, ALfloat value2, ALfloat value3); 595 typedef void (AL_APIENTRY *LPALLISTENERFV)(ALenum param, const ALfloat *values); 596 typedef void (AL_APIENTRY *LPALLISTENERI)(ALenum param, ALint value); 597 typedef void (AL_APIENTRY *LPALLISTENER3I)(ALenum param, ALint value1, ALint value2, ALint value3); 598 typedef void (AL_APIENTRY *LPALLISTENERIV)(ALenum param, const ALint *values); 599 typedef void (AL_APIENTRY *LPALGETLISTENERF)(ALenum param, ALfloat *value); 600 typedef void (AL_APIENTRY *LPALGETLISTENER3F)(ALenum param, ALfloat *value1, ALfloat *value2, ALfloat *value3); 601 typedef void (AL_APIENTRY *LPALGETLISTENERFV)(ALenum param, ALfloat *values); 602 typedef void (AL_APIENTRY *LPALGETLISTENERI)(ALenum param, ALint *value); 603 typedef void (AL_APIENTRY *LPALGETLISTENER3I)(ALenum param, ALint *value1, ALint *value2, ALint *value3); 604 typedef void (AL_APIENTRY *LPALGETLISTENERIV)(ALenum param, ALint *values); 605 typedef void (AL_APIENTRY *LPALGENSOURCES)(ALsizei n, ALuint *sources); 606 typedef void (AL_APIENTRY *LPALDELETESOURCES)(ALsizei n, const ALuint *sources); 607 typedef ALboolean (AL_APIENTRY *LPALISSOURCE)(ALuint source); 608 typedef void (AL_APIENTRY *LPALSOURCEF)(ALuint source, ALenum param, ALfloat value); 609 typedef void (AL_APIENTRY *LPALSOURCE3F)(ALuint source, ALenum param, ALfloat value1, ALfloat value2, ALfloat value3); 610 typedef void (AL_APIENTRY *LPALSOURCEFV)(ALuint source, ALenum param, const ALfloat *values); 611 typedef void (AL_APIENTRY *LPALSOURCEI)(ALuint source, ALenum param, ALint value); 612 typedef void (AL_APIENTRY *LPALSOURCE3I)(ALuint source, ALenum param, ALint value1, ALint value2, ALint value3); 613 typedef void (AL_APIENTRY *LPALSOURCEIV)(ALuint source, ALenum param, const ALint *values); 614 typedef void (AL_APIENTRY *LPALGETSOURCEF)(ALuint source, ALenum param, ALfloat *value); 615 typedef void (AL_APIENTRY *LPALGETSOURCE3F)(ALuint source, ALenum param, ALfloat *value1, ALfloat *value2, ALfloat *value3); 616 typedef void (AL_APIENTRY *LPALGETSOURCEFV)(ALuint source, ALenum param, ALfloat *values); 617 typedef void (AL_APIENTRY *LPALGETSOURCEI)(ALuint source, ALenum param, ALint *value); 618 typedef void (AL_APIENTRY *LPALGETSOURCE3I)(ALuint source, ALenum param, ALint *value1, ALint *value2, ALint *value3); 619 typedef void (AL_APIENTRY *LPALGETSOURCEIV)(ALuint source, ALenum param, ALint *values); 620 typedef void (AL_APIENTRY *LPALSOURCEPLAYV)(ALsizei n, const ALuint *sources); 621 typedef void (AL_APIENTRY *LPALSOURCESTOPV)(ALsizei n, const ALuint *sources); 622 typedef void (AL_APIENTRY *LPALSOURCEREWINDV)(ALsizei n, const ALuint *sources); 623 typedef void (AL_APIENTRY *LPALSOURCEPAUSEV)(ALsizei n, const ALuint *sources); 624 typedef void (AL_APIENTRY *LPALSOURCEPLAY)(ALuint source); 625 typedef void (AL_APIENTRY *LPALSOURCESTOP)(ALuint source); 626 typedef void (AL_APIENTRY *LPALSOURCEREWIND)(ALuint source); 627 typedef void (AL_APIENTRY *LPALSOURCEPAUSE)(ALuint source); 628 typedef void (AL_APIENTRY *LPALSOURCEQUEUEBUFFERS)(ALuint source, ALsizei nb, const ALuint *buffers); 629 typedef void (AL_APIENTRY *LPALSOURCEUNQUEUEBUFFERS)(ALuint source, ALsizei nb, ALuint *buffers); 630 typedef void (AL_APIENTRY *LPALGENBUFFERS)(ALsizei n, ALuint *buffers); 631 typedef void (AL_APIENTRY *LPALDELETEBUFFERS)(ALsizei n, const ALuint *buffers); 632 typedef ALboolean (AL_APIENTRY *LPALISBUFFER)(ALuint buffer); 633 typedef void (AL_APIENTRY *LPALBUFFERDATA)(ALuint buffer, ALenum format, const ALvoid *data, ALsizei size, ALsizei freq); 634 typedef void (AL_APIENTRY *LPALBUFFERF)(ALuint buffer, ALenum param, ALfloat value); 635 typedef void (AL_APIENTRY *LPALBUFFER3F)(ALuint buffer, ALenum param, ALfloat value1, ALfloat value2, ALfloat value3); 636 typedef void (AL_APIENTRY *LPALBUFFERFV)(ALuint buffer, ALenum param, const ALfloat *values); 637 typedef void (AL_APIENTRY *LPALBUFFERI)(ALuint buffer, ALenum param, ALint value); 638 typedef void (AL_APIENTRY *LPALBUFFER3I)(ALuint buffer, ALenum param, ALint value1, ALint value2, ALint value3); 639 typedef void (AL_APIENTRY *LPALBUFFERIV)(ALuint buffer, ALenum param, const ALint *values); 640 typedef void (AL_APIENTRY *LPALGETBUFFERF)(ALuint buffer, ALenum param, ALfloat *value); 641 typedef void (AL_APIENTRY *LPALGETBUFFER3F)(ALuint buffer, ALenum param, ALfloat *value1, ALfloat *value2, ALfloat *value3); 642 typedef void (AL_APIENTRY *LPALGETBUFFERFV)(ALuint buffer, ALenum param, ALfloat *values); 643 typedef void (AL_APIENTRY *LPALGETBUFFERI)(ALuint buffer, ALenum param, ALint *value); 644 typedef void (AL_APIENTRY *LPALGETBUFFER3I)(ALuint buffer, ALenum param, ALint *value1, ALint *value2, ALint *value3); 645 typedef void (AL_APIENTRY *LPALGETBUFFERIV)(ALuint buffer, ALenum param, ALint *values); 646 typedef void (AL_APIENTRY *LPALDOPPLERFACTOR)(ALfloat value); 647 typedef void (AL_APIENTRY *LPALDOPPLERVELOCITY)(ALfloat value); 648 typedef void (AL_APIENTRY *LPALSPEEDOFSOUND)(ALfloat value); 649 typedef void (AL_APIENTRY *LPALDISTANCEMODEL)(ALenum distanceModel); 650 651 #if defined(__cplusplus) 652 } /* extern "C" */ 653 #endif 654 655 #endif /* AL_AL_H */ 656