snd_ctl_read()

Чтение ожидающих событий управления

Прототип:

#include <sys/asoundlib.h>
int snd_ctl_read( snd_ctl_t *handle,
snd_ctl_callbacks_t *callbacks );

Аргументы:

handle
Дескриптор соединения с контролирующим устройством, созданный с помощью snd_ctl_open().
callbacks
Указатель на структуру snd_ctl_callbacks_t, которая задает callback-функции для событий.

Библиотека:

libasound

Описание:

Функция snd_ctl_read() считывает ожидающие события управления, ассоциированные с дескриптором handle. Для каждого считанного события производится поиск соответствующей callback-функции в стркутуре callbacks. Если подходящий callback найден, он вызывается. Обычно snd_ctl_read() вызывается при возвращении управления от select().


Note: Если приложение зарегистрировалось на получение событий (например, при использовании select()), очень важно производить очистку событий в очереди через snd_ctl_read(). Выполнять это следует даже в том случае, если не требуется информация о самом событии. Очереди сообщений не имеют ограничений на размер, что может вызывать проблемы при из неконтролируемом росте. Наиболее удачной практикой является обработка уведомлений по мере их поступления, не давая им накапливаться.

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

>=0
Число считанных событий из дескриптора handle.
-EBADF
Некорректный файловый дескриптор. Параметр handle может быть поврежден.
-EINTR
Операция чтения прервана сигналом и, либо данные не были переданы, либо менеджер ресурсов, ответственный за этот файл, не сообщил о частичной передаче.
-EIO
Ошибка ввода-вывода.

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

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

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

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

snd_ctl_callbacks_t, snd_ctl_file_descriptor(), snd_ctl_open(), select()




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