структура 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.

Элемент массива Путь ввода-вывода
Возможности[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 в output 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*sizeof(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