Expand Minimize

KSAUDIO_MIXCAP_TABLE structure

The KSAUDIO_MIXCAP_TABLE structure specifies the mixing capabilities of a supermixer node (KSNODETYPE_SUPERMIX). This structure is used to get or set the data value for the KSPROPERTY_AUDIO_MIX_LEVEL_CAPS property.

Syntax


typedef struct {
  ULONG            InputChannels;
  ULONG            OutputChannels;
  KSAUDIO_MIX_CAPS Capabilities[1];
} KSAUDIO_MIXCAP_TABLE, *PKSAUDIO_MIXCAP_TABLE;

Members

InputChannels

Specifies the number of input channels.

OutputChannels

Specifies the number of output channels.

Capabilities

Contains the first entry in a two-dimensional array of KSAUDIO_MIX_CAPS structures. Given a supermixer node with m input channels and n output channels, the array contains m* elements. Each element describes the mix-level capabilities of the path from a particular input channel to a particular output channel.

Remarks

The Capabilities table is stored as a two-dimensional array:


  KSAUDIO_MIX_CAPS Capabilities[M*N];

The table is an M-by-N matrix that maps M input channels into N output channels. The following table shows the mapping of Capabilities array elements to the supermixer node's M*N input-output paths.

Array elementInput-output path

Capabilities[0]

Input channel 0 to output channel 0

Capabilities[1]

Input channel 0 to output channel 1

Capabilities[N-1]

Input channel 0 to output channel N-1

Capabilities[N]

Input channel 1 to output channel 0

Capabilities[N+1]

Input channel 1 to output channel 1

Capabilities[2N-1]

Input channel 1 to output channel N-1

Capabilities[M*N-1]

Input channel M-1 to output channel N-1

 

In other words, the mixer caps for the path from input channel i to output channel j are contained in Capabilities[i*N+j]. If no path exists from input i to output j, set the Mute member of matrix element (i,j) to TRUE.

The size of the table is calculated from the KSAUDIO_MIXCAP_TABLE structure that is retrieved by a KSPROPERTY_AUDIO_MIX_LEVEL_CAPS get property request. If the structure's InputChannels and OutputChannels members have the values m and n, the total storage required for the KSAUDIO_MIXCAP_TABLE structure plus the KSAUDIO_MIX_CAPS array is calculated as

sizeof(KSAUDIO_MIXCAP_TABLE) + (m*n - 1)*sizeof(KSAUDIO_MIX_CAPS)

If the client sends an initial KSPROPERTY_AUDIO_MIX_LEVEL_CAPS request in which the property size is specified as 2*sizeof(ULONG), the miniport driver should fill in only the first two members of the KSAUDIO_MIXCAP_TABLE structure, InputChannels and OutputChannels. The client can then send a second property request with enough storage allocated to contain the capabilities of all the channels.

Requirements

Header

Ksmedia.h (include Ksmedia.h)

See also

KSPROPERTY_AUDIO_MIX_LEVEL_CAPS
KSPROPERTY_AUDIO_MIX_LEVEL_TABLE
KSAUDIO_MIX_CAPS
KSNODETYPE_SUPERMIX

 

 

Send comments about this topic to Microsoft

Show:
© 2014 Microsoft