Subversion Repositories Games.Chess Giants

Rev

Blame | Last modification | View Log | Download | RSS feed

  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 */
  733.