Sample Code
Windows Driver Samples/ Microsoft Virtual Audio Device Driver Sample/ C++/ drmmult/ wavtable.h/
/*++ Copyright (c) 1997-2000 Microsoft Corporation All Rights Reserved Module Name: wavtable.h Abstract: Declaration of wave miniport tables. --*/ #ifndef _MSVAD_WAVTABLE_H_ #define _MSVAD_WAVTABLE_H_ //============================================================================= static KSDATARANGE_AUDIO PinDataRangesStream[] = { { { sizeof(KSDATARANGE_AUDIO), 0, 0, 0, STATICGUIDOF(KSDATAFORMAT_TYPE_AUDIO), STATICGUIDOF(KSDATAFORMAT_SUBTYPE_PCM), STATICGUIDOF(KSDATAFORMAT_SPECIFIER_WAVEFORMATEX) }, MAX_CHANNELS_PCM, MIN_BITS_PER_SAMPLE_PCM, MAX_BITS_PER_SAMPLE_PCM, MIN_SAMPLE_RATE, MAX_SAMPLE_RATE }, }; static PKSDATARANGE PinDataRangePointersStream[] = { PKSDATARANGE(&PinDataRangesStream[0]) }; //============================================================================= static KSDATARANGE PinDataRangesBridge[] = { { sizeof(KSDATARANGE), 0, 0, 0, STATICGUIDOF(KSDATAFORMAT_TYPE_AUDIO), STATICGUIDOF(KSDATAFORMAT_SUBTYPE_ANALOG), STATICGUIDOF(KSDATAFORMAT_SPECIFIER_NONE) } }; static PKSDATARANGE PinDataRangePointersBridge[] = { &PinDataRangesBridge[0] }; //============================================================================= static PCPIN_DESCRIPTOR MiniportPins[] = { // Wave In Streaming Pin (Capture) KSPIN_WAVE_CAPTURE_SINK { MAX_OUTPUT_STREAMS, MAX_OUTPUT_STREAMS, 0, NULL, { 0, NULL, 0, NULL, SIZEOF_ARRAY(PinDataRangePointersStream), PinDataRangePointersStream, KSPIN_DATAFLOW_OUT, KSPIN_COMMUNICATION_SINK, &KSCATEGORY_AUDIO, &KSAUDFNAME_RECORDING_CONTROL, 0 } }, // Wave In Bridge Pin (Capture - From Topology) KSPIN_WAVE_CAPTURE_SOURCE { 0, 0, 0, NULL, { 0, NULL, 0, NULL, SIZEOF_ARRAY(PinDataRangePointersBridge), PinDataRangePointersBridge, KSPIN_DATAFLOW_IN, KSPIN_COMMUNICATION_NONE, &KSCATEGORY_AUDIO, NULL, 0 } }, // Wave Out Streaming Pin (Renderer) KSPIN_WAVE_RENDER_SINK { MAX_INPUT_STREAMS, MAX_INPUT_STREAMS, 0, NULL, { 0, NULL, 0, NULL, SIZEOF_ARRAY(PinDataRangePointersStream), PinDataRangePointersStream, KSPIN_DATAFLOW_IN, KSPIN_COMMUNICATION_SINK, &KSCATEGORY_AUDIO, NULL, 0 } }, // Wave Out Bridge Pin (Renderer) KSPIN_WAVE_RENDER_SOURCE { 0, 0, 0, NULL, { 0, NULL, 0, NULL, SIZEOF_ARRAY(PinDataRangePointersBridge), PinDataRangePointersBridge, KSPIN_DATAFLOW_OUT, KSPIN_COMMUNICATION_NONE, &KSCATEGORY_AUDIO, NULL, 0 } }, }; //============================================================================= static PCNODE_DESCRIPTOR MiniportNodes[] = { // KSNODE_WAVE_ADC { 0, // Flags NULL, // AutomationTable &KSNODETYPE_ADC, // Type NULL // Name }, // KSNODE_WAVE_DAC { 0, // Flags NULL, // AutomationTable &KSNODETYPE_DAC, // Type NULL // Name } }; //============================================================================= static PCCONNECTION_DESCRIPTOR MiniportConnections[] = { { PCFILTER_NODE, KSPIN_WAVE_CAPTURE_SOURCE, KSNODE_WAVE_ADC, 1 }, { KSNODE_WAVE_ADC, 0, PCFILTER_NODE, KSPIN_WAVE_CAPTURE_SINK }, { PCFILTER_NODE, KSPIN_WAVE_RENDER_SINK, KSNODE_WAVE_DAC, 1 }, { KSNODE_WAVE_DAC, 0, PCFILTER_NODE, KSPIN_WAVE_RENDER_SOURCE }, }; //============================================================================= static PCFILTER_DESCRIPTOR MiniportFilterDescriptor = { 0, // Version NULL, // AutomationTable sizeof(PCPIN_DESCRIPTOR), // PinSize SIZEOF_ARRAY(MiniportPins), // PinCount MiniportPins, // Pins sizeof(PCNODE_DESCRIPTOR), // NodeSize SIZEOF_ARRAY(MiniportNodes), // NodeCount MiniportNodes, // Nodes SIZEOF_ARRAY(MiniportConnections), // ConnectionCount MiniportConnections, // Connections 0, // CategoryCount NULL // Categories - NULL->use defaults (AUDIO RENDER CAPTURE) }; #endif
Our Services
-
What our customers say about us?
Read our customer testimonials to find out why our clients keep returning for their projects.
View Testimonials