Counter Strike : Global Offensive Source Code
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.

413 lines
20 KiB

  1. /**************************************************************************
  2. *
  3. * Copyright (c) Microsoft Corporation. All rights reserved.
  4. *
  5. * File: xaudio2fx.h
  6. * Content: Declarations for the audio effects included with XAudio2.
  7. *
  8. **************************************************************************/
  9. #ifndef __XAUDIO2FX_INCLUDED__
  10. #define __XAUDIO2FX_INCLUDED__
  11. /**************************************************************************
  12. *
  13. * XAudio2 effect class IDs.
  14. *
  15. **************************************************************************/
  16. #include "comdecl.h" // For DEFINE_CLSID and DEFINE_IID
  17. // XAudio 2.0 (March 2008 SDK)
  18. //DEFINE_CLSID(AudioVolumeMeter, C0C56F46, 29B1, 44E9, 99, 39, A3, 2C, E8, 68, 67, E2);
  19. //DEFINE_CLSID(AudioVolumeMeter_Debug, C0C56F46, 29B1, 44E9, 99, 39, A3, 2C, E8, 68, 67, DB);
  20. //DEFINE_CLSID(AudioReverb, 6F6EA3A9, 2CF5, 41CF, 91, C1, 21, 70, B1, 54, 00, 63);
  21. //DEFINE_CLSID(AudioReverb_Debug, 6F6EA3A9, 2CF5, 41CF, 91, C1, 21, 70, B1, 54, 00, DB);
  22. // XAudio 2.1 (June 2008 SDK)
  23. //DEFINE_CLSID(AudioVolumeMeter, c1e3f122, a2ea, 442c, 85, 4f, 20, d9, 8f, 83, 57, a1);
  24. //DEFINE_CLSID(AudioVolumeMeter_Debug, 6d97a461, b02d, 48ae, b5, 43, 82, bc, 35, fd, fa, e2);
  25. //DEFINE_CLSID(AudioReverb, f4769300, b949, 4df9, b3, 33, 00, d3, 39, 32, e9, a6);
  26. //DEFINE_CLSID(AudioReverb_Debug, aea2cabc, 8c7c, 46aa, ba, 44, 0e, 6d, 75, 88, a1, f2);
  27. // XAudio 2.2 (August 2008 SDK)
  28. //DEFINE_CLSID(AudioVolumeMeter, f5ca7b34, 8055, 42c0, b8, 36, 21, 61, 29, eb, 7e, 30);
  29. //DEFINE_CLSID(AudioVolumeMeter_Debug, f796f5f7, 6059, 4a9f, 98, 2d, 61, ee, c2, ed, 67, ca);
  30. //DEFINE_CLSID(AudioReverb, 629cf0de, 3ecc, 41e7, 99, 26, f7, e4, 3e, eb, ec, 51);
  31. //DEFINE_CLSID(AudioReverb_Debug, 4aae4299, 3260, 46d4, 97, cc, 6c, c7, 60, c8, 53, 29);
  32. // XAudio 2.3 (November 2008 SDK)
  33. //DEFINE_CLSID(AudioVolumeMeter, e180344b, ac83, 4483, 95, 9e, 18, a5, c5, 6a, 5e, 19);
  34. //DEFINE_CLSID(AudioVolumeMeter_Debug, 922a0a56, 7d13, 40ae, a4, 81, 3c, 6c, 60, f1, 14, 01);
  35. //DEFINE_CLSID(AudioReverb, 9cab402c, 1d37, 44b4, 88, 6d, fa, 4f, 36, 17, 0a, 4c);
  36. //DEFINE_CLSID(AudioReverb_Debug, eadda998, 3be6, 4505, 84, be, ea, 06, 36, 5d, b9, 6b);
  37. // XAudio 2.4 (March 2009 SDK)
  38. DEFINE_CLSID(AudioVolumeMeter, c7338b95, 52b8, 4542, aa, 79, 42, eb, 01, 6c, 8c, 1c);
  39. DEFINE_CLSID(AudioVolumeMeter_Debug, 524bd872, 5c0b, 4217, bd, b8, 0a, 86, 81, 83, 0b, a5);
  40. DEFINE_CLSID(AudioReverb, 8bb7778b, 645b, 4475, 9a, 73, 1d, e3, 17, 0b, d3, af);
  41. DEFINE_CLSID(AudioReverb_Debug, da7738a2, cd0c, 4367, 9a, ac, d7, ea, d7, c6, 4f, 98);
  42. // Ignore the rest of this header if only the GUID definitions were requested
  43. #ifndef GUID_DEFS_ONLY
  44. #ifdef _XBOX
  45. #include <xobjbase.h> // Xbox COM declarations (IUnknown, etc)
  46. #else
  47. #include <objbase.h> // Windows COM declarations
  48. #endif
  49. #include <math.h> // For log10()
  50. // All structures defined in this file should use tight packing
  51. #pragma pack(push, 1)
  52. /**************************************************************************
  53. *
  54. * Effect creation functions. On Windows, these are just inline functions
  55. * that call CoCreateInstance and Initialize; the XAUDIO2FX_DEBUG flag can
  56. * be used to select the debug version of the effects. On Xbox, these map
  57. * to real functions included in xaudio2.lib, and the XAUDIO2FX_DEBUG flag
  58. * is ignored; the application must link with the debug library to use the
  59. * debug functionality.
  60. *
  61. **************************************************************************/
  62. // Use default values for some parameters if building C++ code
  63. #ifdef __cplusplus
  64. #define DEFAULT(x) =x
  65. #else
  66. #define DEFAULT(x)
  67. #endif
  68. #define XAUDIO2FX_DEBUG 1 // To select the debug version of an effect
  69. #ifdef _XBOX
  70. STDAPI CreateAudioVolumeMeter(__deref_out IUnknown** ppApo);
  71. STDAPI CreateAudioReverb(__deref_out IUnknown** ppApo);
  72. __inline HRESULT XAudio2CreateVolumeMeter(__deref_out IUnknown** ppApo, UINT32 /*Flags*/ DEFAULT(0))
  73. {
  74. return CreateAudioVolumeMeter(ppApo);
  75. }
  76. __inline HRESULT XAudio2CreateReverb(__deref_out IUnknown** ppApo, UINT32 /*Flags*/ DEFAULT(0))
  77. {
  78. return CreateAudioReverb(ppApo);
  79. }
  80. #else // Windows
  81. __inline HRESULT XAudio2CreateVolumeMeter(__deref_out IUnknown** ppApo, UINT32 Flags DEFAULT(0))
  82. {
  83. #ifdef __cplusplus
  84. return CoCreateInstance((Flags & XAUDIO2FX_DEBUG) ? __uuidof(AudioVolumeMeter_Debug)
  85. : __uuidof(AudioVolumeMeter),
  86. NULL, CLSCTX_INPROC_SERVER, __uuidof(IUnknown), (void**)ppApo);
  87. #else
  88. return CoCreateInstance((Flags & XAUDIO2FX_DEBUG) ? &CLSID_AudioVolumeMeter_Debug
  89. : &CLSID_AudioVolumeMeter,
  90. NULL, CLSCTX_INPROC_SERVER, &IID_IUnknown, (void**)ppApo);
  91. #endif
  92. }
  93. __inline HRESULT XAudio2CreateReverb(__deref_out IUnknown** ppApo, UINT32 Flags DEFAULT(0))
  94. {
  95. #ifdef __cplusplus
  96. return CoCreateInstance((Flags & XAUDIO2FX_DEBUG) ? __uuidof(AudioReverb_Debug)
  97. : __uuidof(AudioReverb),
  98. NULL, CLSCTX_INPROC_SERVER, __uuidof(IUnknown), (void**)ppApo);
  99. #else
  100. return CoCreateInstance((Flags & XAUDIO2FX_DEBUG) ? &CLSID_AudioReverb_Debug
  101. : &CLSID_AudioReverb,
  102. NULL, CLSCTX_INPROC_SERVER, &IID_IUnknown, (void**)ppApo);
  103. #endif
  104. }
  105. #endif // #ifdef _XBOX
  106. /**************************************************************************
  107. *
  108. * Volume meter parameters.
  109. * The volume meter supports FLOAT32 audio formats and must be used in-place.
  110. *
  111. **************************************************************************/
  112. // XAUDIO2FX_VOLUMEMETER_LEVELS: Receives results from GetEffectParameters().
  113. // The user is responsible for allocating pPeakLevels, pRMSLevels, and
  114. // initializing ChannelCount accordingly.
  115. // The volume meter does not support SetEffectParameters().
  116. typedef struct XAUDIO2FX_VOLUMEMETER_LEVELS
  117. {
  118. float* pPeakLevels; // Peak levels table: receives maximum absolute level for each channel
  119. // over a processing pass; may be NULL if pRMSLevls != NULL,
  120. // otherwise must have at least ChannelCount elements.
  121. float* pRMSLevels; // Root mean square levels table: receives RMS level for each channel
  122. // over a processing pass; may be NULL if pPeakLevels != NULL,
  123. // otherwise must have at least ChannelCount elements.
  124. UINT32 ChannelCount; // Number of channels being processed by the volume meter APO
  125. } XAUDIO2FX_VOLUMEMETER_LEVELS;
  126. /**************************************************************************
  127. *
  128. * Reverb parameters.
  129. * The reverb supports only FLOAT32 audio with the following channel
  130. * configurations:
  131. * Input: Mono Output: Mono
  132. * Input: Stereo Output: Stereo
  133. * Input: Stereo Output: 5.1
  134. * The framerate must be within [20000, 48000] Hz.
  135. *
  136. * When configured to mono, delay filters associated with the right channel
  137. * are not executed. In this case, parameters such as PositionRight and
  138. * PositionMatrixRight have no effect. This also means the reverb uses
  139. * less CPU when configured to mono.
  140. *
  141. **************************************************************************/
  142. #define XAUDIO2FX_REVERB_MIN_FRAMERATE 20000
  143. #define XAUDIO2FX_REVERB_MAX_FRAMERATE 48000
  144. // XAUDIO2FX_REVERB_PARAMETERS: Native parameter set for the reverb effect
  145. typedef struct XAUDIO2FX_REVERB_PARAMETERS
  146. {
  147. // ratio of wet (processed) signal to dry (original) signal
  148. float WetDryMix; // [0, 100] (percentage)
  149. // Delay times
  150. UINT32 ReflectionsDelay; // [0, 300] in ms
  151. BYTE ReverbDelay; // [0, 85] in ms
  152. BYTE RearDelay; // [0, 5] in ms
  153. // Indexed parameters
  154. BYTE PositionLeft; // [0, 30] no units
  155. BYTE PositionRight; // [0, 30] no units, ignored when configured to mono
  156. BYTE PositionMatrixLeft; // [0, 30] no units
  157. BYTE PositionMatrixRight; // [0, 30] no units, ignored when configured to mono
  158. BYTE EarlyDiffusion; // [0, 15] no units
  159. BYTE LateDiffusion; // [0, 15] no units
  160. BYTE LowEQGain; // [0, 12] no units
  161. BYTE LowEQCutoff; // [0, 9] no units
  162. BYTE HighEQGain; // [0, 8] no units
  163. BYTE HighEQCutoff; // [0, 14] no units
  164. // Direct parameters
  165. float RoomFilterFreq; // [20, 20000] in Hz
  166. float RoomFilterMain; // [-100, 0] in dB
  167. float RoomFilterHF; // [-100, 0] in dB
  168. float ReflectionsGain; // [-100, 20] in dB
  169. float ReverbGain; // [-100, 20] in dB
  170. float DecayTime; // [0.1, inf] in seconds
  171. float Density; // [0, 100] (percentage)
  172. float RoomSize; // [1, 100] in feet
  173. } XAUDIO2FX_REVERB_PARAMETERS;
  174. // Maximum, minimum and default values for the parameters above
  175. #define XAUDIO2FX_REVERB_MIN_WET_DRY_MIX 0.0f
  176. #define XAUDIO2FX_REVERB_MIN_REFLECTIONS_DELAY 0
  177. #define XAUDIO2FX_REVERB_MIN_REVERB_DELAY 0
  178. #define XAUDIO2FX_REVERB_MIN_REAR_DELAY 0
  179. #define XAUDIO2FX_REVERB_MIN_POSITION 0
  180. #define XAUDIO2FX_REVERB_MIN_DIFFUSION 0
  181. #define XAUDIO2FX_REVERB_MIN_LOW_EQ_GAIN 0
  182. #define XAUDIO2FX_REVERB_MIN_LOW_EQ_CUTOFF 0
  183. #define XAUDIO2FX_REVERB_MIN_HIGH_EQ_GAIN 0
  184. #define XAUDIO2FX_REVERB_MIN_HIGH_EQ_CUTOFF 0
  185. #define XAUDIO2FX_REVERB_MIN_ROOM_FILTER_FREQ 20.0f
  186. #define XAUDIO2FX_REVERB_MIN_ROOM_FILTER_MAIN -100.0f
  187. #define XAUDIO2FX_REVERB_MIN_ROOM_FILTER_HF -100.0f
  188. #define XAUDIO2FX_REVERB_MIN_REFLECTIONS_GAIN -100.0f
  189. #define XAUDIO2FX_REVERB_MIN_REVERB_GAIN -100.0f
  190. #define XAUDIO2FX_REVERB_MIN_DECAY_TIME 0.1f
  191. #define XAUDIO2FX_REVERB_MIN_DENSITY 0.0f
  192. #define XAUDIO2FX_REVERB_MIN_ROOM_SIZE 0.0f
  193. #define XAUDIO2FX_REVERB_MAX_WET_DRY_MIX 100.0f
  194. #define XAUDIO2FX_REVERB_MAX_REFLECTIONS_DELAY 300
  195. #define XAUDIO2FX_REVERB_MAX_REVERB_DELAY 85
  196. #define XAUDIO2FX_REVERB_MAX_REAR_DELAY 5
  197. #define XAUDIO2FX_REVERB_MAX_POSITION 30
  198. #define XAUDIO2FX_REVERB_MAX_DIFFUSION 15
  199. #define XAUDIO2FX_REVERB_MAX_LOW_EQ_GAIN 12
  200. #define XAUDIO2FX_REVERB_MAX_LOW_EQ_CUTOFF 9
  201. #define XAUDIO2FX_REVERB_MAX_HIGH_EQ_GAIN 8
  202. #define XAUDIO2FX_REVERB_MAX_HIGH_EQ_CUTOFF 14
  203. #define XAUDIO2FX_REVERB_MAX_ROOM_FILTER_FREQ 20000.0f
  204. #define XAUDIO2FX_REVERB_MAX_ROOM_FILTER_MAIN 0.0f
  205. #define XAUDIO2FX_REVERB_MAX_ROOM_FILTER_HF 0.0f
  206. #define XAUDIO2FX_REVERB_MAX_REFLECTIONS_GAIN 20.0f
  207. #define XAUDIO2FX_REVERB_MAX_REVERB_GAIN 20.0f
  208. #define XAUDIO2FX_REVERB_MAX_DENSITY 100.0f
  209. #define XAUDIO2FX_REVERB_MAX_ROOM_SIZE 100.0f
  210. #define XAUDIO2FX_REVERB_DEFAULT_WET_DRY_MIX 100.0f
  211. #define XAUDIO2FX_REVERB_DEFAULT_REFLECTIONS_DELAY 5
  212. #define XAUDIO2FX_REVERB_DEFAULT_REVERB_DELAY 5
  213. #define XAUDIO2FX_REVERB_DEFAULT_REAR_DELAY 5
  214. #define XAUDIO2FX_REVERB_DEFAULT_POSITION 6
  215. #define XAUDIO2FX_REVERB_DEFAULT_POSITION_MATRIX 27
  216. #define XAUDIO2FX_REVERB_DEFAULT_EARLY_DIFFUSION 8
  217. #define XAUDIO2FX_REVERB_DEFAULT_LATE_DIFFUSION 8
  218. #define XAUDIO2FX_REVERB_DEFAULT_LOW_EQ_GAIN 8
  219. #define XAUDIO2FX_REVERB_DEFAULT_LOW_EQ_CUTOFF 4
  220. #define XAUDIO2FX_REVERB_DEFAULT_HIGH_EQ_GAIN 8
  221. #define XAUDIO2FX_REVERB_DEFAULT_HIGH_EQ_CUTOFF 4
  222. #define XAUDIO2FX_REVERB_DEFAULT_ROOM_FILTER_FREQ 5000.0f
  223. #define XAUDIO2FX_REVERB_DEFAULT_ROOM_FILTER_MAIN 0.0f
  224. #define XAUDIO2FX_REVERB_DEFAULT_ROOM_FILTER_HF 0.0f
  225. #define XAUDIO2FX_REVERB_DEFAULT_REFLECTIONS_GAIN 0.0f
  226. #define XAUDIO2FX_REVERB_DEFAULT_REVERB_GAIN 0.0f
  227. #define XAUDIO2FX_REVERB_DEFAULT_DECAY_TIME 1.0f
  228. #define XAUDIO2FX_REVERB_DEFAULT_DENSITY 100.0f
  229. #define XAUDIO2FX_REVERB_DEFAULT_ROOM_SIZE 100.0f
  230. // XAUDIO2FX_REVERB_I3DL2_PARAMETERS: Parameter set compliant with the I3DL2 standard
  231. typedef struct XAUDIO2FX_REVERB_I3DL2_PARAMETERS
  232. {
  233. // ratio of wet (processed) signal to dry (original) signal
  234. float WetDryMix; // [0, 100] (percentage)
  235. // Standard I3DL2 parameters
  236. INT32 Room; // [-10000, 0] in mB (hundredths of decibels)
  237. INT32 RoomHF; // [-10000, 0] in mB (hundredths of decibels)
  238. float RoomRolloffFactor; // [0.0, 10.0]
  239. float DecayTime; // [0.1, 20.0] in seconds
  240. float DecayHFRatio; // [0.1, 2.0]
  241. INT32 Reflections; // [-10000, 1000] in mB (hundredths of decibels)
  242. float ReflectionsDelay; // [0.0, 0.3] in seconds
  243. INT32 Reverb; // [-10000, 2000] in mB (hundredths of decibels)
  244. float ReverbDelay; // [0.0, 0.1] in seconds
  245. float Diffusion; // [0.0, 100.0] (percentage)
  246. float Density; // [0.0, 100.0] (percentage)
  247. float HFReference; // [20.0, 20000.0] in Hz
  248. } XAUDIO2FX_REVERB_I3DL2_PARAMETERS;
  249. // ReverbConvertI3DL2ToNative: Utility function to map from I3DL2 to native parameters
  250. __inline void ReverbConvertI3DL2ToNative
  251. (
  252. __in const XAUDIO2FX_REVERB_I3DL2_PARAMETERS* pI3DL2,
  253. __out XAUDIO2FX_REVERB_PARAMETERS* pNative
  254. )
  255. {
  256. float reflectionsDelay;
  257. float reverbDelay;
  258. // RoomRolloffFactor is ignored
  259. // These parameters have no equivalent in I3DL2
  260. pNative->RearDelay = XAUDIO2FX_REVERB_DEFAULT_REAR_DELAY; // 5
  261. pNative->PositionLeft = XAUDIO2FX_REVERB_DEFAULT_POSITION; // 6
  262. pNative->PositionRight = XAUDIO2FX_REVERB_DEFAULT_POSITION; // 6
  263. pNative->PositionMatrixLeft = XAUDIO2FX_REVERB_DEFAULT_POSITION_MATRIX; // 27
  264. pNative->PositionMatrixRight = XAUDIO2FX_REVERB_DEFAULT_POSITION_MATRIX; // 27
  265. pNative->RoomSize = XAUDIO2FX_REVERB_DEFAULT_ROOM_SIZE; // 100
  266. pNative->LowEQCutoff = 4;
  267. pNative->HighEQCutoff = 6;
  268. // The rest of the I3DL2 parameters map to the native property set
  269. pNative->RoomFilterMain = (float)pI3DL2->Room / 100.0f;
  270. pNative->RoomFilterHF = (float)pI3DL2->RoomHF / 100.0f;
  271. if (pI3DL2->DecayHFRatio >= 1.0f)
  272. {
  273. INT32 index = (INT32)(-4.0 * log10(pI3DL2->DecayHFRatio));
  274. if (index < -8) index = -8;
  275. pNative->LowEQGain = (BYTE)((index < 0) ? index + 8 : 8);
  276. pNative->HighEQGain = 8;
  277. pNative->DecayTime = pI3DL2->DecayTime * pI3DL2->DecayHFRatio;
  278. }
  279. else
  280. {
  281. INT32 index = (INT32)(4.0 * log10(pI3DL2->DecayHFRatio));
  282. if (index < -8) index = -8;
  283. pNative->LowEQGain = 8;
  284. pNative->HighEQGain = (BYTE)((index < 0) ? index + 8 : 8);
  285. pNative->DecayTime = pI3DL2->DecayTime;
  286. }
  287. reflectionsDelay = pI3DL2->ReflectionsDelay * 1000.0f;
  288. if (reflectionsDelay >= XAUDIO2FX_REVERB_MAX_REFLECTIONS_DELAY) // 300
  289. {
  290. reflectionsDelay = (float)(XAUDIO2FX_REVERB_MAX_REFLECTIONS_DELAY - 1);
  291. }
  292. else if (reflectionsDelay <= 1)
  293. {
  294. reflectionsDelay = 1;
  295. }
  296. pNative->ReflectionsDelay = (UINT32)reflectionsDelay;
  297. reverbDelay = pI3DL2->ReverbDelay * 1000.0f;
  298. if (reverbDelay >= XAUDIO2FX_REVERB_MAX_REVERB_DELAY) // 85
  299. {
  300. reverbDelay = (float)(XAUDIO2FX_REVERB_MAX_REVERB_DELAY - 1);
  301. }
  302. pNative->ReverbDelay = (BYTE)reverbDelay;
  303. pNative->ReflectionsGain = pI3DL2->Reflections / 100.0f;
  304. pNative->ReverbGain = pI3DL2->Reverb / 100.0f;
  305. pNative->EarlyDiffusion = (BYTE)(15.0f * pI3DL2->Diffusion / 100.0f);
  306. pNative->LateDiffusion = pNative->EarlyDiffusion;
  307. pNative->Density = pI3DL2->Density;
  308. pNative->RoomFilterFreq = pI3DL2->HFReference;
  309. pNative->WetDryMix = pI3DL2->WetDryMix;
  310. }
  311. /**************************************************************************
  312. *
  313. * Standard I3DL2 reverb presets (100% wet).
  314. *
  315. **************************************************************************/
  316. #define XAUDIO2FX_I3DL2_PRESET_DEFAULT {100,-10000, 0,0.0f, 1.00f,0.50f,-10000,0.020f,-10000,0.040f,100.0f,100.0f,5000.0f}
  317. #define XAUDIO2FX_I3DL2_PRESET_GENERIC {100, -1000, -100,0.0f, 1.49f,0.83f, -2602,0.007f, 200,0.011f,100.0f,100.0f,5000.0f}
  318. #define XAUDIO2FX_I3DL2_PRESET_PADDEDCELL {100, -1000,-6000,0.0f, 0.17f,0.10f, -1204,0.001f, 207,0.002f,100.0f,100.0f,5000.0f}
  319. #define XAUDIO2FX_I3DL2_PRESET_ROOM {100, -1000, -454,0.0f, 0.40f,0.83f, -1646,0.002f, 53,0.003f,100.0f,100.0f,5000.0f}
  320. #define XAUDIO2FX_I3DL2_PRESET_BATHROOM {100, -1000,-1200,0.0f, 1.49f,0.54f, -370,0.007f, 1030,0.011f,100.0f, 60.0f,5000.0f}
  321. #define XAUDIO2FX_I3DL2_PRESET_LIVINGROOM {100, -1000,-6000,0.0f, 0.50f,0.10f, -1376,0.003f, -1104,0.004f,100.0f,100.0f,5000.0f}
  322. #define XAUDIO2FX_I3DL2_PRESET_STONEROOM {100, -1000, -300,0.0f, 2.31f,0.64f, -711,0.012f, 83,0.017f,100.0f,100.0f,5000.0f}
  323. #define XAUDIO2FX_I3DL2_PRESET_AUDITORIUM {100, -1000, -476,0.0f, 4.32f,0.59f, -789,0.020f, -289,0.030f,100.0f,100.0f,5000.0f}
  324. #define XAUDIO2FX_I3DL2_PRESET_CONCERTHALL {100, -1000, -500,0.0f, 3.92f,0.70f, -1230,0.020f, -2,0.029f,100.0f,100.0f,5000.0f}
  325. #define XAUDIO2FX_I3DL2_PRESET_CAVE {100, -1000, 0,0.0f, 2.91f,1.30f, -602,0.015f, -302,0.022f,100.0f,100.0f,5000.0f}
  326. #define XAUDIO2FX_I3DL2_PRESET_ARENA {100, -1000, -698,0.0f, 7.24f,0.33f, -1166,0.020f, 16,0.030f,100.0f,100.0f,5000.0f}
  327. #define XAUDIO2FX_I3DL2_PRESET_HANGAR {100, -1000,-1000,0.0f,10.05f,0.23f, -602,0.020f, 198,0.030f,100.0f,100.0f,5000.0f}
  328. #define XAUDIO2FX_I3DL2_PRESET_CARPETEDHALLWAY {100, -1000,-4000,0.0f, 0.30f,0.10f, -1831,0.002f, -1630,0.030f,100.0f,100.0f,5000.0f}
  329. #define XAUDIO2FX_I3DL2_PRESET_HALLWAY {100, -1000, -300,0.0f, 1.49f,0.59f, -1219,0.007f, 441,0.011f,100.0f,100.0f,5000.0f}
  330. #define XAUDIO2FX_I3DL2_PRESET_STONECORRIDOR {100, -1000, -237,0.0f, 2.70f,0.79f, -1214,0.013f, 395,0.020f,100.0f,100.0f,5000.0f}
  331. #define XAUDIO2FX_I3DL2_PRESET_ALLEY {100, -1000, -270,0.0f, 1.49f,0.86f, -1204,0.007f, -4,0.011f,100.0f,100.0f,5000.0f}
  332. #define XAUDIO2FX_I3DL2_PRESET_FOREST {100, -1000,-3300,0.0f, 1.49f,0.54f, -2560,0.162f, -613,0.088f, 79.0f,100.0f,5000.0f}
  333. #define XAUDIO2FX_I3DL2_PRESET_CITY {100, -1000, -800,0.0f, 1.49f,0.67f, -2273,0.007f, -2217,0.011f, 50.0f,100.0f,5000.0f}
  334. #define XAUDIO2FX_I3DL2_PRESET_MOUNTAINS {100, -1000,-2500,0.0f, 1.49f,0.21f, -2780,0.300f, -2014,0.100f, 27.0f,100.0f,5000.0f}
  335. #define XAUDIO2FX_I3DL2_PRESET_QUARRY {100, -1000,-1000,0.0f, 1.49f,0.83f,-10000,0.061f, 500,0.025f,100.0f,100.0f,5000.0f}
  336. #define XAUDIO2FX_I3DL2_PRESET_PLAIN {100, -1000,-2000,0.0f, 1.49f,0.50f, -2466,0.179f, -2514,0.100f, 21.0f,100.0f,5000.0f}
  337. #define XAUDIO2FX_I3DL2_PRESET_PARKINGLOT {100, -1000, 0,0.0f, 1.65f,1.50f, -1363,0.008f, -1153,0.012f,100.0f,100.0f,5000.0f}
  338. #define XAUDIO2FX_I3DL2_PRESET_SEWERPIPE {100, -1000,-1000,0.0f, 2.81f,0.14f, 429,0.014f, 648,0.021f, 80.0f, 60.0f,5000.0f}
  339. #define XAUDIO2FX_I3DL2_PRESET_UNDERWATER {100, -1000,-4000,0.0f, 1.49f,0.10f, -449,0.007f, 1700,0.011f,100.0f,100.0f,5000.0f}
  340. #define XAUDIO2FX_I3DL2_PRESET_SMALLROOM {100, -1000, -600,0.0f, 1.10f,0.83f, -400,0.005f, 500,0.010f,100.0f,100.0f,5000.0f}
  341. #define XAUDIO2FX_I3DL2_PRESET_MEDIUMROOM {100, -1000, -600,0.0f, 1.30f,0.83f, -1000,0.010f, -200,0.020f,100.0f,100.0f,5000.0f}
  342. #define XAUDIO2FX_I3DL2_PRESET_LARGEROOM {100, -1000, -600,0.0f, 1.50f,0.83f, -1600,0.020f, -1000,0.040f,100.0f,100.0f,5000.0f}
  343. #define XAUDIO2FX_I3DL2_PRESET_MEDIUMHALL {100, -1000, -600,0.0f, 1.80f,0.70f, -1300,0.015f, -800,0.030f,100.0f,100.0f,5000.0f}
  344. #define XAUDIO2FX_I3DL2_PRESET_LARGEHALL {100, -1000, -600,0.0f, 1.80f,0.70f, -2000,0.030f, -1400,0.060f,100.0f,100.0f,5000.0f}
  345. #define XAUDIO2FX_I3DL2_PRESET_PLATE {100, -1000, -200,0.0f, 1.30f,0.90f, 0,0.002f, 0,0.010f,100.0f, 75.0f,5000.0f}
  346. // Undo the #pragma pack(push, 1) at the top of this file
  347. #pragma pack(pop)
  348. #endif // #ifndef GUID_DEFS_ONLY
  349. #endif // #ifndef __XAUDIO2FX_INCLUDED__