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