Текущая конфигурация PCM канала
#include <sys/asoundlib.h>
typedef struct snd_pcm_channel_setup {
int32_t channel;
int32_t mode;
snd_pcm_format_t format;
snd_pcm_digital_t digital;
union {
struct {
int32_t queue_size;
uint8_t reserved[124];
} stream;
struct {
int32_t frag_size;
int32_t frags;
int32_t frags_min;
int32_t frags_max;
uint32_t max_frag_size;
uint8_t reserved[124];
} block;
uint8_t reserved[128];
} buf;
int16_t msbits_per_sample;
int16_t pad1;
int32_t mixer_device;
snd_mixer_eid_t *mixer_eid;
snd_mixer_gid_t *mixer_gid;
uint8_t mmap_valid:1;
uint8_t mmap_active:1;
int32_t mixer_card;
uint8_t reserved[104];
} snd_pcm_channel_setup_t;
Структура snd_pcm_channel_setup_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). Обратите внимание, что поле rate может отличаться от запрошенного.
- digital
- Не реализовано.
- queue_size
- Реальный размер очереди в байтах (может отличаться от запрошенного).
- frag_size
- Реальный размер фрагмента в байтах (может отличаться от запрошенного).
- frags
- Число фрагментовы.
- frags_min
- Зависит от режима:
- захват — минимальное число заполненных фрагментов для разрешения пробуждения (обычно равно
1
). - воспроизведение — минимально число свободных фрагментов для разрешения пробуждения (обычно равно
1
).
- frags_max
- При воспроизведении максимальное число заполненных фрагментов для разрешения пробуждения. Это значение определяет общее число фрагментов, которые могут быть записаны приложением, за исключением того фрагмента, который сейчас проигрывается (таким образом, общее число фрагментов равно frags_max + 1).
- max_frag_size
- Максимальный размер фрагмента.
- msbits_per_sample
- Сколько старших значащих бит физически используется.
- mixer_device
- Устройства микшера для этого субканала.
- mixer_eid
- Указатель на элемент микшера, идентифицирующий субканал.
- mixer_gid
- Указатель на группу микшера, идентифицирующий субканал (см. snd_mixer_gid_t).
- mmap_valid
- Канал может использовать доступ через мапирование.
- mmap_active
- Канал может использовать передачи через мапирование.
- mixer_card
- Устройство микшера.
ЗОСРВ «Нейтрино»
snd_mixer_gid_t, snd_pcm_channel_setup(), snd_pcm_format_t, snd_pcm_plugin_setup()
Предыдущий раздел: Библиотека libasound