snd_pcm_find()

Поиск PCM устройств, удовлетворяющих критериям

Прототип:

#include <sys/asoundlib.h>
int snd_pcm_find( unsigned int format,
int *number,
int *cards,
int *devices,
int mode );

Аргументы:

format
Сочетание констант SND_PCM_FMT_*, определяющих поддерживаемые форматы:
SND_PCM_FMT_U8
беззнаковые 8-битные данные.
SND_PCM_FMT_S8
знаковые 8-битные данные.
SND_PCM_FMT_U16_LE
беззнаковые 16-битные LE (little endian) данные.
SND_PCM_FMT_U16_BE
беззнаковые 16-битные BE (big endian) данные.
SND_PCM_FMT_S16_LE
знаковые 16-битные LE (little endian) данные.
SND_PCM_FMT_S16_BE
знаковые 16-битные BE (big endian) данные.
SND_PCM_FMT_IEC958_SUBFRAME
S/PDIF данные (AC3).
number
Размер массивов cards и devices. При возвращении управления number содержит число найденных устройств.
cards
Массив для возвращения номеров найденных карт.
devices
Массив для возвращения номеров найденных устройств.
mode
Режим. Доступные значения:
SND_PCM_OPEN_PLAYBACK
Канал воспроизведения.
SND_PCM_OPEN_CAPTURE
Канал захвата.

Библиотека:

libasound

Описание:

Функция snd_pcm_find() производит поиск всех PCM устройств, которые поддерживают указанную комбинацию форматов format для указанного типа каналов mode.

Массивы карт и устройств составляют пару, где устройство уникально идентифицируется как:

card[0] + device[0]

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

>0
Число найденных устройств (в это значение устанавливается number).
-EINVAL
Некорректные аргументы handle или format.

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

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

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




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