[wdmaudiodev] Re: Traversing USB Audio Topology

  • From: Matthew van Eerde <mateer@xxxxxxxxxxxxx>
  • To: "wdmaudiodev@xxxxxxxxxxxxx" <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Sun, 3 Jan 2010 03:38:38 +0000

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

Other related posts: