[wdmaudiodev] KSPIN_TOPO_XXX numbering question

  • From: "Don Bell" <0dbell@xxxxxxxxx>
  • To: wdmaudiodev@xxxxxxxxxxxxx
  • Date: Wed, 18 Apr 2007 12:01:44 -0500

I am trying to understand the numbering (indexing) scheme of topology
pins and I was looking at the MSVAD Simple sample to try to correlate
this with what I understood (or didn't understand) so far.

In mintopo.cpp there is an ASCII diagram that describes the topology
for the Simple driver:

(you need to view this in monospaced font)

/*********************************************************************
* Topology/Wave bridge connection                                    *
*                                                                    *
*              +------+    +------+                                  *
*              | Wave |    | Topo |                                  *
*              |      |    |      |                                  *
*  Capture <---|0    1|<===|4    1|<--- Synth                        *
*              |      |    |      |                                  *
*   Render --->|2    3|===>|0     |                                  *
*              +------+    |      |                                  *
*                          |     2|<--- Mic                          *
*                          |      |                                  *
*                          |     3|---> Line Out                     *
*                          +------+                                  *
*********************************************************************/

In case the above couldn't display properly I will summarize here the
pin numbers according to the diagram (notice, the start from 0):

0. Capture
1. Render
2. Synth
3. Mic
4. Line Out

However, in simple.h the topology pin seem to be numbered differently:

// topology pins.
enum
{
 KSPIN_TOPO_WAVEOUT_SOURCE = 0,
 KSPIN_TOPO_SYNTHOUT_SOURCE,
 KSPIN_TOPO_SYNTHIN_SOURCE,
 KSPIN_TOPO_MIC_SOURCE,
 KSPIN_TOPO_LINEOUT_DEST,
 KSPIN_TOPO_WAVEIN_DEST
};

Not only they are numbered differently, there are 6 pins vs. only 5 in
the diagram.

What is the source of the discrepancy here? What am I missing?

Is it possible that the above enum is not really being used in the
Simple sample?
If so, how come KSPIN_TOPO_SYNTHOUT_SOURCE, for example, is being used
in PCCONNECTION_DESCRIPTOR MiniportConnections[] in toptable.h?

Thanks for any tip that could clarify my confusion.

Don
******************

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: