ReactOS 0.4.15-dev-7924-g5949c20
minwavetables.hpp
Go to the documentation of this file.
1/*
2Copyright (c) 2006-2008 dogbert <dogber1@gmail.com>
3All rights reserved.
4
5Redistribution and use in source and binary forms, with or without
6modification, are permitted provided that the following conditions
7are met:
81. Redistributions of source code must retain the above copyright
9 notice, this list of conditions and the following disclaimer.
102. Redistributions in binary form must reproduce the above copyright
11 notice, this list of conditions and the following disclaimer in the
12 documentation and/or other materials provided with the distribution.
133. The name of the author may not be used to endorse or promote products
14 derived from this software without specific prior written permission.
15
16THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
17IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
18OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
19IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
20INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
21NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
22DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
23THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
25THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26*/
27
28#ifndef _MINWAVETABLES_HPP_
29#define _MINWAVETABLES_HPP_
30
31#define STATIC_KSDATAFORMAT_SUBTYPE_DOLBY_AC3_SPDIF DEFINE_WAVEFORMATEX_GUID(WAVE_FORMAT_DOLBY_AC3_SPDIF)
32DEFINE_GUIDSTRUCT("00000092-0000-0010-8000-00aa00389b71", KSDATAFORMAT_SUBTYPE_DOLBY_AC3_SPDIF);
33#define KSDATAFORMAT_SUBTYPE_DOLBY_AC3_SPDIF DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_DOLBY_AC3_SPDIF)
34
35#define WAVE_FORMAT_WMA_SPDIF 0x164
36#define STATIC_KSDATAFORMAT_SUBTYPE_WMA_SPDIF DEFINE_WAVEFORMATEX_GUID(WAVE_FORMAT_WMA_SPDIF)
37DEFINE_GUIDSTRUCT("00000164-0000-0010-8000-00aa00389b71", KSDATAFORMAT_SUBTYPE_WMA_SPDIF);
38#define KSDATAFORMAT_SUBTYPE_WMA_SPDIF DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_WMA_SPDIF)
39
41{
42 {
43 {
44 {
45 sizeof(KSDATARANGE_AUDIO),
46 0,
47 0,
48 0,
52 }
53 },
59 }
60};
61
63{
64 {
65 {
66 {
67 sizeof(KSDATARANGE_AUDIO),
68 0,
69 0,
70 0,
74 }
75 },
81 },
82 {
83 {
84 {
85 sizeof(KSDATARANGE_AUDIO),
86 0,
87 0,
88 0,
92 }
93 },
99 },
100 {
101 {
102 {
103 sizeof(KSDATARANGE_AUDIO),
104 0,
105 0,
106 0,
110 }
111 },
117 },
118 {
119 {
120 {
121 sizeof(KSDATARANGE_AUDIO),
122 0,
123 0,
124 0,
128 }
129 },
135 }
136};
137
139{
141};
142
144{
149};
150
151
152
154{
155 {
156 {
157 sizeof(KSDATARANGE),
158 0,
159 0,
160 0,
164 }
165 }
166};
167
169{
170 {
171 {
172 sizeof(KSDATARANGE),
173 0,
174 0,
175 0,
179 }
180 }
181};
182
184{
186};
187
189{
191};
192
194{
195 // PIN_WAVE_CAPTURE_SINK - 0
196 {
199 0,
200 NULL,
201 {
202 0,
203 NULL,
204 0,
205 NULL,
212 {0}
213 }
214 },
215
216 // PIN_WAVE_CAPTURE_SOURCE - 1
217 {
218 0,
219 0,
220 0,
221 NULL,
222 {
223 0,
224 NULL,
225 0,
226 NULL,
232 NULL,
233 {0}
234 }
235 },
236
237 // PIN_WAVE_RENDER_SINK - 2
238 {
241 0,
242 NULL,
243 {
244 0,
245 NULL,
246 0,
247 NULL,
254 {0}
255 }
256 },
257
258 // PIN_WAVE_RENDER_SOURCE - 3
259 {
260 0,
261 0,
262 0,
263 NULL,
264 {
265 0,
266 NULL,
267 0,
268 NULL,
274 NULL,
275 {0}
276 }
277 },
278
279 // PIN_WAVE_AC3_RENDER_SINK - 4
280 {
283 0,
284 NULL,
285 {
286 0,
287 NULL,
288 0,
289 NULL,
295 NULL,
296 {0}
297 }
298 },
299
300
301 // PIN_WAVE_AC3_RENDER_SOURCE - 5
302 {
303 0,
304 0,
305 0,
306 NULL,
307 {
308 0,
309 NULL,
310 0,
311 NULL,
317 NULL,
318 {0}
319 }
320 }
321};
322
324
326{
327 {
332 }
333};
335
337{// Flags AutomationTable Type Name
338// 0 - KSNODE_WAVE_ADC
339 { 0, NULL, &KSNODETYPE_ADC, NULL },
340// 1 - KSNODE_WAVE_VOLUME1
341 { 0, NULL, &KSNODETYPE_VOLUME, NULL },
342// 2 - KSNODE_WAVE_3D_EFFECTS
344// 3 - KSNODE_WAVE_SUPERMIX
345 { 0, NULL, &KSNODETYPE_SUPERMIX, NULL },
346// 4 - KSNODE_WAVE_VOLUME2
347 { 0, NULL, &KSNODETYPE_VOLUME, NULL },
348// 5 - KSNODE_WAVE_SRC
349 { 0, NULL, &KSNODETYPE_SRC, NULL },
350// 6 - KSNODE_WAVE_SUM
351 { 0, NULL, &KSNODETYPE_SUM, NULL },
352// 7 - KSNODE_WAVE_DAC
353 { 0, &AutomationChans, &KSNODETYPE_DAC, NULL },
354// 8 - KSNODE_WAVE_SPDIF (XP crashes if the pins are directly connected)
356};
357
359{// FromNode, FromPin, ToNode, ToPin
362
371
374};
375
377{
378 0, // Version
379 NULL, // AutomationTable
380 sizeof(PCPIN_DESCRIPTOR), // PinSize
381 SIZEOF_ARRAY(WaveMiniportPins), // PinCount
382 WaveMiniportPins, // Pins
383 sizeof(PCNODE_DESCRIPTOR), // NodeSize
384 SIZEOF_ARRAY(WaveMiniportNodes), // NodeCount
385 WaveMiniportNodes, // Nodes
386 SIZEOF_ARRAY(WaveMiniportConnections), // ConnectionCount
387 WaveMiniportConnections, // Connections
388 0, // CategoryCount
389 NULL // Categories - use the default categories (audio, render, capture)
390};
391
392#endif //_MINWAVETABLES_HPP_
LONG NTSTATUS
Definition: precomp.h:26
#define SIZEOF_ARRAY(ar)
Definition: cdrom.h:1482
#define NULL
Definition: types.h:112
#define MAX_CHANNELS_WMA
Definition: interfaces.hpp:56
#define MIN_SAMPLE_RATE
Definition: interfaces.hpp:44
@ PIN_WAVE_CAPTURE_SOURCE
Definition: interfaces.hpp:445
@ PIN_WAVE_CAPTURE_SINK
Definition: interfaces.hpp:444
@ PIN_WAVE_RENDER_SINK
Definition: interfaces.hpp:446
@ PIN_WAVE_AC3_RENDER_SINK
Definition: interfaces.hpp:448
@ PIN_WAVE_AC3_RENDER_SOURCE
Definition: interfaces.hpp:449
@ PIN_WAVE_RENDER_SOURCE
Definition: interfaces.hpp:447
#define MAX_OUTPUT_STREAMS
Definition: interfaces.hpp:35
#define MAX_BITS_PER_SAMPLE_WMA
Definition: interfaces.hpp:58
#define MIN_SAMPLE_RATE_WMA
Definition: interfaces.hpp:59
#define MAX_CHANNELS_AC3
Definition: interfaces.hpp:49
#define MAX_SAMPLE_RATE
Definition: interfaces.hpp:45
#define MIN_BITS_PER_SAMPLE_AC3
Definition: interfaces.hpp:50
#define MAX_INPUT_STREAMS
Definition: interfaces.hpp:36
#define MAX_BITS_PER_SAMPLE_PCM
Definition: interfaces.hpp:43
#define MIN_BITS_PER_SAMPLE_WMA
Definition: interfaces.hpp:57
#define MAX_AC3_INPUT_STREAMS
Definition: interfaces.hpp:37
#define MAX_CHANNELS_PCM
Definition: interfaces.hpp:41
#define MAX_SAMPLE_RATE_AC3
Definition: interfaces.hpp:53
#define MAX_SAMPLE_RATE_WMA
Definition: interfaces.hpp:60
@ KSNODE_WAVE_VOLUME2
Definition: interfaces.hpp:461
@ KSNODE_WAVE_DAC
Definition: interfaces.hpp:464
@ KSNODE_WAVE_VOLUME1
Definition: interfaces.hpp:458
@ KSNODE_WAVE_3D_EFFECTS
Definition: interfaces.hpp:459
@ KSNODE_WAVE_SUM
Definition: interfaces.hpp:463
@ KSNODE_WAVE_ADC
Definition: interfaces.hpp:457
@ KSNODE_WAVE_SRC
Definition: interfaces.hpp:462
@ KSNODE_WAVE_SPDIF
Definition: interfaces.hpp:465
@ KSNODE_WAVE_SUPERMIX
Definition: interfaces.hpp:460
#define MIN_BITS_PER_SAMPLE_PCM
Definition: interfaces.hpp:42
#define MAX_BITS_PER_SAMPLE_AC3
Definition: interfaces.hpp:51
#define MIN_SAMPLE_RATE_AC3
Definition: interfaces.hpp:52
#define KSPROPERTY_TYPE_SET
Definition: dmksctrl.h:43
#define STATICGUIDOF(guid)
Definition: dmksctrl.h:25
#define KSPROPERTY_TYPE_BASICSUPPORT
Definition: dmksctrl.h:45
#define KSPROPERTY_TYPE_GET
Definition: dmksctrl.h:42
#define KSDATAFORMAT_SPECIFIER_NONE
Definition: ks.h:1157
union KSDATAFORMAT KSDATARANGE
@ KSPIN_DATAFLOW_IN
Definition: ks.h:1249
@ KSPIN_DATAFLOW_OUT
Definition: ks.h:1250
@ KSPIN_COMMUNICATION_NONE
Definition: ks.h:1254
@ KSPIN_COMMUNICATION_SINK
Definition: ks.h:1255
#define DEFINE_GUIDSTRUCT(guid, name)
Definition: ks.h:98
union KSDATAFORMAT * PKSDATARANGE
#define KSDATAFORMAT_SUBTYPE_AC3_AUDIO
Definition: ksmedia.h:1036
@ KSPROPERTY_AUDIO_CHANNEL_CONFIG
Definition: ksmedia.h:1056
#define KSNODETYPE_SUM
Definition: ksmedia.h:363
#define KSNODETYPE_SRC
Definition: ksmedia.h:282
#define KSDATAFORMAT_SUBTYPE_PCM
Definition: ksmedia.h:1021
#define KSAUDFNAME_VOLUME_CONTROL
Definition: ksmedia.h:428
#define KSNODETYPE_VOLUME
Definition: ksmedia.h:338
#define KSNODETYPE_ADC
Definition: ksmedia.h:262
#define KSNODETYPE_3D_EFFECTS
Definition: ksmedia.h:272
#define KSDATAFORMAT_SUBTYPE_ANALOG
Definition: ksmedia.h:993
#define KSAUDFNAME_RECORDING_CONTROL
Definition: ksmedia.h:333
#define KSNODETYPE_DAC
Definition: ksmedia.h:287
#define KSNODETYPE_SUPERMIX
Definition: ksmedia.h:277
#define KSDATAFORMAT_SPECIFIER_DSOUND
Definition: ksmedia.h:988
#define KSDATAFORMAT_TYPE_AUDIO
Definition: ksmedia.h:983
#define KSCATEGORY_AUDIO
Definition: ksmedia.h:172
#define KSPROPSETID_Audio
Definition: ksmedia.h:1051
#define KSNODETYPE_SPDIF_INTERFACE
Definition: ksmedia.h:292
#define KSNODETYPE_SPEAKER
Definition: ksmedia.h:328
#define KSDATAFORMAT_SPECIFIER_WAVEFORMATEX
Definition: ksmedia.h:1031
static PCCONNECTION_DESCRIPTOR WaveMiniportConnections[]
#define KSDATAFORMAT_SUBTYPE_DOLBY_AC3_SPDIF
static PKSDATARANGE WavePinDataRangePointersPCMStream[]
static KSDATARANGE WavePinDataRangesPCMBridge[]
static PKSDATARANGE WavePinDataRangePointersAC3Bridge[]
static PCFILTER_DESCRIPTOR WaveMiniportFilterDescriptor
static PKSDATARANGE WavePinDataRangePointersAC3Stream[]
static PKSDATARANGE WavePinDataRangePointersPCMBridge[]
#define KSDATAFORMAT_SUBTYPE_WMA_SPDIF
static PCPIN_DESCRIPTOR WaveMiniportPins[]
static KSDATARANGE_AUDIO WavePinDataRangesAC3Stream[]
NTSTATUS NTAPI PropertyHandler_ChannelConfig(PPCPROPERTY_REQUEST PropertyRequest)
Definition: minwave.cpp:847
static KSDATARANGE WavePinDataRangesAC3Bridge[]
static PCPROPERTY_ITEM PropertiesChannels[]
static KSDATARANGE_AUDIO WavePinDataRangesPCMStream[]
static PCNODE_DESCRIPTOR WaveMiniportNodes[]
#define PCFILTER_NODE
Definition: portcls.h:154
#define DEFINE_PCAUTOMATION_TABLE_PROP(AutomationTable, PropertyTable)
Definition: portcls.h:368
#define NTAPI
Definition: typedefs.h:36