[wdmaudiodev] Re: Traversing USB Audio Topology

  • From: "Leonard Shoell" <lshoell@xxxxxxxxxxxxxxxxx>
  • To: <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Mon, 4 Jan 2010 07:30:48 -0700

Thanks. The "WalkTreeBackwardsFromPart" code was very helpful.

Leonard

-----Original Message-----
From: wdmaudiodev-bounce@xxxxxxxxxxxxx
[mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] On Behalf Of Matthew van Eerde
Sent: Saturday, January 02, 2010 8:39 PM
To: wdmaudiodev@xxxxxxxxxxxxx
Subject: [wdmaudiodev] Re: Traversing USB Audio Topology

KSStudio (part of the Windows Driver Kit) shows the KS topology for
installed audio drivers.

See my "WalkTreeBackwardsFromPart" code at this forum post:

http://social.msdn.microsoft.com/Forums/en-US/windowspro-audiodevelopment/th
read/9741bae1-c330-4802-9860-2fd202dba797/

Note that the topology exposed is heavily dependent on the audio driver.
Two different drivers may expose wildly different topologies on the same
hardware.
________________________________________
From: wdmaudiodev-bounce@xxxxxxxxxxxxx [wdmaudiodev-bounce@xxxxxxxxxxxxx] on
behalf of Leonard Shoell [lshoell@xxxxxxxxxxxxxxxxx]
Sent: Monday, December 21, 2009 9:01 AM
To: wdmaudiodev@xxxxxxxxxxxxx
Subject: [wdmaudiodev] Traversing USB Audio Topology

I need to get access to the input volume and mute controls, if any, on the
speaker endpoint, such as, the microphone input.  These are the additional
controls that appear on the "Levels" tab on the endpoint properties in the
CPL. A couple of years ago I wrote code based on the Device Topologies
document to do this, which works perfectly on the several audio codecs I've
tried. However, it does not work on the USB devices I've tested.

The code starts at the endpoint connector, uses ConnectTo to get the
hardware connector, then looks at all of the input connections. It
enumerates through all of the parts on the connection and if it finds a
volume control, it uses it. The results match the controls that appear on
the "Levels" tab, for codecs. However, for USB devices, it finds the
microphone endpoint controls instead of the microphone's input to the
speaker endpoint.

Clearly the topology for a USB device is different than a codec.  There is
also evidence of this by the way you have to associate APOs to the speaker
and microphone endpoints in the INF.

Does anyone know where I look in the topology to find these input controls
to the speaker endpoint for a USB device?

Or, is there a utility available that traverses and shows the entire
topology for an endpoint? If something would show me where they are in the
topology, I can figure out how to access them.

Leonard

******************

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/******************

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/


******************

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/

Other related posts: