Subversion Repositories Games.Chess Giants

Rev

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

  1. #ifndef __efx_h_
  2. #define __efx_h_
  3.  
  4.  
  5. #ifdef __cplusplus
  6. extern "C" {
  7. #endif
  8.  
  9. #define ALC_EXT_EFX_NAME                                   "ALC_EXT_EFX"
  10.  
  11. /**
  12.  * Context definitions to be used with alcCreateContext.
  13.  * These values must be unique and not conflict with other
  14.  * al context values.
  15.  */
  16. #define ALC_EFX_MAJOR_VERSION                              0x20001
  17. #define ALC_EFX_MINOR_VERSION                              0x20002
  18. #define ALC_MAX_AUXILIARY_SENDS                            0x20003
  19.  
  20.  
  21.  
  22.  
  23. /**
  24.  * Listener definitions to be used with alListener functions.
  25.  * These values must be unique and not conflict with other
  26.  * al listener values.
  27.  */
  28. #define AL_METERS_PER_UNIT                                 0x20004
  29.  
  30.  
  31.  
  32.  
  33. /**
  34.  * Source definitions to be used with alSource functions.
  35.  * These values must be unique and not conflict with other
  36.  * al source values.
  37.  */
  38. #define AL_DIRECT_FILTER                                   0x20005
  39. #define AL_AUXILIARY_SEND_FILTER                           0x20006
  40. #define AL_AIR_ABSORPTION_FACTOR                           0x20007
  41. #define AL_ROOM_ROLLOFF_FACTOR                             0x20008
  42. #define AL_CONE_OUTER_GAINHF                               0x20009
  43. #define AL_DIRECT_FILTER_GAINHF_AUTO                       0x2000A
  44. #define AL_AUXILIARY_SEND_FILTER_GAIN_AUTO                 0x2000B
  45. #define AL_AUXILIARY_SEND_FILTER_GAINHF_AUTO               0x2000C
  46.  
  47.  
  48.  
  49.  
  50. /**
  51.  * Effect object definitions to be used with alEffect functions.
  52.  *
  53.  * Effect parameter value definitions, ranges, and defaults
  54.  * appear farther down in this file.
  55.  */
  56.  
  57. /* Reverb Parameters */
  58. #define AL_REVERB_DENSITY                                  0x0001
  59. #define AL_REVERB_DIFFUSION                                0x0002
  60. #define AL_REVERB_GAIN                                     0x0003
  61. #define AL_REVERB_GAINHF                                   0x0004
  62. #define AL_REVERB_DECAY_TIME                               0x0005
  63. #define AL_REVERB_DECAY_HFRATIO                            0x0006
  64. #define AL_REVERB_REFLECTIONS_GAIN                         0x0007
  65. #define AL_REVERB_REFLECTIONS_DELAY                        0x0008
  66. #define AL_REVERB_LATE_REVERB_GAIN                         0x0009
  67. #define AL_REVERB_LATE_REVERB_DELAY                        0x000A
  68. #define AL_REVERB_AIR_ABSORPTION_GAINHF                    0x000B
  69. #define AL_REVERB_ROOM_ROLLOFF_FACTOR                      0x000C
  70. #define AL_REVERB_DECAY_HFLIMIT                            0x000D
  71.  
  72. /* Chorus Parameters */
  73. #define AL_CHORUS_WAVEFORM                                 0x0001
  74. #define AL_CHORUS_PHASE                                    0x0002
  75. #define AL_CHORUS_RATE                                     0x0003
  76. #define AL_CHORUS_DEPTH                                    0x0004
  77. #define AL_CHORUS_FEEDBACK                                 0x0005
  78. #define AL_CHORUS_DELAY                                    0x0006
  79.  
  80. /* Distortion Parameters */
  81. #define AL_DISTORTION_EDGE                                 0x0001
  82. #define AL_DISTORTION_GAIN                                 0x0002
  83. #define AL_DISTORTION_LOWPASS_CUTOFF                       0x0003
  84. #define AL_DISTORTION_EQCENTER                             0x0004
  85. #define AL_DISTORTION_EQBANDWIDTH                          0x0005
  86.  
  87. /* Echo Parameters */
  88. #define AL_ECHO_DELAY                                      0x0001
  89. #define AL_ECHO_LRDELAY                                    0x0002
  90. #define AL_ECHO_DAMPING                                    0x0003
  91. #define AL_ECHO_FEEDBACK                                   0x0004
  92. #define AL_ECHO_SPREAD                                     0x0005
  93.  
  94. /* Flanger Parameters */
  95. #define AL_FLANGER_WAVEFORM                                0x0001
  96. #define AL_FLANGER_PHASE                                   0x0002
  97. #define AL_FLANGER_RATE                                    0x0003
  98. #define AL_FLANGER_DEPTH                                   0x0004
  99. #define AL_FLANGER_FEEDBACK                                0x0005
  100. #define AL_FLANGER_DELAY                                   0x0006
  101.  
  102. /* Frequencyshifter Parameters */
  103. #define AL_FREQUENCY_SHIFTER_FREQUENCY                     0x0001
  104. #define AL_FREQUENCY_SHIFTER_LEFT_DIRECTION                0x0002
  105. #define AL_FREQUENCY_SHIFTER_RIGHT_DIRECTION               0x0003
  106.  
  107. /* Vocalmorpher Parameters */
  108. #define AL_VOCAL_MORPHER_PHONEMEA                          0x0001
  109. #define AL_VOCAL_MORPHER_PHONEMEA_COARSE_TUNING            0x0002
  110. #define AL_VOCAL_MORPHER_PHONEMEB                          0x0003
  111. #define AL_VOCAL_MORPHER_PHONEMEB_COARSE_TUNING            0x0004
  112. #define AL_VOCAL_MORPHER_WAVEFORM                          0x0005
  113. #define AL_VOCAL_MORPHER_RATE                              0x0006
  114.  
  115. /* Pitchshifter Parameters */
  116. #define AL_PITCH_SHIFTER_COARSE_TUNE                       0x0001
  117. #define AL_PITCH_SHIFTER_FINE_TUNE                         0x0002
  118.  
  119. /* Ringmodulator Parameters */
  120. #define AL_RING_MODULATOR_FREQUENCY                        0x0001
  121. #define AL_RING_MODULATOR_HIGHPASS_CUTOFF                  0x0002
  122. #define AL_RING_MODULATOR_WAVEFORM                         0x0003
  123.  
  124. /* Autowah Parameters */
  125. #define AL_AUTOWAH_ATTACK_TIME                             0x0001
  126. #define AL_AUTOWAH_RELEASE_TIME                            0x0002
  127. #define AL_AUTOWAH_RESONANCE                               0x0003
  128. #define AL_AUTOWAH_PEAK_GAIN                               0x0004
  129.  
  130. /* Compressor Parameters */
  131. #define AL_COMPRESSOR_ONOFF                                0x0001
  132.  
  133. /* Equalizer Parameters */
  134. #define AL_EQUALIZER_LOW_GAIN                              0x0001
  135. #define AL_EQUALIZER_LOW_CUTOFF                            0x0002
  136. #define AL_EQUALIZER_MID1_GAIN                             0x0003
  137. #define AL_EQUALIZER_MID1_CENTER                           0x0004
  138. #define AL_EQUALIZER_MID1_WIDTH                            0x0005
  139. #define AL_EQUALIZER_MID2_GAIN                             0x0006
  140. #define AL_EQUALIZER_MID2_CENTER                           0x0007
  141. #define AL_EQUALIZER_MID2_WIDTH                            0x0008
  142. #define AL_EQUALIZER_HIGH_GAIN                             0x0009
  143. #define AL_EQUALIZER_HIGH_CUTOFF                           0x000A
  144.  
  145. /* Effect type */
  146. #define AL_EFFECT_FIRST_PARAMETER                          0x0000
  147. #define AL_EFFECT_LAST_PARAMETER                           0x8000
  148. #define AL_EFFECT_TYPE                                     0x8001
  149.  
  150. /* Effect type definitions to be used with AL_EFFECT_TYPE. */
  151. #define AL_EFFECT_NULL                                     0x0000  /* Can also be used as an Effect Object ID */
  152. #define AL_EFFECT_REVERB                                   0x0001
  153. #define AL_EFFECT_CHORUS                                   0x0002
  154. #define AL_EFFECT_DISTORTION                               0x0003
  155. #define AL_EFFECT_ECHO                                     0x0004
  156. #define AL_EFFECT_FLANGER                                  0x0005
  157. #define AL_EFFECT_FREQUENCY_SHIFTER                        0x0006
  158. #define AL_EFFECT_VOCAL_MORPHER                            0x0007
  159. #define AL_EFFECT_PITCH_SHIFTER                            0x0008
  160. #define AL_EFFECT_RING_MODULATOR                           0x0009
  161. #define AL_EFFECT_AUTOWAH                                  0x000A
  162. #define AL_EFFECT_COMPRESSOR                               0x000B
  163. #define AL_EFFECT_EQUALIZER                                0x000C
  164.  
  165. /**
  166.  * Auxiliary Slot object definitions to be used with alAuxiliaryEffectSlot functions.
  167.  */
  168. #define AL_EFFECTSLOT_EFFECT                               0x0001
  169. #define AL_EFFECTSLOT_GAIN                                 0x0002
  170. #define AL_EFFECTSLOT_AUXILIARY_SEND_AUTO                  0x0003
  171.  
  172. /**
  173.  * Value to be used as an Auxiliary Slot ID to disable a source send..
  174.  */
  175. #define AL_EFFECTSLOT_NULL                                 0x0000
  176.  
  177.  
  178.  
  179. /**
  180.  * Filter object definitions to be used with alFilter functions.
  181.  */
  182.  
  183. /* Lowpass parameters. */
  184. #define AL_LOWPASS_GAIN                                    0x0001
  185. #define AL_LOWPASS_GAINHF                                  0x0002
  186.  
  187. /* Highpass Parameters */
  188. #define AL_HIGHPASS_GAIN                                   0x0001
  189. #define AL_HIGHPASS_GAINLF                                 0x0002
  190.  
  191. /* Bandpass Parameters */
  192. #define AL_BANDPASS_GAIN                                   0x0001
  193. #define AL_BANDPASS_GAINLF                                 0x0002
  194. #define AL_BANDPASS_GAINHF                                 0x0003
  195.  
  196. /* Filter type */
  197. #define AL_FILTER_FIRST_PARAMETER                          0x0000
  198. #define AL_FILTER_LAST_PARAMETER                           0x8000
  199. #define AL_FILTER_TYPE                                     0x8001
  200.  
  201. /* Filter type definitions to be used with AL_FILTER_TYPE. */
  202. #define AL_FILTER_NULL                                     0x0000  /* Can also be used as a Filter Object ID */
  203. #define AL_FILTER_LOWPASS                                  0x0001
  204. #define AL_FILTER_HIGHPASS                                 0x0002
  205. #define AL_FILTER_BANDPASS                                 0x0003
  206.  
  207.  
  208. /**
  209.  * Effect object functions.
  210.  */
  211.  
  212. /* Create Effect objects. */
  213. typedef void (__cdecl *LPALGENEFFECTS)( ALsizei n, ALuint* effects );
  214.  
  215. /* Delete Effect objects. */
  216. typedef void (__cdecl *LPALDELETEEFFECTS)( ALsizei n, ALuint* effects );
  217.  
  218. /* Verify a handle is a valid Effect. */
  219. typedef ALboolean (__cdecl *LPALISEFFECT)( ALuint eid );
  220.  
  221. /* Set an integer parameter for an Effect object. */
  222. typedef void (__cdecl *LPALEFFECTI)( ALuint eid, ALenum param, ALint value);
  223. typedef void (__cdecl *LPALEFFECTIV)( ALuint eid, ALenum param, ALint* values );
  224.  
  225. /* Set a floating point parameter for an Effect object. */
  226. typedef void (__cdecl *LPALEFFECTF)( ALuint eid, ALenum param, ALfloat value);
  227. typedef void (__cdecl *LPALEFFECTFV)( ALuint eid, ALenum param, ALfloat* values );
  228.  
  229. /* Get an integer parameter for an Effect object. */
  230. typedef void (__cdecl *LPALGETEFFECTI)( ALuint eid, ALenum pname, ALint* value );
  231. typedef void (__cdecl *LPALGETEFFECTIV)( ALuint eid, ALenum pname, ALint* values );
  232.  
  233. /* Get a floating point parameter for an Effect object. */
  234. typedef void (__cdecl *LPALGETEFFECTF)( ALuint eid, ALenum pname, ALfloat* value );
  235. typedef void (__cdecl *LPALGETEFFECTFV)( ALuint eid, ALenum pname, ALfloat* values );
  236.  
  237.  
  238. /**
  239.  * Filter object functions
  240.  */
  241.  
  242. /* Create Filter objects. */
  243. typedef void (__cdecl *LPALGENFILTERS)( ALsizei n, ALuint* filters );
  244.  
  245. /* Delete Filter objects. */
  246. typedef void (__cdecl *LPALDELETEFILTERS)( ALsizei n, ALuint* filters );
  247.  
  248. /* Verify a handle is a valid Filter. */
  249. typedef ALboolean (__cdecl *LPALISFILTER)( ALuint fid );
  250.  
  251. /* Set an integer parameter for a Filter object. */
  252. typedef void (__cdecl *LPALFILTERI)( ALuint fid, ALenum param, ALint value );
  253. typedef void (__cdecl *LPALFILTERIV)( ALuint fid, ALenum param, ALint* values );
  254.  
  255. /* Set a floating point parameter for an Filter object. */
  256. typedef void (__cdecl *LPALFILTERF)( ALuint fid, ALenum param, ALfloat value);
  257. typedef void (__cdecl *LPALFILTERFV)( ALuint fid, ALenum param, ALfloat* values );
  258.  
  259. /* Get an integer parameter for a Filter object. */
  260. typedef void (__cdecl *LPALGETFILTERI)( ALuint fid, ALenum pname, ALint* value );
  261. typedef void (__cdecl *LPALGETFILTERIV)( ALuint fid, ALenum pname, ALint* values );
  262.  
  263. /* Get a floating point parameter for a Filter object. */
  264. typedef void (__cdecl *LPALGETFILTERF)( ALuint fid, ALenum pname, ALfloat* value );
  265. typedef void (__cdecl *LPALGETFILTERFV)( ALuint fid, ALenum pname, ALfloat* values );
  266.  
  267.  
  268. /**
  269.  * Auxiliary Slot object functions
  270.  */
  271.  
  272. /* Create Auxiliary Slot objects. */
  273. typedef void (__cdecl *LPALGENAUXILIARYEFFECTSLOTS)( ALsizei n, ALuint* slots );
  274.  
  275. /* Delete Auxiliary Slot objects. */
  276. typedef void (__cdecl *LPALDELETEAUXILIARYEFFECTSLOTS)( ALsizei n, ALuint* slots );
  277.  
  278. /* Verify a handle is a valid Auxiliary Slot. */
  279. typedef ALboolean (__cdecl *LPALISAUXILIARYEFFECTSLOT)( ALuint slot );
  280.  
  281. /* Set an integer parameter for a Auxiliary Slot object. */
  282. typedef void (__cdecl *LPALAUXILIARYEFFECTSLOTI)( ALuint asid, ALenum param, ALint value );
  283. typedef void (__cdecl *LPALAUXILIARYEFFECTSLOTIV)( ALuint asid, ALenum param, ALint* values );
  284.  
  285. /* Set a floating point parameter for an Auxiliary Slot object. */
  286. typedef void (__cdecl *LPALAUXILIARYEFFECTSLOTF)( ALuint asid, ALenum param, ALfloat value );
  287. typedef void (__cdecl *LPALAUXILIARYEFFECTSLOTFV)( ALuint asid, ALenum param, ALfloat* values );
  288.  
  289. /* Get an integer parameter for a Auxiliary Slot object. */
  290. typedef void (__cdecl *LPALGETAUXILIARYEFFECTSLOTI)( ALuint asid, ALenum pname, ALint* value );
  291. typedef void (__cdecl *LPALGETAUXILIARYEFFECTSLOTIV)( ALuint asid, ALenum pname, ALint* values );
  292.  
  293. /* Get a floating point parameter for a Auxiliary Slot object. */
  294. typedef void (__cdecl *LPALGETAUXILIARYEFFECTSLOTF)( ALuint asid, ALenum pname, ALfloat* value );
  295. typedef void (__cdecl *LPALGETAUXILIARYEFFECTSLOTFV)( ALuint asid, ALenum pname, ALfloat* values );
  296.  
  297.  
  298.  
  299.  
  300. /**********************************************************
  301.  * Filter ranges and defaults.
  302.  */
  303.  
  304. /**
  305.  * Lowpass filter
  306.  */
  307.  
  308. #define LOWPASS_MIN_GAIN                                   0.0f
  309. #define LOWPASS_MAX_GAIN                                   1.0f
  310. #define LOWPASS_DEFAULT_GAIN                               1.0f
  311.  
  312. #define LOWPASS_MIN_GAINHF                                 0.0f
  313. #define LOWPASS_MAX_GAINHF                                 1.0f
  314. #define LOWPASS_DEFAULT_GAINHF                             1.0f
  315.  
  316. /**
  317.  * Highpass filter
  318.  */
  319.  
  320. #define HIGHPASS_MIN_GAIN                                  0.0f
  321. #define HIGHPASS_MAX_GAIN                                  1.0f
  322. #define HIGHPASS_DEFAULT_GAIN                              1.0f
  323.  
  324. #define HIGHPASS_MIN_GAINLF                                0.0f
  325. #define HIGHPASS_MAX_GAINLF                                1.0f
  326. #define HIGHPASS_DEFAULT_GAINLF                            1.0f
  327.  
  328. /**
  329.  * Bandpass filter
  330.  */
  331.  
  332. #define BANDPASS_MIN_GAIN                                  0.0f
  333. #define BANDPASS_MAX_GAIN                                  1.0f
  334. #define BANDPASS_DEFAULT_GAIN                              1.0f
  335.  
  336. #define BANDPASS_MIN_GAINHF                                0.0f
  337. #define BANDPASS_MAX_GAINHF                                1.0f
  338. #define BANDPASS_DEFAULT_GAINHF                            1.0f
  339.  
  340. #define BANDPASS_MIN_GAINLF                                0.0f
  341. #define BANDPASS_MAX_GAINLF                                1.0f
  342. #define BANDPASS_DEFAULT_GAINLF                            1.0f
  343.  
  344.  
  345.  
  346.  
  347.  /**********************************************************
  348.  * Effect parameter structures, value definitions, ranges and defaults.
  349.  */
  350.  
  351. /**
  352.  * AL reverb effect parameter ranges and defaults
  353.  */
  354. #define AL_REVERB_MIN_DENSITY                              0.0f
  355. #define AL_REVERB_MAX_DENSITY                              1.0f
  356. #define AL_REVERB_DEFAULT_DENSITY                          1.0f
  357.  
  358. #define AL_REVERB_MIN_DIFFUSION                            0.0f
  359. #define AL_REVERB_MAX_DIFFUSION                            1.0f
  360. #define AL_REVERB_DEFAULT_DIFFUSION                        1.0f
  361.  
  362. #define AL_REVERB_MIN_GAIN                                 0.0f
  363. #define AL_REVERB_MAX_GAIN                                 1.0f
  364. #define AL_REVERB_DEFAULT_GAIN                             0.32f
  365.  
  366. #define AL_REVERB_MIN_GAINHF                               0.0f
  367. #define AL_REVERB_MAX_GAINHF                               1.0f
  368. #define AL_REVERB_DEFAULT_GAINHF                           0.89f
  369.  
  370. #define AL_REVERB_MIN_DECAY_TIME                           0.1f
  371. #define AL_REVERB_MAX_DECAY_TIME                           20.0f
  372. #define AL_REVERB_DEFAULT_DECAY_TIME                       1.49f
  373.  
  374. #define AL_REVERB_MIN_DECAY_HFRATIO                        0.1f
  375. #define AL_REVERB_MAX_DECAY_HFRATIO                        2.0f
  376. #define AL_REVERB_DEFAULT_DECAY_HFRATIO                    0.83f
  377.  
  378. #define AL_REVERB_MIN_REFLECTIONS_GAIN                     0.0f
  379. #define AL_REVERB_MAX_REFLECTIONS_GAIN                     3.16f
  380. #define AL_REVERB_DEFAULT_REFLECTIONS_GAIN                 0.05f
  381.  
  382. #define AL_REVERB_MIN_REFLECTIONS_DELAY                    0.0f
  383. #define AL_REVERB_MAX_REFLECTIONS_DELAY                    0.3f
  384. #define AL_REVERB_DEFAULT_REFLECTIONS_DELAY                0.007f
  385.  
  386. #define AL_REVERB_MIN_LATE_REVERB_GAIN                     0.0f
  387. #define AL_REVERB_MAX_LATE_REVERB_GAIN                     10.0f
  388. #define AL_REVERB_DEFAULT_LATE_REVERB_GAIN                 1.26f
  389.  
  390. #define AL_REVERB_MIN_LATE_REVERB_DELAY                    0.0f
  391. #define AL_REVERB_MAX_LATE_REVERB_DELAY                    0.1f
  392. #define AL_REVERB_DEFAULT_LATE_REVERB_DELAY                0.011f
  393.  
  394. #define AL_REVERB_MIN_AIR_ABSORPTION_GAINHF                0.892f
  395. #define AL_REVERB_MAX_AIR_ABSORPTION_GAINHF                1.0f
  396. #define AL_REVERB_DEFAULT_AIR_ABSORPTION_GAINHF            0.994f
  397.  
  398. #define AL_REVERB_MIN_ROOM_ROLLOFF_FACTOR                  0.0f
  399. #define AL_REVERB_MAX_ROOM_ROLLOFF_FACTOR                  10.0f
  400. #define AL_REVERB_DEFAULT_ROOM_ROLLOFF_FACTOR              0.0f
  401.  
  402. #define AL_REVERB_MIN_DECAY_HFLIMIT                        AL_FALSE
  403. #define AL_REVERB_MAX_DECAY_HFLIMIT                        AL_TRUE
  404. #define AL_REVERB_DEFAULT_DECAY_HFLIMIT                    AL_TRUE
  405.  
  406. /**
  407.  * AL chorus effect parameter ranges and defaults
  408.  */
  409. #define AL_CHORUS_MIN_WAVEFORM                             0
  410. #define AL_CHORUS_MAX_WAVEFORM                             1
  411. #define AL_CHORUS_DEFAULT_WAVEFORM                         1
  412.  
  413. #define AL_CHORUS_WAVEFORM_SINUSOID                        0
  414. #define AL_CHORUS_WAVEFORM_TRIANGLE                        1
  415.  
  416. #define AL_CHORUS_MIN_PHASE                                (-180)
  417. #define AL_CHORUS_MAX_PHASE                                180
  418. #define AL_CHORUS_DEFAULT_PHASE                            90
  419.  
  420. #define AL_CHORUS_MIN_RATE                                 0.0f
  421. #define AL_CHORUS_MAX_RATE                                 10.0f
  422. #define AL_CHORUS_DEFAULT_RATE                             1.1f
  423.  
  424. #define AL_CHORUS_MIN_DEPTH                                0.0f
  425. #define AL_CHORUS_MAX_DEPTH                                1.0f
  426. #define AL_CHORUS_DEFAULT_DEPTH                            0.1f
  427.  
  428. #define AL_CHORUS_MIN_FEEDBACK                             (-1.0f)
  429. #define AL_CHORUS_MAX_FEEDBACK                             1.0f
  430. #define AL_CHORUS_DEFAULT_FEEDBACK                         0.25f
  431.  
  432. #define AL_CHORUS_MIN_DELAY                                0.0f
  433. #define AL_CHORUS_MAX_DELAY                                0.016f
  434. #define AL_CHORUS_DEFAULT_DELAY                            0.016f
  435.  
  436. /**
  437.  * AL distortion effect parameter ranges and defaults
  438.  */
  439. #define AL_DISTORTION_MIN_EDGE                             0.0f
  440. #define AL_DISTORTION_MAX_EDGE                             1.0f
  441. #define AL_DISTORTION_DEFAULT_EDGE                         0.2f
  442.  
  443. #define AL_DISTORTION_MIN_GAIN                             0.01f
  444. #define AL_DISTORTION_MAX_GAIN                             1.0f
  445. #define AL_DISTORTION_DEFAULT_GAIN                         0.05f
  446.  
  447. #define AL_DISTORTION_MIN_LOWPASS_CUTOFF                   80.0f
  448. #define AL_DISTORTION_MAX_LOWPASS_CUTOFF                   24000.0f
  449. #define AL_DISTORTION_DEFAULT_LOWPASS_CUTOFF               8000.0f
  450.  
  451. #define AL_DISTORTION_MIN_EQCENTER                         80.0f
  452. #define AL_DISTORTION_MAX_EQCENTER                         24000.0f
  453. #define AL_DISTORTION_DEFAULT_EQCENTER                     3600.0f
  454.  
  455. #define AL_DISTORTION_MIN_EQBANDWIDTH                      80.0f
  456. #define AL_DISTORTION_MAX_EQBANDWIDTH                      24000.0f
  457. #define AL_DISTORTION_DEFAULT_EQBANDWIDTH                  3600.0f
  458.  
  459. /**
  460.  * AL echo effect parameter ranges and defaults
  461.  */
  462. #define AL_ECHO_MIN_DELAY                                  0.0f
  463. #define AL_ECHO_MAX_DELAY                                  0.207f
  464. #define AL_ECHO_DEFAULT_DELAY                              0.1f
  465.  
  466. #define AL_ECHO_MIN_LRDELAY                                0.0f
  467. #define AL_ECHO_MAX_LRDELAY                                0.404f
  468. #define AL_ECHO_DEFAULT_LRDELAY                            0.1f
  469.  
  470. #define AL_ECHO_MIN_DAMPING                                0.0f
  471. #define AL_ECHO_MAX_DAMPING                                0.99f
  472. #define AL_ECHO_DEFAULT_DAMPING                            0.5f
  473.  
  474. #define AL_ECHO_MIN_FEEDBACK                               0.0f
  475. #define AL_ECHO_MAX_FEEDBACK                               1.0f
  476. #define AL_ECHO_DEFAULT_FEEDBACK                           0.5f
  477.  
  478. #define AL_ECHO_MIN_SPREAD                                 (-1.0f)
  479. #define AL_ECHO_MAX_SPREAD                                 1.0f
  480. #define AL_ECHO_DEFAULT_SPREAD                             (-1.0f)
  481.  
  482. /**
  483.  * AL flanger effect parameter ranges and defaults
  484.  */
  485. #define AL_FLANGER_MIN_WAVEFORM                            0
  486. #define AL_FLANGER_MAX_WAVEFORM                            1
  487. #define AL_FLANGER_DEFAULT_WAVEFORM                        1
  488.  
  489. #define AL_FLANGER_WAVEFORM_SINUSOID                       0
  490. #define AL_FLANGER_WAVEFORM_TRIANGLE                       1
  491.  
  492. #define AL_FLANGER_MIN_PHASE                               (-180)
  493. #define AL_FLANGER_MAX_PHASE                               180
  494. #define AL_FLANGER_DEFAULT_PHASE                           0
  495.  
  496. #define AL_FLANGER_MIN_RATE                                0.0f
  497. #define AL_FLANGER_MAX_RATE                                10.0f
  498. #define AL_FLANGER_DEFAULT_RATE                            0.27f
  499.  
  500. #define AL_FLANGER_MIN_DEPTH                               0.0f
  501. #define AL_FLANGER_MAX_DEPTH                               1.0f
  502. #define AL_FLANGER_DEFAULT_DEPTH                           1.0f
  503.  
  504. #define AL_FLANGER_MIN_FEEDBACK                            (-1.0f)
  505. #define AL_FLANGER_MAX_FEEDBACK                            1.0f
  506. #define AL_FLANGER_DEFAULT_FEEDBACK                        (-0.5f)
  507.  
  508. #define AL_FLANGER_MIN_DELAY                               0.0f
  509. #define AL_FLANGER_MAX_DELAY                               0.004f
  510. #define AL_FLANGER_DEFAULT_DELAY                           0.002f
  511.  
  512. /**
  513.  * AL frequency shifter effect parameter ranges and defaults
  514.  */
  515. #define AL_FREQUENCY_SHIFTER_MIN_FREQUENCY                 0.0f
  516. #define AL_FREQUENCY_SHIFTER_MAX_FREQUENCY                 24000.0f
  517. #define AL_FREQUENCY_SHIFTER_DEFAULT_FREQUENCY             0.0f
  518.  
  519. #define AL_FREQUENCY_SHIFTER_MIN_LEFT_DIRECTION            0
  520. #define AL_FREQUENCY_SHIFTER_MAX_LEFT_DIRECTION            2
  521. #define AL_FREQUENCY_SHIFTER_DEFAULT_LEFT_DIRECTION        0
  522.  
  523. #define AL_FREQUENCY_SHIFTER_MIN_RIGHT_DIRECTION           0
  524. #define AL_FREQUENCY_SHIFTER_MAX_RIGHT_DIRECTION           2
  525. #define AL_FREQUENCY_SHIFTER_DEFAULT_RIGHT_DIRECTION       0
  526.  
  527. #define AL_FREQUENCY_SHIFTER_DIRECTION_DOWN                0
  528. #define AL_FREQUENCY_SHIFTER_DIRECTION_UP                  1
  529. #define AL_FREQUENCY_SHIFTER_DIRECTION_OFF                 2
  530.  
  531. /**
  532.  * AL vocal morpher effect parameter ranges and defaults
  533.  */
  534. #define AL_VOCAL_MORPHER_MIN_PHONEMEA                      0
  535. #define AL_VOCAL_MORPHER_MAX_PHONEMEA                      29
  536. #define AL_VOCAL_MORPHER_DEFAULT_PHONEMEA                  0
  537.  
  538. #define AL_VOCAL_MORPHER_MIN_PHONEMEA_COARSE_TUNING            (-24)
  539. #define AL_VOCAL_MORPHER_MAX_PHONEMEA_COARSE_TUNING            24
  540. #define AL_VOCAL_MORPHER_DEFAULT_PHONEMEA_COARSE_TUNING    0
  541.  
  542. #define AL_VOCAL_MORPHER_MIN_PHONEMEB                      0
  543. #define AL_VOCAL_MORPHER_MAX_PHONEMEB                      29
  544. #define AL_VOCAL_MORPHER_DEFAULT_PHONEMEB                  10
  545.  
  546. #define AL_VOCAL_MORPHER_PHONEME_A                         0
  547. #define AL_VOCAL_MORPHER_PHONEME_E                         1
  548. #define AL_VOCAL_MORPHER_PHONEME_I                         2
  549. #define AL_VOCAL_MORPHER_PHONEME_O                         3
  550. #define AL_VOCAL_MORPHER_PHONEME_U                         4
  551. #define AL_VOCAL_MORPHER_PHONEME_AA                        5
  552. #define AL_VOCAL_MORPHER_PHONEME_AE                        6
  553. #define AL_VOCAL_MORPHER_PHONEME_AH                        7
  554. #define AL_VOCAL_MORPHER_PHONEME_AO                        8
  555. #define AL_VOCAL_MORPHER_PHONEME_EH                        9
  556. #define AL_VOCAL_MORPHER_PHONEME_ER                        10
  557. #define AL_VOCAL_MORPHER_PHONEME_IH                        11
  558. #define AL_VOCAL_MORPHER_PHONEME_IY                        12
  559. #define AL_VOCAL_MORPHER_PHONEME_UH                        13
  560. #define AL_VOCAL_MORPHER_PHONEME_UW                        14
  561. #define AL_VOCAL_MORPHER_PHONEME_B                         15
  562. #define AL_VOCAL_MORPHER_PHONEME_D                         16
  563. #define AL_VOCAL_MORPHER_PHONEME_F                         17
  564. #define AL_VOCAL_MORPHER_PHONEME_G                         18
  565. #define AL_VOCAL_MORPHER_PHONEME_J                         19
  566. #define AL_VOCAL_MORPHER_PHONEME_K                         20
  567. #define AL_VOCAL_MORPHER_PHONEME_L                         21
  568. #define AL_VOCAL_MORPHER_PHONEME_M                         22
  569. #define AL_VOCAL_MORPHER_PHONEME_N                         23
  570. #define AL_VOCAL_MORPHER_PHONEME_P                         24
  571. #define AL_VOCAL_MORPHER_PHONEME_R                         25
  572. #define AL_VOCAL_MORPHER_PHONEME_S                         26
  573. #define AL_VOCAL_MORPHER_PHONEME_T                         27
  574. #define AL_VOCAL_MORPHER_PHONEME_V                         28
  575. #define AL_VOCAL_MORPHER_PHONEME_Z                         29
  576.  
  577. #define AL_VOCAL_MORPHER_MIN_PHONEMEB_COARSE_TUNING        (-24)
  578. #define AL_VOCAL_MORPHER_MAX_PHONEMEB_COARSE_TUNING        24
  579. #define AL_VOCAL_MORPHER_DEFAULT_PHONEMEB_COARSE_TUNING    0
  580.  
  581. #define AL_VOCAL_MORPHER_MIN_WAVEFORM                      0
  582. #define AL_VOCAL_MORPHER_MAX_WAVEFORM                      2
  583. #define AL_VOCAL_MORPHER_DEFAULT_WAVEFORM                  0
  584.  
  585. #define AL_VOCAL_MORPHER_WAVEFORM_SINUSOID                 0
  586. #define AL_VOCAL_MORPHER_WAVEFORM_TRIANGLE                 1
  587. #define AL_VOCAL_MORPHER_WAVEFORM_SAWTOOTH                 2
  588.  
  589. #define AL_VOCAL_MORPHER_MIN_RATE                          0.0f
  590. #define AL_VOCAL_MORPHER_MAX_RATE                          10.0f
  591. #define AL_VOCAL_MORPHER_DEFAULT_RATE                      1.41f
  592.  
  593. /**
  594.  * AL pitch shifter effect parameter ranges and defaults
  595.  */
  596. #define AL_PITCH_SHIFTER_MIN_COARSE_TUNE                   (-12)
  597. #define AL_PITCH_SHIFTER_MAX_COARSE_TUNE                   12
  598. #define AL_PITCH_SHIFTER_DEFAULT_COARSE_TUNE               12
  599.  
  600. #define AL_PITCH_SHIFTER_MIN_FINE_TUNE                     (-50)
  601. #define AL_PITCH_SHIFTER_MAX_FINE_TUNE                     50
  602. #define AL_PITCH_SHIFTER_DEFAULT_FINE_TUNE                 0
  603.  
  604. /**
  605.  * AL ring modulator effect parameter ranges and defaults
  606.  */
  607. #define AL_RING_MODULATOR_MIN_FREQUENCY                    0.0f
  608. #define AL_RING_MODULATOR_MAX_FREQUENCY                    8000.0f
  609. #define AL_RING_MODULATOR_DEFAULT_FREQUENCY                440.0f
  610.  
  611. #define AL_RING_MODULATOR_MIN_HIGHPASS_CUTOFF              0.0f
  612. #define AL_RING_MODULATOR_MAX_HIGHPASS_CUTOFF              24000.0f
  613. #define AL_RING_MODULATOR_DEFAULT_HIGHPASS_CUTOFF          800.0f
  614.  
  615. #define AL_RING_MODULATOR_MIN_WAVEFORM                     0
  616. #define AL_RING_MODULATOR_MAX_WAVEFORM                     2
  617. #define AL_RING_MODULATOR_DEFAULT_WAVEFORM                 0
  618.  
  619. #define AL_RING_MODULATOR_SINUSOID                         0
  620. #define AL_RING_MODULATOR_SAWTOOTH                         1
  621. #define AL_RING_MODULATOR_SQUARE                           2
  622.  
  623. /**
  624.  * AL autowah effect parameter ranges and defaults
  625.  */
  626. #define AL_AUTOWAH_MIN_ATTACK_TIME                         0.0001f
  627. #define AL_AUTOWAH_MAX_ATTACK_TIME                         1.0f
  628. #define AL_AUTOWAH_DEFAULT_ATTACK_TIME                     0.06f
  629.  
  630. #define AL_AUTOWAH_MIN_RELEASE_TIME                        0.0001f
  631. #define AL_AUTOWAH_MAX_RELEASE_TIME                        1.0f
  632. #define AL_AUTOWAH_DEFAULT_RELEASE_TIME                    0.06f
  633.  
  634. #define AL_AUTOWAH_MIN_RESONANCE                           2.0f
  635. #define AL_AUTOWAH_MAX_RESONANCE                           1000.0f
  636. #define AL_AUTOWAH_DEFAULT_RESONANCE                       1000.0f
  637.        
  638. #define AL_AUTOWAH_MIN_PEAK_GAIN                           0.00003f
  639. #define AL_AUTOWAH_MAX_PEAK_GAIN                           31621.0f
  640. #define AL_AUTOWAH_DEFAULT_PEAK_GAIN                       11.22f
  641.  
  642. /**
  643.  * AL compressor effect parameter ranges and defaults
  644.  */
  645. #define AL_COMPRESSOR_MIN_ONOFF                            0
  646. #define AL_COMPRESSOR_MAX_ONOFF                            1
  647. #define AL_COMPRESSOR_DEFAULT_ONOFF                        1
  648.  
  649. /**
  650.  * AL equalizer effect parameter ranges and defaults
  651.  */
  652. #define AL_EQUALIZER_MIN_LOW_GAIN                          0.126f
  653. #define AL_EQUALIZER_MAX_LOW_GAIN                          7.943f
  654. #define AL_EQUALIZER_DEFAULT_LOW_GAIN                      1.0f
  655.  
  656. #define AL_EQUALIZER_MIN_LOW_CUTOFF                        50.0f
  657. #define AL_EQUALIZER_MAX_LOW_CUTOFF                        800.0f
  658. #define AL_EQUALIZER_DEFAULT_LOW_CUTOFF                    200.0f
  659.  
  660. #define AL_EQUALIZER_MIN_MID1_GAIN                         0.126f
  661. #define AL_EQUALIZER_MAX_MID1_GAIN                         7.943f
  662. #define AL_EQUALIZER_DEFAULT_MID1_GAIN                     1.0f
  663.  
  664. #define AL_EQUALIZER_MIN_MID1_CENTER                       200.0f
  665. #define AL_EQUALIZER_MAX_MID1_CENTER                       3000.0f
  666. #define AL_EQUALIZER_DEFAULT_MID1_CENTER                   500.0f
  667.  
  668. #define AL_EQUALIZER_MIN_MID1_WIDTH                        0.01f
  669. #define AL_EQUALIZER_MAX_MID1_WIDTH                        1.0f
  670. #define AL_EQUALIZER_DEFAULT_MID1_WIDTH                    1.0f
  671.  
  672. #define AL_EQUALIZER_MIN_MID2_GAIN                         0.126f
  673. #define AL_EQUALIZER_MAX_MID2_GAIN                         7.943f
  674. #define AL_EQUALIZER_DEFAULT_MID2_GAIN                     1.0f
  675.  
  676. #define AL_EQUALIZER_MIN_MID2_CENTER                       1000.0f
  677. #define AL_EQUALIZER_MAX_MID2_CENTER                       8000.0f
  678. #define AL_EQUALIZER_DEFAULT_MID2_CENTER                   3000.0f
  679.  
  680. #define AL_EQUALIZER_MIN_MID2_WIDTH                        0.01f
  681. #define AL_EQUALIZER_MAX_MID2_WIDTH                        1.0f
  682. #define AL_EQUALIZER_DEFAULT_MID2_WIDTH                    1.0f
  683.  
  684. #define AL_EQUALIZER_MIN_HIGH_GAIN                         0.126f
  685. #define AL_EQUALIZER_MAX_HIGH_GAIN                         7.943f
  686. #define AL_EQUALIZER_DEFAULT_HIGH_GAIN                     1.0f
  687.  
  688. #define AL_EQUALIZER_MIN_HIGH_CUTOFF                       4000.0f
  689. #define AL_EQUALIZER_MAX_HIGH_CUTOFF                       16000.0f
  690. #define AL_EQUALIZER_DEFAULT_HIGH_CUTOFF                   6000.0f
  691.  
  692.  
  693.  
  694.  
  695. /**********************************************************
  696.  * Source parameter value definitions, ranges and defaults.
  697.  */
  698. #define AL_MIN_AIR_ABSORPTION_FACTOR                       0.0f
  699. #define AL_MAX_AIR_ABSORPTION_FACTOR                       10.0f
  700. #define AL_DEFAULT_AIR_ABSORPTION_FACTOR                   0.0f
  701.  
  702. #define AL_MIN_ROOM_ROLLOFF_FACTOR                         0.0f
  703. #define AL_MAX_ROOM_ROLLOFF_FACTOR                         10.0f
  704. #define AL_DEFAULT_ROOM_ROLLOFF_FACTOR                     0.0f
  705.  
  706. #define AL_MIN_CONE_OUTER_GAINHF                           0.0f
  707. #define AL_MAX_CONE_OUTER_GAINHF                           1.0f
  708. #define AL_DEFAULT_CONE_OUTER_GAINHF                       1.0f
  709.  
  710. #define AL_MIN_DIRECT_FILTER_GAINHF_AUTO                   AL_FALSE
  711. #define AL_MAX_DIRECT_FILTER_GAINHF_AUTO                   AL_TRUE
  712. #define AL_DEFAULT_DIRECT_FILTER_GAINHF_AUTO               AL_TRUE
  713.  
  714. #define AL_MIN_AUXILIARY_SEND_FILTER_GAIN_AUTO             AL_FALSE
  715. #define AL_MAX_AUXILIARY_SEND_FILTER_GAIN_AUTO             AL_TRUE
  716. #define AL_DEFAULT_AUXILIARY_SEND_FILTER_GAIN_AUTO         AL_TRUE
  717.  
  718. #define AL_MIN_AUXILIARY_SEND_FILTER_GAINHF_AUTO           AL_FALSE
  719. #define AL_MAX_AUXILIARY_SEND_FILTER_GAINHF_AUTO           AL_TRUE
  720. #define AL_DEFAULT_AUXILIARY_SEND_FILTER_GAINHF_AUTO       AL_TRUE
  721.  
  722.  
  723.  
  724.  
  725. /**********************************************************
  726.  * Listener parameter value definitions, ranges and defaults.
  727.  */
  728. #define AL_MIN_METERS_PER_UNIT                             FLT_MIN
  729. #define AL_MAX_METERS_PER_UNIT                             FLT_MAX
  730. #define AL_DEFAULT_METERS_PER_UNIT                         1.0f
  731.  
  732.  
  733. #ifdef __cplusplus
  734. }  /* extern "C" */
  735. #endif
  736.  
  737. #endif /* __efx_h_ */
  738.