snd_pcm_channel_params_t

Параметры PCM канала

Прототип:

#include <sys/asoundlib.h>
typedef struct snd_pcm_channel_params {
int32_t channel;
int32_t mode;
snd_pcm_sync_t sync; /* hardware synchronization ID */
snd_pcm_format_t format;
snd_pcm_digital_t digital;
int32_t start_mode;
int32_t stop_mode;
int32_t time:1;
int32_t ust_time:1;
uint32_t why_failed; /* SND_PCM_PARAMS_BAD_??? */
union {
struct {
int32_t queue_size;
int32_t fill;
int32_t max_fill;
uint8_t reserved[124]; /* must be filled with zeroes */
} stream;
struct {
int32_t frag_size;
int32_t frags_min;
int32_t frags_max;
uint8_t reserved[124]; /* must be filled with zeroes */
} block;
uint8_t reserved[128]; /* must be filled with zeroes */
} buf;
char sw_mixer_subchn_name[32];
uint8_t reserved[96]; /* must be filled with zeroes */
} snd_pcm_channel_params_t;

Описание:

Структура snd_pcm_channel_params_t описывает параметры PCM каналов захвата или воспроизведения. Поля структуры включают:

channel
Ориентация канала. Одно из значений:
SND_PCM_CHANNEL_CAPTURE
SND_PCM_CHANNEL_PLAYBACK
mode
Режим канала: SND_PCM_MODE_BLOCK (значение SND_PCM_MODE_STREAM устарело).
format
Формат данных (см. snd_pcm_format_t).
digital
Не реализовано.
start_mode
Режим начала операции, одно из значений:
SND_PCM_START_DATA
операция начинается при записи данных (воспроизведение) или запросе на их получение (захват).
SND_PCM_START_FULL
операция начинается при полном заполнении очереди (только при воспроизведении).
SND_PCM_START_GO
операция начинается при поступлении команды "Go".
stop_mode
Режим остановки операции, одно из значений:
SND_PCM_STOP_STOP
операция останавливаться при обнаружении события опустошения (underrun) или переполнения (overrun).
SND_PCM_STOP_ERASE
операция останавливаться при опустошении буфера совместно с underrun событием (только при захвате).
SND_PCM_STOP_ROLLOVER
ROLLOVER (например, автоматическая переподготовка канала и продолжение операции) при обнаружении события опустошения (underrun) или переполнения (overrun).
time
Если установлено, драйвер записывает в статусной структуре время начала передачи. Формат времени соответствует gettimeofday().
ust_time
Если установлено, драйвер записывает в статусной структуре время начала передачи. Формат времени соответствует UST.
sync
Группа синхронизации. Не поддерживается, не следует использовать данное поле.
queue_size
Размер очереди в потоковом режиме в байтах. Не поддерживается, не следует использовать данное поле.
fill
Режим заполнения (см. константы SND_PCM_FILL_*). Не поддерживается, не следует использовать данное поле.
max_fill
Размер заполняемой "тишиной" порции данных в байтах. Не поддерживается, не следует использовать данное поле.
frag_size
Размер фрагмента в байтах.
frags_min
Зависит от режима:
frags_max
При воспроизведении максимальное число заполненных фрагментов для разрешения пробуждения. Это значение определяет общее число фрагментов, которые могут быть записаны приложением, за исключением того фрагмента, который сейчас проигрывается (таким образом, общее число фрагментов равно frags_max + 1).
sw_mixer_subchn_name
По умолчанию, имя всех sw_mixer групп субканалов есть PCM Subchannel. Данное поле может быть использовано для назначение другого имени.

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

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

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

snd_pcm_channel_params(), snd_pcm_format_t




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