snd_pcm_plugin_set_disable()

Отключение PCM плагинов

Прототип:

#include <sys/asoundlib.h>
unsigned int snd_pcm_plugin_set_disable( snd_pcm_t *pcm,
unsigned int mask );

Аргументы:

pcm
Дескриптор PCM устройства, созданный с помощью snd_pcm_open() или snd_pcm_open_preferred().
mask
Маска отключения плагинов. Следующие биты поддерживаются:
PLUGIN_DISABLE_MMAP
Отключение mmap-плагина.

Note: Если этот плагин используется, некоторые поля структуры snd_pcm_channel_status_t не используютсяы.

PLUGIN_DISABLE_BUFFER_PARTIAL_BLOCKS
Предотвращение чтения и записи с использованием частично заполненных блоков данных.

Плагино-зависимые версии вызовов чтения и записи не требуют, чтобы использовались блоки кратного фрагменту размера (в отличие от плагино-независимых вызовов). Это связано с тем, что плагины осуществляют промежуточную буферизацию данных и их предварительное накопление. Плагин накопления данных как раз и отключается с помощью бита PLUGIN_DISABLE_BUFFER_PARTIAL_BLOCKS. При этом сответствующие плагино-зависимые вызовы станут возвращать ошибку при попытке оперирования буферами не кратного фрагменту размера.

В любом случае чредующиеся стерео данные должны быть выровнены по размеру сэмплов (по числу каналов). Например, каждая запись должна иметь такое же число сэмплов для левого и правого каналов.

Библиотека:

libasound

Описание:

Функция snd_pcm_plugin_set_disable() используется для отключения различных плагинов, которые обычно используются в виде конвейера (цепочки) взаимосвязанных плагинов.

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

Предыдущее (до изменения) значение маски отключения плагинов.

Примеры:

См. wave.c.

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

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

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

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

Маска отключения плагинов должна быть установлена перед вызовом snd_pcm_plugin_params(), чтобы он возымел эффект.

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

snd_pcm_channel_status_t, snd_pcm_plugin_read(), snd_pcm_plugin_write()




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