Создание PCM устройства
#include <audio_driver.h>
int32_t ado_pcm_create( ado_card_t *card,
char *name,
uint32_t flags,
char *id,
uint32_t play_subchns,
ado_pcm_cap_t *play_cap,
ado_pcm_hw_t *play_hw,
uint32_t cap_subchns,
ado_pcm_cap_t *cap_cap,
ado_pcm_hw_t *cap_hw,
ado_pcm_t **rpcm );
- card
- Аргумент, переданный менеджером стека io-audio в функцию драйвера ctrl_init().
- name
- Имя нового устройства. Обычно это вариация имени аудиокарты, которая используется только для вывода информации пользователю.
- flags
- Комбинация флагов, определяющих возможности устройства (см.
SND_PCM_INFO_*
в asound.h
, а также snd_pcm_info()).
| Данные флаги лишь позволяют идентифицировать возможности и ни для чего более. |
- id
- Имя нового устройства.
- play_subchns
- Максимальное число одновременно воспроизводимых субканалов, которое поддерживает устройство.
- play_cap
- Указатель на статическую структуру ado_pcm_cap_t, которая описывает возможности воспроизведения аудио данных. Эти возможности может использовать первый открытый субканал. По мере открытия новых субканалов перечень возможностей может сокращаться и даже стать недоступным.
- play_hw
- Указатель на структуру ado_pcm_hw_t, определяющую callback-функции воспроизведения для PCM устройства. Менеджер io-audio использует их для управления PCM устройством.
- cap_subchns
- Максимальное число одновременно захватываемых субканалов, которое поддерживает устройство.
- cap_cap
- Указатель на статическую структуру ado_pcm_cap_t, которая описывает возможности захвата аудио данных. Эти возможности может использовать первый открытый субканал. По мере открытия новых субканалов перечень возможностей может сокращаться и даже стать недоступным.
- cap_hw
- Указатель на структуру ado_pcm_hw_t, определяющую callback-функции захвата для PCM устройства. Менеджер io-audio использует их для управления PCM устройством.
- rpcm
- Указатель на память, где ado_pcm_create() может хранить указатель на новое PCM устройство. Этот дескриптор может быть использован в других вызовах API.
libado
Функция ado_pcm_create() создает PCM устройство.
- 0
- Успешное завершение.
- -1
- Возникла ошибка (также устанавливается errno).
- ENOMEM
- Недостаточно памяти для создания структур, характеризующих устройство.
- EINVAL
- Один или несколько аргументов некорректны.
ЗОСРВ «Нейтрино»
- Нет
- Обработчик прерываний
- Нет
- Обработчик сигналов
- Нет
- В потоке
- Нет
ado_pcm_cap_t, ado_pcm_hw_t, ctrl_init(), snd_pcm_info()
Обработка аудио данных в формате PCM
Предыдущий раздел: Библиотека libado