Main Page Modules Namespace List Class Hierarchy Alphabetical List Compound List File List Namespace Members Compound Members File Members Related Pages

# eax.h

Go to the documentation of this file.

    00001 /******************************************************************
    00002 *
    00003 *  EAX.H - DirectSound3D Environmental Audio Extensions version 2.0
    00004 *  Updated July 8, 1999
    00005 *
    00006 *******************************************************************
    00007 */
    00008
    00009 #ifndef EAX_H_INCLUDED
    00010 #define EAX_H_INCLUDED
    00011
    00012 #ifdef __cplusplus
    00013 extern "C" {
    00014 #endif // __cplusplus
    00015
    00016 #ifndef OPENAL
    00017     #include <dsound.h>
    00018     /*
    00019     * EAX Wrapper Interface (using Direct X 7) {4FF53B81-1CE0-11d3-AAB8-00A0C95949D5}
    00020     */
    00021     DEFINE_GUID(CLSID_EAXDirectSound,
    00022         0x4ff53b81,
    00023         0x1ce0,
    00024         0x11d3,
    00025         0xaa, 0xb8, 0x0, 0xa0, 0xc9, 0x59, 0x49, 0xd5);
    00026
    00027     /*
    00028     * EAX Wrapper Interface (using Direct X 8) {CA503B60-B176-11d4-A094-D0C0BF3A560C}
    00029     */
    00030     DEFINE_GUID(CLSID_EAXDirectSound8,
    00031         0xca503b60,
    00032         0xb176,
    00033         0x11d4,
    00034         0xa0, 0x94, 0xd0, 0xc0, 0xbf, 0x3a, 0x56, 0xc);
    00035
    00036 #ifdef DIRECTSOUND_VERSION
    00037 #if DIRECTSOUND_VERSION == 0x0800
    00038         __declspec(dllimport) HRESULT WINAPI EAXDirectSoundCreate8(GUID*, LPDIRECTSOUND8*, IUnknown FAR *);
    00039         typedef HRESULT (FAR PASCAL *LPEAXDIRECTSOUNDCREATE8)(GUID*, LPDIRECTSOUND8*, IUnknown FAR*);
    00040 #endif
    00041 #endif
    00042
    00043     __declspec(dllimport) HRESULT WINAPI EAXDirectSoundCreate(GUID*, LPDIRECTSOUND*, IUnknown FAR *);
    00044     typedef HRESULT (FAR PASCAL *LPEAXDIRECTSOUNDCREATE)(GUID*, LPDIRECTSOUND*, IUnknown FAR*);
    00045
    00046 #else
    00047     #include <al.h>
    00048
    00049     #ifndef GUID_DEFINED
    00050         #define GUID_DEFINED
    00051         typedef struct _GUID
    00052         {
    00053             unsigned long Data1;
    00054             unsigned short Data2;
    00055             unsigned short Data3;
    00056             unsigned char Data4[8];
    00057         } GUID;
    00058     #endif // !GUID_DEFINED
    00059
    00060     #ifndef DEFINE_GUID
    00061         #ifndef INITGUID
    00062             #define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \
    00063                     extern const GUID FAR name
    00064         #else
    00065             #define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \
    00066                     extern const GUID name = { l, w1, w2, { b1, b2,  b3,  b4,  b5,  b6,  b7,  b8 } }
    00067         #endif // INITGUID
    00068     #endif // DEFINE_GUID
    00069
    00070     /*
    00071     * EAX OpenAL Extension {4FF53B81-1CE0-11d3-AAB8-00A0C95949D5}
    00072     */
    00073     typedef ALenum (*EAXSet)(const GUID*, ALuint, ALuint, ALvoid*, ALuint);
    00074     typedef ALenum (*EAXGet)(const GUID*, ALuint, ALuint, ALvoid*, ALuint);
    00075 #endif
    00076
    00077 #pragma pack(push, 4)
    00078
    00079 /*
    00080 * EAX 2.0 listener property set {0306A6A8-B224-11d2-99E5-0000E8D8C722}
    00081 */
    00082 DEFINE_GUID(DSPROPSETID_EAX20_ListenerProperties,
    00083     0x306a6a8,
    00084     0xb224,
    00085     0x11d2,
    00086     0x99, 0xe5, 0x0, 0x0, 0xe8, 0xd8, 0xc7, 0x22);
    00087
    00088 // For compatibility with future EAX versions:
    00089 #define DSPROPSETID_EAX_ListenerProperties DSPROPSETID_EAX20_ListenerProperties
    00090 #define DSPROPSETID_EAX_SourceProperties DSPROPSETID_EAX20_BufferProperties
    00091
    00092 typedef enum
    00093 {
    00094     DSPROPERTY_EAXLISTENER_NONE,
    00095     DSPROPERTY_EAXLISTENER_ALLPARAMETERS,
    00096     DSPROPERTY_EAXLISTENER_ROOM,
    00097     DSPROPERTY_EAXLISTENER_ROOMHF,
    00098     DSPROPERTY_EAXLISTENER_ROOMROLLOFFFACTOR,
    00099     DSPROPERTY_EAXLISTENER_DECAYTIME,
    00100     DSPROPERTY_EAXLISTENER_DECAYHFRATIO,
    00101     DSPROPERTY_EAXLISTENER_REFLECTIONS,
    00102     DSPROPERTY_EAXLISTENER_REFLECTIONSDELAY,
    00103     DSPROPERTY_EAXLISTENER_REVERB,
    00104     DSPROPERTY_EAXLISTENER_REVERBDELAY,
    00105     DSPROPERTY_EAXLISTENER_ENVIRONMENT,
    00106     DSPROPERTY_EAXLISTENER_ENVIRONMENTSIZE,
    00107     DSPROPERTY_EAXLISTENER_ENVIRONMENTDIFFUSION,
    00108     DSPROPERTY_EAXLISTENER_AIRABSORPTIONHF,
    00109     DSPROPERTY_EAXLISTENER_FLAGS
    00110 } DSPROPERTY_EAX_LISTENERPROPERTY;
    00111
    00112 // OR these flags with property id
    00113 #define DSPROPERTY_EAXLISTENER_IMMEDIATE 0x00000000 // changes take effect immediately
    00114 #define DSPROPERTY_EAXLISTENER_DEFERRED  0x80000000 // changes take effect later
    00115 #define DSPROPERTY_EAXLISTENER_COMMITDEFERREDSETTINGS (DSPROPERTY_EAXLISTENER_NONE | \
    00116                                                        DSPROPERTY_EAXLISTENER_IMMEDIATE)
    00117
    00118 // Use this structure for DSPROPERTY_EAXLISTENER_ALLPARAMETERS
    00119 // - all levels are hundredths of decibels
    00120 // - all times are in seconds
    00121 // - the reference for high frequency controls is 5 kHz
    00122 //
    00123 // NOTE: This structure may change in future EAX versions.
    00124 //       It is recommended to initialize fields by name:
    00125 //              myListener.lRoom = -1000;
    00126 //              myListener.lRoomHF = -100;
    00127 //              ...
    00128 //              myListener.dwFlags = myFlags /* see EAXLISTENERFLAGS below */ ;
    00129 //       instead of:
    00130 //              myListener = { -1000, -100, ... , 0x00000009 };
    00131 //       If you want to save and load presets in binary form, you
    00132 //       should define your own structure to insure future compatibility.
    00133 //
    00134 typedef struct _EAXLISTENERPROPERTIES
    00135 {
    00136     long lRoom;                    // room effect level at low frequencies
    00137     long lRoomHF;                  // room effect high-frequency level re. low frequency level
    00138     float flRoomRolloffFactor;     // like DS3D flRolloffFactor but for room effect
    00139     float flDecayTime;             // reverberation decay time at low frequencies
    00140     float flDecayHFRatio;          // high-frequency to low-frequency decay time ratio
    00141     long lReflections;             // early reflections level relative to room effect
    00142     float flReflectionsDelay;      // initial reflection delay time
    00143     long lReverb;                  // late reverberation level relative to room effect
    00144     float flReverbDelay;           // late reverberation delay time relative to initial reflection
    00145     unsigned long dwEnvironment;   // sets all listener properties
    00146     float flEnvironmentSize;       // environment size in meters
    00147     float flEnvironmentDiffusion;  // environment diffusion
    00148     float flAirAbsorptionHF;       // change in level per meter at 5 kHz
    00149     unsigned long dwFlags;         // modifies the behavior of properties
    00150 } EAXLISTENERPROPERTIES, *LPEAXLISTENERPROPERTIES;
    00151
    00152 // used by DSPROPERTY_EAXLISTENER_ENVIRONMENT
    00153 enum
    00154 {
    00155     EAX_ENVIRONMENT_GENERIC,
    00156     EAX_ENVIRONMENT_PADDEDCELL,
    00157     EAX_ENVIRONMENT_ROOM,
    00158     EAX_ENVIRONMENT_BATHROOM,
    00159     EAX_ENVIRONMENT_LIVINGROOM,
    00160     EAX_ENVIRONMENT_STONEROOM,
    00161     EAX_ENVIRONMENT_AUDITORIUM,
    00162     EAX_ENVIRONMENT_CONCERTHALL,
    00163     EAX_ENVIRONMENT_CAVE,
    00164     EAX_ENVIRONMENT_ARENA,
    00165     EAX_ENVIRONMENT_HANGAR,
    00166     EAX_ENVIRONMENT_CARPETEDHALLWAY,
    00167     EAX_ENVIRONMENT_HALLWAY,
    00168     EAX_ENVIRONMENT_STONECORRIDOR,
    00169     EAX_ENVIRONMENT_ALLEY,
    00170     EAX_ENVIRONMENT_FOREST,
    00171     EAX_ENVIRONMENT_CITY,
    00172     EAX_ENVIRONMENT_MOUNTAINS,
    00173     EAX_ENVIRONMENT_QUARRY,
    00174     EAX_ENVIRONMENT_PLAIN,
    00175     EAX_ENVIRONMENT_PARKINGLOT,
    00176     EAX_ENVIRONMENT_SEWERPIPE,
    00177     EAX_ENVIRONMENT_UNDERWATER,
    00178     EAX_ENVIRONMENT_DRUGGED,
    00179     EAX_ENVIRONMENT_DIZZY,
    00180     EAX_ENVIRONMENT_PSYCHOTIC,
    00181
    00182     EAX_ENVIRONMENT_COUNT
    00183 };
    00184
    00185 // Used by DSPROPERTY_EAXLISTENER_FLAGS
    00186 //
    00187 // Note: The number and order of flags may change in future EAX versions.
    00188 //       It is recommended to use the flag defines as follows:
    00189 //              myFlags = EAXLISTENERFLAGS_DECAYTIMESCALE | EAXLISTENERFLAGS_REVERBSCALE;
    00190 //       instead of:
    00191 //              myFlags = 0x00000009;
    00192 //
    00193 // These flags determine what properties are affected by environment size.
    00194 #define EAXLISTENERFLAGS_DECAYTIMESCALE        0x00000001 // reverberation decay time
    00195 #define EAXLISTENERFLAGS_REFLECTIONSSCALE      0x00000002 // reflection level
    00196 #define EAXLISTENERFLAGS_REFLECTIONSDELAYSCALE 0x00000004 // initial reflection delay time
    00197 #define EAXLISTENERFLAGS_REVERBSCALE           0x00000008 // reflections level
    00198 #define EAXLISTENERFLAGS_REVERBDELAYSCALE      0x00000010 // late reverberation delay time
    00199
    00200 // This flag limits high-frequency decay time according to air absorption.
    00201 #define EAXLISTENERFLAGS_DECAYHFLIMIT          0x00000020
    00202
    00203 #define EAXLISTENERFLAGS_RESERVED              0xFFFFFFC0 // reserved future use
    00204
    00205 // property ranges and defaults:
    00206
    00207 #define EAXLISTENER_MINROOM                       (-10000)
    00208 #define EAXLISTENER_MAXROOM                       0
    00209 #define EAXLISTENER_DEFAULTROOM                   (-1000)
    00210
    00211 #define EAXLISTENER_MINROOMHF                     (-10000)
    00212 #define EAXLISTENER_MAXROOMHF                     0
    00213 #define EAXLISTENER_DEFAULTROOMHF                 (-100)
    00214
    00215 #define EAXLISTENER_MINROOMROLLOFFFACTOR          0.0f
    00216 #define EAXLISTENER_MAXROOMROLLOFFFACTOR          10.0f
    00217 #define EAXLISTENER_DEFAULTROOMROLLOFFFACTOR      0.0f
    00218
    00219 #define EAXLISTENER_MINDECAYTIME                  0.1f
    00220 #define EAXLISTENER_MAXDECAYTIME                  20.0f
    00221 #define EAXLISTENER_DEFAULTDECAYTIME              1.49f
    00222
    00223 #define EAXLISTENER_MINDECAYHFRATIO               0.1f
    00224 #define EAXLISTENER_MAXDECAYHFRATIO               2.0f
    00225 #define EAXLISTENER_DEFAULTDECAYHFRATIO           0.83f
    00226
    00227 #define EAXLISTENER_MINREFLECTIONS                (-10000)
    00228 #define EAXLISTENER_MAXREFLECTIONS                1000
    00229 #define EAXLISTENER_DEFAULTREFLECTIONS            (-2602)
    00230
    00231 #define EAXLISTENER_MINREFLECTIONSDELAY           0.0f
    00232 #define EAXLISTENER_MAXREFLECTIONSDELAY           0.3f
    00233 #define EAXLISTENER_DEFAULTREFLECTIONSDELAY       0.007f
    00234
    00235 #define EAXLISTENER_MINREVERB                     (-10000)
    00236 #define EAXLISTENER_MAXREVERB                     2000
    00237 #define EAXLISTENER_DEFAULTREVERB                 200
    00238
    00239 #define EAXLISTENER_MINREVERBDELAY                0.0f
    00240 #define EAXLISTENER_MAXREVERBDELAY                0.1f
    00241 #define EAXLISTENER_DEFAULTREVERBDELAY            0.011f
    00242
    00243 #define EAXLISTENER_MINENVIRONMENT                0
    00244 #define EAXLISTENER_MAXENVIRONMENT                (EAX_ENVIRONMENT_COUNT-1)
    00245 #define EAXLISTENER_DEFAULTENVIRONMENT            EAX_ENVIRONMENT_GENERIC
    00246
    00247 #define EAXLISTENER_MINENVIRONMENTSIZE            1.0f
    00248 #define EAXLISTENER_MAXENVIRONMENTSIZE            100.0f
    00249 #define EAXLISTENER_DEFAULTENVIRONMENTSIZE        7.5f
    00250
    00251 #define EAXLISTENER_MINENVIRONMENTDIFFUSION       0.0f
    00252 #define EAXLISTENER_MAXENVIRONMENTDIFFUSION       1.0f
    00253 #define EAXLISTENER_DEFAULTENVIRONMENTDIFFUSION   1.0f
    00254
    00255 #define EAXLISTENER_MINAIRABSORPTIONHF            (-100.0f)
    00256 #define EAXLISTENER_MAXAIRABSORPTIONHF            0.0f
    00257 #define EAXLISTENER_DEFAULTAIRABSORPTIONHF        (-5.0f)
    00258
    00259 #define EAXLISTENER_DEFAULTFLAGS                  (EAXLISTENERFLAGS_DECAYTIMESCALE |        \
    00260                                                    EAXLISTENERFLAGS_REFLECTIONSSCALE |      \
    00261                                                    EAXLISTENERFLAGS_REFLECTIONSDELAYSCALE | \
    00262                                                    EAXLISTENERFLAGS_REVERBSCALE |           \
    00263                                                    EAXLISTENERFLAGS_REVERBDELAYSCALE |      \
    00264                                                    EAXLISTENERFLAGS_DECAYHFLIMIT)
    00265
    00266
    00267
    00268 /*
    00269 * EAX 2.0 buffer property set {0306A6A7-B224-11d2-99E5-0000E8D8C722}
    00270 */
    00271 DEFINE_GUID(DSPROPSETID_EAX20_BufferProperties,
    00272     0x306a6a7,
    00273     0xb224,
    00274     0x11d2,
    00275     0x99, 0xe5, 0x0, 0x0, 0xe8, 0xd8, 0xc7, 0x22);
    00276
    00277 // For compatibility with future EAX versions:
    00278 #define DSPROPSETID_EAX_BufferProperties DSPROPSETID_EAX20_BufferProperties
    00279
    00280 typedef enum
    00281 {
    00282     DSPROPERTY_EAXBUFFER_NONE,
    00283     DSPROPERTY_EAXBUFFER_ALLPARAMETERS,
    00284     DSPROPERTY_EAXBUFFER_DIRECT,
    00285     DSPROPERTY_EAXBUFFER_DIRECTHF,
    00286     DSPROPERTY_EAXBUFFER_ROOM,
    00287     DSPROPERTY_EAXBUFFER_ROOMHF,
    00288     DSPROPERTY_EAXBUFFER_ROOMROLLOFFFACTOR,
    00289     DSPROPERTY_EAXBUFFER_OBSTRUCTION,
    00290     DSPROPERTY_EAXBUFFER_OBSTRUCTIONLFRATIO,
    00291     DSPROPERTY_EAXBUFFER_OCCLUSION,
    00292     DSPROPERTY_EAXBUFFER_OCCLUSIONLFRATIO,
    00293     DSPROPERTY_EAXBUFFER_OCCLUSIONROOMRATIO,
    00294     DSPROPERTY_EAXBUFFER_OUTSIDEVOLUMEHF,
    00295     DSPROPERTY_EAXBUFFER_AIRABSORPTIONFACTOR,
    00296     DSPROPERTY_EAXBUFFER_FLAGS
    00297 } DSPROPERTY_EAX_BUFFERPROPERTY;
    00298
    00299 // OR these flags with property id
    00300 #define DSPROPERTY_EAXBUFFER_IMMEDIATE 0x00000000 // changes take effect immediately
    00301 #define DSPROPERTY_EAXBUFFER_DEFERRED  0x80000000 // changes take effect later
    00302 #define DSPROPERTY_EAXBUFFER_COMMITDEFERREDSETTINGS (DSPROPERTY_EAXBUFFER_NONE | \
    00303                                                      DSPROPERTY_EAXBUFFER_IMMEDIATE)
    00304
    00305 // Use this structure for DSPROPERTY_EAXBUFFER_ALLPARAMETERS
    00306 // - all levels are hundredths of decibels
    00307 //
    00308 // NOTE: This structure may change in future EAX versions.
    00309 //       It is recommended to initialize fields by name:
    00310 //              myBuffer.lDirect = 0;
    00311 //              myBuffer.lDirectHF = -200;
    00312 //              ...
    00313 //              myBuffer.dwFlags = myFlags /* see EAXBUFFERFLAGS below */ ;
    00314 //       instead of:
    00315 //              myBuffer = { 0, -200, ... , 0x00000003 };
    00316 //
    00317 typedef struct _EAXBUFFERPROPERTIES
    00318 {
    00319     long lDirect;                // direct path level
    00320     long lDirectHF;              // direct path level at high frequencies
    00321     long lRoom;                  // room effect level
    00322     long lRoomHF;                // room effect level at high frequencies
    00323     float flRoomRolloffFactor;   // like DS3D flRolloffFactor but for room effect
    00324     long lObstruction;           // main obstruction control (attenuation at high frequencies)
    00325     float flObstructionLFRatio;  // obstruction low-frequency level re. main control
    00326     long lOcclusion;             // main occlusion control (attenuation at high frequencies)
    00327     float flOcclusionLFRatio;    // occlusion low-frequency level re. main control
    00328     float flOcclusionRoomRatio;  // occlusion room effect level re. main control
    00329     long lOutsideVolumeHF;       // outside sound cone level at high frequencies
    00330     float flAirAbsorptionFactor; // multiplies DSPROPERTY_EAXLISTENER_AIRABSORPTIONHF
    00331     unsigned long dwFlags;       // modifies the behavior of properties
    00332 } EAXBUFFERPROPERTIES, *LPEAXBUFFERPROPERTIES;
    00333
    00334 // Used by DSPROPERTY_EAXBUFFER_FLAGS
    00335 //    TRUE:    value is computed automatically - property is an offset
    00336 //    FALSE:   value is used directly
    00337 //
    00338 // Note: The number and order of flags may change in future EAX versions.
    00339 //       To insure future compatibility, use flag defines as follows:
    00340 //              myFlags = EAXBUFFERFLAGS_DIRECTHFAUTO | EAXBUFFERFLAGS_ROOMAUTO;
    00341 //       instead of:
    00342 //              myFlags = 0x00000003;
    00343 //
    00344 #define EAXBUFFERFLAGS_DIRECTHFAUTO 0x00000001 // affects DSPROPERTY_EAXBUFFER_DIRECTHF
    00345 #define EAXBUFFERFLAGS_ROOMAUTO     0x00000002 // affects DSPROPERTY_EAXBUFFER_ROOM
    00346 #define EAXBUFFERFLAGS_ROOMHFAUTO   0x00000004 // affects DSPROPERTY_EAXBUFFER_ROOMHF
    00347
    00348 #define EAXBUFFERFLAGS_RESERVED     0xFFFFFFF8 // reserved future use
    00349
    00350 // property ranges and defaults:
    00351
    00352 #define EAXBUFFER_MINDIRECT                  (-10000)
    00353 #define EAXBUFFER_MAXDIRECT                  1000
    00354 #define EAXBUFFER_DEFAULTDIRECT              0
    00355
    00356 #define EAXBUFFER_MINDIRECTHF                (-10000)
    00357 #define EAXBUFFER_MAXDIRECTHF                0
    00358 #define EAXBUFFER_DEFAULTDIRECTHF            0
    00359
    00360 #define EAXBUFFER_MINROOM                    (-10000)
    00361 #define EAXBUFFER_MAXROOM                    1000
    00362 #define EAXBUFFER_DEFAULTROOM                0
    00363
    00364 #define EAXBUFFER_MINROOMHF                  (-10000)
    00365 #define EAXBUFFER_MAXROOMHF                  0
    00366 #define EAXBUFFER_DEFAULTROOMHF              0
    00367
    00368 #define EAXBUFFER_MINROOMROLLOFFFACTOR       0.0f
    00369 #define EAXBUFFER_MAXROOMROLLOFFFACTOR       10.f
    00370 #define EAXBUFFER_DEFAULTROOMROLLOFFFACTOR   0.0f
    00371
    00372 #define EAXBUFFER_MINOBSTRUCTION             (-10000)
    00373 #define EAXBUFFER_MAXOBSTRUCTION             0
    00374 #define EAXBUFFER_DEFAULTOBSTRUCTION         0
    00375
    00376 #define EAXBUFFER_MINOBSTRUCTIONLFRATIO      0.0f
    00377 #define EAXBUFFER_MAXOBSTRUCTIONLFRATIO      1.0f
    00378 #define EAXBUFFER_DEFAULTOBSTRUCTIONLFRATIO  0.0f
    00379
    00380 #define EAXBUFFER_MINOCCLUSION               (-10000)
    00381 #define EAXBUFFER_MAXOCCLUSION               0
    00382 #define EAXBUFFER_DEFAULTOCCLUSION           0
    00383
    00384 #define EAXBUFFER_MINOCCLUSIONLFRATIO        0.0f
    00385 #define EAXBUFFER_MAXOCCLUSIONLFRATIO        1.0f
    00386 #define EAXBUFFER_DEFAULTOCCLUSIONLFRATIO    0.25f
    00387
    00388 #define EAXBUFFER_MINOCCLUSIONROOMRATIO      0.0f
    00389 #define EAXBUFFER_MAXOCCLUSIONROOMRATIO      10.0f
    00390 #define EAXBUFFER_DEFAULTOCCLUSIONROOMRATIO  0.5f
    00391
    00392 #define EAXBUFFER_MINOUTSIDEVOLUMEHF         (-10000)
    00393 #define EAXBUFFER_MAXOUTSIDEVOLUMEHF         0
    00394 #define EAXBUFFER_DEFAULTOUTSIDEVOLUMEHF     0
    00395
    00396 #define EAXBUFFER_MINAIRABSORPTIONFACTOR     0.0f
    00397 #define EAXBUFFER_MAXAIRABSORPTIONFACTOR     10.0f
    00398 #define EAXBUFFER_DEFAULTAIRABSORPTIONFACTOR 1.0f
    00399
    00400 #define EAXBUFFER_DEFAULTFLAGS               (EAXBUFFERFLAGS_DIRECTHFAUTO | \
    00401                                               EAXBUFFERFLAGS_ROOMAUTO |     \
    00402                                               EAXBUFFERFLAGS_ROOMHFAUTO)
    00403
    00404 // Material transmission presets
    00405 // 3 values in this order:
    00406 //     1: occlusion (or obstruction)
    00407 //     2: occlusion LF Ratio (or obstruction LF Ratio)
    00408 //     3: occlusion Room Ratio
    00409
    00410 // Single window material preset
    00411 #define EAX_MATERIAL_SINGLEWINDOW          (-2800)
    00412 #define EAX_MATERIAL_SINGLEWINDOWLF        0.71f
    00413 #define EAX_MATERIAL_SINGLEWINDOWROOMRATIO 0.43f
    00414
    00415 // Double window material preset
    00416 #define EAX_MATERIAL_DOUBLEWINDOW          (-5000)
    00417 #define EAX_MATERIAL_DOUBLEWINDOWHF        0.40f
    00418 #define EAX_MATERIAL_DOUBLEWINDOWROOMRATIO 0.24f
    00419
    00420 // Thin door material preset
    00421 #define EAX_MATERIAL_THINDOOR              (-1800)
    00422 #define EAX_MATERIAL_THINDOORLF            0.66f
    00423 #define EAX_MATERIAL_THINDOORROOMRATIO     0.66f
    00424
    00425 // Thick door material preset
    00426 #define EAX_MATERIAL_THICKDOOR             (-4400)
    00427 #define EAX_MATERIAL_THICKDOORLF           0.64f
    00428 #define EAX_MATERIAL_THICKDOORROOMRTATION  0.27f
    00429
    00430 // Wood wall material preset
    00431 #define EAX_MATERIAL_WOODWALL              (-4000)
    00432 #define EAX_MATERIAL_WOODWALLLF            0.50f
    00433 #define EAX_MATERIAL_WOODWALLROOMRATIO     0.30f
    00434
    00435 // Brick wall material preset
    00436 #define EAX_MATERIAL_BRICKWALL             (-5000)
    00437 #define EAX_MATERIAL_BRICKWALLLF           0.60f
    00438 #define EAX_MATERIAL_BRICKWALLROOMRATIO    0.24f
    00439
    00440 // Stone wall material preset
    00441 #define EAX_MATERIAL_STONEWALL             (-6000)
    00442 #define EAX_MATERIAL_STONEWALLLF           0.68f
    00443 #define EAX_MATERIAL_STONEWALLROOMRATIO    0.20f
    00444
    00445 // Curtain material preset
    00446 #define EAX_MATERIAL_CURTAIN               (-1200)
    00447 #define EAX_MATERIAL_CURTAINLF             0.15f
    00448 #define EAX_MATERIAL_CURTAINROOMRATIO      1.00f
    00449
    00450
    00451 #pragma pack(pop)
    00452
    00453 #ifdef __cplusplus
    00454 }
    00455 #endif // __cplusplus
    00456
    00457 #endif