ado_mixer_dll()

Загрузка указанной стандартной библиотеки микшера

Прототип:

#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
Имя стандартной библиотеки микшера.

Note: ДАнный аргумент должен содержать только уникальную часть имени файла библиотеки микшера. Например, если библиотека микшера имеет имя 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