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 구조체의 2차원 배열에 있는 첫 번째 항목을 포함합니다. m 입력 채널과 n개의 출력 채널이 있는 슈퍼믹서 노드가 있는 경우 배열에는 m* 요소가 포함됩니다. 각 요소는 특정 입력 채널에서 특정 출력 채널로 경로의 혼합 수준 기능을 설명합니다.
설명
Capabilities 테이블은 2차원 배열로 저장됩니다.
KSAUDIO_MIX_CAPS Capabilities[M*N];
테이블은 M 입력 채널을 N 출력 채널에 매핑하는 M-by-N 행렬입니다. 다음 표에서는 Capabilities 배열 요소를 슈퍼믹서 노드의 M*N 입력 출력 경로에 매핑하는 방법을 보여 줍니다.
배열 요소 | 입력 출력 경로 |
---|---|
기능[0] | 입력 채널 0에서 출력 채널 0으로 |
기능[1] | 입력 채널 0에서 출력 채널 1로 |
기능[N-1] | 출력 채널 N-1에 대한 입력 채널 0 |
기능[N] | 출력 채널 0에 대한 입력 채널 1 |
기능[N+1] | 출력 채널 1에 대한 입력 채널 1 |
기능[2N-1] | 출력 채널 N-1에 대한 입력 채널 1 |
기능[M*N-1] | 출력 채널 N-1에 대한 입력 채널 M-1 |
즉, 입력 채널 i 에서 출력 채널 j 로의 경로에 대한 믹서 대문자는 Capabilities[i * N + j]에 포함되어 있습니다. 입력 i에서 출력 j까지 경로가 없으면 행렬 요소(i,j)의 Mute 멤버를 TRUE로 설정합니다.
테이블의 크기는 KSPROPERTY_AUDIO_MIX_LEVEL_CAPS 가져오기 속성 요청에 의해 검색되는 KSAUDIO_MIXCAP_TABLE 구조에서 계산됩니다. 구조체의 InputChannels 및 OutputChannels 멤버에 m 과 n 값이 있는 경우 KSAUDIO_MIXCAP_TABLE 구조체에 필요한 총 스토리지와 KSAUDIO_MIX_CAPS 배열은 다음과 같이 계산됩니다.
sizeof(KSAUDIO_MIXCAP_TABLE) + (mn - 1)sizeof(KSAUDIO_MIX_CAPS)
클라이언트가 속성 크기가 2*sizeof(ULONG)로 지정된 초기 KSPROPERTY_AUDIO_MIX_LEVEL_CAPS 요청을 보내는 경우 미니포트 드라이버는 KSAUDIO_MIXCAP_TABLE 구조체의 처음 두 멤버인 InputChannels 및 OutputChannels만 채워야 합니다. 그런 다음 클라이언트는 모든 채널의 기능을 포함하기에 충분한 스토리지가 할당된 두 번째 속성 요청을 보낼 수 있습니다.
요구 사항
요구 사항 | 값 |
---|---|
헤더 | ksmedia.h(Ksmedia.h 포함) |