ado_pcm_create()

Создание 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()).

Note: Данные флаги лишь позволяют идентифицировать возможности и ни для чего более.

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