🛠️🐜 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.

1620 lines
28 KiB

  1. //
  2. // EAX API.
  3. //
  4. // Based on headers `eax[2-5].h` included in Doom 3 source code:
  5. // https://github.com/id-Software/DOOM-3/tree/master/neo/openal/include
  6. //
  7. #include "config.h"
  8. #include <algorithm>
  9. #include "api.h"
  10. const GUID DSPROPSETID_EAX_ReverbProperties =
  11. {
  12. 0x4A4E6FC1,
  13. 0xC341,
  14. 0x11D1,
  15. {0xB7, 0x3A, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00}
  16. };
  17. const GUID DSPROPSETID_EAXBUFFER_ReverbProperties =
  18. {
  19. 0x4A4E6FC0,
  20. 0xC341,
  21. 0x11D1,
  22. {0xB7, 0x3A, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00}
  23. };
  24. const GUID DSPROPSETID_EAX20_ListenerProperties =
  25. {
  26. 0x306A6A8,
  27. 0xB224,
  28. 0x11D2,
  29. {0x99, 0xE5, 0x00, 0x00, 0xE8, 0xD8, 0xC7, 0x22}
  30. };
  31. const GUID DSPROPSETID_EAX20_BufferProperties =
  32. {
  33. 0x306A6A7,
  34. 0xB224,
  35. 0x11D2,
  36. {0x99, 0xE5, 0x00, 0x00, 0xE8, 0xD8, 0xC7, 0x22}
  37. };
  38. const GUID DSPROPSETID_EAX30_ListenerProperties =
  39. {
  40. 0xA8FA6882,
  41. 0xB476,
  42. 0x11D3,
  43. {0xBD, 0xB9, 0x00, 0xC0, 0xF0, 0x2D, 0xDF, 0x87}
  44. };
  45. const GUID DSPROPSETID_EAX30_BufferProperties =
  46. {
  47. 0xA8FA6881,
  48. 0xB476,
  49. 0x11D3,
  50. {0xBD, 0xB9, 0x00, 0xC0, 0xF0, 0x2D, 0xDF, 0x87}
  51. };
  52. const GUID EAX_NULL_GUID =
  53. {
  54. 0x00000000,
  55. 0x0000,
  56. 0x0000,
  57. {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
  58. };
  59. const GUID EAX_PrimaryFXSlotID =
  60. {
  61. 0xF317866D,
  62. 0x924C,
  63. 0x450C,
  64. {0x86, 0x1B, 0xE6, 0xDA, 0xA2, 0x5E, 0x7C, 0x20}
  65. };
  66. const GUID EAXPROPERTYID_EAX40_Context =
  67. {
  68. 0x1D4870AD,
  69. 0xDEF,
  70. 0x43C0,
  71. {0xA4, 0xC, 0x52, 0x36, 0x32, 0x29, 0x63, 0x42}
  72. };
  73. const GUID EAXPROPERTYID_EAX50_Context =
  74. {
  75. 0x57E13437,
  76. 0xB932,
  77. 0x4AB2,
  78. {0xB8, 0xBD, 0x52, 0x66, 0xC1, 0xA8, 0x87, 0xEE}
  79. };
  80. const GUID EAXPROPERTYID_EAX40_FXSlot0 =
  81. {
  82. 0xC4D79F1E,
  83. 0xF1AC,
  84. 0x436B,
  85. {0xA8, 0x1D, 0xA7, 0x38, 0xE7, 0x04, 0x54, 0x69}
  86. };
  87. const GUID EAXPROPERTYID_EAX50_FXSlot0 =
  88. {
  89. 0x91F9590F,
  90. 0xC388,
  91. 0x407A,
  92. {0x84, 0xB0, 0x1B, 0xAE, 0xE, 0xF7, 0x1A, 0xBC}
  93. };
  94. const GUID EAXPROPERTYID_EAX40_FXSlot1 =
  95. {
  96. 0x8C00E96,
  97. 0x74BE,
  98. 0x4491,
  99. {0x93, 0xAA, 0xE8, 0xAD, 0x35, 0xA4, 0x91, 0x17}
  100. };
  101. const GUID EAXPROPERTYID_EAX50_FXSlot1 =
  102. {
  103. 0x8F5F7ACA,
  104. 0x9608,
  105. 0x4965,
  106. {0x81, 0x37, 0x82, 0x13, 0xC7, 0xB9, 0xD9, 0xDE}
  107. };
  108. const GUID EAXPROPERTYID_EAX40_FXSlot2 =
  109. {
  110. 0x1D433B88,
  111. 0xF0F6,
  112. 0x4637,
  113. {0x91, 0x9F, 0x60, 0xE7, 0xE0, 0x6B, 0x5E, 0xDD}
  114. };
  115. const GUID EAXPROPERTYID_EAX50_FXSlot2 =
  116. {
  117. 0x3C0F5252,
  118. 0x9834,
  119. 0x46F0,
  120. {0xA1, 0xD8, 0x5B, 0x95, 0xC4, 0xA0, 0xA, 0x30}
  121. };
  122. const GUID EAXPROPERTYID_EAX40_FXSlot3 =
  123. {
  124. 0xEFFF08EA,
  125. 0xC7D8,
  126. 0x44AB,
  127. {0x93, 0xAD, 0x6D, 0xBD, 0x5F, 0x91, 0x00, 0x64}
  128. };
  129. const GUID EAXPROPERTYID_EAX50_FXSlot3 =
  130. {
  131. 0xE2EB0EAA,
  132. 0xE806,
  133. 0x45E7,
  134. {0x9F, 0x86, 0x06, 0xC1, 0x57, 0x1A, 0x6F, 0xA3}
  135. };
  136. const GUID EAXPROPERTYID_EAX40_Source =
  137. {
  138. 0x1B86B823,
  139. 0x22DF,
  140. 0x4EAE,
  141. {0x8B, 0x3C, 0x12, 0x78, 0xCE, 0x54, 0x42, 0x27}
  142. };
  143. const GUID EAXPROPERTYID_EAX50_Source =
  144. {
  145. 0x5EDF82F0,
  146. 0x24A7,
  147. 0x4F38,
  148. {0x8E, 0x64, 0x2F, 0x09, 0xCA, 0x05, 0xDE, 0xE1}
  149. };
  150. const GUID EAX_REVERB_EFFECT =
  151. {
  152. 0xCF95C8F,
  153. 0xA3CC,
  154. 0x4849,
  155. {0xB0, 0xB6, 0x83, 0x2E, 0xCC, 0x18, 0x22, 0xDF}
  156. };
  157. const GUID EAX_AGCCOMPRESSOR_EFFECT =
  158. {
  159. 0xBFB7A01E,
  160. 0x7825,
  161. 0x4039,
  162. {0x92, 0x7F, 0x03, 0xAA, 0xBD, 0xA0, 0xC5, 0x60}
  163. };
  164. const GUID EAX_AUTOWAH_EFFECT =
  165. {
  166. 0xEC3130C0,
  167. 0xAC7A,
  168. 0x11D2,
  169. {0x88, 0xDD, 0x00, 0xA0, 0x24, 0xD1, 0x3C, 0xE1}
  170. };
  171. const GUID EAX_CHORUS_EFFECT =
  172. {
  173. 0xDE6D6FE0,
  174. 0xAC79,
  175. 0x11D2,
  176. {0x88, 0xDD, 0x00, 0xA0, 0x24, 0xD1, 0x3C, 0xE1}
  177. };
  178. const GUID EAX_DISTORTION_EFFECT =
  179. {
  180. 0x975A4CE0,
  181. 0xAC7E,
  182. 0x11D2,
  183. {0x88, 0xDD, 0x00, 0xA0, 0x24, 0xD1, 0x3C, 0xE1}
  184. };
  185. const GUID EAX_ECHO_EFFECT =
  186. {
  187. 0xE9F1BC0,
  188. 0xAC82,
  189. 0x11D2,
  190. {0x88, 0xDD, 0x00, 0xA0, 0x24, 0xD1, 0x3C, 0xE1}
  191. };
  192. const GUID EAX_EQUALIZER_EFFECT =
  193. {
  194. 0x65F94CE0,
  195. 0x9793,
  196. 0x11D3,
  197. {0x93, 0x9D, 0x00, 0xC0, 0xF0, 0x2D, 0xD6, 0xF0}
  198. };
  199. const GUID EAX_FLANGER_EFFECT =
  200. {
  201. 0xA70007C0,
  202. 0x7D2,
  203. 0x11D3,
  204. {0x9B, 0x1E, 0x00, 0xA0, 0x24, 0xD1, 0x3C, 0xE1}
  205. };
  206. const GUID EAX_FREQUENCYSHIFTER_EFFECT =
  207. {
  208. 0xDC3E1880,
  209. 0x9212,
  210. 0x11D3,
  211. {0x93, 0x9D, 0x00, 0xC0, 0xF0, 0x2D, 0xD6, 0xF0}
  212. };
  213. const GUID EAX_VOCALMORPHER_EFFECT =
  214. {
  215. 0xE41CF10C,
  216. 0x3383,
  217. 0x11D2,
  218. {0x88, 0xDD, 0x00, 0xA0, 0x24, 0xD1, 0x3C, 0xE1}
  219. };
  220. const GUID EAX_PITCHSHIFTER_EFFECT =
  221. {
  222. 0xE7905100,
  223. 0xAFB2,
  224. 0x11D2,
  225. {0x88, 0xDD, 0x00, 0xA0, 0x24, 0xD1, 0x3C, 0xE1}
  226. };
  227. const GUID EAX_RINGMODULATOR_EFFECT =
  228. {
  229. 0xB89FE60,
  230. 0xAFB5,
  231. 0x11D2,
  232. {0x88, 0xDD, 0x00, 0xA0, 0x24, 0xD1, 0x3C, 0xE1}
  233. };
  234. const GUID EAXCONTEXT_DEFAULTPRIMARYFXSLOTID = EAXPROPERTYID_EAX40_FXSlot0;
  235. const EAX40ACTIVEFXSLOTS EAX40SOURCE_DEFAULTACTIVEFXSLOTID = EAX40ACTIVEFXSLOTS
  236. {{
  237. EAX_NULL_GUID,
  238. EAXPROPERTYID_EAX40_FXSlot0,
  239. }};
  240. const EAX50ACTIVEFXSLOTS EAX50SOURCE_3DDEFAULTACTIVEFXSLOTID = EAX50ACTIVEFXSLOTS
  241. {{
  242. EAX_NULL_GUID,
  243. EAX_PrimaryFXSlotID,
  244. EAX_NULL_GUID,
  245. EAX_NULL_GUID,
  246. }};
  247. const EAX50ACTIVEFXSLOTS EAX50SOURCE_2DDEFAULTACTIVEFXSLOTID = EAX50ACTIVEFXSLOTS
  248. {{
  249. EAX_NULL_GUID,
  250. EAX_NULL_GUID,
  251. EAX_NULL_GUID,
  252. EAX_NULL_GUID,
  253. }};
  254. // EAX1 =====================================================================
  255. namespace {
  256. constexpr EAX_REVERBPROPERTIES EAX1REVERB_PRESET_GENERIC = {EAX_ENVIRONMENT_GENERIC, 0.5F, 1.493F, 0.5F};
  257. constexpr EAX_REVERBPROPERTIES EAX1REVERB_PRESET_PADDEDCELL = {EAX_ENVIRONMENT_PADDEDCELL, 0.25F, 0.1F, 0.0F};
  258. constexpr EAX_REVERBPROPERTIES EAX1REVERB_PRESET_ROOM = {EAX_ENVIRONMENT_ROOM, 0.417F, 0.4F, 0.666F};
  259. constexpr EAX_REVERBPROPERTIES EAX1REVERB_PRESET_BATHROOM = {EAX_ENVIRONMENT_BATHROOM, 0.653F, 1.499F, 0.166F};
  260. constexpr EAX_REVERBPROPERTIES EAX1REVERB_PRESET_LIVINGROOM = {EAX_ENVIRONMENT_LIVINGROOM, 0.208F, 0.478F, 0.0F};
  261. constexpr EAX_REVERBPROPERTIES EAX1REVERB_PRESET_STONEROOM = {EAX_ENVIRONMENT_STONEROOM, 0.5F, 2.309F, 0.888F};
  262. constexpr EAX_REVERBPROPERTIES EAX1REVERB_PRESET_AUDITORIUM = {EAX_ENVIRONMENT_AUDITORIUM, 0.403F, 4.279F, 0.5F};
  263. constexpr EAX_REVERBPROPERTIES EAX1REVERB_PRESET_CONCERTHALL = {EAX_ENVIRONMENT_CONCERTHALL, 0.5F, 3.961F, 0.5F};
  264. constexpr EAX_REVERBPROPERTIES EAX1REVERB_PRESET_CAVE = {EAX_ENVIRONMENT_CAVE, 0.5F, 2.886F, 1.304F};
  265. constexpr EAX_REVERBPROPERTIES EAX1REVERB_PRESET_ARENA = {EAX_ENVIRONMENT_ARENA, 0.361F, 7.284F, 0.332F};
  266. constexpr EAX_REVERBPROPERTIES EAX1REVERB_PRESET_HANGAR = {EAX_ENVIRONMENT_HANGAR, 0.5F, 10.0F, 0.3F};
  267. constexpr EAX_REVERBPROPERTIES EAX1REVERB_PRESET_CARPETTEDHALLWAY = {EAX_ENVIRONMENT_CARPETEDHALLWAY, 0.153F, 0.259F, 2.0F};
  268. constexpr EAX_REVERBPROPERTIES EAX1REVERB_PRESET_HALLWAY = {EAX_ENVIRONMENT_HALLWAY, 0.361F, 1.493F, 0.0F};
  269. constexpr EAX_REVERBPROPERTIES EAX1REVERB_PRESET_STONECORRIDOR = {EAX_ENVIRONMENT_STONECORRIDOR, 0.444F, 2.697F, 0.638F};
  270. constexpr EAX_REVERBPROPERTIES EAX1REVERB_PRESET_ALLEY = {EAX_ENVIRONMENT_ALLEY, 0.25F, 1.752F, 0.776F};
  271. constexpr EAX_REVERBPROPERTIES EAX1REVERB_PRESET_FOREST = {EAX_ENVIRONMENT_FOREST, 0.111F, 3.145F, 0.472F};
  272. constexpr EAX_REVERBPROPERTIES EAX1REVERB_PRESET_CITY = {EAX_ENVIRONMENT_CITY, 0.111F, 2.767F, 0.224F};
  273. constexpr EAX_REVERBPROPERTIES EAX1REVERB_PRESET_MOUNTAINS = {EAX_ENVIRONMENT_MOUNTAINS, 0.194F, 7.841F, 0.472F};
  274. constexpr EAX_REVERBPROPERTIES EAX1REVERB_PRESET_QUARRY = {EAX_ENVIRONMENT_QUARRY, 1.0F, 1.499F, 0.5F};
  275. constexpr EAX_REVERBPROPERTIES EAX1REVERB_PRESET_PLAIN = {EAX_ENVIRONMENT_PLAIN, 0.097F, 2.767F, 0.224F};
  276. constexpr EAX_REVERBPROPERTIES EAX1REVERB_PRESET_PARKINGLOT = {EAX_ENVIRONMENT_PARKINGLOT, 0.208F, 1.652F, 1.5F};
  277. constexpr EAX_REVERBPROPERTIES EAX1REVERB_PRESET_SEWERPIPE = {EAX_ENVIRONMENT_SEWERPIPE, 0.652F, 2.886F, 0.25F};
  278. constexpr EAX_REVERBPROPERTIES EAX1REVERB_PRESET_UNDERWATER = {EAX_ENVIRONMENT_UNDERWATER, 1.0F, 1.499F, 0.0F};
  279. constexpr EAX_REVERBPROPERTIES EAX1REVERB_PRESET_DRUGGED = {EAX_ENVIRONMENT_DRUGGED, 0.875F, 8.392F, 1.388F};
  280. constexpr EAX_REVERBPROPERTIES EAX1REVERB_PRESET_DIZZY = {EAX_ENVIRONMENT_DIZZY, 0.139F, 17.234F, 0.666F};
  281. constexpr EAX_REVERBPROPERTIES EAX1REVERB_PRESET_PSYCHOTIC = {EAX_ENVIRONMENT_PSYCHOTIC, 0.486F, 7.563F, 0.806F};
  282. } // namespace
  283. const Eax1ReverbPresets EAX1REVERB_PRESETS{{
  284. EAX1REVERB_PRESET_GENERIC,
  285. EAX1REVERB_PRESET_PADDEDCELL,
  286. EAX1REVERB_PRESET_ROOM,
  287. EAX1REVERB_PRESET_BATHROOM,
  288. EAX1REVERB_PRESET_LIVINGROOM,
  289. EAX1REVERB_PRESET_STONEROOM,
  290. EAX1REVERB_PRESET_AUDITORIUM,
  291. EAX1REVERB_PRESET_CONCERTHALL,
  292. EAX1REVERB_PRESET_CAVE,
  293. EAX1REVERB_PRESET_ARENA,
  294. EAX1REVERB_PRESET_HANGAR,
  295. EAX1REVERB_PRESET_CARPETTEDHALLWAY,
  296. EAX1REVERB_PRESET_HALLWAY,
  297. EAX1REVERB_PRESET_STONECORRIDOR,
  298. EAX1REVERB_PRESET_ALLEY,
  299. EAX1REVERB_PRESET_FOREST,
  300. EAX1REVERB_PRESET_CITY,
  301. EAX1REVERB_PRESET_MOUNTAINS,
  302. EAX1REVERB_PRESET_QUARRY,
  303. EAX1REVERB_PRESET_PLAIN,
  304. EAX1REVERB_PRESET_PARKINGLOT,
  305. EAX1REVERB_PRESET_SEWERPIPE,
  306. EAX1REVERB_PRESET_UNDERWATER,
  307. EAX1REVERB_PRESET_DRUGGED,
  308. EAX1REVERB_PRESET_DIZZY,
  309. EAX1REVERB_PRESET_PSYCHOTIC,
  310. }};
  311. // EAX2 =====================================================================
  312. namespace {
  313. constexpr EAX20LISTENERPROPERTIES EAX2REVERB_PRESET_GENERIC{
  314. EAX2LISTENER_DEFAULTROOM,
  315. EAX2LISTENER_DEFAULTROOMHF,
  316. EAX2LISTENER_DEFAULTROOMROLLOFFFACTOR,
  317. EAX2LISTENER_DEFAULTDECAYTIME,
  318. EAX2LISTENER_DEFAULTDECAYHFRATIO,
  319. EAX2LISTENER_DEFAULTREFLECTIONS,
  320. EAX2LISTENER_DEFAULTREFLECTIONSDELAY,
  321. EAX2LISTENER_DEFAULTREVERB,
  322. EAX2LISTENER_DEFAULTREVERBDELAY,
  323. EAX2LISTENER_DEFAULTENVIRONMENT,
  324. EAX2LISTENER_DEFAULTENVIRONMENTSIZE,
  325. EAX2LISTENER_DEFAULTENVIRONMENTDIFFUSION,
  326. EAX2LISTENER_DEFAULTAIRABSORPTIONHF,
  327. EAX2LISTENER_DEFAULTFLAGS,
  328. };
  329. constexpr EAX20LISTENERPROPERTIES EAX2REVERB_PRESET_PADDEDCELL{
  330. -1'000L,
  331. -6'000L,
  332. 0.0F,
  333. 0.17F,
  334. 0.1F,
  335. -1'204L,
  336. 0.001F,
  337. 207L,
  338. 0.002F,
  339. EAX2_ENVIRONMENT_PADDEDCELL,
  340. 1.4F,
  341. 1.0F,
  342. -5.0F,
  343. EAX2LISTENER_DEFAULTFLAGS,
  344. };
  345. constexpr EAX20LISTENERPROPERTIES EAX2REVERB_PRESET_ROOM{
  346. -1'000L,
  347. -454L,
  348. 0.0F,
  349. 0.4F,
  350. 0.83F,
  351. -1'646L,
  352. 0.002F,
  353. 53L,
  354. 0.003F,
  355. EAX2_ENVIRONMENT_ROOM,
  356. 1.9F,
  357. 1.0F,
  358. -5.0F,
  359. EAX2LISTENER_DEFAULTFLAGS,
  360. };
  361. constexpr EAX20LISTENERPROPERTIES EAX2REVERB_PRESET_BATHROOM{
  362. -1'000L,
  363. -1'200L,
  364. 0.0F,
  365. 1.49F,
  366. 0.54F,
  367. -370L,
  368. 0.007F,
  369. 1'030L,
  370. 0.011F,
  371. EAX2_ENVIRONMENT_BATHROOM,
  372. 1.4F,
  373. 1.0F,
  374. -5.0F,
  375. EAX2LISTENER_DEFAULTFLAGS,
  376. };
  377. constexpr EAX20LISTENERPROPERTIES EAX2REVERB_PRESET_LIVINGROOM{
  378. -1'000L,
  379. -6'000L,
  380. 0.0F,
  381. 0.5F,
  382. 0.1F,
  383. -1'376L,
  384. 0.003F,
  385. -1'104L,
  386. 0.004F,
  387. EAX2_ENVIRONMENT_LIVINGROOM,
  388. 2.5F,
  389. 1.0F,
  390. -5.0F,
  391. EAX2LISTENER_DEFAULTFLAGS,
  392. };
  393. constexpr EAX20LISTENERPROPERTIES EAX2REVERB_PRESET_STONEROOM{
  394. -1'000L,
  395. -300L,
  396. 0.0F,
  397. 2.31F,
  398. 0.64F,
  399. -711L,
  400. 0.012F,
  401. 83L,
  402. 0.017F,
  403. EAX2_ENVIRONMENT_STONEROOM,
  404. 11.6F,
  405. 1.0F,
  406. -5.0F,
  407. EAX2LISTENER_DEFAULTFLAGS,
  408. };
  409. constexpr EAX20LISTENERPROPERTIES EAX2REVERB_PRESET_AUDITORIUM{
  410. -1'000L,
  411. -476L,
  412. 0.0F,
  413. 4.32F,
  414. 0.59F,
  415. -789L,
  416. 0.02F,
  417. -289L,
  418. 0.03F,
  419. EAX2_ENVIRONMENT_AUDITORIUM,
  420. 21.6F,
  421. 1.0F,
  422. -5.0F,
  423. EAX2LISTENER_DEFAULTFLAGS,
  424. };
  425. constexpr EAX20LISTENERPROPERTIES EAX2REVERB_PRESET_CONCERTHALL{
  426. -1'000L,
  427. -500L,
  428. 0.0F,
  429. 3.92F,
  430. 0.7F,
  431. -1'230L,
  432. 0.02F,
  433. -2L,
  434. 0.029F,
  435. EAX2_ENVIRONMENT_CONCERTHALL,
  436. 19.6F,
  437. 1.0F,
  438. -5.0F,
  439. EAX2LISTENER_DEFAULTFLAGS,
  440. };
  441. constexpr EAX20LISTENERPROPERTIES EAX2REVERB_PRESET_CAVE{
  442. -1'000L,
  443. 0L,
  444. 0.0F,
  445. 2.91F,
  446. 1.3F,
  447. -602L,
  448. 0.015F,
  449. -302L,
  450. 0.022F,
  451. EAX2_ENVIRONMENT_CAVE,
  452. 14.6F,
  453. 1.0F,
  454. -5.0F,
  455. EAX2LISTENERFLAGS_DECAYTIMESCALE |
  456. EAX2LISTENERFLAGS_REFLECTIONSSCALE |
  457. EAX2LISTENERFLAGS_REFLECTIONSDELAYSCALE |
  458. EAX2LISTENERFLAGS_REVERBSCALE |
  459. EAX2LISTENERFLAGS_REVERBDELAYSCALE,
  460. };
  461. constexpr EAX20LISTENERPROPERTIES EAX2REVERB_PRESET_ARENA{
  462. -1'000L,
  463. -698L,
  464. 0.0F,
  465. 7.24F,
  466. 0.33F,
  467. -1'166L,
  468. 0.02F,
  469. 16L,
  470. 0.03F,
  471. EAX2_ENVIRONMENT_ARENA,
  472. 36.2F,
  473. 1.0F,
  474. -5.0F,
  475. EAX2LISTENER_DEFAULTFLAGS,
  476. };
  477. constexpr EAX20LISTENERPROPERTIES EAX2REVERB_PRESET_HANGAR{
  478. -1'000L,
  479. -1'000L,
  480. 0.0F,
  481. 10.05F,
  482. 0.23F,
  483. -602L,
  484. 0.02F,
  485. 198L,
  486. 0.03F,
  487. EAX2_ENVIRONMENT_HANGAR,
  488. 50.3F,
  489. 1.0F,
  490. -5.0F,
  491. EAX2LISTENER_DEFAULTFLAGS,
  492. };
  493. constexpr EAX20LISTENERPROPERTIES EAX2REVERB_PRESET_CARPETTEDHALLWAY{
  494. -1'000L,
  495. -4'000L,
  496. 0.0F,
  497. 0.3F,
  498. 0.1F,
  499. -1'831L,
  500. 0.002F,
  501. -1'630L,
  502. 0.03F,
  503. EAX2_ENVIRONMENT_CARPETEDHALLWAY,
  504. 1.9F,
  505. 1.0F,
  506. -5.0F,
  507. EAX2LISTENER_DEFAULTFLAGS,
  508. };
  509. constexpr EAX20LISTENERPROPERTIES EAX2REVERB_PRESET_HALLWAY{
  510. -1'000L,
  511. -300L,
  512. 0.0F,
  513. 1.49F,
  514. 0.59F,
  515. -1'219L,
  516. 0.007F,
  517. 441L,
  518. 0.011F,
  519. EAX2_ENVIRONMENT_HALLWAY,
  520. 1.8F,
  521. 1.0F,
  522. -5.0F,
  523. EAX2LISTENER_DEFAULTFLAGS,
  524. };
  525. constexpr EAX20LISTENERPROPERTIES EAX2REVERB_PRESET_STONECORRIDOR{
  526. -1'000L,
  527. -237L,
  528. 0.0F,
  529. 2.7F,
  530. 0.79F,
  531. -1'214L,
  532. 0.013F,
  533. 395L,
  534. 0.02F,
  535. EAX2_ENVIRONMENT_STONECORRIDOR,
  536. 13.5F,
  537. 1.0F,
  538. -5.0F,
  539. EAX2LISTENER_DEFAULTFLAGS,
  540. };
  541. constexpr EAX20LISTENERPROPERTIES EAX2REVERB_PRESET_ALLEY{
  542. -1'000L,
  543. -270L,
  544. 0.0F,
  545. 1.49F,
  546. 0.86F,
  547. -1'204L,
  548. 0.007F,
  549. -4L,
  550. 0.011F,
  551. EAX2_ENVIRONMENT_ALLEY,
  552. 7.5F,
  553. 0.3F,
  554. -5.0F,
  555. EAX2LISTENER_DEFAULTFLAGS,
  556. };
  557. constexpr EAX20LISTENERPROPERTIES EAX2REVERB_PRESET_FOREST{
  558. -1'000L,
  559. -3'300L,
  560. 0.0F,
  561. 1.49F,
  562. 0.54F,
  563. -2'560L,
  564. 0.162F,
  565. -229L,
  566. 0.088F,
  567. EAX2_ENVIRONMENT_FOREST,
  568. 38.0F,
  569. 0.3F,
  570. -5.0F,
  571. EAX2LISTENER_DEFAULTFLAGS,
  572. };
  573. constexpr EAX20LISTENERPROPERTIES EAX2REVERB_PRESET_CITY{
  574. -1'000L,
  575. -800L,
  576. 0.0F,
  577. 1.49F,
  578. 0.67F,
  579. -2'273L,
  580. 0.007F,
  581. -1'691L,
  582. 0.011F,
  583. EAX2_ENVIRONMENT_CITY,
  584. 7.5F,
  585. 0.5F,
  586. -5.0F,
  587. EAX2LISTENER_DEFAULTFLAGS,
  588. };
  589. constexpr EAX20LISTENERPROPERTIES EAX2REVERB_PRESET_MOUNTAINS{
  590. -1'000L,
  591. -2'500L,
  592. 0.0F,
  593. 1.49F,
  594. 0.21F,
  595. -2'780L,
  596. 0.3F,
  597. -1'434L,
  598. 0.1F,
  599. EAX2_ENVIRONMENT_MOUNTAINS,
  600. 100.0F,
  601. 0.27F,
  602. -5.0F,
  603. EAX2LISTENERFLAGS_DECAYTIMESCALE |
  604. EAX2LISTENERFLAGS_REFLECTIONSSCALE |
  605. EAX2LISTENERFLAGS_REFLECTIONSDELAYSCALE |
  606. EAX2LISTENERFLAGS_REVERBSCALE |
  607. EAX2LISTENERFLAGS_REVERBDELAYSCALE,
  608. };
  609. constexpr EAX20LISTENERPROPERTIES EAX2REVERB_PRESET_QUARRY{
  610. -1'000L,
  611. -1'000L,
  612. 0.0F,
  613. 1.49F,
  614. 0.83F,
  615. -10'000L,
  616. 0.061F,
  617. 500L,
  618. 0.025F,
  619. EAX2_ENVIRONMENT_QUARRY,
  620. 17.5F,
  621. 1.0F,
  622. -5.0F,
  623. EAX2LISTENER_DEFAULTFLAGS,
  624. };
  625. constexpr EAX20LISTENERPROPERTIES EAX2REVERB_PRESET_PLAIN{
  626. -1'000L,
  627. -2'000L,
  628. 0.0F,
  629. 1.49F,
  630. 0.5F,
  631. -2'466L,
  632. 0.179F,
  633. -1'926L,
  634. 0.1F,
  635. EAX2_ENVIRONMENT_PLAIN,
  636. 42.5F,
  637. 0.21F,
  638. -5.0F,
  639. EAX2LISTENER_DEFAULTFLAGS,
  640. };
  641. constexpr EAX20LISTENERPROPERTIES EAX2REVERB_PRESET_PARKINGLOT{
  642. -1'000L,
  643. 0L,
  644. 0.0F,
  645. 1.65F,
  646. 1.5F,
  647. -1'363L,
  648. 0.008F,
  649. -1'153L,
  650. 0.012F,
  651. EAX2_ENVIRONMENT_PARKINGLOT,
  652. 8.3F,
  653. 1.0F,
  654. -5.0F,
  655. EAX2LISTENERFLAGS_DECAYTIMESCALE |
  656. EAX2LISTENERFLAGS_REFLECTIONSSCALE |
  657. EAX2LISTENERFLAGS_REFLECTIONSDELAYSCALE |
  658. EAX2LISTENERFLAGS_REVERBSCALE |
  659. EAX2LISTENERFLAGS_REVERBDELAYSCALE,
  660. };
  661. constexpr EAX20LISTENERPROPERTIES EAX2REVERB_PRESET_SEWERPIPE{
  662. -1'000L,
  663. -1'000L,
  664. 0.0F,
  665. 2.81F,
  666. 0.14F,
  667. 429L,
  668. 0.014F,
  669. 1'023L,
  670. 0.021F,
  671. EAX2_ENVIRONMENT_SEWERPIPE,
  672. 1.7F,
  673. 0.8F,
  674. -5.0F,
  675. EAX2LISTENER_DEFAULTFLAGS,
  676. };
  677. constexpr EAX20LISTENERPROPERTIES EAX2REVERB_PRESET_UNDERWATER{
  678. -1'000L,
  679. -4'000L,
  680. 0.0F,
  681. 1.49F,
  682. 0.1F,
  683. -449L,
  684. 0.007F,
  685. 1'700L,
  686. 0.011F,
  687. EAX2_ENVIRONMENT_UNDERWATER,
  688. 1.8F,
  689. 1.0F,
  690. -5.0F,
  691. EAX2LISTENER_DEFAULTFLAGS,
  692. };
  693. constexpr EAX20LISTENERPROPERTIES EAX2REVERB_PRESET_DRUGGED{
  694. -1'000L,
  695. 0L,
  696. 0.0F,
  697. 8.39F,
  698. 1.39F,
  699. -115L,
  700. 0.002F,
  701. 985L,
  702. 0.03F,
  703. EAX2_ENVIRONMENT_DRUGGED,
  704. 1.9F,
  705. 0.5F,
  706. -5.0F,
  707. EAX2LISTENERFLAGS_DECAYTIMESCALE |
  708. EAX2LISTENERFLAGS_REFLECTIONSSCALE |
  709. EAX2LISTENERFLAGS_REFLECTIONSDELAYSCALE |
  710. EAX2LISTENERFLAGS_REVERBSCALE |
  711. EAX2LISTENERFLAGS_REVERBDELAYSCALE,
  712. };
  713. constexpr EAX20LISTENERPROPERTIES EAX2REVERB_PRESET_DIZZY{
  714. -1'000L,
  715. -400L,
  716. 0.0F,
  717. 17.23F,
  718. 0.56F,
  719. -1'713L,
  720. 0.02F,
  721. -613L,
  722. 0.03F,
  723. EAX2_ENVIRONMENT_DIZZY,
  724. 1.8F,
  725. 0.6F,
  726. -5.0F,
  727. EAX2LISTENERFLAGS_DECAYTIMESCALE |
  728. EAX2LISTENERFLAGS_REFLECTIONSSCALE |
  729. EAX2LISTENERFLAGS_REFLECTIONSDELAYSCALE |
  730. EAX2LISTENERFLAGS_REVERBSCALE |
  731. EAX2LISTENERFLAGS_REVERBDELAYSCALE,
  732. };
  733. constexpr EAX20LISTENERPROPERTIES EAX2REVERB_PRESET_PSYCHOTIC{
  734. -1'000L,
  735. -151L,
  736. 0.0F,
  737. 7.56F,
  738. 0.91F,
  739. -626L,
  740. 0.02F,
  741. 774L,
  742. 0.03F,
  743. EAX2_ENVIRONMENT_PSYCHOTIC,
  744. 1.0F,
  745. 0.5F,
  746. -5.0F,
  747. EAX2LISTENERFLAGS_DECAYTIMESCALE |
  748. EAX2LISTENERFLAGS_REFLECTIONSSCALE |
  749. EAX2LISTENERFLAGS_REFLECTIONSDELAYSCALE |
  750. EAX2LISTENERFLAGS_REVERBSCALE |
  751. EAX2LISTENERFLAGS_REVERBDELAYSCALE,
  752. };
  753. } // namespace
  754. const Eax2ReverbPresets EAX2REVERB_PRESETS{
  755. EAX2REVERB_PRESET_GENERIC,
  756. EAX2REVERB_PRESET_PADDEDCELL,
  757. EAX2REVERB_PRESET_ROOM,
  758. EAX2REVERB_PRESET_BATHROOM,
  759. EAX2REVERB_PRESET_LIVINGROOM,
  760. EAX2REVERB_PRESET_STONEROOM,
  761. EAX2REVERB_PRESET_AUDITORIUM,
  762. EAX2REVERB_PRESET_CONCERTHALL,
  763. EAX2REVERB_PRESET_CAVE,
  764. EAX2REVERB_PRESET_ARENA,
  765. EAX2REVERB_PRESET_HANGAR,
  766. EAX2REVERB_PRESET_CARPETTEDHALLWAY,
  767. EAX2REVERB_PRESET_HALLWAY,
  768. EAX2REVERB_PRESET_STONECORRIDOR,
  769. EAX2REVERB_PRESET_ALLEY,
  770. EAX2REVERB_PRESET_FOREST,
  771. EAX2REVERB_PRESET_CITY,
  772. EAX2REVERB_PRESET_MOUNTAINS,
  773. EAX2REVERB_PRESET_QUARRY,
  774. EAX2REVERB_PRESET_PLAIN,
  775. EAX2REVERB_PRESET_PARKINGLOT,
  776. EAX2REVERB_PRESET_SEWERPIPE,
  777. EAX2REVERB_PRESET_UNDERWATER,
  778. EAX2REVERB_PRESET_DRUGGED,
  779. EAX2REVERB_PRESET_DIZZY,
  780. EAX2REVERB_PRESET_PSYCHOTIC,
  781. };
  782. // EAX3+ ====================================================================
  783. namespace {
  784. constexpr EAXREVERBPROPERTIES EAXREVERB_PRESET_GENERIC =
  785. {
  786. EAXREVERB_DEFAULTENVIRONMENT,
  787. EAXREVERB_DEFAULTENVIRONMENTSIZE,
  788. EAXREVERB_DEFAULTENVIRONMENTDIFFUSION,
  789. EAXREVERB_DEFAULTROOM,
  790. EAXREVERB_DEFAULTROOMHF,
  791. EAXREVERB_DEFAULTROOMLF,
  792. EAXREVERB_DEFAULTDECAYTIME,
  793. EAXREVERB_DEFAULTDECAYHFRATIO,
  794. EAXREVERB_DEFAULTDECAYLFRATIO,
  795. EAXREVERB_DEFAULTREFLECTIONS,
  796. EAXREVERB_DEFAULTREFLECTIONSDELAY,
  797. EAXREVERB_DEFAULTREFLECTIONSPAN,
  798. EAXREVERB_DEFAULTREVERB,
  799. EAXREVERB_DEFAULTREVERBDELAY,
  800. EAXREVERB_DEFAULTREVERBPAN,
  801. EAXREVERB_DEFAULTECHOTIME,
  802. EAXREVERB_DEFAULTECHODEPTH,
  803. EAXREVERB_DEFAULTMODULATIONTIME,
  804. EAXREVERB_DEFAULTMODULATIONDEPTH,
  805. EAXREVERB_DEFAULTAIRABSORPTIONHF,
  806. EAXREVERB_DEFAULTHFREFERENCE,
  807. EAXREVERB_DEFAULTLFREFERENCE,
  808. EAXREVERB_DEFAULTROOMROLLOFFFACTOR,
  809. EAXREVERB_DEFAULTFLAGS,
  810. };
  811. constexpr EAXREVERBPROPERTIES EAXREVERB_PRESET_PADDEDCELL =
  812. {
  813. EAX_ENVIRONMENT_PADDEDCELL,
  814. 1.4F,
  815. 1.0F,
  816. -1'000L,
  817. -6'000L,
  818. 0L,
  819. 0.17F,
  820. 0.10F,
  821. 1.0F,
  822. -1'204L,
  823. 0.001F,
  824. EAXVECTOR{},
  825. 207L,
  826. 0.002F,
  827. EAXVECTOR{},
  828. 0.250F,
  829. 0.0F,
  830. 0.250F,
  831. 0.0F,
  832. -5.0F,
  833. 5'000.0F,
  834. 250.0F,
  835. 0.0F,
  836. 0x3FUL,
  837. };
  838. constexpr EAXREVERBPROPERTIES EAXREVERB_PRESET_ROOM =
  839. {
  840. EAX_ENVIRONMENT_ROOM,
  841. 1.9F,
  842. 1.0F,
  843. -1'000L,
  844. -454L,
  845. 0L,
  846. 0.40F,
  847. 0.83F,
  848. 1.0F,
  849. -1'646L,
  850. 0.002F,
  851. EAXVECTOR{},
  852. 53L,
  853. 0.003F,
  854. EAXVECTOR{},
  855. 0.250F,
  856. 0.0F,
  857. 0.250F,
  858. 0.0F,
  859. -5.0F,
  860. 5'000.0F,
  861. 250.0F,
  862. 0.0F,
  863. 0x3FUL,
  864. };
  865. constexpr EAXREVERBPROPERTIES EAXREVERB_PRESET_BATHROOM =
  866. {
  867. EAX_ENVIRONMENT_BATHROOM,
  868. 1.4F,
  869. 1.0F,
  870. -1'000L,
  871. -1'200L,
  872. 0L,
  873. 1.49F,
  874. 0.54F,
  875. 1.0F,
  876. -370L,
  877. 0.007F,
  878. EAXVECTOR{},
  879. 1'030L,
  880. 0.011F,
  881. EAXVECTOR{},
  882. 0.250F,
  883. 0.0F,
  884. 0.250F,
  885. 0.0F,
  886. -5.0F,
  887. 5'000.0F,
  888. 250.0F,
  889. 0.0F,
  890. 0x3FUL,
  891. };
  892. constexpr EAXREVERBPROPERTIES EAXREVERB_PRESET_LIVINGROOM =
  893. {
  894. EAX_ENVIRONMENT_LIVINGROOM,
  895. 2.5F,
  896. 1.0F,
  897. -1'000L,
  898. -6'000L,
  899. 0L,
  900. 0.50F,
  901. 0.10F,
  902. 1.0F,
  903. -1'376,
  904. 0.003F,
  905. EAXVECTOR{},
  906. -1'104L,
  907. 0.004F,
  908. EAXVECTOR{},
  909. 0.250F,
  910. 0.0F,
  911. 0.250F,
  912. 0.0F,
  913. -5.0F,
  914. 5'000.0F,
  915. 250.0F,
  916. 0.0F,
  917. 0x3FUL,
  918. };
  919. constexpr EAXREVERBPROPERTIES EAXREVERB_PRESET_STONEROOM =
  920. {
  921. EAX_ENVIRONMENT_STONEROOM,
  922. 11.6F,
  923. 1.0F,
  924. -1'000L,
  925. -300L,
  926. 0L,
  927. 2.31F,
  928. 0.64F,
  929. 1.0F,
  930. -711L,
  931. 0.012F,
  932. EAXVECTOR{},
  933. 83L,
  934. 0.017F,
  935. EAXVECTOR{},
  936. 0.250F,
  937. 0.0F,
  938. 0.250F,
  939. 0.0F,
  940. -5.0F,
  941. 5'000.0F,
  942. 250.0F,
  943. 0.0F,
  944. 0x3FUL,
  945. };
  946. constexpr EAXREVERBPROPERTIES EAXREVERB_PRESET_AUDITORIUM =
  947. {
  948. EAX_ENVIRONMENT_AUDITORIUM,
  949. 21.6F,
  950. 1.0F,
  951. -1'000L,
  952. -476L,
  953. 0L,
  954. 4.32F,
  955. 0.59F,
  956. 1.0F,
  957. -789L,
  958. 0.020F,
  959. EAXVECTOR{},
  960. -289L,
  961. 0.030F,
  962. EAXVECTOR{},
  963. 0.250F,
  964. 0.0F,
  965. 0.250F,
  966. 0.0F,
  967. -5.0F,
  968. 5'000.0F,
  969. 250.0F,
  970. 0.0F,
  971. 0x3FUL,
  972. };
  973. constexpr EAXREVERBPROPERTIES EAXREVERB_PRESET_CONCERTHALL =
  974. {
  975. EAX_ENVIRONMENT_CONCERTHALL,
  976. 19.6F,
  977. 1.0F,
  978. -1'000L,
  979. -500L,
  980. 0L,
  981. 3.92F,
  982. 0.70F,
  983. 1.0F,
  984. -1'230L,
  985. 0.020F,
  986. EAXVECTOR{},
  987. -2L,
  988. 0.029F,
  989. EAXVECTOR{},
  990. 0.250F,
  991. 0.0F,
  992. 0.250F,
  993. 0.0F,
  994. -5.0F,
  995. 5'000.0F,
  996. 250.0F,
  997. 0.0F,
  998. 0x3FUL,
  999. };
  1000. constexpr EAXREVERBPROPERTIES EAXREVERB_PRESET_CAVE =
  1001. {
  1002. EAX_ENVIRONMENT_CAVE,
  1003. 14.6F,
  1004. 1.0F,
  1005. -1'000L,
  1006. 0L,
  1007. 0L,
  1008. 2.91F,
  1009. 1.30F,
  1010. 1.0F,
  1011. -602L,
  1012. 0.015F,
  1013. EAXVECTOR{},
  1014. -302L,
  1015. 0.022F,
  1016. EAXVECTOR{},
  1017. 0.250F,
  1018. 0.0F,
  1019. 0.250F,
  1020. 0.0F,
  1021. -5.0F,
  1022. 5'000.0F,
  1023. 250.0F,
  1024. 0.0F,
  1025. 0x1FUL,
  1026. };
  1027. constexpr EAXREVERBPROPERTIES EAXREVERB_PRESET_ARENA =
  1028. {
  1029. EAX_ENVIRONMENT_ARENA,
  1030. 36.2F,
  1031. 1.0F,
  1032. -1'000L,
  1033. -698L,
  1034. 0L,
  1035. 7.24F,
  1036. 0.33F,
  1037. 1.0F,
  1038. -1'166L,
  1039. 0.020F,
  1040. EAXVECTOR{},
  1041. 16L,
  1042. 0.030F,
  1043. EAXVECTOR{},
  1044. 0.250F,
  1045. 0.0F,
  1046. 0.250F,
  1047. 0.0F,
  1048. -5.0F,
  1049. 5'000.0F,
  1050. 250.0F,
  1051. 0.0F,
  1052. 0x3FUL,
  1053. };
  1054. constexpr EAXREVERBPROPERTIES EAXREVERB_PRESET_HANGAR =
  1055. {
  1056. EAX_ENVIRONMENT_HANGAR,
  1057. 50.3F,
  1058. 1.0F,
  1059. -1'000L,
  1060. -1'000L,
  1061. 0L,
  1062. 10.05F,
  1063. 0.23F,
  1064. 1.0F,
  1065. -602L,
  1066. 0.020F,
  1067. EAXVECTOR{},
  1068. 198L,
  1069. 0.030F,
  1070. EAXVECTOR{},
  1071. 0.250F,
  1072. 0.0F,
  1073. 0.250F,
  1074. 0.0F,
  1075. -5.0F,
  1076. 5'000.0F,
  1077. 250.0F,
  1078. 0.0F,
  1079. 0x3FUL,
  1080. };
  1081. constexpr EAXREVERBPROPERTIES EAXREVERB_PRESET_CARPETTEDHALLWAY =
  1082. {
  1083. EAX_ENVIRONMENT_CARPETEDHALLWAY,
  1084. 1.9F,
  1085. 1.0F,
  1086. -1'000L,
  1087. -4'000L,
  1088. 0L,
  1089. 0.30F,
  1090. 0.10F,
  1091. 1.0F,
  1092. -1'831L,
  1093. 0.002F,
  1094. EAXVECTOR{},
  1095. -1'630L,
  1096. 0.030F,
  1097. EAXVECTOR{},
  1098. 0.250F,
  1099. 0.0F,
  1100. 0.250F,
  1101. 0.0F,
  1102. -5.0F,
  1103. 5'000.0F,
  1104. 250.0F,
  1105. 0.0F,
  1106. 0x3FUL,
  1107. };
  1108. constexpr EAXREVERBPROPERTIES EAXREVERB_PRESET_HALLWAY =
  1109. {
  1110. EAX_ENVIRONMENT_HALLWAY,
  1111. 1.8F,
  1112. 1.0F,
  1113. -1'000L,
  1114. -300L,
  1115. 0L,
  1116. 1.49F,
  1117. 0.59F,
  1118. 1.0F,
  1119. -1'219L,
  1120. 0.007F,
  1121. EAXVECTOR{},
  1122. 441L,
  1123. 0.011F,
  1124. EAXVECTOR{},
  1125. 0.250F,
  1126. 0.0F,
  1127. 0.250F,
  1128. 0.0F,
  1129. -5.0F,
  1130. 5'000.0F,
  1131. 250.0F,
  1132. 0.0F,
  1133. 0x3FUL,
  1134. };
  1135. constexpr EAXREVERBPROPERTIES EAXREVERB_PRESET_STONECORRIDOR =
  1136. {
  1137. EAX_ENVIRONMENT_STONECORRIDOR,
  1138. 13.5F,
  1139. 1.0F,
  1140. -1'000L,
  1141. -237L,
  1142. 0L,
  1143. 2.70F,
  1144. 0.79F,
  1145. 1.0F,
  1146. -1'214L,
  1147. 0.013F,
  1148. EAXVECTOR{},
  1149. 395L,
  1150. 0.020F,
  1151. EAXVECTOR{},
  1152. 0.250F,
  1153. 0.0F,
  1154. 0.250F,
  1155. 0.0F,
  1156. -5.0F,
  1157. 5'000.0F,
  1158. 250.0F,
  1159. 0.0F,
  1160. 0x3FUL,
  1161. };
  1162. constexpr EAXREVERBPROPERTIES EAXREVERB_PRESET_ALLEY =
  1163. {
  1164. EAX_ENVIRONMENT_ALLEY,
  1165. 7.5F,
  1166. 0.300F,
  1167. -1'000L,
  1168. -270L,
  1169. 0L,
  1170. 1.49F,
  1171. 0.86F,
  1172. 1.0F,
  1173. -1'204L,
  1174. 0.007F,
  1175. EAXVECTOR{},
  1176. -4L,
  1177. 0.011F,
  1178. EAXVECTOR{},
  1179. 0.125F,
  1180. 0.950F,
  1181. 0.250F,
  1182. 0.0F,
  1183. -5.0F,
  1184. 5'000.0F,
  1185. 250.0F,
  1186. 0.0F,
  1187. 0x3FUL,
  1188. };
  1189. constexpr EAXREVERBPROPERTIES EAXREVERB_PRESET_FOREST =
  1190. {
  1191. EAX_ENVIRONMENT_FOREST,
  1192. 38.0F,
  1193. 0.300F,
  1194. -1'000L,
  1195. -3'300L,
  1196. 0L,
  1197. 1.49F,
  1198. 0.54F,
  1199. 1.0F,
  1200. -2'560L,
  1201. 0.162F,
  1202. EAXVECTOR{},
  1203. -229L,
  1204. 0.088F,
  1205. EAXVECTOR{},
  1206. 0.125F,
  1207. 1.0F,
  1208. 0.250F,
  1209. 0.0F,
  1210. -5.0F,
  1211. 5'000.0F,
  1212. 250.0F,
  1213. 0.0F,
  1214. 0x3FUL,
  1215. };
  1216. constexpr EAXREVERBPROPERTIES EAXREVERB_PRESET_CITY =
  1217. {
  1218. EAX_ENVIRONMENT_CITY,
  1219. 7.5F,
  1220. 0.500F,
  1221. -1'000L,
  1222. -800L,
  1223. 0L,
  1224. 1.49F,
  1225. 0.67F,
  1226. 1.0F,
  1227. -2'273L,
  1228. 0.007F,
  1229. EAXVECTOR{},
  1230. -1'691L,
  1231. 0.011F,
  1232. EAXVECTOR{},
  1233. 0.250F,
  1234. 0.0F,
  1235. 0.250F,
  1236. 0.0F,
  1237. -5.0F,
  1238. 5'000.0F,
  1239. 250.0F,
  1240. 0.0F,
  1241. 0x3FUL,
  1242. };
  1243. constexpr EAXREVERBPROPERTIES EAXREVERB_PRESET_MOUNTAINS =
  1244. {
  1245. EAX_ENVIRONMENT_MOUNTAINS,
  1246. 100.0F,
  1247. 0.270F,
  1248. -1'000L,
  1249. -2'500L,
  1250. 0L,
  1251. 1.49F,
  1252. 0.21F,
  1253. 1.0F,
  1254. -2'780L,
  1255. 0.300F,
  1256. EAXVECTOR{},
  1257. -1'434L,
  1258. 0.100F,
  1259. EAXVECTOR{},
  1260. 0.250F,
  1261. 1.0F,
  1262. 0.250F,
  1263. 0.0F,
  1264. -5.0F,
  1265. 5'000.0F,
  1266. 250.0F,
  1267. 0.0F,
  1268. 0x1FUL,
  1269. };
  1270. constexpr EAXREVERBPROPERTIES EAXREVERB_PRESET_QUARRY =
  1271. {
  1272. EAX_ENVIRONMENT_QUARRY,
  1273. 17.5F,
  1274. 1.0F,
  1275. -1'000L,
  1276. -1'000L,
  1277. 0L,
  1278. 1.49F,
  1279. 0.83F,
  1280. 1.0F,
  1281. -10'000L,
  1282. 0.061F,
  1283. EAXVECTOR{},
  1284. 500L,
  1285. 0.025F,
  1286. EAXVECTOR{},
  1287. 0.125F,
  1288. 0.700F,
  1289. 0.250F,
  1290. 0.0F,
  1291. -5.0F,
  1292. 5'000.0F,
  1293. 250.0F,
  1294. 0.0F,
  1295. 0x3FUL,
  1296. };
  1297. constexpr EAXREVERBPROPERTIES EAXREVERB_PRESET_PLAIN =
  1298. {
  1299. EAX_ENVIRONMENT_PLAIN,
  1300. 42.5F,
  1301. 0.210F,
  1302. -1'000L,
  1303. -2'000L,
  1304. 0L,
  1305. 1.49F,
  1306. 0.50F,
  1307. 1.0F,
  1308. -2'466L,
  1309. 0.179F,
  1310. EAXVECTOR{},
  1311. -1'926L,
  1312. 0.100F,
  1313. EAXVECTOR{},
  1314. 0.250F,
  1315. 1.0F,
  1316. 0.250F,
  1317. 0.0F,
  1318. -5.0F,
  1319. 5'000.0F,
  1320. 250.0F,
  1321. 0.0F,
  1322. 0x3FUL,
  1323. };
  1324. constexpr EAXREVERBPROPERTIES EAXREVERB_PRESET_PARKINGLOT =
  1325. {
  1326. EAX_ENVIRONMENT_PARKINGLOT,
  1327. 8.3F,
  1328. 1.0F,
  1329. -1'000L,
  1330. 0L,
  1331. 0L,
  1332. 1.65F,
  1333. 1.50F,
  1334. 1.0F,
  1335. -1'363L,
  1336. 0.008F,
  1337. EAXVECTOR{},
  1338. -1'153L,
  1339. 0.012F,
  1340. EAXVECTOR{},
  1341. 0.250F,
  1342. 0.0F,
  1343. 0.250F,
  1344. 0.0F,
  1345. -5.0F,
  1346. 5'000.0F,
  1347. 250.0F,
  1348. 0.0F,
  1349. 0x1FUL,
  1350. };
  1351. constexpr EAXREVERBPROPERTIES EAXREVERB_PRESET_SEWERPIPE =
  1352. {
  1353. EAX_ENVIRONMENT_SEWERPIPE,
  1354. 1.7F,
  1355. 0.800F,
  1356. -1'000L,
  1357. -1'000L,
  1358. 0L,
  1359. 2.81F,
  1360. 0.14F,
  1361. 1.0F,
  1362. 429L,
  1363. 0.014F,
  1364. EAXVECTOR{},
  1365. 1'023L,
  1366. 0.021F,
  1367. EAXVECTOR{},
  1368. 0.250F,
  1369. 0.0F,
  1370. 0.250F,
  1371. 0.0F,
  1372. -5.0F,
  1373. 5'000.0F,
  1374. 250.0F,
  1375. 0.0F,
  1376. 0x3FUL,
  1377. };
  1378. constexpr EAXREVERBPROPERTIES EAXREVERB_PRESET_UNDERWATER =
  1379. {
  1380. EAX_ENVIRONMENT_UNDERWATER,
  1381. 1.8F,
  1382. 1.0F,
  1383. -1'000L,
  1384. -4'000L,
  1385. 0L,
  1386. 1.49F,
  1387. 0.10F,
  1388. 1.0F,
  1389. -449L,
  1390. 0.007F,
  1391. EAXVECTOR{},
  1392. 1'700L,
  1393. 0.011F,
  1394. EAXVECTOR{},
  1395. 0.250F,
  1396. 0.0F,
  1397. 1.180F,
  1398. 0.348F,
  1399. -5.0F,
  1400. 5'000.0F,
  1401. 250.0F,
  1402. 0.0F,
  1403. 0x3FUL,
  1404. };
  1405. constexpr EAXREVERBPROPERTIES EAXREVERB_PRESET_DRUGGED =
  1406. {
  1407. EAX_ENVIRONMENT_DRUGGED,
  1408. 1.9F,
  1409. 0.500F,
  1410. -1'000L,
  1411. 0L,
  1412. 0L,
  1413. 8.39F,
  1414. 1.39F,
  1415. 1.0F,
  1416. -115L,
  1417. 0.002F,
  1418. EAXVECTOR{},
  1419. 985L,
  1420. 0.030F,
  1421. EAXVECTOR{},
  1422. 0.250F,
  1423. 0.0F,
  1424. 0.250F,
  1425. 1.0F,
  1426. -5.0F,
  1427. 5'000.0F,
  1428. 250.0F,
  1429. 0.0F,
  1430. 0x1FUL,
  1431. };
  1432. constexpr EAXREVERBPROPERTIES EAXREVERB_PRESET_DIZZY =
  1433. {
  1434. EAX_ENVIRONMENT_DIZZY,
  1435. 1.8F,
  1436. 0.600F,
  1437. -1'000L,
  1438. -400L,
  1439. 0L,
  1440. 17.23F,
  1441. 0.56F,
  1442. 1.0F,
  1443. -1'713L,
  1444. 0.020F,
  1445. EAXVECTOR{},
  1446. -613L,
  1447. 0.030F,
  1448. EAXVECTOR{},
  1449. 0.250F,
  1450. 1.0F,
  1451. 0.810F,
  1452. 0.310F,
  1453. -5.0F,
  1454. 5'000.0F,
  1455. 250.0F,
  1456. 0.0F,
  1457. 0x1FUL,
  1458. };
  1459. constexpr EAXREVERBPROPERTIES EAXREVERB_PRESET_PSYCHOTIC =
  1460. {
  1461. EAX_ENVIRONMENT_PSYCHOTIC,
  1462. 1.0F,
  1463. 0.500F,
  1464. -1'000L,
  1465. -151L,
  1466. 0L,
  1467. 7.56F,
  1468. 0.91F,
  1469. 1.0F,
  1470. -626L,
  1471. 0.020F,
  1472. EAXVECTOR{},
  1473. 774L,
  1474. 0.030F,
  1475. EAXVECTOR{},
  1476. 0.250F,
  1477. 0.0F,
  1478. 4.0F,
  1479. 1.0F,
  1480. -5.0F,
  1481. 5'000.0F,
  1482. 250.0F,
  1483. 0.0F,
  1484. 0x1FUL,
  1485. };
  1486. } // namespace
  1487. const EaxReverbPresets EAXREVERB_PRESETS{{
  1488. EAXREVERB_PRESET_GENERIC,
  1489. EAXREVERB_PRESET_PADDEDCELL,
  1490. EAXREVERB_PRESET_ROOM,
  1491. EAXREVERB_PRESET_BATHROOM,
  1492. EAXREVERB_PRESET_LIVINGROOM,
  1493. EAXREVERB_PRESET_STONEROOM,
  1494. EAXREVERB_PRESET_AUDITORIUM,
  1495. EAXREVERB_PRESET_CONCERTHALL,
  1496. EAXREVERB_PRESET_CAVE,
  1497. EAXREVERB_PRESET_ARENA,
  1498. EAXREVERB_PRESET_HANGAR,
  1499. EAXREVERB_PRESET_CARPETTEDHALLWAY,
  1500. EAXREVERB_PRESET_HALLWAY,
  1501. EAXREVERB_PRESET_STONECORRIDOR,
  1502. EAXREVERB_PRESET_ALLEY,
  1503. EAXREVERB_PRESET_FOREST,
  1504. EAXREVERB_PRESET_CITY,
  1505. EAXREVERB_PRESET_MOUNTAINS,
  1506. EAXREVERB_PRESET_QUARRY,
  1507. EAXREVERB_PRESET_PLAIN,
  1508. EAXREVERB_PRESET_PARKINGLOT,
  1509. EAXREVERB_PRESET_SEWERPIPE,
  1510. EAXREVERB_PRESET_UNDERWATER,
  1511. EAXREVERB_PRESET_DRUGGED,
  1512. EAXREVERB_PRESET_DIZZY,
  1513. EAXREVERB_PRESET_PSYCHOTIC,
  1514. }};