KSAUDIO_MIXCAP_TABLE 结构 (ksmedia.h)

KSAUDIO_MIXCAP_TABLE结构指定超级混合器节点 (KSNODETYPE_SUPERMIX) 的混合功能。 此结构用于获取或设置 KSPROPERTY_AUDIO_MIX_LEVEL_CAPS 属性的数据值。

语法

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

成员

InputChannels

指定输入通道数。

OutputChannels

指定输出通道数。

Capabilities[1]

包含 KSAUDIO_MIX_CAPS 结构的二维数组中的第一个条目。 给定具有 m 输入通道和 n 个输出通道的超级混合器节点,数组包含 m* 元素。 每个元素描述从特定输入通道到特定输出通道的路径的混合级别功能。

注解

“功能”表存储为二维数组:

KSAUDIO_MIX_CAPS Capabilities[M*N];

该表是一个 M-by-N 矩阵,用于将 M 输入通道映射到 N 个输出通道。 下表显示了 Capabilities 数组元素到超级混合器节点的 M*N 输入输出路径的映射。

数组元素 输入-输出路径
功能[0] 输入通道 0 到输出通道 0
功能[1] 输入通道 0 到输出通道 1
功能[N-1] 输入通道 0 到输出通道 N-1
功能[N] 输入通道 1 到输出通道 0
功能[N+1] 输入通道 1 到输出通道 1
功能[2N-1] 输入通道 1 到输出通道 N-1
功能[M*N-1] 输入通道 M-1 到输出通道 N-1

换句话说,从输入通道 i 到输出通道 j 的路径的混音器上限包含在 Capabilities[i * N + j] 中。 如果不存在从输入 i 到输出 j 的路径,请将矩阵元素的静音成员 (i,j) 设置为 TRUE

表的大小是从KSPROPERTY_AUDIO_MIX_LEVEL_CAPS get 属性请求检索 的KSAUDIO_MIXCAP_TABLE 结构计算得出的。 如果结构的 InputChannelsOutputChannels 成员具有值 mn,则KSAUDIO_MIXCAP_TABLE结构以及KSAUDIO_MIX_CAPS数组所需的总存储将计算为

sizeof (KSAUDIO_MIXCAP_TABLE) + (mn - 1) sizeof (KSAUDIO_MIX_CAPS)

如果客户端发送初始KSPROPERTY_AUDIO_MIX_LEVEL_CAPS请求,其中属性大小指定为 2*size of (ULONG) ,微型端口驱动程序应仅填充KSAUDIO_MIXCAP_TABLE结构的前两个成员, 即 InputChannelsOutputChannels。 然后,客户端可以发送第二个属性请求,该请求分配了足够的存储空间,以包含所有通道的功能。

要求

要求
Header ksmedia.h (包括 Ksmedia.h)

另请参阅

KSAUDIO_MIX_CAPS

KSNODETYPE_SUPERMIX

KSPROPERTY_AUDIO_MIX_LEVEL_CAPS

KSPROPERTY_AUDIO_MIX_LEVEL_TABLE