snd_pcm_open()

Создание дескриптора открытого соединения с указанным аудио интерфейсом

Прототип:

#include <sys/asoundlib.h>
int snd_pcm_open( snd_pcm_t **handle,
int card,
int device,
int mode );

Аргументы:

handle
Указатель на буфер, в котором сохраняется дескриптор соединения с аудио инетрфейсом. Он используется в последующих вызовах snd_pcm_*().
card
Номер карты.
device
Номер устройства.
mode
Режим открытия. Одно из значений:
SND_PCM_OPEN_PLAYBACK
открывает канал воспроизведения (определяет направление передачи данных).
SND_PCM_OPEN_CAPTURE
открывает канал захвата (определяет направление передачи данных).
SND_PCM_OPEN_DUPLEX
открывает оба (воспроизведения и захвата) канала (определяет направления передачи данных).

Также может быть добавлен (ИЛИ) следующий флаг:
SND_PCM_OPEN_NONBLOCK
Открыть в неблокирующем режиме. Это влияет на все операции чтения и записи. В последующем режим может быть изменен с помощью snd_pcm_nonblock_mode().

Библиотека:

libasound

Описание:

Функция snd_pcm_open() создает дескриптор handle и открывает соединение с аудио интерфесом, найденным с помощью card и device. При этом также проверяется соответствие версии протокола между драйвером и приложением.

Никаких значений "по умолчанию" не предусмотрено, приложение должно указать все аргументы функции.

Возвращаемое значение:

0
Успешное завершение.
-ENOMEM
Недостаточно памяти для создания контролирующих структур.

Примеры:

См. Открытие устройства.

Классификация:

ЗОСРВ «Нейтрино»

Безопасность использования
Точка остановки потока
Нет
Обработчик прерываний
Нет
Обработчик сигналов
Да
В потоке
Да

Предостережения:

Успешное открытие PCM канала не гарантирует, что имеются в достаточном количестве ресурсы аудио стека для обслуживания приложения. Эти ресурсы (например, субканалы) аллоцируются при настройке канала с помощью snd_pcm_channel_params() или snd_pcm_plugin_params().

Тематические ссылки:

snd_pcm_close(), snd_pcm_nonblock_mode(), snd_pcm_open_preferred()




Предыдущий раздел: Библиотека libasound