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 구조에서 계산됩니다. 구조체의 InputChannelsOutputChannels 멤버에 mn 값이 있는 경우 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 구조체의 처음 두 멤버인 InputChannelsOutputChannels만 채워야 합니다. 그런 다음 클라이언트는 모든 채널의 기능을 포함하기에 충분한 스토리지가 할당된 두 번째 속성 요청을 보낼 수 있습니다.

요구 사항

요구 사항
헤더 ksmedia.h(Ksmedia.h 포함)

추가 정보

KSAUDIO_MIX_CAPS

KSNODETYPE_SUPERMIX

KSPROPERTY_AUDIO_MIX_LEVEL_CAPS

KSPROPERTY_AUDIO_MIX_LEVEL_TABLE