🛠️🐜 Antkeeper superbuild with dependencies included https://antkeeper.com
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

656 lines
25 KiB

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