[wdmaudiodev] Re: AVStream Mixer Problems

  • From: "DJ Sisolak" <dsisolak@xxxxxxxxxxxxxxxxxxxxxx>
  • To: <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Fri, 20 Aug 2004 13:27:58 -0700

OK, I misunderstood your original message to read that the volume and
mute controls were all before the SUM node. So it would appear that for
some reason the controls themselves are not currently functioning or at
least not sending responses to requests, or perhaps there is a problem
in the BASIC_SUPPORT responses. There could be quite a few reasons for
this. You stated below that:

 

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? 

 

Does this mean that you have not yet implemented the controls? 

 

Unlike portcls drivers, avstream topologies are not separated from the
streaming. They are part of the same "filter factory". Creation of a
filter from the filter factory would instantiate the streaming and
topology for that filter. 

 

Thanks,

DJ Sisolak

Microsoft Corp.

 

This posting is provided "AS IS" with no warranties, and confers no
rights.

 

________________________________

From: wdmaudiodev-bounce@xxxxxxxxxxxxx
[mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] On Behalf Of John D. Farmer
Sent: Friday, August 20, 2004 11:27 AM
To: wdmaudiodev@xxxxxxxxxxxxx
Subject: [wdmaudiodev] Re: AVStream Mixer Problems

 

I've tried a number of different topologies, as I mentioned before I
looked at the topologies of other soundcards and this seems to be the
most correct:

 

static 
KSTOPOLOGY_CONNECTION MiniportConnections[] =
{
//FromNode------------------FromPin-----ToNode----------------------ToPi
n
{ KSFILTER_NODE,   1,   KSNODE_SPEAKER_VOLUME,  1 }, 

{ KSNODE_SPEAKER_VOLUME, 0,   KSNODE_SPEAKER_MUTE,  1 }, 

{ KSNODE_SPEAKER_MUTE,  0,   KSNODE_ANALOG_OUT_SUM,  1 }, 

 
{ KSFILTER_NODE,   3,   KSNODE_MICROPHONE_VOLUME, 1 }, 

{ KSNODE_MICROPHONE_VOLUME, 0,   KSNODE_MICROPHONE_MUTE,  1 }, 

{ KSNODE_MICROPHONE_MUTE, 0,   KSNODE_ANALOG_OUT_SUM,  2 }, 
 
{ KSNODE_ANALOG_OUT_SUM,    0,   KSNODE_MASTER_VOLUME,  1 }, 

{ KSNODE_MASTER_VOLUME,     0,   KSNODE_MASTER_MUTE,   1 }, 
{ KSNODE_MASTER_MUTE,  0,   KSFILTER_NODE,    0 }
};

 

and looks something like this in KS Studio:

        

         ===================================

  1  0-||    Vol -> Mute \                                      / -  ||
- {} 0

  3 -{} ||    Vol -> Mute -- Sum -> Volume -> Mute/     || -o 2

         ===================================

        ----- Original Message ----- 

        From: DJ Sisolak <mailto:dsisolak@xxxxxxxxxxxxxxxxxxxxxx>  

        To: wdmaudiodev@xxxxxxxxxxxxx 

        Sent: Friday, August 20, 2004 11:12 AM

        Subject: [wdmaudiodev] Re: AVStream Mixer Problems

         

        Hello John,

         

        I am guessing the problem you are seeing is due to the placement
of the SUM node in your topology. When the topology parser in wdmaud
sees this node it assumes there is some sort of branching going on and
looks downstream for master controls. Thus if your Volume and mute
controls are upstream fro this node they would not be considered the
master.

         

        What is the exact topology you are describing?

         

        Thanks,

        DJ Sisolak

        Microsoft Corp.

         

        This posting is provided "AS IS" with no warranties, and confers
no rights.

         

        
________________________________


        From: wdmaudiodev-bounce@xxxxxxxxxxxxx
[mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] On Behalf Of John D. Farmer
        Sent: Friday, August 20, 2004 9:47 AM
        To: wdmaudiodev@xxxxxxxxxxxxx
        Subject: [wdmaudiodev] AVStream Mixer Problems

         

        Greetings,

         

        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.

         

        Regards,

         

        John Farmer

Other related posts: