Robert, thanks for the suggestion on modifying my wavetable.h file.I know its been a while, I had to table this issue to complete some other work, but what I trying to do is modify the "pcmex" example I started with from the MS msvad examples so that it can only offer playback, not recording.
Currently the recording icons still show up in the Sound panel so I'm trying to figure out how to make them not appear there.
Following your suggestions in your last email, I'm trying to modify the wavetable.h file. What I've tried so far is shown below but I'll have to admit I'm flying blind, I don't have any experience with modifications of this file and the only documentation I can find from MS on this is very vague.
After making the mods below now nothing shows up in the Sound panel, although the driver does appear in the Device Manager.
Any suggestions on what I'm doing wrong (which was just commenting some sections out), or does some other file also need modifications?
Thanks, Paul T. #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 /* Commented out unwanted ADC pins { 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 } }, End of commented out ADC pins */ // 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 PCPROPERTY_ITEM PropertiesDAC[] = { // KSPROPERTY_AUDIO_CHANNEL_CONFIG {&KSPROPSETID_Audio, // Property Set KSPROPERTY_AUDIO_CHANNEL_CONFIG, // Property ID
PCPROPERTY_ITEM_FLAG_GET | PCPROPERTY_ITEM_FLAG_SET, // Flags PropertyHandler_Wave // Handler } }; //============================================================================= DEFINE_PCAUTOMATION_TABLE_PROP(AutomationDAC, PropertiesDAC); //============================================================================= static PCNODE_DESCRIPTOR MiniportNodes[] = /* Commented out ADC nodes { // KSNODE_WAVE_ADC { 0, // Flags NULL, // AutomationTable &KSNODETYPE_ADC, // Type NULL // Name }, // KSNODE_WAVE_DAC { 0, // Flags &AutomationDAC, // AutomationTable &KSNODETYPE_DAC, // Type NULL // Name } }; End of commented out ADC nodes */ { // KSNODE_WAVE_DAC { 0, // Flags &AutomationDAC, // AutomationTable &KSNODETYPE_DAC, // Type NULL // Name } }; //============================================================================= static PCCONNECTION_DESCRIPTOR MiniportConnections[] = { /* Commented out ADC nodes{ PCFILTER_NODE, KSPIN_WAVE_CAPTURE_SOURCE, KSNODE_WAVE_ADC, 1 }, { KSNODE_WAVE_ADC, 0, PCFILTER_NODE, KSPIN_WAVE_CAPTURE_SINK },
End of commented out ADC nodes */{ 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, // CategoryCountNULL // Categories - NULL->use defaults (AUDIO RENDER CAPTURE)
};#endif
****************** WDMAUDIODEV addresses: Post message: mailto:wdmaudiodev@xxxxxxxxxxxxx Subscribe: mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=subscribe Unsubscribe: mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=unsubscribe Moderator: mailto:wdmaudiodev-moderators@xxxxxxxxxxxxx URL to WDMAUDIODEV page: http://www.wdmaudiodev.com/