Загрузка указанной стандартной библиотеки микшера
#include <audio_driver.h>
                                       
int32_t ado_mixer_dll( ado_card_t *card,
                       char *mixer_dll,
                       uint32_t version,
                       void *params,
                       void *callbacks,
                       ado_mixer_t **rmixer );
  
    - card
- Аргумент, переданный менеджером стека io-audio в функцию драйвера ctrl_init().
- mixer_dll
- Имя стандартной библиотеки микшера.  
 |  | ДАнный аргумент должен содержать только уникальную часть имени файла библиотеки микшера. Например, если библиотека микшера имеет имя audio-mixer-ac97.so, то следует указать параметру mixer_dll значение "ac97". |  
 
 
- version
- Версия библиотеки микшера (в настоящий момент не используется).
- params
- Указатель на конфигурационную информацию и функции контроля, требуемые библиотеке микшера со стороны драйвера (например, функции чтения и записи регистров кодека). Передаваемая структура в заголовочном файле библиотеки, например <mixer/mixer_name_dll.h>. Так, например, при загрузке Audio Codec 97 (AC97) следует передать структуру типаado_mixer_dll_params_ac97_t.
- callbacks
- Буффер, в котором ado_mixer_dll() заполнит список функций, предоставленный библиотекой микшера, которые драйвер может использовать для контроля специальных возможностей микшера, например, конвертирование частоты сэмплов. Ориентироваться стоит на документацию к конкретному стандартизованному микшеру. Так, например, при загрузке Audio Codec 97 (AC97) следует передать структуру типа ado_mixer_dll_callbacks_ac97_t.
- rmixer
- Буффер, в котором ado_mixer_dll() может созранить указатель на созданную структуру микшера. Структура ado_mixer_tявляется прозрачной для драйвера, используемой аудио стеком. Возвращенный указатель должен быть сохранен для последующей передачи в другие драйверные вызовы.
libado
Функция ado_mixer_dll() загружает стандартную библиотеку микшера mixer_dll и возвращает указатель на свежесозданную структуру микшера.
  
    - ≠-1
- Успешное завершение.
- -1
- Возникла ошибка (также устанавливается errno).
 
  -  ENOMEM   
-  Недостаточно свободной памяти для создания нового микшера.    
-  ELIBACC   
-  Вызов dlopen() при загрузке библиотеки завершился с ошибкой.    
-  ELIBBAD   
-  Вызов dlsym() при загрузке библиотеки завершился с ошибкой.    
-  EPROGMISMATCH   
-  ADO_MAJOR_VERSION в библиотеке микшера не соответствует ожиданиям аудио стека io-audio.  
ЗОСРВ «Нейтрино»
 
-  Нет  
-  Обработчик прерываний   
-  Нет  
-  Обработчик сигналов   
-  Нет  
-  В потоке   
-  Нет  
  ctrl_init()
 Разработка аналогового микшера,  Основные виды кодеков
 
Предыдущий раздел:  Библиотека libado