структура 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 с путями ввода-вывода узла супермиксера.

Элемент массива Путь ввода-вывода
Возможности[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 к выходу 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 (включая Ksmedia.h)

См. также раздел

KSAUDIO_MIX_CAPS

KSNODETYPE_SUPERMIX

KSPROPERTY_AUDIO_MIX_LEVEL_CAPS

KSPROPERTY_AUDIO_MIX_LEVEL_TABLE