Subversion Repositories Games.Chess Giants

Rev

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

  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.  
  10. #ifndef __XAUDIO2FX_INCLUDED__
  11. #define __XAUDIO2FX_INCLUDED__
  12.  
  13.  
  14. /**************************************************************************
  15.  *
  16.  * XAudio2 effect class IDs.
  17.  *
  18.  **************************************************************************/
  19.  
  20. #include "comdecl.h"        // For DEFINE_CLSID and DEFINE_IID
  21.  
  22. // XAudio 2.0 (March 2008 SDK)
  23. //DEFINE_CLSID(AudioVolumeMeter, C0C56F46, 29B1, 44E9, 99, 39, A3, 2C, E8, 68, 67, E2);
  24. //DEFINE_CLSID(AudioVolumeMeter_Debug, C0C56F46, 29B1, 44E9, 99, 39, A3, 2C, E8, 68, 67, DB);
  25. //DEFINE_CLSID(AudioReverb, 6F6EA3A9, 2CF5, 41CF, 91, C1, 21, 70, B1, 54, 00, 63);
  26. //DEFINE_CLSID(AudioReverb_Debug, 6F6EA3A9, 2CF5, 41CF, 91, C1, 21, 70, B1, 54, 00, DB);
  27.  
  28. // XAudio 2.1 (June 2008 SDK)
  29. //DEFINE_CLSID(AudioVolumeMeter, c1e3f122, a2ea, 442c, 85, 4f, 20, d9, 8f, 83, 57, a1);
  30. //DEFINE_CLSID(AudioVolumeMeter_Debug, 6d97a461, b02d, 48ae, b5, 43, 82, bc, 35, fd, fa, e2);
  31. //DEFINE_CLSID(AudioReverb, f4769300, b949, 4df9, b3, 33, 00, d3, 39, 32, e9, a6);
  32. //DEFINE_CLSID(AudioReverb_Debug, aea2cabc, 8c7c, 46aa, ba, 44, 0e, 6d, 75, 88, a1, f2);
  33.  
  34. // XAudio 2.2 (August 2008 SDK)
  35. //DEFINE_CLSID(AudioVolumeMeter, f5ca7b34, 8055, 42c0, b8, 36, 21, 61, 29, eb, 7e, 30);
  36. //DEFINE_CLSID(AudioVolumeMeter_Debug, f796f5f7, 6059, 4a9f, 98, 2d, 61, ee, c2, ed, 67, ca);
  37. //DEFINE_CLSID(AudioReverb, 629cf0de, 3ecc, 41e7, 99, 26, f7, e4, 3e, eb, ec, 51);
  38. //DEFINE_CLSID(AudioReverb_Debug, 4aae4299, 3260, 46d4, 97, cc, 6c, c7, 60, c8, 53, 29);
  39.  
  40. // XAudio 2.3 (November 2008 SDK)
  41. //DEFINE_CLSID(AudioVolumeMeter, e180344b, ac83, 4483, 95, 9e, 18, a5, c5, 6a, 5e, 19);
  42. //DEFINE_CLSID(AudioVolumeMeter_Debug, 922a0a56, 7d13, 40ae, a4, 81, 3c, 6c, 60, f1, 14, 01);
  43. //DEFINE_CLSID(AudioReverb, 9cab402c, 1d37, 44b4, 88, 6d, fa, 4f, 36, 17, 0a, 4c);
  44. //DEFINE_CLSID(AudioReverb_Debug, eadda998, 3be6, 4505, 84, be, ea, 06, 36, 5d, b9, 6b);
  45.  
  46. // XAudio 2.4 (March 2009 SDK)
  47. //DEFINE_CLSID(AudioVolumeMeter, c7338b95, 52b8, 4542, aa, 79, 42, eb, 01, 6c, 8c, 1c);
  48. //DEFINE_CLSID(AudioVolumeMeter_Debug, 524bd872, 5c0b, 4217, bd, b8, 0a, 86, 81, 83, 0b, a5);
  49. //DEFINE_CLSID(AudioReverb, 8bb7778b, 645b, 4475, 9a, 73, 1d, e3, 17, 0b, d3, af);
  50. //DEFINE_CLSID(AudioReverb_Debug, da7738a2, cd0c, 4367, 9a, ac, d7, ea, d7, c6, 4f, 98);
  51.  
  52. // XAudio 2.5 (March 2009 SDK)
  53. DEFINE_CLSID(AudioVolumeMeter, 2139e6da, c341, 4774, 9a, c3, b4, e0, 26, 34, 7f, 64);
  54. DEFINE_CLSID(AudioVolumeMeter_Debug, a5cc4e13, ca00, 416b, a6, ee, 49, fe, e7, b5, 43, d0);
  55. DEFINE_CLSID(AudioReverb, d06df0d0, 8518, 441e, 82, 2f, 54, 51, d5, c5, 95, b8);
  56. DEFINE_CLSID(AudioReverb_Debug, 613604ec, 304c, 45ec, a4, ed, 7a, 1c, 61, 2e, 9e, 72);
  57.  
  58. // Ignore the rest of this header if only the GUID definitions were requested
  59. #ifndef GUID_DEFS_ONLY
  60.  
  61. #ifdef _XBOX
  62.     #include <xobjbase.h>   // Xbox COM declarations (IUnknown, etc)
  63. #else
  64.     #include <objbase.h>    // Windows COM declarations
  65. #endif
  66. #include <math.h>           // For log10()
  67.  
  68.  
  69. // All structures defined in this file should use tight packing
  70. #pragma pack(push, 1)
  71.  
  72.  
  73. /**************************************************************************
  74.  *
  75.  * Effect creation functions.  On Windows, these are just inline functions
  76.  * that call CoCreateInstance and Initialize; the XAUDIO2FX_DEBUG flag can
  77.  * be used to select the debug version of the effects.  On Xbox, these map
  78.  * to real functions included in xaudio2.lib, and the XAUDIO2FX_DEBUG flag
  79.  * is ignored; the application must link with the debug library to use the
  80.  * debug functionality.
  81.  *
  82.  **************************************************************************/
  83.  
  84. // Use default values for some parameters if building C++ code
  85. #ifdef __cplusplus
  86.     #define DEFAULT(x) =x
  87. #else
  88.     #define DEFAULT(x)
  89. #endif
  90.  
  91. #define XAUDIO2FX_DEBUG 1   // To select the debug version of an effect
  92.  
  93. #ifdef _XBOX
  94.  
  95.     STDAPI CreateAudioVolumeMeter(__deref_out IUnknown** ppApo);
  96.     STDAPI CreateAudioReverb(__deref_out IUnknown** ppApo);
  97.  
  98.     __inline HRESULT XAudio2CreateVolumeMeter(__deref_out IUnknown** ppApo, UINT32 /*Flags*/ DEFAULT(0))
  99.     {
  100.         return CreateAudioVolumeMeter(ppApo);
  101.     }
  102.  
  103.     __inline HRESULT XAudio2CreateReverb(__deref_out IUnknown** ppApo, UINT32 /*Flags*/ DEFAULT(0))
  104.     {
  105.         return CreateAudioReverb(ppApo);
  106.     }
  107.  
  108. #else // Windows
  109.  
  110.     __inline HRESULT XAudio2CreateVolumeMeter(__deref_out IUnknown** ppApo, UINT32 Flags DEFAULT(0))
  111.     {
  112.         #ifdef __cplusplus
  113.             return CoCreateInstance((Flags & XAUDIO2FX_DEBUG) ? __uuidof(AudioVolumeMeter_Debug)
  114.                                                               : __uuidof(AudioVolumeMeter),
  115.                                     NULL, CLSCTX_INPROC_SERVER, __uuidof(IUnknown), (void**)ppApo);
  116.         #else
  117.             return CoCreateInstance((Flags & XAUDIO2FX_DEBUG) ? &CLSID_AudioVolumeMeter_Debug
  118.                                                               : &CLSID_AudioVolumeMeter,
  119.                                     NULL, CLSCTX_INPROC_SERVER, &IID_IUnknown, (void**)ppApo);
  120.         #endif
  121.     }
  122.  
  123.     __inline HRESULT XAudio2CreateReverb(__deref_out IUnknown** ppApo, UINT32 Flags DEFAULT(0))
  124.     {
  125.         #ifdef __cplusplus
  126.             return CoCreateInstance((Flags & XAUDIO2FX_DEBUG) ? __uuidof(AudioReverb_Debug)
  127.                                                               : __uuidof(AudioReverb),
  128.                                     NULL, CLSCTX_INPROC_SERVER, __uuidof(IUnknown), (void**)ppApo);
  129.         #else
  130.             return CoCreateInstance((Flags & XAUDIO2FX_DEBUG) ? &CLSID_AudioReverb_Debug
  131.                                                               : &CLSID_AudioReverb,
  132.                                     NULL, CLSCTX_INPROC_SERVER, &IID_IUnknown, (void**)ppApo);
  133.         #endif
  134.     }
  135.  
  136. #endif // #ifdef _XBOX
  137.  
  138.  
  139.  
  140. /**************************************************************************
  141.  *
  142.  * Volume meter parameters.
  143.  * The volume meter supports FLOAT32 audio formats and must be used in-place.
  144.  *
  145.  **************************************************************************/
  146.  
  147. // XAUDIO2FX_VOLUMEMETER_LEVELS: Receives results from GetEffectParameters().
  148. // The user is responsible for allocating pPeakLevels, pRMSLevels, and
  149. // initializing ChannelCount accordingly.
  150. // The volume meter does not support SetEffectParameters().
  151. typedef struct XAUDIO2FX_VOLUMEMETER_LEVELS
  152. {
  153.     float* pPeakLevels;  // Peak levels table: receives maximum absolute level for each channel
  154.                          // over a processing pass; may be NULL if pRMSLevls != NULL,
  155.                          // otherwise must have at least ChannelCount elements.
  156.     float* pRMSLevels;   // Root mean square levels table: receives RMS level for each channel
  157.                          // over a processing pass; may be NULL if pPeakLevels != NULL,
  158.                          // otherwise must have at least ChannelCount elements.
  159.     UINT32 ChannelCount; // Number of channels being processed by the volume meter APO
  160. } XAUDIO2FX_VOLUMEMETER_LEVELS;
  161.  
  162.  
  163.  
  164. /**************************************************************************
  165.  *
  166.  * Reverb parameters.
  167.  * The reverb supports only FLOAT32 audio with the following channel
  168.  * configurations:
  169.  *     Input: Mono   Output: Mono
  170.  *     Input: Stereo Output: Stereo
  171.  *     Input: Stereo Output: 5.1
  172.  * The framerate must be within [20000, 48000] Hz.
  173.  *
  174.  * When configured to mono, delay filters associated with the right channel
  175.  * are not executed.  In this case, parameters such as PositionRight and
  176.  * PositionMatrixRight have no effect.  This also means the reverb uses
  177.  * less CPU when configured to mono.
  178.  *
  179.  **************************************************************************/
  180.  
  181. #define XAUDIO2FX_REVERB_MIN_FRAMERATE 20000
  182. #define XAUDIO2FX_REVERB_MAX_FRAMERATE 48000
  183.  
  184. // XAUDIO2FX_REVERB_PARAMETERS: Native parameter set for the reverb effect
  185.  
  186. typedef struct XAUDIO2FX_REVERB_PARAMETERS
  187. {
  188.     // ratio of wet (processed) signal to dry (original) signal
  189.     float WetDryMix;            // [0, 100] (percentage)
  190.  
  191.     // Delay times
  192.     UINT32 ReflectionsDelay;    // [0, 300] in ms
  193.     BYTE ReverbDelay;           // [0, 85] in ms
  194.     BYTE RearDelay;             // [0, 5] in ms
  195.  
  196.     // Indexed parameters
  197.     BYTE PositionLeft;          // [0, 30] no units
  198.     BYTE PositionRight;         // [0, 30] no units, ignored when configured to mono
  199.     BYTE PositionMatrixLeft;    // [0, 30] no units
  200.     BYTE PositionMatrixRight;   // [0, 30] no units, ignored when configured to mono
  201.     BYTE EarlyDiffusion;        // [0, 15] no units
  202.     BYTE LateDiffusion;         // [0, 15] no units
  203.     BYTE LowEQGain;             // [0, 12] no units
  204.     BYTE LowEQCutoff;           // [0, 9] no units
  205.     BYTE HighEQGain;            // [0, 8] no units
  206.     BYTE HighEQCutoff;          // [0, 14] no units
  207.  
  208.     // Direct parameters
  209.     float RoomFilterFreq;       // [20, 20000] in Hz
  210.     float RoomFilterMain;       // [-100, 0] in dB
  211.     float RoomFilterHF;         // [-100, 0] in dB
  212.     float ReflectionsGain;      // [-100, 20] in dB
  213.     float ReverbGain;           // [-100, 20] in dB
  214.     float DecayTime;            // [0.1, inf] in seconds
  215.     float Density;              // [0, 100] (percentage)
  216.     float RoomSize;             // [1, 100] in feet
  217. } XAUDIO2FX_REVERB_PARAMETERS;
  218.  
  219.  
  220. // Maximum, minimum and default values for the parameters above
  221. #define XAUDIO2FX_REVERB_MIN_WET_DRY_MIX            0.0f
  222. #define XAUDIO2FX_REVERB_MIN_REFLECTIONS_DELAY      0
  223. #define XAUDIO2FX_REVERB_MIN_REVERB_DELAY           0
  224. #define XAUDIO2FX_REVERB_MIN_REAR_DELAY             0
  225. #define XAUDIO2FX_REVERB_MIN_POSITION               0
  226. #define XAUDIO2FX_REVERB_MIN_DIFFUSION              0
  227. #define XAUDIO2FX_REVERB_MIN_LOW_EQ_GAIN            0
  228. #define XAUDIO2FX_REVERB_MIN_LOW_EQ_CUTOFF          0
  229. #define XAUDIO2FX_REVERB_MIN_HIGH_EQ_GAIN           0
  230. #define XAUDIO2FX_REVERB_MIN_HIGH_EQ_CUTOFF         0
  231. #define XAUDIO2FX_REVERB_MIN_ROOM_FILTER_FREQ       20.0f
  232. #define XAUDIO2FX_REVERB_MIN_ROOM_FILTER_MAIN       -100.0f
  233. #define XAUDIO2FX_REVERB_MIN_ROOM_FILTER_HF         -100.0f
  234. #define XAUDIO2FX_REVERB_MIN_REFLECTIONS_GAIN       -100.0f
  235. #define XAUDIO2FX_REVERB_MIN_REVERB_GAIN            -100.0f
  236. #define XAUDIO2FX_REVERB_MIN_DECAY_TIME             0.1f
  237. #define XAUDIO2FX_REVERB_MIN_DENSITY                0.0f
  238. #define XAUDIO2FX_REVERB_MIN_ROOM_SIZE              0.0f
  239.  
  240. #define XAUDIO2FX_REVERB_MAX_WET_DRY_MIX            100.0f
  241. #define XAUDIO2FX_REVERB_MAX_REFLECTIONS_DELAY      300
  242. #define XAUDIO2FX_REVERB_MAX_REVERB_DELAY           85
  243. #define XAUDIO2FX_REVERB_MAX_REAR_DELAY             5
  244. #define XAUDIO2FX_REVERB_MAX_POSITION               30
  245. #define XAUDIO2FX_REVERB_MAX_DIFFUSION              15
  246. #define XAUDIO2FX_REVERB_MAX_LOW_EQ_GAIN            12
  247. #define XAUDIO2FX_REVERB_MAX_LOW_EQ_CUTOFF          9
  248. #define XAUDIO2FX_REVERB_MAX_HIGH_EQ_GAIN           8
  249. #define XAUDIO2FX_REVERB_MAX_HIGH_EQ_CUTOFF         14
  250. #define XAUDIO2FX_REVERB_MAX_ROOM_FILTER_FREQ       20000.0f
  251. #define XAUDIO2FX_REVERB_MAX_ROOM_FILTER_MAIN       0.0f
  252. #define XAUDIO2FX_REVERB_MAX_ROOM_FILTER_HF         0.0f
  253. #define XAUDIO2FX_REVERB_MAX_REFLECTIONS_GAIN       20.0f
  254. #define XAUDIO2FX_REVERB_MAX_REVERB_GAIN            20.0f
  255. #define XAUDIO2FX_REVERB_MAX_DENSITY                100.0f
  256. #define XAUDIO2FX_REVERB_MAX_ROOM_SIZE              100.0f
  257.  
  258. #define XAUDIO2FX_REVERB_DEFAULT_WET_DRY_MIX        100.0f
  259. #define XAUDIO2FX_REVERB_DEFAULT_REFLECTIONS_DELAY  5
  260. #define XAUDIO2FX_REVERB_DEFAULT_REVERB_DELAY       5
  261. #define XAUDIO2FX_REVERB_DEFAULT_REAR_DELAY         5
  262. #define XAUDIO2FX_REVERB_DEFAULT_POSITION           6
  263. #define XAUDIO2FX_REVERB_DEFAULT_POSITION_MATRIX    27
  264. #define XAUDIO2FX_REVERB_DEFAULT_EARLY_DIFFUSION    8
  265. #define XAUDIO2FX_REVERB_DEFAULT_LATE_DIFFUSION     8
  266. #define XAUDIO2FX_REVERB_DEFAULT_LOW_EQ_GAIN        8
  267. #define XAUDIO2FX_REVERB_DEFAULT_LOW_EQ_CUTOFF      4
  268. #define XAUDIO2FX_REVERB_DEFAULT_HIGH_EQ_GAIN       8
  269. #define XAUDIO2FX_REVERB_DEFAULT_HIGH_EQ_CUTOFF     4
  270. #define XAUDIO2FX_REVERB_DEFAULT_ROOM_FILTER_FREQ   5000.0f
  271. #define XAUDIO2FX_REVERB_DEFAULT_ROOM_FILTER_MAIN   0.0f
  272. #define XAUDIO2FX_REVERB_DEFAULT_ROOM_FILTER_HF     0.0f
  273. #define XAUDIO2FX_REVERB_DEFAULT_REFLECTIONS_GAIN   0.0f
  274. #define XAUDIO2FX_REVERB_DEFAULT_REVERB_GAIN        0.0f
  275. #define XAUDIO2FX_REVERB_DEFAULT_DECAY_TIME         1.0f
  276. #define XAUDIO2FX_REVERB_DEFAULT_DENSITY            100.0f
  277. #define XAUDIO2FX_REVERB_DEFAULT_ROOM_SIZE          100.0f
  278.  
  279.  
  280. // XAUDIO2FX_REVERB_I3DL2_PARAMETERS: Parameter set compliant with the I3DL2 standard
  281.  
  282. typedef struct XAUDIO2FX_REVERB_I3DL2_PARAMETERS
  283. {
  284.     // ratio of wet (processed) signal to dry (original) signal
  285.     float WetDryMix;            // [0, 100] (percentage)
  286.  
  287.     // Standard I3DL2 parameters
  288.     INT32 Room;                 // [-10000, 0] in mB (hundredths of decibels)
  289.     INT32 RoomHF;               // [-10000, 0] in mB (hundredths of decibels)
  290.     float RoomRolloffFactor;    // [0.0, 10.0]
  291.     float DecayTime;            // [0.1, 20.0] in seconds
  292.     float DecayHFRatio;         // [0.1, 2.0]
  293.     INT32 Reflections;          // [-10000, 1000] in mB (hundredths of decibels)
  294.     float ReflectionsDelay;     // [0.0, 0.3] in seconds
  295.     INT32 Reverb;               // [-10000, 2000] in mB (hundredths of decibels)
  296.     float ReverbDelay;          // [0.0, 0.1] in seconds
  297.     float Diffusion;            // [0.0, 100.0] (percentage)
  298.     float Density;              // [0.0, 100.0] (percentage)
  299.     float HFReference;          // [20.0, 20000.0] in Hz
  300. } XAUDIO2FX_REVERB_I3DL2_PARAMETERS;
  301.  
  302.  
  303. // ReverbConvertI3DL2ToNative: Utility function to map from I3DL2 to native parameters
  304.  
  305. __inline void ReverbConvertI3DL2ToNative
  306. (
  307.     __in const XAUDIO2FX_REVERB_I3DL2_PARAMETERS* pI3DL2,
  308.     __out XAUDIO2FX_REVERB_PARAMETERS* pNative
  309. )
  310. {
  311.     float reflectionsDelay;
  312.     float reverbDelay;
  313.  
  314.     // RoomRolloffFactor is ignored
  315.  
  316.     // These parameters have no equivalent in I3DL2
  317.     pNative->RearDelay = XAUDIO2FX_REVERB_DEFAULT_REAR_DELAY; // 5
  318.     pNative->PositionLeft = XAUDIO2FX_REVERB_DEFAULT_POSITION; // 6
  319.     pNative->PositionRight = XAUDIO2FX_REVERB_DEFAULT_POSITION; // 6
  320.     pNative->PositionMatrixLeft = XAUDIO2FX_REVERB_DEFAULT_POSITION_MATRIX; // 27
  321.     pNative->PositionMatrixRight = XAUDIO2FX_REVERB_DEFAULT_POSITION_MATRIX; // 27
  322.     pNative->RoomSize = XAUDIO2FX_REVERB_DEFAULT_ROOM_SIZE; // 100
  323.     pNative->LowEQCutoff = 4;
  324.     pNative->HighEQCutoff = 6;
  325.  
  326.     // The rest of the I3DL2 parameters map to the native property set
  327.     pNative->RoomFilterMain = (float)pI3DL2->Room / 100.0f;
  328.     pNative->RoomFilterHF = (float)pI3DL2->RoomHF / 100.0f;
  329.  
  330.     if (pI3DL2->DecayHFRatio >= 1.0f)
  331.     {
  332.         INT32 index = (INT32)(-4.0 * log10(pI3DL2->DecayHFRatio));
  333.         if (index < -8) index = -8;
  334.         pNative->LowEQGain = (BYTE)((index < 0) ? index + 8 : 8);
  335.         pNative->HighEQGain = 8;
  336.         pNative->DecayTime = pI3DL2->DecayTime * pI3DL2->DecayHFRatio;
  337.     }
  338.     else
  339.     {
  340.         INT32 index = (INT32)(4.0 * log10(pI3DL2->DecayHFRatio));
  341.         if (index < -8) index = -8;
  342.         pNative->LowEQGain = 8;
  343.         pNative->HighEQGain = (BYTE)((index < 0) ? index + 8 : 8);
  344.         pNative->DecayTime = pI3DL2->DecayTime;
  345.     }
  346.  
  347.     reflectionsDelay = pI3DL2->ReflectionsDelay * 1000.0f;
  348.     if (reflectionsDelay >= XAUDIO2FX_REVERB_MAX_REFLECTIONS_DELAY) // 300
  349.     {
  350.         reflectionsDelay = (float)(XAUDIO2FX_REVERB_MAX_REFLECTIONS_DELAY - 1);
  351.     }
  352.     else if (reflectionsDelay <= 1)
  353.     {
  354.         reflectionsDelay = 1;
  355.     }
  356.     pNative->ReflectionsDelay = (UINT32)reflectionsDelay;
  357.  
  358.     reverbDelay = pI3DL2->ReverbDelay * 1000.0f;
  359.     if (reverbDelay >= XAUDIO2FX_REVERB_MAX_REVERB_DELAY) // 85
  360.     {
  361.         reverbDelay = (float)(XAUDIO2FX_REVERB_MAX_REVERB_DELAY - 1);
  362.     }
  363.     pNative->ReverbDelay = (BYTE)reverbDelay;
  364.  
  365.     pNative->ReflectionsGain = pI3DL2->Reflections / 100.0f;
  366.     pNative->ReverbGain = pI3DL2->Reverb / 100.0f;
  367.     pNative->EarlyDiffusion = (BYTE)(15.0f * pI3DL2->Diffusion / 100.0f);
  368.     pNative->LateDiffusion = pNative->EarlyDiffusion;
  369.     pNative->Density = pI3DL2->Density;
  370.     pNative->RoomFilterFreq = pI3DL2->HFReference;
  371.  
  372.     pNative->WetDryMix = pI3DL2->WetDryMix;
  373. }
  374.  
  375.  
  376. /**************************************************************************
  377.  *
  378.  * Standard I3DL2 reverb presets (100% wet).
  379.  *
  380.  **************************************************************************/
  381.  
  382. #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}
  383. #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}
  384. #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}
  385. #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}
  386. #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}
  387. #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}
  388. #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}
  389. #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}
  390. #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}
  391. #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}
  392. #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}
  393. #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}
  394. #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}
  395. #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}
  396. #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}
  397. #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}
  398. #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}
  399. #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}
  400. #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}
  401. #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}
  402. #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}
  403. #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}
  404. #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}
  405. #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}
  406. #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}
  407. #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}
  408. #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}
  409. #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}
  410. #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}
  411. #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}
  412.  
  413.  
  414. // Undo the #pragma pack(push, 1) at the top of this file
  415. #pragma pack(pop)
  416.  
  417. #endif // #ifndef GUID_DEFS_ONLY
  418. #endif // #ifndef __XAUDIO2FX_INCLUDED__
  419.