Интерфейсная библиотека аудио стека io-audio, позволяющая разрабатывать драйверы устройств (deva-*)
| Статья | Описание |
|---|---|
| Назначение библиотеки | |
| Написание PCM устройства | |
| Разработка аналогового микшера | |
| Информация о поддерживаемых видах кодеков | |
| Рассматривается способ определения количества ресурсов, необходимых для разработки аудио драйвера | |
| Раздел дает понимание роли драйвера в аудио стеке | |
| Понятия, используемые в данном руководстве | |
| Пример исходного кода микшера |
| Функция | Описание |
|---|---|
| Присоединение обработчика прерываний | |
| Выделение памяти для массива | |
| Создает символьное имя, характеризующее экземпляр аудио оборудования | |
| Создает символьное имя, характеризующее тип аудио оборудования | |
| Отправка отладочного сообщения в системный журнал | |
| Мапирование области памяти | |
| Освобождение смапированного виртуального региона памяти | |
| Отправка сообщения об ошибке в системный журнал | |
| Освобождение блока памяти | |
| Выделение памяти | |
| Отображение сведений о выделенной фукнциями ado_*() памяти | |
| Создание группы захвата аудио данных | |
| Создание нового микшера и подключение его к контексту драйвера | |
| Загрузка указанной стандартной библиотеки микшера | |
| Создание элемента-аккумулятора (тип 1) | |
| Создание элемента-аккумулятора (тип 2) | |
| Создание элемента-аккумулятора (тип 3) | |
| Создание элемента ввода-вывода | |
| Создание элемента-мультиплексора (тип 1) | |
| Создание элемента-мультиплексора (тип 2) | |
| Уведомление вышележащего драйверного слоя о наличии изменений в элементе | |
| Создание PCM-элемента (тип 1) | |
| Создание PCM-элемента (тип 2) | |
| Указание отношений взаимосвязи между двумя элементами микшера | |
| Создание элемента-переключателя (тип 1) | |
| Создание элемента-переключателя (тип 2) | |
| Создание элемента-переключателя (тип 3) | |
| Чтение максимального значения громкости соответствующего элемента микшера | |
| Чтение минимального значения громкости соответствующего элемента микшера | |
| Создание элемента регулятор громкости (тип 1) | |
| Поиск элемента в микшере | |
| Поиск группы в микшере | |
| Получение указателя на контекст микшера | |
| Получение доступа к данным реализации элмента микшера | |
| Получение эксклюзивного доступа к микшеру | |
| Создание группы воспроизведения аудио данных | |
| Подключение обработчика, вызываемого при закрытии микшера | |
| Установка микшеру символьного имени | |
| Подключение обработчика, вызываемого при сбросе (reset) оборудования микшера | |
| Создание нового переключателя микшера | |
| Освобождение эксклюзивного доступа к микшеру | |
| Освобождение ресурсов мьютекса | |
| Инициализация мьютекса | |
| Захват мьютекса | |
| Освобождение мьютекса | |
| Соединение с PCI устройством | |
| Отсоединение от PCI устройства | |
| Возможности PCM устройства | |
| Логическая ассоциация элементов и групп микшера с PCM устройства | |
| Конфигурация субканала PCM | |
| Создание PCM устройства | |
| Получение размера фрагмента PCM канала | |
| Получение ширины семпла в битах для указанного формата | |
| Callback-функции PCM устройства | |
| Получение указателя на структуру, описывающую возможности субканала | |
| Проверка является ли канал субканалом PCM устройства | |
| Логическая ассоциация элементов и групп микшера с субканалом PCM устройства | |
| Callback-функции субканалов PCM устройства | |
| Создание субканала PCM микшера | |
| Удаление субканала PCM микшера | |
| Механизм одновременной обработки нескольких потоков | |
| Первичное или повторное выделение, а также освобождение, блоков памяти | |
| Удаление объекта rw-блокировки | |
| Инициализация объекта rw-блокировки | |
| Захват разделяемой блокировки по чтению для объекта rw-блокировки | |
| Освобождение объекта rw-блокировки | |
| Захват эксклюзивной блокировки по записи для объекта rw-блокировки | |
| Выделение разделяемой памяти | |
| Освобождение памяти и удаление разделяемого объекта | |
| Мапирование блока разделяемой памяти в адресное пространство драйвера | |
| Создать дубликат строки | |
| Уведомить стек о завершении со стороны DMA обработки текущего фрагмента в субканале | |
| Структура, описывающая один из голосов | |
| Структура описывает указанное PCI устройство |
Предыдущий раздел: Мультимедийные библиотеки