[PSDK] Update gdiplus{flat,types}.h. CORE-9924
[reactos.git] / reactos / include / psdk / ksmedia.h
1 /*
2 KS Media
3 (c) Andrew Greenwood, 2007.
4
5 Please see COPYING in the top level directory for license information.
6 */
7
8 #ifndef KSMEDIA_H
9 #define KSMEDIA_H
10
11 #include <ks.h>
12
13 /*
14 KS CATEGORIES
15 */
16
17 typedef LONGLONG REFERENCE_TIME;
18
19 #define EXTRACT_WAVEFORMATEX_ID(Guid)\
20 (USHORT)((Guid)->Data1)
21
22 #define DEFINE_USB_TERMINAL_GUID(id)\
23 0xDFF219E0+(USHORT)(id), 0xF70F, 0x11D0, {0xB9, 0x17, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}
24
25
26 /* Audio device (as presented by sysaudio) */
27
28 #define STATIC_KSCATEGORY_AUDIO_DEVICE \
29 0xFBF6F530L, 0x07B9, 0x11D2, {0xA7, 0x1E, 0x00, 0x00, 0xF8, 0x00, 0x47, 0x88}
30 DEFINE_GUIDSTRUCT("FBF6F530-07B9-11D2-A71E-0000F8004788", KSCATEGORY_AUDIO_DEVICE);
31 #define KSCATEGORY_AUDIO_DEVICE DEFINE_GUIDNAMED(KSCATEGORY_AUDIO_DEVICE)
32
33 /* video */
34 #define STATIC_PINNAME_VIDEO_CAPTURE \
35 0xfb6c4281, 0x353, 0x11d1, {0x90, 0x5f, 0x0, 0x0, 0xc0, 0xcc, 0x16, 0xba}
36 #define STATIC_PINNAME_CAPTURE STATIC_PINNAME_VIDEO_CAPTURE
37 DEFINE_GUIDSTRUCT("FB6C4281-0353-11d1-905F-0000C0CC16BA", PINNAME_VIDEO_CAPTURE);
38 #define PINNAME_VIDEO_CAPTURE DEFINE_GUIDNAMED(PINNAME_VIDEO_CAPTURE)
39 #define PINNAME_CAPTURE PINNAME_VIDEO_CAPTURE
40
41 /* Preferred devices */
42
43 #define STATIC_KSCATEGORY_PREFERRED_WAVEOUT_DEVICE \
44 0xD6C5066EL, 0x72C1, 0x11D2, {0x97, 0x55, 0x00, 0x00, 0xF8, 0x00, 0x47, 0x88}
45 DEFINE_GUIDSTRUCT("D6C5066E-72C1-11D2-9755-0000F8004788", KSCATEGORY_PREFERRED_WAVEOUT_DEVICE);
46 #define KSCATEGORY_PREFERRED_WAVEOUT_DEVICE DEFINE_GUIDNAMED(KSCATEGORY_PREFERRED_WAVEOUT_DEVICE)
47
48 #define STATIC_KSCATEGORY_PREFERRED_WAVEIN_DEVICE \
49 0xD6C50671L, 0x72C1, 0x11D2, {0x97, 0x55, 0x00, 0x00, 0xF8, 0x00, 0x47, 0x88}
50 DEFINE_GUIDSTRUCT("D6C50671-72C1-11D2-9755-0000F8004788", KSCATEGORY_PREFERRED_WAVEIN_DEVICE);
51 #define KSCATEGORY_PREFERRED_WAVEIN_DEVICE DEFINE_GUIDNAMED(KSCATEGORY_PREFERRED_WAVEIN_DEVICE)
52
53 #define STATIC_KSCATEGORY_PREFERRED_MIDIOUT_DEVICE \
54 0xD6C50674L, 0x72C1, 0x11D2, {0x97, 0x55, 0x00, 0x00, 0xF8, 0x00, 0x47, 0x88}
55 DEFINE_GUIDSTRUCT("D6C50674-72C1-11D2-9755-0000F8004788", KSCATEGORY_PREFERRED_MIDIOUT_DEVICE);
56 #define KSCATEGORY_PREFERRED_MIDIOUT_DEVICE DEFINE_GUIDNAMED(KSCATEGORY_PREFERRED_MIDIOUT_DEVICE)
57
58
59 /* Media type categories */
60
61 #define STATIC_KSCATEGORY_AUDIO \
62 0x6994AD04L, 0x93EF, 0x11D0, {0xA3, 0xCC, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}
63 DEFINE_GUIDSTRUCT("6994AD04-93EF-11D0-A3CC-00A0C9223196", KSCATEGORY_AUDIO);
64 #define KSCATEGORY_AUDIO DEFINE_GUIDNAMED(KSCATEGORY_AUDIO)
65
66 #define STATIC_KSCATEGORY_VIDEO \
67 0x6994AD05L, 0x93EF, 0x11D0, {0xA3, 0xCC, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}
68 DEFINE_GUIDSTRUCT("6994AD05-93EF-11D0-A3CC-00A0C9223196", KSCATEGORY_VIDEO);
69 #define KSCATEGORY_VIDEO DEFINE_GUIDNAMED(KSCATEGORY_VIDEO)
70
71 #define STATIC_KSCATEGORY_TEXT \
72 0x6994AD06L, 0x93EF, 0x11D0, {0xA3, 0xCC, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}
73 DEFINE_GUIDSTRUCT("6994AD06-93EF-11D0-A3CC-00A0C9223196", KSCATEGORY_TEXT);
74 #define KSCATEGORY_TEXT DEFINE_GUIDNAMED(KSCATEGORY_TEXT)
75
76 #define STATIC_KSCATEGORY_NETWORK \
77 0x67C9CC3CL, 0x69C4, 0x11D2, {0x87, 0x59, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}
78 DEFINE_GUIDSTRUCT("67C9CC3C-69C4-11D2-8759-00A0C9223196", KSCATEGORY_NETWORK);
79 #define KSCATEGORY_NETWORK DEFINE_GUIDNAMED(KSCATEGORY_NETWORK)
80
81 #define STATIC_KSINTERFACESETID_Media \
82 0x3A13EB40L, 0x30A7, 0x11D0, {0xA5, 0xD6, 0x28, 0xDB, 0x04, 0xC1, 0x00, 0x00}
83 DEFINE_GUIDSTRUCT("3A13EB40-30A7-11D0-A5D6-28DB04C10000", KSINTERFACESETID_Media);
84 #define KSINTERFACESETID_Media DEFINE_GUIDNAMED(KSINTERFACESETID_Media)
85
86 /* ... */
87
88 #define STATIC_KSCATEGORY_TOPOLOGY \
89 0xDDA54A40L, 0x1E4C, 0x11D1, {0xA0, 0x50, 0x40, 0x57, 0x05, 0xC1, 0x00, 0x00}
90 DEFINE_GUIDSTRUCT("DDA54A40-1E4C-11D1-A050-405705C10000", KSCATEGORY_TOPOLOGY);
91 #define KSCATEGORY_TOPOLOGY DEFINE_GUIDNAMED(KSCATEGORY_TOPOLOGY)
92
93 #define STATIC_KSCATEGORY_VIRTUAL \
94 0x3503EAC4L, 0x1F26, 0x11D1, {0x8A, 0xB0, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}
95 DEFINE_GUIDSTRUCT("3503EAC4-1F26-11D1-8AB0-00A0C9223196", KSCATEGORY_VIRTUAL);
96 #define KSCATEGORY_VIRTUAL DEFINE_GUIDNAMED(KSCATEGORY_VIRTUAL)
97
98 #define STATIC_KSCATEGORY_ACOUSTIC_ECHO_CANCEL \
99 0xBF963D80L, 0xC559, 0x11D0, {0x8A, 0x2B, 0x00, 0xA0, 0xC9, 0x25, 0x5A, 0xC1}
100 DEFINE_GUIDSTRUCT("BF963D80-C559-11D0-8A2B-00A0C9255AC1", KSCATEGORY_ACOUSTIC_ECHO_CANCEL);
101 #define KSCATEGORY_ACOUSTIC_ECHO_CANCEL DEFINE_GUIDNAMED(KSCATEGORY_ACOUSTIC_ECHO_CANCEL)
102
103
104 /* Component-specific */
105
106 #define STATIC_KSCATEGORY_SYSAUDIO \
107 0xA7C7A5B1L, 0x5AF3, 0x11D1, {0x9C, 0xED, 0x00, 0xA0, 0x24, 0xBF, 0x04, 0x07}
108 DEFINE_GUIDSTRUCT("A7C7A5B1-5AF3-11D1-9CED-00A024BF0407", KSCATEGORY_SYSAUDIO);
109 #define KSCATEGORY_SYSAUDIO DEFINE_GUIDNAMED(KSCATEGORY_SYSAUDIO)
110
111 #define STATIC_KSCATEGORY_WDMAUD \
112 0x3E227E76L, 0x690D, 0x11D2, {0x81, 0x61, 0x00, 0x00, 0xF8, 0x77, 0x5B, 0xF1}
113 DEFINE_GUIDSTRUCT("3E227E76-690D-11D2-8161-0000F8775BF1", KSCATEGORY_WDMAUD);
114 #define KSCATEGORY_WDMAUD DEFINE_GUIDNAMED(KSCATEGORY_WDMAUD)
115
116 #define STATIC_KSCATEGORY_AUDIO_GFX \
117 0x9BAF9572L, 0x340C, 0x11D3, {0xAB, 0xDC, 0x00, 0xA0, 0xC9, 0x0A, 0xB1, 0x6F}
118 DEFINE_GUIDSTRUCT("9BAF9572-340C-11D3-ABDC-00A0C90AB16F", KSCATEGORY_AUDIO_GFX);
119 #define KSCATEGORY_AUDIO_GFX DEFINE_GUIDNAMED(KSCATEGORY_AUDIO_GFX)
120
121 #define STATIC_KSCATEGORY_AUDIO_SPLITTER \
122 0x9EA331FAL, 0xB91B, 0x45F8, {0x92, 0x85, 0xBD, 0x2B, 0xC7, 0x7A, 0xFC, 0xDE}
123 DEFINE_GUIDSTRUCT("9EA331FA-B91B-45F8-9285-BD2BC77AFCDE", KSCATEGORY_AUDIO_SPLITTER);
124 #define KSCATEGORY_AUDIO_SPLITTER DEFINE_GUIDNAMED(KSCATEGORY_AUDIO_SPLITTER)
125
126 #define STATIC_KSCATEGORY_SYNTHESIZER STATIC_KSNODETYPE_SYNTHESIZER
127 #define KSCATEGORY_SYNTHESIZER KSNODETYPE_SYNTHESIZER
128
129 #define STATIC_KSCATEGORY_DRM_DESCRAMBLE STATIC_KSNODETYPE_DRM_DESCRAMBLE
130 #define KSCATEGORY_DRM_DESCRAMBLE KSNODETYPE_DRM_DESCRAMBLE
131
132 /*
133 Nodes
134 */
135
136 #define STATIC_KSNODETYPE_ADC\
137 0x4D837FE0L, 0xC555, 0x11D0, {0x8A, 0x2B, 0x00, 0xA0, 0xC9, 0x25, 0x5A, 0xC1}
138 DEFINE_GUIDSTRUCT("4D837FE0-C555-11D0-8A2B-00A0C9255AC1", KSNODETYPE_ADC);
139 #define KSNODETYPE_ADC DEFINE_GUIDNAMED(KSNODETYPE_ADC)
140
141 #define STATIC_KSNODETYPE_AGC\
142 0xE88C9BA0L, 0xC557, 0x11D0, {0x8A, 0x2B, 0x00, 0xA0, 0xC9, 0x25, 0x5A, 0xC1}
143 DEFINE_GUIDSTRUCT("E88C9BA0-C557-11D0-8A2B-00A0C9255AC1", KSNODETYPE_AGC);
144 #define KSNODETYPE_AGC DEFINE_GUIDNAMED(KSNODETYPE_AGC)
145
146 #define STATIC_KSNODETYPE_3D_EFFECTS\
147 0x55515860L, 0xC559, 0x11D0, {0x8A, 0x2B, 0x00, 0xA0, 0xC9, 0x25, 0x5A, 0xC1}
148 DEFINE_GUIDSTRUCT("55515860-C559-11D0-8A2B-00A0C9255AC1", KSNODETYPE_3D_EFFECTS);
149 #define KSNODETYPE_3D_EFFECTS DEFINE_GUIDNAMED(KSNODETYPE_3D_EFFECTS)
150
151 #define STATIC_KSNODETYPE_SUPERMIX\
152 0xE573ADC0L, 0xC555, 0x11D0, {0x8A, 0x2B, 0x00, 0xA0, 0xC9, 0x25, 0x5A, 0xC1}
153 DEFINE_GUIDSTRUCT("E573ADC0-C555-11D0-8A2B-00A0C9255AC1", KSNODETYPE_SUPERMIX);
154 #define KSNODETYPE_SUPERMIX DEFINE_GUIDNAMED(KSNODETYPE_SUPERMIX)
155
156 #define STATIC_KSNODETYPE_SRC\
157 0x9DB7B9E0L, 0xC555, 0x11D0, {0x8A, 0x2B, 0x00, 0xA0, 0xC9, 0x25, 0x5A, 0xC1}
158 DEFINE_GUIDSTRUCT("9DB7B9E0-C555-11D0-8A2B-00A0C9255AC1", KSNODETYPE_SRC);
159 #define KSNODETYPE_SRC DEFINE_GUIDNAMED(KSNODETYPE_SRC)
160
161 #define STATIC_KSNODETYPE_DAC\
162 0x507AE360L, 0xC554, 0x11D0, {0x8A, 0x2B, 0x00, 0xA0, 0xC9, 0x25, 0x5A, 0xC1}
163 DEFINE_GUIDSTRUCT("507AE360-C554-11D0-8A2B-00A0C9255AC1", KSNODETYPE_DAC);
164 #define KSNODETYPE_DAC DEFINE_GUIDNAMED(KSNODETYPE_DAC)
165
166 #define STATIC_KSNODETYPE_SPDIF_INTERFACE\
167 DEFINE_USB_TERMINAL_GUID(0x0605)
168 DEFINE_GUIDSTRUCT("DFF21FE5-F70F-11D0-B917-00A0C9223196", KSNODETYPE_SPDIF_INTERFACE);
169 #define KSNODETYPE_SPDIF_INTERFACE DEFINE_GUIDNAMED(KSNODETYPE_SPDIF_INTERFACE)
170
171 #define STATIC_KSNODETYPE_MICROPHONE\
172 DEFINE_USB_TERMINAL_GUID(0x0201)
173 DEFINE_GUIDSTRUCT("DFF21BE1-F70F-11D0-B917-00A0C9223196", KSNODETYPE_MICROPHONE);
174 #define KSNODETYPE_MICROPHONE DEFINE_GUIDNAMED(KSNODETYPE_MICROPHONE)
175
176 #define STATIC_KSNODETYPE_CD_PLAYER\
177 DEFINE_USB_TERMINAL_GUID(0x0703)
178 DEFINE_GUIDSTRUCT("DFF220E3-F70F-11D0-B917-00A0C9223196", KSNODETYPE_CD_PLAYER);
179 #define KSNODETYPE_CD_PLAYER DEFINE_GUIDNAMED(KSNODETYPE_CD_PLAYER)
180
181 #define STATIC_KSNODETYPE_CHORUS\
182 0x20173F20L, 0xC559, 0x11D0, {0x8A, 0x2B, 0x00, 0xA0, 0xC9, 0x25, 0x5A, 0xC1}
183 DEFINE_GUIDSTRUCT("20173F20-C559-11D0-8A2B-00A0C9255AC1", KSNODETYPE_CHORUS);
184 #define KSNODETYPE_CHORUS DEFINE_GUIDNAMED(KSNODETYPE_CHORUS)
185
186 #define STATIC_KSNODETYPE_REVERB\
187 0xEF0328E0L, 0xC558, 0x11D0, {0x8A, 0x2B, 0x00, 0xA0, 0xC9, 0x25, 0x5A, 0xC1}
188 DEFINE_GUIDSTRUCT("EF0328E0-C558-11D0-8A2B-00A0C9255AC1", KSNODETYPE_REVERB);
189 #define KSNODETYPE_REVERB DEFINE_GUIDNAMED(KSNODETYPE_REVERB)
190
191
192 #define STATIC_KSNODETYPE_LINE_CONNECTOR\
193 DEFINE_USB_TERMINAL_GUID(0x0603)
194 DEFINE_GUIDSTRUCT("DFF21FE3-F70F-11D0-B917-00A0C9223196", KSNODETYPE_LINE_CONNECTOR);
195 #define KSNODETYPE_LINE_CONNECTOR DEFINE_GUIDNAMED(KSNODETYPE_LINE_CONNECTOR)
196
197 #define STATIC_KSNODETYPE_ANALOG_CONNECTOR\
198 DEFINE_USB_TERMINAL_GUID(0x601)
199 DEFINE_GUIDSTRUCT("DFF21FE1-F70F-11D0-B917-00A0C9223196", KSNODETYPE_ANALOG_CONNECTOR);
200 #define KSNODETYPE_ANALOG_CONNECTOR DEFINE_GUIDNAMED(KSNODETYPE_ANALOG_CONNECTOR)
201
202 #define STATIC_KSNODETYPE_SPEAKER\
203 DEFINE_USB_TERMINAL_GUID(0x0301)
204 DEFINE_GUIDSTRUCT("DFF21CE1-F70F-11D0-B917-00A0C9223196", KSNODETYPE_SPEAKER);
205 #define KSNODETYPE_SPEAKER DEFINE_GUIDNAMED(KSNODETYPE_SPEAKER)
206
207 #define STATIC_KSAUDFNAME_RECORDING_CONTROL\
208 0x185FEDFAL, 0x9905, 0x11D1, {0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3}
209 DEFINE_GUIDSTRUCT("185FEDFA-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_RECORDING_CONTROL);
210 #define KSAUDFNAME_RECORDING_CONTROL DEFINE_GUIDNAMED(KSAUDFNAME_RECORDING_CONTROL)
211
212 #define STATIC_KSNODETYPE_VOLUME\
213 0x3A5ACC00L, 0xC557, 0x11D0, {0x8A, 0x2B, 0x00, 0xA0, 0xC9, 0x25, 0x5A, 0xC1}
214 DEFINE_GUIDSTRUCT("3A5ACC00-C557-11D0-8A2B-00A0C9255AC1", KSNODETYPE_VOLUME);
215 #define KSNODETYPE_VOLUME DEFINE_GUIDNAMED(KSNODETYPE_VOLUME)
216
217 #define STATIC_KSAUDFNAME_WAVE_VOLUME\
218 0x185FEDE5L, 0x9905, 0x11D1, {0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3}
219 DEFINE_GUIDSTRUCT("185FEDE5-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_WAVE_VOLUME);
220 #define KSAUDFNAME_WAVE_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_WAVE_VOLUME)
221
222 #define STATIC_KSNODETYPE_MUTE\
223 0x02B223C0L, 0xC557, 0x11D0, {0x8A, 0x2B, 0x00, 0xA0, 0xC9, 0x25, 0x5A, 0xC1}
224 DEFINE_GUIDSTRUCT("02B223C0-C557-11D0-8A2B-00A0C9255AC1", KSNODETYPE_MUTE);
225 #define KSNODETYPE_MUTE DEFINE_GUIDNAMED(KSNODETYPE_MUTE)
226
227 #define STATIC_KSAUDFNAME_WAVE_MUTE\
228 0x185FEDE6L, 0x9905, 0x11D1, {0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3}
229 DEFINE_GUIDSTRUCT("185FEDE6-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_WAVE_MUTE);
230 #define KSAUDFNAME_WAVE_MUTE DEFINE_GUIDNAMED(KSAUDFNAME_WAVE_MUTE)
231
232 #define STATIC_KSAUDFNAME_MIC_VOLUME\
233 0x185FEDEDL, 0x9905, 0x11D1, {0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3}
234 DEFINE_GUIDSTRUCT("185FEDED-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_MIC_VOLUME);
235 #define KSAUDFNAME_MIC_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_MIC_VOLUME)
236
237 #define STATIC_KSNODETYPE_SUM\
238 0xDA441A60L, 0xC556, 0x11D0, {0x8A, 0x2B, 0x00, 0xA0, 0xC9, 0x25, 0x5A, 0xC1}
239 DEFINE_GUIDSTRUCT("DA441A60-C556-11D0-8A2B-00A0C9255AC1", KSNODETYPE_SUM);
240 #define KSNODETYPE_SUM DEFINE_GUIDNAMED(KSNODETYPE_SUM)
241
242 #define STATIC_KSAUDFNAME_MASTER_VOLUME\
243 0x185FEDE3L, 0x9905, 0x11D1, {0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3}
244 DEFINE_GUIDSTRUCT("185FEDE3-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_MASTER_VOLUME);
245 #define KSAUDFNAME_MASTER_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_MASTER_VOLUME)
246
247 #define STATIC_KSAUDFNAME_CD_VOLUME\
248 0x185FEDE9L, 0x9905, 0x11D1, {0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3}
249 DEFINE_GUIDSTRUCT("185FEDE9-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_CD_VOLUME);
250 #define KSAUDFNAME_CD_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_CD_VOLUME)
251
252 #define STATIC_KSAUDFNAME_RECORDING_SOURCE\
253 0x185FEDEFL, 0x9905, 0x11D1, {0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3}
254 DEFINE_GUIDSTRUCT("185FEDEF-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_RECORDING_SOURCE);
255 #define KSAUDFNAME_RECORDING_SOURCE DEFINE_GUIDNAMED(KSAUDFNAME_RECORDING_SOURCE)
256
257 #define STATIC_KSAUDFNAME_LINE_IN_VOLUME\
258 0x185FEDF4L, 0x9905, 0x11D1, {0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3}
259 DEFINE_GUIDSTRUCT("185FEDF4-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_LINE_IN_VOLUME);
260 #define KSAUDFNAME_LINE_IN_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_LINE_IN_VOLUME)
261
262 #define STATIC_KSAUDFNAME_AUX_VOLUME\
263 0x185FEDFCL, 0x9905, 0x11D1, {0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3}
264 DEFINE_GUIDSTRUCT("185FEDFC-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_AUX_VOLUME);
265 #define KSAUDFNAME_AUX_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_AUX_VOLUME)
266
267 #define STATIC_KSAUDFNAME_MIC_IN_VOLUME\
268 0x185FEDF5L, 0x9905, 0x11D1, {0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3}
269 DEFINE_GUIDSTRUCT("185FEDF5-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_MIC_IN_VOLUME);
270 #define KSAUDFNAME_MIC_IN_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_MIC_IN_VOLUME)
271
272 #define STATIC_KSNODETYPE_LOUDNESS\
273 0x41887440L, 0xC558, 0x11D0, {0x8A, 0x2B, 0x00, 0xA0, 0xC9, 0x25, 0x5A, 0xC1}
274 DEFINE_GUIDSTRUCT("41887440-C558-11D0-8A2B-00A0C9255AC1", KSNODETYPE_LOUDNESS);
275 #define KSNODETYPE_LOUDNESS DEFINE_GUIDNAMED(KSNODETYPE_LOUDNESS)
276
277 #define STATIC_KSAUDFNAME_MICROPHONE_BOOST\
278 0x2bc31d6aL, 0x96e3, 0x11d2, {0xac, 0x4c, 0x0, 0xc0, 0x4f, 0x8e, 0xfb, 0x68}
279 DEFINE_GUIDSTRUCT("2BC31D6A-96E3-11d2-AC4C-00C04F8EFB68", KSAUDFNAME_MICROPHONE_BOOST);
280 #define KSAUDFNAME_MICROPHONE_BOOST DEFINE_GUIDNAMED(KSAUDFNAME_MICROPHONE_BOOST)
281
282 #define STATIC_KSAUDFNAME_CD_MUTE\
283 0x185FEDEAL, 0x9905, 0x11D1, {0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3}
284 DEFINE_GUIDSTRUCT("185FEDEA-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_CD_MUTE);
285 #define KSAUDFNAME_CD_MUTE DEFINE_GUIDNAMED(KSAUDFNAME_CD_MUTE)
286
287 #define STATIC_KSAUDFNAME_LINE_MUTE\
288 0x185FEDECL, 0x9905, 0x11D1, {0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3}
289 DEFINE_GUIDSTRUCT("185FEDEC-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_LINE_MUTE);
290 #define KSAUDFNAME_LINE_MUTE DEFINE_GUIDNAMED(KSAUDFNAME_LINE_MUTE)
291
292 #define STATIC_KSAUDFNAME_MIC_MUTE\
293 0x185FEDEEL, 0x9905, 0x11D1, {0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3}
294 DEFINE_GUIDSTRUCT("185FEDEE-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_MIC_MUTE);
295 #define KSAUDFNAME_MIC_MUTE DEFINE_GUIDNAMED(KSAUDFNAME_MIC_MUTE)
296
297 #define STATIC_KSAUDFNAME_AUX_MUTE\
298 0x185FEDFDL, 0x9905, 0x11D1, {0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3}
299 DEFINE_GUIDSTRUCT("185FEDFD-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_AUX_MUTE);
300 #define KSAUDFNAME_AUX_MUTE DEFINE_GUIDNAMED(KSAUDFNAME_AUX_MUTE)
301
302 #define STATIC_KSAUDFNAME_VOLUME_CONTROL\
303 0x185FEDF7L, 0x9905, 0x11D1, {0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3}
304 DEFINE_GUIDSTRUCT("185FEDF7-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_VOLUME_CONTROL);
305 #define KSAUDFNAME_VOLUME_CONTROL DEFINE_GUIDNAMED(KSAUDFNAME_VOLUME_CONTROL)
306
307 #define STATIC_KSNODETYPE_MUX\
308 0x2CEAF780L, 0xC556, 0x11D0, {0x8A, 0x2B, 0x00, 0xA0, 0xC9, 0x25, 0x5A, 0xC1}
309 DEFINE_GUIDSTRUCT("2CEAF780-C556-11D0-8A2B-00A0C9255AC1", KSNODETYPE_MUX);
310 #define KSNODETYPE_MUX DEFINE_GUIDNAMED(KSNODETYPE_MUX)
311
312 #define STATIC_KSAUDFNAME_MASTER_MUTE\
313 0x185FEDE4L, 0x9905, 0x11D1, {0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3}
314 DEFINE_GUIDSTRUCT("185FEDE4-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_MASTER_MUTE);
315 #define KSAUDFNAME_MASTER_MUTE DEFINE_GUIDNAMED(KSAUDFNAME_MASTER_MUTE)
316
317 #define STATIC_KSNODETYPE_PEAKMETER\
318 0xa085651eL, 0x5f0d, 0x4b36, {0xa8, 0x69, 0xd1, 0x95, 0xd6, 0xab, 0x4b, 0x9e}
319 DEFINE_GUIDSTRUCT("A085651E-5F0D-4b36-A869-D195D6AB4B9E", KSNODETYPE_PEAKMETER);
320 #define KSNODETYPE_PEAKMETER DEFINE_GUIDNAMED(KSNODETYPE_PEAKMETER)
321
322 #define STATIC_KSNODETYPE_STEREO_WIDE\
323 0xA9E69800L, 0xC558, 0x11D0, {0x8A, 0x2B, 0x00, 0xA0, 0xC9, 0x25, 0x5A, 0xC1}
324 DEFINE_GUIDSTRUCT("A9E69800-C558-11D0-8A2B-00A0C9255AC1", KSNODETYPE_STEREO_WIDE);
325 #define KSNODETYPE_STEREO_WIDE DEFINE_GUIDNAMED(KSNODETYPE_STEREO_WIDE)
326
327 #define STATIC_KSNODETYPE_TONE\
328 0x7607E580L, 0xC557, 0x11D0, {0x8A, 0x2B, 0x00, 0xA0, 0xC9, 0x25, 0x5A, 0xC1}
329 DEFINE_GUIDSTRUCT("7607E580-C557-11D0-8A2B-00A0C9255AC1", KSNODETYPE_TONE);
330 #define KSNODETYPE_TONE DEFINE_GUIDNAMED(KSNODETYPE_TONE)
331
332
333 #define STATIC_KSNODETYPE_DESKTOP_MICROPHONE\
334 DEFINE_USB_TERMINAL_GUID(0x0202)
335 DEFINE_GUIDSTRUCT("DFF21BE2-F70F-11D0-B917-00A0C9223196", KSNODETYPE_DESKTOP_MICROPHONE);
336 #define KSNODETYPE_DESKTOP_MICROPHONE DEFINE_GUIDNAMED(KSNODETYPE_DESKTOP_MICROPHONE)
337
338 #define STATIC_KSNODETYPE_PERSONAL_MICROPHONE\
339 DEFINE_USB_TERMINAL_GUID(0x0203)
340 DEFINE_GUIDSTRUCT("DFF21BE3-F70F-11D0-B917-00A0C9223196", KSNODETYPE_PERSONAL_MICROPHONE);
341 #define KSNODETYPE_PERSONAL_MICROPHONE DEFINE_GUIDNAMED(KSNODETYPE_PERSONAL_MICROPHONE)
342
343 #define STATIC_KSNODETYPE_OMNI_DIRECTIONAL_MICROPHONE\
344 DEFINE_USB_TERMINAL_GUID(0x0204)
345 DEFINE_GUIDSTRUCT("DFF21BE4-F70F-11D0-B917-00A0C9223196", KSNODETYPE_OMNI_DIRECTIONAL_MICROPHONE);
346 #define KSNODETYPE_OMNI_DIRECTIONAL_MICROPHONE DEFINE_GUIDNAMED(KSNODETYPE_OMNI_DIRECTIONAL_MICROPHONE)
347
348 #define STATIC_KSNODETYPE_MICROPHONE_ARRAY\
349 DEFINE_USB_TERMINAL_GUID(0x0205)
350 DEFINE_GUIDSTRUCT("DFF21BE5-F70F-11D0-B917-00A0C9223196", KSNODETYPE_MICROPHONE_ARRAY);
351 #define KSNODETYPE_MICROPHONE_ARRAY DEFINE_GUIDNAMED(KSNODETYPE_MICROPHONE_ARRAY)
352
353 #define STATIC_KSNODETYPE_PROCESSING_MICROPHONE_ARRAY\
354 DEFINE_USB_TERMINAL_GUID(0x0206)
355 DEFINE_GUIDSTRUCT("DFF21BE6-F70F-11D0-B917-00A0C9223196", KSNODETYPE_PROCESSING_MICROPHONE_ARRAY);
356 #define KSNODETYPE_PROCESSING_MICROPHONE_ARRAY DEFINE_GUIDNAMED(KSNODETYPE_PROCESSING_MICROPHONE_ARRAY)
357
358 #define STATIC_KSNODETYPE_HEADPHONES\
359 DEFINE_USB_TERMINAL_GUID(0x0302)
360 DEFINE_GUIDSTRUCT("DFF21CE2-F70F-11D0-B917-00A0C9223196", KSNODETYPE_HEADPHONES);
361 #define KSNODETYPE_HEADPHONES DEFINE_GUIDNAMED(KSNODETYPE_HEADPHONES)
362
363 #define STATIC_KSNODETYPE_HEAD_MOUNTED_DISPLAY_AUDIO\
364 DEFINE_USB_TERMINAL_GUID(0x0303)
365 DEFINE_GUIDSTRUCT("DFF21CE3-F70F-11D0-B917-00A0C9223196", KSNODETYPE_HEAD_MOUNTED_DISPLAY_AUDIO);
366 #define KSNODETYPE_HEAD_MOUNTED_DISPLAY_AUDIO DEFINE_GUIDNAMED(KSNODETYPE_HEAD_MOUNTED_DISPLAY_AUDIO)
367
368 #define STATIC_KSNODETYPE_DESKTOP_SPEAKER\
369 DEFINE_USB_TERMINAL_GUID(0x0304)
370 DEFINE_GUIDSTRUCT("DFF21CE4-F70F-11D0-B917-00A0C9223196", KSNODETYPE_DESKTOP_SPEAKER);
371 #define KSNODETYPE_DESKTOP_SPEAKER DEFINE_GUIDNAMED(KSNODETYPE_DESKTOP_SPEAKER)
372
373 #define STATIC_KSNODETYPE_ROOM_SPEAKER\
374 DEFINE_USB_TERMINAL_GUID(0x0305)
375 DEFINE_GUIDSTRUCT("DFF21CE5-F70F-11D0-B917-00A0C9223196", KSNODETYPE_ROOM_SPEAKER);
376 #define KSNODETYPE_ROOM_SPEAKER DEFINE_GUIDNAMED(KSNODETYPE_ROOM_SPEAKER)
377
378 #define STATIC_KSNODETYPE_COMMUNICATION_SPEAKER\
379 DEFINE_USB_TERMINAL_GUID(0x0306)
380 DEFINE_GUIDSTRUCT("DFF21CE6-F70F-11D0-B917-00A0C9223196", KSNODETYPE_COMMUNICATION_SPEAKER);
381 #define KSNODETYPE_COMMUNICATION_SPEAKER DEFINE_GUIDNAMED(KSNODETYPE_COMMUNICATION_SPEAKER)
382
383 #define STATIC_KSNODETYPE_LOW_FREQUENCY_EFFECTS_SPEAKER\
384 DEFINE_USB_TERMINAL_GUID(0x0307)
385 DEFINE_GUIDSTRUCT("DFF21CE7-F70F-11D0-B917-00A0C9223196", KSNODETYPE_LOW_FREQUENCY_EFFECTS_SPEAKER);
386 #define KSNODETYPE_LOW_FREQUENCY_EFFECTS_SPEAKER DEFINE_GUIDNAMED(KSNODETYPE_LOW_FREQUENCY_EFFECTS_SPEAKER)
387
388
389 /*
390 Pins
391 */
392
393 #define STATIC_KSCATEGORY_WDMAUD_USE_PIN_NAME \
394 0x47A4FA20L, 0xA251, 0x11D1, {0xA0, 0x50, 0x00, 0x00, 0xF8, 0x00, 0x47, 0x88}
395 DEFINE_GUIDSTRUCT("47A4FA20-A251-11D1-A050-0000F8004788", KSCATEGORY_WDMAUD_USE_PIN_NAME);
396 #define KSCATEGORY_WDMAUD_USE_PIN_NAME DEFINE_GUIDNAMED(KSCATEGORY_WDMAUD_USE_PIN_NAME)
397
398
399 /*
400 Formats
401 */
402
403 //#if defined(_INC_MMREG)
404 #if !defined( PACK_PRAGMAS_NOT_SUPPORTED )
405 #include <pshpack1.h>
406 #endif
407 typedef struct {
408 KSDATAFORMAT DataFormat;
409 WAVEFORMATEX WaveFormatEx;
410 } KSDATAFORMAT_WAVEFORMATEX, *PKSDATAFORMAT_WAVEFORMATEX;
411
412 #ifndef _WAVEFORMATEXTENSIBLE_
413 #define _WAVEFORMATEXTENSIBLE_
414 typedef struct {
415 WAVEFORMATEX Format;
416 union
417 {
418 WORD wValidBitsPerSample;
419 WORD wSamplesPerBlock;
420 WORD wReserved;
421 }Samples;
422 DWORD dwChannelMask;
423 GUID SubFormat;
424 } WAVEFORMATEXTENSIBLE, *PWAVEFORMATEXTENSIBLE;
425 #endif
426
427 #if !defined(WAVE_FORMAT_EXTENSIBLE)
428 #define WAVE_FORMAT_EXTENSIBLE 0xFFFE
429 #endif
430
431 typedef struct {
432 ULONG Flags;
433 ULONG Control;
434 WAVEFORMATEX WaveFormatEx;
435 } KSDSOUND_BUFFERDESC, *PKSDSOUND_BUFFERDESC;
436
437 typedef struct {
438 KSDATAFORMAT DataFormat;
439 KSDSOUND_BUFFERDESC BufferDesc;
440 } KSDATAFORMAT_DSOUND, *PKSDATAFORMAT_DSOUND;
441
442 #if !defined( PACK_PRAGMAS_NOT_SUPPORTED )
443 #include <poppack.h>
444 #endif
445
446 //#endif
447
448 typedef struct {
449 KSDATARANGE DataRange;
450 ULONG MaximumChannels;
451 ULONG MinimumBitsPerSample;
452 ULONG MaximumBitsPerSample;
453 ULONG MinimumSampleFrequency;
454 ULONG MaximumSampleFrequency;
455 } KSDATARANGE_AUDIO, *PKSDATARANGE_AUDIO;
456
457 #if !defined( DEFINE_WAVEFORMATEX_GUID )
458 #define DEFINE_WAVEFORMATEX_GUID(x) (USHORT)(x), 0x0000, 0x0010, {0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
459 #endif
460
461 #define STATIC_KSDATAFORMAT_SUBTYPE_WAVEFORMATEX\
462 0x00000000L, 0x0000, 0x0010, {0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
463 DEFINE_GUIDSTRUCT("00000000-0000-0010-8000-00aa00389b71", KSDATAFORMAT_SUBTYPE_WAVEFORMATEX);
464 #define KSDATAFORMAT_SUBTYPE_WAVEFORMATEX DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_WAVEFORMATEX)
465
466
467 #define INIT_WAVEFORMATEX_GUID(Guid, x) \
468 { \
469 *(Guid) = KSDATAFORMAT_SUBTYPE_WAVEFORMATEX; \
470 (Guid)->Data1 = (USHORT)(x); \
471 }
472
473 // 'vids'
474 #define STATIC_KSDATAFORMAT_TYPE_VIDEO \
475 0x73646976L, 0x0000, 0x0010, {0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
476 DEFINE_GUIDSTRUCT("73646976-0000-0010-8000-00aa00389b71", KSDATAFORMAT_TYPE_VIDEO);
477 #define KSDATAFORMAT_TYPE_VIDEO DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_VIDEO)
478
479 // 'auds'
480 #define STATIC_KSDATAFORMAT_TYPE_AUDIO \
481 0x73647561L, 0x0000, 0x0010, {0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
482 DEFINE_GUIDSTRUCT("73647561-0000-0010-8000-00aa00389b71", KSDATAFORMAT_TYPE_AUDIO);
483 #define KSDATAFORMAT_TYPE_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_AUDIO)
484
485 #define STATIC_KSDATAFORMAT_SPECIFIER_DSOUND\
486 0x518590a2L, 0xa184, 0x11d0, {0x85, 0x22, 0x00, 0xc0, 0x4f, 0xd9, 0xba, 0xf3}
487 DEFINE_GUIDSTRUCT("518590a2-a184-11d0-8522-00c04fd9baf3", KSDATAFORMAT_SPECIFIER_DSOUND);
488 #define KSDATAFORMAT_SPECIFIER_DSOUND DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_DSOUND)
489
490 #define STATIC_KSDATAFORMAT_SUBTYPE_ANALOG\
491 0x6dba3190L, 0x67bd, 0x11cf, {0xa0, 0xf7, 0x00, 0x20, 0xaf, 0xd1, 0x56, 0xe4}
492 DEFINE_GUIDSTRUCT("6dba3190-67bd-11cf-a0f7-0020afd156e4", KSDATAFORMAT_SUBTYPE_ANALOG);
493 #define KSDATAFORMAT_SUBTYPE_ANALOG DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_ANALOG)
494
495
496 // 'txts'
497 #define STATIC_KSDATAFORMAT_TYPE_TEXT \
498 0x73747874L, 0x0000, 0x0010, {0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
499 DEFINE_GUIDSTRUCT("73747874-0000-0010-8000-00aa00389b71", KSDATAFORMAT_TYPE_TEXT);
500 #define KSDATAFORMAT_TYPE_TEXT DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_TEXT)
501
502 #define STATIC_KSDATAFORMAT_TYPE_MUSIC \
503 0xE725D360L, 0x62CC, 0x11CF, {0xA5, 0xD6, 0x28, 0xDB, 0x04, 0xC1, 0x00, 0x00}
504 DEFINE_GUIDSTRUCT("E725D360-62CC-11CF-A5D6-28DB04C10000", KSDATAFORMAT_TYPE_MUSIC);
505 #define KSDATAFORMAT_TYPE_MUSIC DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_MUSIC)
506
507 // 'mids'
508 #define STATIC_KSDATAFORMAT_TYPE_MIDI \
509 0x7364696DL, 0x0000, 0x0010, {0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
510 DEFINE_GUIDSTRUCT("7364696D-0000-0010-8000-00aa00389b71", KSDATAFORMAT_TYPE_MIDI);
511 #define KSDATAFORMAT_TYPE_MIDI DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_MIDI)
512
513 #define STATIC_KSDATAFORMAT_SUBTYPE_MIDI \
514 0x1D262760L, 0xE957, 0x11CF, {0xA5, 0xD6, 0x28, 0xDB, 0x04, 0xC1, 0x00, 0x00}
515 DEFINE_GUIDSTRUCT("1D262760-E957-11CF-A5D6-28DB04C10000", KSDATAFORMAT_SUBTYPE_MIDI);
516 #define KSDATAFORMAT_SUBTYPE_MIDI DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_MIDI)
517
518 #define STATIC_KSDATAFORMAT_SUBTYPE_PCM\
519 0x00000001L, 0x0000, 0x0010, {0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
520 DEFINE_GUIDSTRUCT("00000001-0000-0010-8000-00aa00389b71", KSDATAFORMAT_SUBTYPE_PCM);
521 #define KSDATAFORMAT_SUBTYPE_PCM DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_PCM)
522
523 #define STATIC_KSDATAFORMAT_SUBTYPE_IEEE_FLOAT\
524 0x00000003L, 0x0000, 0x0010, {0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
525 DEFINE_GUIDSTRUCT("00000003-0000-0010-8000-00aa00389b71", KSDATAFORMAT_SUBTYPE_IEEE_FLOAT);
526 #define KSDATAFORMAT_SUBTYPE_IEEE_FLOAT DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_IEEE_FLOAT)
527
528 #define STATIC_KSDATAFORMAT_SPECIFIER_WAVEFORMATEX\
529 0x05589f81L, 0xc356, 0x11ce, {0xbf, 0x01, 0x00, 0xaa, 0x00, 0x55, 0x59, 0x5a}
530 DEFINE_GUIDSTRUCT("05589f81-c356-11ce-bf01-00aa0055595a", KSDATAFORMAT_SPECIFIER_WAVEFORMATEX);
531 #define KSDATAFORMAT_SPECIFIER_WAVEFORMATEX DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_WAVEFORMATEX)
532
533 #define STATIC_KSDATAFORMAT_SUBTYPE_AC3_AUDIO\
534 0xe06d802cL, 0xdb46, 0x11cf, {0xb4, 0xd1, 0x00, 0x80, 0x5f, 0x6c, 0xbb, 0xea}
535 DEFINE_GUIDSTRUCT("e06d802c-db46-11cf-b4d1-00805f6cbbea", KSDATAFORMAT_SUBTYPE_AC3_AUDIO);
536 #define KSDATAFORMAT_SUBTYPE_AC3_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_AC3_AUDIO)
537
538 #define STATIC_KSDATAFORMAT_SPECIFIER_AC3_AUDIO\
539 0xe06d80e4L, 0xdb46, 0x11cf, {0xb4, 0xd1, 0x00, 0x80, 0x5f, 0x6c, 0xbb, 0xea}
540 DEFINE_GUIDSTRUCT("e06d80e4-db46-11cf-b4d1-00805f6cbbea", KSDATAFORMAT_SPECIFIER_AC3_AUDIO);
541 #define KSDATAFORMAT_SPECIFIER_AC3_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_AC3_AUDIO)
542
543 #define STATIC_KSPROPSETID_AC3\
544 0xBFABE720L, 0x6E1F, 0x11D0, {0xBC, 0xF2, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00}
545 DEFINE_GUIDSTRUCT("BFABE720-6E1F-11D0-BCF2-444553540000", KSPROPSETID_AC3);
546 #define KSPROPSETID_AC3 DEFINE_GUIDNAMED(KSPROPSETID_AC3)
547
548 #define STATIC_KSPROPSETID_Audio\
549 0x45FFAAA0L, 0x6E1B, 0x11D0, {0xBC, 0xF2, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00}
550 DEFINE_GUIDSTRUCT("45FFAAA0-6E1B-11D0-BCF2-444553540000", KSPROPSETID_Audio);
551 #define KSPROPSETID_Audio DEFINE_GUIDNAMED(KSPROPSETID_Audio)
552
553 typedef enum {
554 KSPROPERTY_AUDIO_LATENCY = 1,
555 KSPROPERTY_AUDIO_COPY_PROTECTION,
556 KSPROPERTY_AUDIO_CHANNEL_CONFIG,
557 KSPROPERTY_AUDIO_VOLUMELEVEL,
558 KSPROPERTY_AUDIO_POSITION,
559 KSPROPERTY_AUDIO_DYNAMIC_RANGE,
560 KSPROPERTY_AUDIO_QUALITY,
561 KSPROPERTY_AUDIO_SAMPLING_RATE,
562 KSPROPERTY_AUDIO_DYNAMIC_SAMPLING_RATE,
563 KSPROPERTY_AUDIO_MIX_LEVEL_TABLE,
564 KSPROPERTY_AUDIO_MIX_LEVEL_CAPS,
565 KSPROPERTY_AUDIO_MUX_SOURCE,
566 KSPROPERTY_AUDIO_MUTE,
567 KSPROPERTY_AUDIO_BASS,
568 KSPROPERTY_AUDIO_MID,
569 KSPROPERTY_AUDIO_TREBLE,
570 KSPROPERTY_AUDIO_BASS_BOOST,
571 KSPROPERTY_AUDIO_EQ_LEVEL,
572 KSPROPERTY_AUDIO_NUM_EQ_BANDS,
573 KSPROPERTY_AUDIO_EQ_BANDS,
574 KSPROPERTY_AUDIO_AGC,
575 KSPROPERTY_AUDIO_DELAY,
576 KSPROPERTY_AUDIO_LOUDNESS,
577 KSPROPERTY_AUDIO_WIDE_MODE,
578 KSPROPERTY_AUDIO_WIDENESS,
579 KSPROPERTY_AUDIO_REVERB_LEVEL,
580 KSPROPERTY_AUDIO_CHORUS_LEVEL,
581 KSPROPERTY_AUDIO_DEV_SPECIFIC,
582 KSPROPERTY_AUDIO_DEMUX_DEST,
583 KSPROPERTY_AUDIO_STEREO_ENHANCE,
584 KSPROPERTY_AUDIO_MANUFACTURE_GUID,
585 KSPROPERTY_AUDIO_PRODUCT_GUID,
586 KSPROPERTY_AUDIO_CPU_RESOURCES,
587 KSPROPERTY_AUDIO_STEREO_SPEAKER_GEOMETRY,
588 KSPROPERTY_AUDIO_SURROUND_ENCODE,
589 KSPROPERTY_AUDIO_3D_INTERFACE
590
591 #if (NTDDI_VERSION >= NTDDI_WINXP)
592 , KSPROPERTY_AUDIO_PEAKMETER
593 , KSPROPERTY_AUDIO_ALGORITHM_INSTANCE
594 , KSPROPERTY_AUDIO_FILTER_STATE
595 , KSPROPERTY_AUDIO_PREFERRED_STATUS
596
597 #endif
598 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
599 , KSPROPERTY_AUDIO_PEQ_MAX_BANDS
600 , KSPROPERTY_AUDIO_PEQ_NUM_BANDS
601 , KSPROPERTY_AUDIO_PEQ_BAND_CENTER_FREQ
602 , KSPROPERTY_AUDIO_PEQ_BAND_Q_FACTOR
603 , KSPROPERTY_AUDIO_PEQ_BAND_LEVEL
604 , KSPROPERTY_AUDIO_CHORUS_MODULATION_RATE
605 , KSPROPERTY_AUDIO_CHORUS_MODULATION_DEPTH
606 , KSPROPERTY_AUDIO_REVERB_TIME
607 , KSPROPERTY_AUDIO_REVERB_DELAY_FEEDBACK
608 , KSPROPERTY_AUDIO_POSITIONEX
609 , KSPROPERTY_AUDIO_MIC_ARRAY_GEOMETRY
610 #endif
611
612 } KSPROPERTY_AUDIO;
613
614 #define STATIC_KSEVENTSETID_AudioControlChange\
615 0xE85E9698L, 0xFA2F, 0x11D1, {0x95, 0xBD, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3}
616 DEFINE_GUIDSTRUCT("E85E9698-FA2F-11D1-95BD-00C04FB925D3", KSEVENTSETID_AudioControlChange);
617 #define KSEVENTSETID_AudioControlChange DEFINE_GUIDNAMED(KSEVENTSETID_AudioControlChange)
618
619 typedef enum {
620 KSEVENT_CONTROL_CHANGE,
621 } KSEVENT_AUDIO_CONTROL_CHANGE;
622
623
624 #define STATIC_KSEVENTSETID_LoopedStreaming\
625 0x4682B940L, 0xC6EF, 0x11D0, {0x96, 0xD8, 0x00, 0xAA, 0x00, 0x51, 0xE5, 0x1D}
626 DEFINE_GUIDSTRUCT("4682B940-C6EF-11D0-96D8-00AA0051E51D", KSEVENTSETID_LoopedStreaming);
627 #define KSEVENTSETID_LoopedStreaming DEFINE_GUIDNAMED(KSEVENTSETID_LoopedStreaming)
628
629 typedef enum {
630 KSEVENT_LOOPEDSTREAMING_POSITION,
631 } KSEVENT_LOOPEDSTREAMING;
632
633 #define STATIC_KSEVENTSETID_Connection\
634 0x7f4bcbe0L, 0x9ea5, 0x11cf, {0xa5, 0xd6, 0x28, 0xdb, 0x04, 0xc1, 0x00, 0x00}
635 DEFINE_GUIDSTRUCT("7f4bcbe0-9ea5-11cf-a5d6-28db04c10000", KSEVENTSETID_Connection);
636 #define KSEVENTSETID_Connection DEFINE_GUIDNAMED(KSEVENTSETID_Connection)
637
638
639 typedef struct {
640 KSEVENTDATA KsEventData;
641 #if defined(_NTDDK_)
642 ULONGLONG Position;
643 #else // !_NTDDK_
644 DWORDLONG Position;
645 #endif // !_NTDDK_
646 } LOOPEDSTREAMING_POSITION_EVENT_DATA, *PLOOPEDSTREAMING_POSITION_EVENT_DATA ;
647
648 #define STATIC_KSPROPSETID_DrmAudioStream\
649 0x2f2c8ddd, 0x4198, 0x4fac, {0xba, 0x29, 0x61, 0xbb, 0x5, 0xb7, 0xde, 0x6}
650 DEFINE_GUIDSTRUCT("2F2C8DDD-4198-4fac-BA29-61BB05B7DE06", KSPROPSETID_DrmAudioStream);
651 #define KSPROPSETID_DrmAudioStream DEFINE_GUIDNAMED(KSPROPSETID_DrmAudioStream)
652
653 typedef enum {
654 KSPROPERTY_DRMAUDIOSTREAM_CONTENTID
655 } KSPROPERTY_DRMAUDIOSTREAM;
656
657
658 /*
659 SysAudio Properties
660 */
661
662 #define STATIC_KSPROPSETID_Sysaudio \
663 0xCBE3FAA0L, 0xCC75, 0x11D0, {0xB4, 0x65, 0x00, 0x00, 0x1A, 0x18, 0x18, 0xE6}
664 DEFINE_GUIDSTRUCT("CBE3FAA0-CC75-11D0-B465-00001A1818E6", KSPROPSETID_Sysaudio);
665 #define KSPROPSETID_Sysaudio DEFINE_GUIDNAMED(KSPROPSETID_Sysaudio)
666
667 typedef enum {
668 KSPROPERTY_SYSAUDIO_DEVICE_COUNT = 1,
669 KSPROPERTY_SYSAUDIO_DEVICE_FRIENDLY_NAME = 2,
670 KSPROPERTY_SYSAUDIO_DEVICE_INSTANCE = 3,
671 KSPROPERTY_SYSAUDIO_DEVICE_INTERFACE_NAME = 4,
672 KSPROPERTY_SYSAUDIO_SELECT_GRAPH = 5,
673 KSPROPERTY_SYSAUDIO_CREATE_VIRTUAL_SOURCE = 6,
674 KSPROPERTY_SYSAUDIO_DEVICE_DEFAULT = 7,
675 KSPROPERTY_SYSAUDIO_INSTANCE_INFO = 14,
676 KSPROPERTY_SYSAUDIO_COMPONENT_ID = 16
677 } KSPROPERTY_SYSAUDIO;
678
679 typedef struct {
680 KSPROPERTY Property;
681 ULONG Flags;
682 ULONG DeviceNumber;
683 } SYSAUDIO_INSTANCE_INFO, *PSYSAUDIO_INSTANCE_INFO;
684
685 #define SYSAUDIO_FLAGS_DONT_COMBINE_PINS 0x00000001
686
687
688 #define STATIC_KSPROPSETID_Sysaudio_Pin \
689 0xA3A53220L, 0xC6E4, 0x11D0, {0xB4, 0x65, 0x00, 0x00, 0x1A, 0x18, 0x18, 0xE6}
690 DEFINE_GUIDSTRUCT("A3A53220-C6E4-11D0-B465-00001A1818E6", KSPROPSETID_Sysaudio_Pin);
691 #define KSPROPSETID_Sysaudio_Pin DEFINE_GUIDNAMED(KSPROPSETID_Sysaudio_Pin)
692
693 typedef enum {
694 KSPROPERTY_SYSAUDIO_ATTACH_VIRTUAL_SOURCE = 1,
695 } KSPROPERTY_SYSAUDIO_PIN;
696
697
698 #define KSAUDIO_CPU_RESOURCES_NOT_HOST_CPU 0x00000000
699 #define KSAUDIO_CPU_RESOURCES_HOST_CPU 0x7FFFFFFF
700
701 #if (NTDDI_VERSION >= NTDDI_WINXP)
702 #define KSAUDIO_SPEAKER_DIRECTOUT 0
703 #endif
704 #define KSAUDIO_SPEAKER_MONO (SPEAKER_FRONT_CENTER)
705 #define KSAUDIO_SPEAKER_STEREO (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT)
706 #define KSAUDIO_SPEAKER_QUAD (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | \
707 SPEAKER_BACK_LEFT | SPEAKER_BACK_RIGHT)
708 #define KSAUDIO_SPEAKER_SURROUND (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | \
709 SPEAKER_FRONT_CENTER | SPEAKER_BACK_CENTER)
710 #define KSAUDIO_SPEAKER_5POINT1 (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | \
711 SPEAKER_FRONT_CENTER | SPEAKER_LOW_FREQUENCY | \
712 SPEAKER_BACK_LEFT | SPEAKER_BACK_RIGHT)
713 #define KSAUDIO_SPEAKER_7POINT1 (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | \
714 SPEAKER_FRONT_CENTER | SPEAKER_LOW_FREQUENCY | \
715 SPEAKER_BACK_LEFT | SPEAKER_BACK_RIGHT | \
716 SPEAKER_FRONT_LEFT_OF_CENTER | SPEAKER_FRONT_RIGHT_OF_CENTER)
717
718 #if ( (NTDDI_VERSION >= NTDDI_WINXPSP2) && (NTDDI_VERSION < NTDDI_WS03) ) || (NTDDI_VERSION >= NTDDI_WS03SP1)
719
720 #define KSAUDIO_SPEAKER_5POINT1_SURROUND (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | \
721 SPEAKER_FRONT_CENTER | SPEAKER_LOW_FREQUENCY | \
722 SPEAKER_SIDE_LEFT | SPEAKER_SIDE_RIGHT)
723 #define KSAUDIO_SPEAKER_7POINT1_SURROUND (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | \
724 SPEAKER_FRONT_CENTER | SPEAKER_LOW_FREQUENCY | \
725 SPEAKER_BACK_LEFT | SPEAKER_BACK_RIGHT | \
726 SPEAKER_SIDE_LEFT | SPEAKER_SIDE_RIGHT)
727 #define KSAUDIO_SPEAKER_5POINT1_BACK KSAUDIO_SPEAKER_5POINT1
728 #define KSAUDIO_SPEAKER_7POINT1_WIDE KSAUDIO_SPEAKER_7POINT1
729 #endif
730
731 typedef struct
732 {
733 KSPROPERTY Property;
734 ULONG NodeId;
735 ULONG Reserved;
736 } KSNODEPROPERTY, *PKSNODEPROPERTY;
737
738 typedef struct
739 {
740 KSNODEPROPERTY NodeProperty;
741 LONG Channel;
742 ULONG Reserved;
743 } KSNODEPROPERTY_AUDIO_CHANNEL, *PKSNODEPROPERTY_AUDIO_CHANNEL;
744
745 typedef struct {
746 #if defined(_NTDDK_)
747 ULONGLONG PlayOffset;
748 ULONGLONG WriteOffset;
749 #else
750 DWORDLONG PlayOffset;
751 DWORDLONG WriteOffset;
752 #endif
753 } KSAUDIO_POSITION, *PKSAUDIO_POSITION;
754
755 typedef struct {
756 ULONG FifoSize;
757 ULONG ChipsetDelay;
758 ULONG CodecDelay;
759 } KSRTAUDIO_HWLATENCY, *PKSRTAUDIO_HWLATENCY;
760
761 typedef struct {
762 PVOID Register;
763 ULONG Width;
764 ULONGLONG Numerator;
765 ULONGLONG Denominator;
766 ULONG Accuracy;
767 } KSRTAUDIO_HWREGISTER, *PKSRTAUDIO_HWREGISTER;
768
769 #define KSNODEPIN_STANDARD_IN 1
770 #define KSNODEPIN_STANDARD_OUT 0
771
772 #define KSNODEPIN_SUM_MUX_IN 1
773 #define KSNODEPIN_SUM_MUX_OUT 0
774
775 #define KSNODEPIN_DEMUX_IN 0
776 #define KSNODEPIN_DEMUX_OUT 1
777
778 #if (NTDDI_VERSION < NTDDI_VISTA)
779
780 #define KSNODEPIN_AEC_RENDER_IN 1
781 #define KSNODEPIN_AEC_RENDER_OUT 0
782 #define KSNODEPIN_AEC_CAPTURE_IN 2
783 #define KSNODEPIN_AEC_CAPTURE_OUT 3
784
785 #endif
786
787
788 #define STATIC_KSMUSIC_TECHNOLOGY_PORT\
789 0x86C92E60L, 0x62E8, 0x11CF, {0xA5, 0xD6, 0x28, 0xDB, 0x04, 0xC1, 0x00, 0x00}
790 DEFINE_GUIDSTRUCT("86C92E60-62E8-11CF-A5D6-28DB04C10000", KSMUSIC_TECHNOLOGY_PORT);
791 #define KSMUSIC_TECHNOLOGY_PORT DEFINE_GUIDNAMED(KSMUSIC_TECHNOLOGY_PORT)
792
793 #define STATIC_KSDATAFORMAT_SUBTYPE_MIDI_BUS\
794 0x2CA15FA0L, 0x6CFE, 0x11CF, {0xA5, 0xD6, 0x28, 0xDB, 0x04, 0xC1, 0x00, 0x00}
795 DEFINE_GUIDSTRUCT("2CA15FA0-6CFE-11CF-A5D6-28DB04C10000", KSDATAFORMAT_SUBTYPE_MIDI_BUS);
796 #define KSDATAFORMAT_SUBTYPE_MIDI_BUS DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_MIDI_BUS)
797
798 #define STATIC_KSAUDFNAME_MIDI\
799 0x185FEDF8L, 0x9905, 0x11D1, {0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3}
800 DEFINE_GUIDSTRUCT("185FEDF8-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_MIDI);
801 #define KSAUDFNAME_MIDI DEFINE_GUIDNAMED(KSAUDFNAME_MIDI)
802
803 #define STATIC_KSNODETYPE_SYNTHESIZER\
804 DEFINE_USB_TERMINAL_GUID(0x0713)
805 DEFINE_GUIDSTRUCT("DFF220F3-F70F-11D0-B917-00A0C9223196", KSNODETYPE_SYNTHESIZER);
806 #define KSNODETYPE_SYNTHESIZER DEFINE_GUIDNAMED(KSNODETYPE_SYNTHESIZER)
807
808 typedef struct
809 {
810 KSDATARANGE DataRange;
811 GUID Technology;
812 ULONG Channels;
813 ULONG Notes;
814 ULONG ChannelMask;
815 } KSDATARANGE_MUSIC, *PKSDATARANGE_MUSIC;
816
817 #if (NTDDI_VERSION >= NTDDI_WINXPSP1)
818
819 #define STATIC_KSPROPSETID_Jack\
820 0x4509f757, 0x2d46, 0x4637, {0x8e, 0x62, 0xce, 0x7d, 0xb9, 0x44, 0xf5, 0x7b}
821 DEFINE_GUIDSTRUCT("4509F757-2D46-4637-8E62-CE7DB944F57B", KSPROPSETID_Jack);
822 #define KSPROPSETID_Jack DEFINE_GUIDNAMED(KSPROPSETID_Jack)
823
824 typedef enum {
825 KSPROPERTY_JACK_DESCRIPTION = 1,
826 KSPROPERTY_JACK_DESCRIPTION2,
827 KSPROPERTY_JACK_SINK_INFO,
828 KSPROPERTY_JACK_CONTAINERID
829 } KSPROPERTY_JACK;
830
831 typedef enum {
832 eConnTypeUnknown,
833 eConnType3Point5mm,
834 eConnTypeQuarter,
835 eConnTypeAtapiInternal,
836 eConnTypeRCA,
837 eConnTypeOptical,
838 eConnTypeOtherDigital,
839 eConnTypeOtherAnalog,
840 eConnTypeMultichannelAnalogDIN,
841 eConnTypeXlrProfessional,
842 eConnTypeRJ11Modem,
843 eConnTypeCombination
844 } EPcxConnectionType;
845
846 #define eGeoLocReserved5 eGeoLocNotApplicable
847
848 typedef enum {
849 eGeoLocRear = 0x1,
850 eGeoLocFront,
851 eGeoLocLeft,
852 eGeoLocRight,
853 eGeoLocTop,
854 eGeoLocBottom,
855 eGeoLocRearPanel,
856 eGeoLocRiser,
857 eGeoLocInsideMobileLid,
858 eGeoLocDrivebay,
859 eGeoLocHDMI,
860 eGeoLocOutsideMobileLid,
861 eGeoLocATAPI,
862 eGeoLocNotApplicable,
863 eGeoLocReserved6,
864 EPcxGeoLocation_enum_count
865 } EPcxGeoLocation;
866
867 typedef enum {
868 eGenLocPrimaryBox = 0,
869 eGenLocInternal,
870 eGenLocSeparate,
871 eGenLocOther,
872 EPcxGenLocation_enum_count
873 } EPcxGenLocation;
874
875 typedef enum {
876 ePortConnJack = 0,
877 ePortConnIntegratedDevice,
878 ePortConnBothIntegratedAndJack,
879 ePortConnUnknown
880 } EPxcPortConnection;
881
882 typedef struct {
883 DWORD ChannelMapping;
884 DWORD Color;
885 EPcxConnectionType ConnectionType;
886 EPcxGeoLocation GeoLocation;
887 EPcxGenLocation GenLocation;
888 EPxcPortConnection PortConnection;
889 BOOL IsConnected;
890 } KSJACK_DESCRIPTION, *PKSJACK_DESCRIPTION;
891
892 typedef enum {
893 KSJACK_SINK_CONNECTIONTYPE_HDMI = 0,
894 KSJACK_SINK_CONNECTIONTYPE_DISPLAYPORT
895 } KSJACK_SINK_CONNECTIONTYPE;
896
897 #define MAX_SINK_DESCRIPTION_NAME_LENGTH 32
898
899 typedef struct _tagKSJACK_SINK_INFORMATION {
900 KSJACK_SINK_CONNECTIONTYPE ConnType;
901 WORD ManufacturerId;
902 WORD ProductId;
903 WORD AudioLatency;
904 BOOL HDCPCapable;
905 BOOL AICapable;
906 UCHAR SinkDescriptionLength;
907 WCHAR SinkDescription[MAX_SINK_DESCRIPTION_NAME_LENGTH];
908 LUID PortId;
909 } KSJACK_SINK_INFORMATION, *PKSJACK_SINK_INFORMATION;
910
911 #define JACKDESC2_PRESENCE_DETECT_CAPABILITY 0x1
912 #define JACKDESC2_DYNAMIC_FORMAT_CHANGE_CAPABILITY 0x2
913
914 typedef struct _tagKSJACK_DESCRIPTION2 {
915 DWORD DeviceStateInfo;
916 DWORD JackCapabilities;
917 } KSJACK_DESCRIPTION2, *PKSJACK_DESCRIPTION2;
918
919 #endif /* (NTDDI_VERSION >= NTDDI_WINXPSP1) */
920
921 #ifndef _SPEAKER_POSITIONS_
922 #define _SPEAKER_POSITIONS_
923
924
925 #define SPEAKER_FRONT_LEFT 0x1
926 #define SPEAKER_FRONT_RIGHT 0x2
927 #define SPEAKER_FRONT_CENTER 0x4
928 #define SPEAKER_LOW_FREQUENCY 0x8
929 #define SPEAKER_BACK_LEFT 0x10
930 #define SPEAKER_BACK_RIGHT 0x20
931 #define SPEAKER_FRONT_LEFT_OF_CENTER 0x40
932 #define SPEAKER_FRONT_RIGHT_OF_CENTER 0x80
933 #define SPEAKER_BACK_CENTER 0x100
934 #define SPEAKER_SIDE_LEFT 0x200
935 #define SPEAKER_SIDE_RIGHT 0x400
936 #define SPEAKER_TOP_CENTER 0x800
937 #define SPEAKER_TOP_FRONT_LEFT 0x1000
938 #define SPEAKER_TOP_FRONT_CENTER 0x2000
939 #define SPEAKER_TOP_FRONT_RIGHT 0x4000
940 #define SPEAKER_TOP_BACK_LEFT 0x8000
941 #define SPEAKER_TOP_BACK_CENTER 0x10000
942 #define SPEAKER_TOP_BACK_RIGHT 0x20000
943
944 #define SPEAKER_RESERVED 0x7FFC0000
945 #define SPEAKER_ALL 0x80000000
946
947 #endif
948
949 #if (NTDDI_VERSION >= NTDDI_WINXP)
950 #define KSAUDIO_SPEAKER_DIRECTOUT 0
951 #endif
952
953 #define KSAUDIO_SPEAKER_MONO (SPEAKER_FRONT_CENTER)
954 #define KSAUDIO_SPEAKER_STEREO (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT)
955 #define KSAUDIO_SPEAKER_QUAD (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | \
956 SPEAKER_BACK_LEFT | SPEAKER_BACK_RIGHT)
957 #define KSAUDIO_SPEAKER_SURROUND (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | \
958 SPEAKER_FRONT_CENTER | SPEAKER_BACK_CENTER)
959 #define KSAUDIO_SPEAKER_5POINT1 (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | \
960 SPEAKER_FRONT_CENTER | SPEAKER_LOW_FREQUENCY | \
961 SPEAKER_BACK_LEFT | SPEAKER_BACK_RIGHT)
962 #define KSAUDIO_SPEAKER_7POINT1 (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | \
963 SPEAKER_FRONT_CENTER | SPEAKER_LOW_FREQUENCY | \
964 SPEAKER_BACK_LEFT | SPEAKER_BACK_RIGHT | \
965 SPEAKER_FRONT_LEFT_OF_CENTER | SPEAKER_FRONT_RIGHT_OF_CENTER)
966
967 #endif