Интерфейсная библиотека аудио стека 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 устройство |
Предыдущий раздел: Мультимедийные библиотеки