Механизм одновременной обработки нескольких потоков
#include <audio_driver.h>int32_t ado_pcm_sw_mix( ado_card_t *card,ado_pcm_t *pcm,ado_mixer_t *mixer );
ado_pcm_t
, созданную для PCM устройства при вызове ado_pcm_create().libado
Функция ado_pcm_sw_mix() предоставляет механизм, посредством которого устройство с единственным субканалом может поддержать несколько одновременно обрабатываемых потоков.
![]() | Число поддерживаемых потоков есть атрибут архитектуры менеджера io-audio и драйвер не может на него повлиять. |
Функция использует ресурсы CPU для смешивания нескольких потоков в один, который и будет отправлен PCM устройству.
Программный микшер реализуется через создание нового PCM устройства, ассоциированного с оборудованием, и добавления к указанному микшеру соответствующих элементов управления новым субканалом.
Аппаратный субканал используется только при необходимости с остороны программного микшера, поэтому приложение может напрямую открывать устройство, хотя это и не позволяет программному микшеру одновременно принимать поток от уже использющегося устройства.
В настоящий момент программный микшер поддерживается только для каналов воспроизведения PCM устройства.
ЗОСРВ «Нейтрино»
Предыдущий раздел: Библиотека libado