Поделиться через


структура 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 выходными каналами. В следующей таблице показано сопоставление элементов массива элементов массива с путями ввода-вывода узла супермиксера M*N.

Элемент Array Путь ввода-вывода
Возможности[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 содержатся в возможности[i * N + j]. Если путь не существует из входных i для вывода j, задайте элемент Mute элемента матрицы (i,j) значение TRUE.

Размер таблицы вычисляется из структуры KSAUDIO_MIXCAP_TABLE, извлекаемой KSPROPERTY_AUDIO_MIX_LEVEL_CAPS запросом на получение свойства. Если элементы 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*размер(ULONG), драйвер мини-порта должен заполнить только первые два члена структуры KSAUDIO_MIXCAP_TABLE, InputChannels и OutputChannels. Затем клиент может отправить второй запрос на свойство с достаточным объемом хранилища, чтобы содержать возможности всех каналов.

Требования

Требование Ценность
заголовка ksmedia.h (include Ksmedia.h)

См. также

KSAUDIO_MIX_CAPS

KSNODETYPE_SUPERMIX

KSPROPERTY_AUDIO_MIX_LEVEL_CAPS

KSPROPERTY_AUDIO_MIX_LEVEL_TABLE