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* 元素。 每個元素都會描述從特定輸入通道到特定輸出通道之路徑的混合層級功能。
備註
Capabilities 數據表會儲存為二維陣列:
KSAUDIO_MIX_CAPS Capabilities[M*N];
數據表是 M-by-N 矩陣,會將 M 輸入通道對應至 N 個輸出通道。 下表顯示 Capabilities 陣列元素與超混音器節點的 M*N 輸入輸出路徑的對應。
陣列項目 | 輸入輸出路徑 |
---|---|
Capabilities[0] | 輸入通道 0 到輸出通道 0 |
Capabilities[1] | 輸入通道 0 到輸出通道 1 |
功能[N-1] | 輸入通道 0 到輸出通道 N-1 |
Capabilities[N] | 輸入通道 1 到輸出通道 0 |
功能[N+1] | 輸入通道 1 到輸出通道 1 |
Capabilities[2N-1] | 輸入通道 1 到輸出通道 N-1 |
功能[M*N-1] | 輸入通道 M-1 至輸出通道 N-1 |
換句話說,從輸入通道 i 到輸出通道 j 的路徑混合器上限包含在 Capabilities[i * N + j] 中。 如果輸入 i 到輸出 j 沒有任何路徑存在,請將 matrix (元素的 Mute 成員設定為 i,j) 為TRUE。
數據表的大小是從KSPROPERTY_AUDIO_MIX_LEVEL_CAPS get 屬性要求所擷取的 KSAUDIO_MIXCAP_TABLE 結構計算。 如果結構的 InputChannels 和 OutputChannels 成員具有 m 和 n 值,則KSAUDIO_MIXCAP_TABLE結構所需的總儲存空間加上KSAUDIO_MIX_CAPS數位計算為
sizeof (KSAUDIO_MIXCAP_TABLE) + (mn - 1) sizeof (KSAUDIO_MIX_CAPS)
如果用戶端傳送初始KSPROPERTY_AUDIO_MIX_LEVEL_CAPS要求,其中屬性大小指定為 2*sizeof (ULONG) ,迷你埠驅動程式應該只填入KSAUDIO_MIXCAP_TABLE結構的前兩個成員 InputChannels 和 OutputChannels。 然後,用戶端可以傳送第二個屬性要求,並配置足夠的記憶體來包含所有通道的功能。
規格需求
需求 | 值 |
---|---|
標頭 | ksmedia.h (包含 Ksmedia.h) |