Reduce MAX_HWBUFFERS to 128
[dsound-openal.git] / eax.h
blob849cfadeab0bede2be8e38fffb01b758a96e8cd7
1 /* DirectSound
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
20 #ifndef EAX_H
21 #define EAX_H
23 #include "eax4.h"
24 #include "eax3.h"
27 DEFINE_GUID(DSPROPSETID_EAX20_ListenerProperties, 0x0306a6a8, 0xb224, 0x11d2, 0x99, 0xe5, 0x00, 0x00, 0xe8, 0xd8, 0xc7, 0x22);
28 typedef enum {
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 {
52 long lRoom;
53 long lRoomHF;
54 float flRoomRolloffFactor;
55 float flDecayTime;
56 float flDecayHFRatio;
57 long lReflections;
58 float flReflectionsDelay;
59 long lReverb;
60 float flReverbDelay;
61 DWORD dwEnvironment;
62 float flEnvironmentSize;
63 float flEnvironmentDiffusion;
64 float flAirAbsorptionHF;
65 DWORD dwFlags;
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);
77 typedef enum {
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 {
100 long lDirect;
101 long lDirectHF;
102 long lRoom;
103 long lRoomHF;
104 float flRoomRolloffFactor;
105 long lObstruction;
106 float flObstructionLFRatio;
107 long lOcclusion;
108 float flOcclusionLFRatio;
109 float flOcclusionRoomRatio;
110 long lOutsideVolumeHF;
111 float flAirAbsorptionFactor;
112 DWORD dwFlags;
113 } EAX20BUFFERPROPERTIES, *LPEAX20BUFFERPROPERTIES;
115 #define EAX20BUFFERFLAGS_DIRECTHFAUTO 0x00000001
116 #define EAX20BUFFERFLAGS_ROOMAUTO 0x00000002
117 #define EAX20BUFFERFLAGS_ROOMHFAUTO 0x00000004
120 /* EAX 1.0 stuff. */
121 DEFINE_GUID(DSPROPSETID_EAX10_ListenerProperties, 0x4a4e6fc1, 0xc341, 0x11d1, 0xb7, 0x3a, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00);
122 typedef enum {
123 DSPROPERTY_EAX10LISTENER_ALL,
124 DSPROPERTY_EAX10LISTENER_ENVIRONMENT,
125 DSPROPERTY_EAX10LISTENER_VOLUME,
126 DSPROPERTY_EAX10LISTENER_DECAYTIME,
127 DSPROPERTY_EAX10LISTENER_DAMPING
128 } DSPROPERTY_EAX10_REVERBPROPERTY;
130 typedef struct {
131 DWORD dwEnvironment;
132 float fVolume;
133 float fDecayTime;
134 float fDamping;
135 } EAX10LISTENERPROPERTIES;
138 DEFINE_GUID(DSPROPSETID_EAX10_BufferProperties, 0x4a4e6fc0, 0xc341, 0x11d1, 0xb7, 0x3a, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00);
139 typedef enum {
140 DSPROPERTY_EAX10BUFFER_ALL,
141 DSPROPERTY_EAX10BUFFER_REVERBMIX
142 } DSPROPERTY_EAX10_BUFFERPROPERTY;
144 typedef struct {
145 float fMix;
146 } EAX10BUFFERPROPERTIES;
148 #endif /* EAX_H */