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