[wdmaudiodev] AVStream Mixer Problems

  • From: "John D. Farmer" <johndfarmer@xxxxxxxxxxx>
  • To: <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Fri, 20 Aug 2004 09:47:18 -0700


I'm creating a AVStream audio device that registers itself as a audio playback 
device.  When I select the device as my default playback device, I can hear the 
sound and everything is fine and good.  But now I am working on implementing 
the audio mixer for the device (e.g. Volume, Mute, Microphone Volume, ect).  

When I open up the Sounds and Audio Devices control panel, 'Device volume' 
section is grayed out as well as the buttons in the 'Speaker settings' section 
on the Volume tab.  When I go to the Audio tab I can access the Volume and 
Advanced buttons for both my Sound playback and Sound recording.  If I choose 
the Volume button for Sound playback, I see my Wave, CD Audio, and SW Synth 
mixers, but I seem to lack the Master Volume mixer.  If I go to the properties 
in Sndvol32 for my device I see "Playback" and "Recording" radio buttons.  
Under playback I see the same mixers as I saw previously, and under Recording I 
see no volume controls.  

I assume once I implement the Master Volume mixer that the controls on the 
'Device volume' and 'Speaker settings' sections will be enabled.   So how do I 
implement the Master Volume mixer?  
I've created a simple wave topology that implements Volume, Mute, SUM,  ADC and 
DAC nodes for my speaker and microphone pins.  When I look in KS Studio I see 
my driver under the KSCATEGORY_AUDIO Filter Factories as a Audio device (or a 
\wave device).  I looked at other soundcards on different systems and they also 
seem to have a Mixer node (or a \topology device).  I assume that these 
soundcard drivers are portcls drivers.  When I instantiate both of these 
filters they automatically connect (I've seen this behavior before in the MSVAD 
sample and understand the theory of how these filters work together).  So is 
there a way to create a Topology Filter and a Wave Filter for my device, or 
does AVStream do it a different way.  I see that portcls drivers uses 
PcRegisterSubDevice to register these filters but I have been unable to find 
the AVStream equivalent.

Any help would be greatly appreciated.


John Farmer

Other related posts: