snd_pcm_channel_info_t

Информация о PCM канале

Прототип:

#include <sys/asoundlib.h>
typedef struct snd_pcm_channel_info {
int32_t subdevice;
int8_t subname[36];
int32_t channel;
int32_t zero1;
int32_t zero2[4];
uint32_t flags;
uint32_t formats;
uint32_t rates;
int32_t min_rate;
int32_t max_rate;
int32_t min_voices;
int32_t max_voices;
int32_t max_buffer_size;
int32_t min_fragment_size;
int32_t max_fragment_size;
int32_t fragment_align;
int32_t fifo_size;
int32_t transfer_block_size;
uint8_t zero3[4];
snd_pcm_digital_t dig_mask;
uint32_t zero4;
int32_t mixer_device;
snd_mixer_eid_t mixer_eid;
snd_mixer_gid_t mixer_gid;
uint8_t reserved[128];
} snd_pcm_channel_info_t;

Описание:

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

subdevice
Номер суб-устройства.
subname[32]
Имя суб-устройства.
channel
Ориентация канала. Одно из значений:
SND_PCM_CHANNEL_CAPTURE
SND_PCM_CHANNEL_PLAYBACK
flags
Комбинация констант:
SND_PCM_CHNINFO_BLOCK
Оборудование поддерживает блочный режим.
SND_PCM_CHNINFO_BLOCK_TRANSFER
Оборудование осуществляет передачи сэмплов в виде их цепочек (например, при PCI-burst режимах передачи).
SND_PCM_CHNINFO_INTERLEAVE
Оборудование принимает данные, состоящие из чередующихся (interleaved) сэмплов.
SND_PCM_CHNINFO_MMAP
Оборудование поддерживает доступ в виде мапирований.
SND_PCM_CHNINFO_MMAP_VALID
Фрагменты сэмплов действительны во время передачи. Это означает, что фрагменты могут использоваться, если установлено поле io структуры snd_pcm_mmap_control_t.
SND_PCM_CHNINFO_NONINTERLEAVE
Оборудование принимает данные, состоящие из не чередующихся (noninterleaved) сэмплов.
SND_PCM_CHNINFO_OVERRANGE
Оборудование захвата (ADC) поддерживает детектирование переполнений.
SND_PCM_CHNINFO_PAUSE
Оборудование поддерживает постановку на паузу DMA механизмов (речь только о режимах воспроизведения).

Note: Отсутствие этого флага не препятствует генерации пауз приложением. Поддержка этого режима оборудованием крайне редка, поэтому не следует на него сильно полагаться.

formats
Поддерживаемые форматы (SND_PCM_FMT_*).
rates
Поддерживаемые оборудованием частоты дискретизации (SND_PCM_RATE_*).
min_rate
Минимальная частота дискретизации (в Гц).
max_rate
Максимальная частота дискретизации (в Гц).
min_voices
Минимальное поддерживаемое число голосов (обычно равно 1).
max_voices
Максимально поддерживаемое число голосов.
max_buffer_size
Максимальный размер буфера в байтах.
min_fragment_size
Минимальный размер фрагмента в байтах.
max_fragment_size
Максимальный размер фрагмента в байтах.
fragment_align
Если это значение установлено, то размер буфера фрагментов должен быть ему кратен, чтобы он был правильно выровнен.
fifo_size
Размер потокового FIFO в байтах. Поле считается устаревшим, использовать его не следует.
transfer_block_size
Размер передаваемого по шине блока данных в байтах.
dig_mask
Поле не используется.
mixer_device
Устройство микшера для данного канала.
mixer_eid
Структура snd_mixer_eid_t, описывающая идентифицирующий элемент микшера для данного канала.
mixer_gid
Идентифицирующая группа микшера (см. snd_mixer_gid_t) для данного канала. Эту группу следует использовать приложениям, которые будут настраивать громкость звука в канале. Данная группа гарантированно является самой низкоуровневой группой канала (или субканала), как определено во время вызова snd_ctl_pcm_channel_info(). Если она вызвана уже после завершения конфигурирования канала и субканал был выделен (например, после вызова snd_pcm_channel_params()), группа микшера mixer_gid будет группой субканала, которая соответствует текущему субканалу приложения.

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

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

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

snd_ctl_pcm_channel_info(), snd_mixer_eid_t, snd_mixer_gid_t, snd_pcm_channel_info(), snd_pcm_plugin_info()




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