Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
API микшера — это набор мультимедийных функций Windows, используемых для получения сведений о устройствах аудио-микшера. API миксера классифицирует линии аудио-миксера в качестве исходных и целевых линий. Источник сигнала — это входной сигнал аудиокарты (например, CD, микрофон, линейный вход и wave). Конечные линии — это выходы карты (например, динамики, наушники, телефонная линия и входной аудиосигнал). Для допустимой исходной строки он должен иметь уникальный путь от источника к месту назначения. Одна исходная строка может сопоставляться с несколькими назначениями, но не более одного пути может подключить исходную строку к конечной строке. Дополнительные сведения об API миксера см. в документации по пакету SDK для Microsoft Windows.
Драйвер WDM для звукового адаптера предоставляет топологию фильтра KS, представляющую пути к данным через оборудование и функции, доступные на этих путях. Системный драйвер WDMAud (в файлах Wdmaud.sys и Wdmaud.drv) должен интерпретировать топологию KS-filter и создавать соответствующие строки исходного и целевого миксера, предоставляемые через API микшера. WDMAud также обрабатывает вызовы API миксера и преобразует их в эквивалентные вызовы свойств на пин-кодах фильтра и узлах, управляемых драйвером адаптера.
Системный драйвер KMixer (Kmixer.sys) и системный драйвер SWMidi (Swmidi.sys) являются неотъемлемой частью звукового стека ядра. KMixer обеспечивает системное сочетание звука, преобразование битовой глубины, преобразование частоты выборки и настройку конфигурации канала на динамик (супермикс) для PCM-аудиопотоков. SWMidi обеспечивает высококачественный программный синтез MIDI-потоков. Системный звуковой драйвер SysAudio (Sysaudio.sys; см. системный драйвер SysAudio), объединяет возможности KMixer и SWMidi с установленными драйверами аудиоадаптера для создания функционально улучшенных виртуальных звуковых устройств.
WDMAud управляет интерфейсом между частью KS и устаревшей частью звукового стека (см. раздел "Компонент системы WinMM"). WDMAud преобразует пин-коды на виртуализированные фильтры SysAudio в устаревшие линии миксера, представленные в таких приложениях, как SndVol32. Перевод из топологии KS в линии смешивания выполняется следующим образом:
Исходные закрепления (KSPIN_DATAFLOW_OUT) в топологии KS предоставляются в виде линий целевого миксера (MIXERLINE_COMPONENTTYPE_DST_XXXX).
Пины приемника (KSPIN_DATAFLOW_IN) в топологии KS представлены как линии источника микшера (MIXERLINE_COMPONENTTYPE_SRC_XXX).
WDMAud обрабатывает граф фильтрации KS, начиная с исходного контакта, расположенного на конечной точке графа, и проходит по графу в направлении, противоположном потоку данных, пока не будет достигнут приёмный контакт.
Свойства, которые поддерживаются на каждом узле KS, обнаруженном во время обхода, предоставляются в виде элементов управления в строке исходного миксера.
В первых двух элементах выше сопоставление выходных и приемных контактов KS с конечными и источниковыми линиями микшера может быть запутанным из-за различий в терминологии. В KS устройство помещается в фильтр с входными (приемными) и выходными (передающими) выводами. Термины "приемник" и "источник" относятся не к фильтру, а к (обычно буферизованному) соединению между двумя фильтрами:
Исходный пин-код вышестоящего фильтра является источником потока данных, который входит в соединение.
Поток данных выходит из соединения через контакт входа фильтра нисходящего потока.
Напротив, терминология mixer-line ориентирована на устройство:
Исходная линия миксера — это источник потока, который входит в устройство.
Линия назначения микшера является конечной точкой потока, выходящего из устройства.
Кроме того, терминология KS несколько несогласованна в направлении потока, которое он назначает закреплению фильтра KS. Описатель пинов использует значение перечисления KSPIN_DATAFLOW для указания направления:
Поток, который входит в фильтр через выходной пин, имеет направление KSPIN_DATAFLOW_IN.
Поток, который выходит из фильтра через исходящий штырь, обладает направлением KSPIN_DATAFLOW_OUT.
Направления "in" и "out" явно ориентированы на фильтрацию, в то время как термины "приемник" и "источник" ориентированы на подключение.
Дополнительные сведения о алгоритме синтаксического анализа топологии, используемом WDMAud, см. в разделе "Анализ топологии WDMAud".
Этот раздел также включает: