3 * Copyright 2010 Chris Robinson
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
27 DEFINE_GUID(DSPROPSETID_EAX20_ListenerProperties
, 0x0306a6a8, 0xb224, 0x11d2, 0x99, 0xe5, 0x00, 0x00, 0xe8, 0xd8, 0xc7, 0x22);
29 DSPROPERTY_EAX20LISTENER_NONE
,
30 DSPROPERTY_EAX20LISTENER_ALLPARAMETERS
,
31 DSPROPERTY_EAX20LISTENER_ROOM
,
32 DSPROPERTY_EAX20LISTENER_ROOMHF
,
33 DSPROPERTY_EAX20LISTENER_ROOMROLLOFFFACTOR
,
34 DSPROPERTY_EAX20LISTENER_DECAYTIME
,
35 DSPROPERTY_EAX20LISTENER_DECAYHFRATIO
,
36 DSPROPERTY_EAX20LISTENER_REFLECTIONS
,
37 DSPROPERTY_EAX20LISTENER_REFLECTIONSDELAY
,
38 DSPROPERTY_EAX20LISTENER_REVERB
,
39 DSPROPERTY_EAX20LISTENER_REVERBDELAY
,
40 DSPROPERTY_EAX20LISTENER_ENVIRONMENT
,
41 DSPROPERTY_EAX20LISTENER_ENVIRONMENTSIZE
,
42 DSPROPERTY_EAX20LISTENER_ENVIRONMENTDIFFUSION
,
43 DSPROPERTY_EAX20LISTENER_AIRABSORPTIONHF
,
44 DSPROPERTY_EAX20LISTENER_FLAGS
45 } DSPROPERTY_EAX20_LISTENERPROPERTY
;
47 #define DSPROPERTY_EAX20LISTENER_DEFERRED 0x80000000
48 #define DSPROPERTY_EAX20LISTENER_IMMEDIATE 0x00000000
49 #define DSPROPERTY_EAX20LISTENER_COMMITDEFERREDSETTINGS 0x00000000
51 typedef struct _EAX20LISTENERPROPERTIES
{
54 float flRoomRolloffFactor
;
58 float flReflectionsDelay
;
62 float flEnvironmentSize
;
63 float flEnvironmentDiffusion
;
64 float flAirAbsorptionHF
;
66 } EAX20LISTENERPROPERTIES
, *LPEAX20LISTENERPROPERTIES
;
68 #define EAX20LISTENERFLAGS_DECAYTIMESCALE 0x00000001
69 #define EAX20LISTENERFLAGS_REFLECTIONSSCALE 0x00000002
70 #define EAX20LISTENERFLAGS_REFLECTIONSDELAYSCALE 0x00000004
71 #define EAX20LISTENERFLAGS_REVERBSCALE 0x00000008
72 #define EAX20LISTENERFLAGS_REVERBDELAYSCALE 0x00000010
73 #define EAX20LISTENERFLAGS_DECAYHFLIMIT 0x00000020
76 DEFINE_GUID(DSPROPSETID_EAX20_BufferProperties
, 0x0306a6a7, 0xb224, 0x11d2, 0x99, 0xe5, 0x00, 0x00, 0xe8, 0xd8, 0xc7, 0x22);
78 DSPROPERTY_EAX20BUFFER_NONE
,
79 DSPROPERTY_EAX20BUFFER_ALLPARAMETERS
,
80 DSPROPERTY_EAX20BUFFER_DIRECT
,
81 DSPROPERTY_EAX20BUFFER_DIRECTHF
,
82 DSPROPERTY_EAX20BUFFER_ROOM
,
83 DSPROPERTY_EAX20BUFFER_ROOMHF
,
84 DSPROPERTY_EAX20BUFFER_ROOMROLLOFFFACTOR
,
85 DSPROPERTY_EAX20BUFFER_OBSTRUCTION
,
86 DSPROPERTY_EAX20BUFFER_OBSTRUCTIONLFRATIO
,
87 DSPROPERTY_EAX20BUFFER_OCCLUSION
,
88 DSPROPERTY_EAX20BUFFER_OCCLUSIONLFRATIO
,
89 DSPROPERTY_EAX20BUFFER_OCCLUSIONROOMRATIO
,
90 DSPROPERTY_EAX20BUFFER_OUTSIDEVOLUMEHF
,
91 DSPROPERTY_EAX20BUFFER_AIRABSORPTIONFACTOR
,
92 DSPROPERTY_EAX20BUFFER_FLAGS
93 } DSPROPERTY_EAX20_BUFFERPROPERTY
;
95 #define DSPROPERTY_EAX20BUFFER_DEFERRED 0x80000000
96 #define DSPROPERTY_EAX20BUFFER_IMMEDIATE 0x00000000
97 #define DSPROPERTY_EAX20BUFFER_COMMITDEFERREDSETTINGS 0x00000000
99 typedef struct _EAX20BUFFERPROPERTIES
{
104 float flRoomRolloffFactor
;
106 float flObstructionLFRatio
;
108 float flOcclusionLFRatio
;
109 float flOcclusionRoomRatio
;
110 long lOutsideVolumeHF
;
111 float flAirAbsorptionFactor
;
113 } EAX20BUFFERPROPERTIES
, *LPEAX20BUFFERPROPERTIES
;
115 #define EAX20BUFFERFLAGS_DIRECTHFAUTO 0x00000001
116 #define EAX20BUFFERFLAGS_ROOMAUTO 0x00000002
117 #define EAX20BUFFERFLAGS_ROOMHFAUTO 0x00000004
121 DEFINE_GUID(DSPROPSETID_EAX10_ListenerProperties
, 0x4a4e6fc1, 0xc341, 0x11d1, 0xb7, 0x3a, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00);
123 DSPROPERTY_EAX10LISTENER_ALL
,
124 DSPROPERTY_EAX10LISTENER_ENVIRONMENT
,
125 DSPROPERTY_EAX10LISTENER_VOLUME
,
126 DSPROPERTY_EAX10LISTENER_DECAYTIME
,
127 DSPROPERTY_EAX10LISTENER_DAMPING
128 } DSPROPERTY_EAX10_REVERBPROPERTY
;
135 } EAX10LISTENERPROPERTIES
;
138 DEFINE_GUID(DSPROPSETID_EAX10_BufferProperties
, 0x4a4e6fc0, 0xc341, 0x11d1, 0xb7, 0x3a, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00);
140 DSPROPERTY_EAX10BUFFER_ALL
,
141 DSPROPERTY_EAX10BUFFER_REVERBMIX
142 } DSPROPERTY_EAX10_BUFFERPROPERTY
;
146 } EAX10BUFFERPROPERTIES
;