al.h 25 KB

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