snd_mixer_group_t

Структура контроля группы микшера

Прототип:

#include <sys/asoundlib.h>
typedef struct snd_mixer_group_s {
snd_mixer_gid_t gid;
uint32_t caps;
uint32_t channels;
int32_t min;
int32_t max;
union {
uint32_t values[32];
struct {
uint32_t front_left;
uint32_t front_right;
uint32_t front_center;
uint32_t rear_left;
uint32_t rear_right;
uint32_t woofer;
uint8_t reserved[128]; /* must be filled with zeroes */
} names;
} volume;
uint32_t mute;
uint32_t capture;
int32_t capture_group;
int32_t elements_size;
int32_t elements;
int32_t elements_over;
snd_mixer_eid_t *pelements;
uint16_t change_duration; /* milliseconds */
uint16_t spare;
int32_t min_dB;
int32_t max_dB;
uint8_t reserved[120]; /* must be filled with zeroes */
} snd_mixer_group_t;

Описание:

Структура snd_mixer_group_t позволяет контролировать параметры группы микшера. Получать информацию можно с помощью функции snd_mixer_group_read(), а устанавливать через snd_mixer_group_write().

Поля структуры включают:

gid
Идентификатор группы микшера. Структура snd_mixer_gid_t включает имя группы и индекс.
caps
Возможности группы (комбинация флагов):
SND_MIXER_GRPCAP_VOLUME
Группа имеет хотя бы один регулятор громкости.
SND_MIXER_GRPCAP_JOINTLY_VOLUME
Уровень громкости для всех каналов группы должен быть одинаковым (посредством группировки).
SND_MIXER_GRPCAP_MUTE
Группа имеет хотя бы один элемент отключения звука (mute).
SND_MIXER_GRPCAP_JOINTLY_MUTE
Настройки отключения звука для всех каналов группы должны быть одинаковыми (посредством группировки).
SND_MIXER_GRPCAP_CAPTURE
Группа может принимать учасние в захвате звука (звукозапись).
SND_MIXER_GRPCAP_JOINTLY_CAPTURE
Все настройки захвата звука для всех каналов группы должны быть одинаковыми (посредством группировки).
SND_MIXER_GRPCAP_EXCL_CAPTURE
Только одна группа устройства может участвовать в звукозахвате одновременно.
SND_MIXER_GRPCAP_PLAY_GRP
Данная группа относится к воспроизведению звука.
SND_MIXER_GRPCAP_CAP_GRP
Данная группа относится к захвату звука.
SND_MIXER_GRPCAP_SUBCHANNEL
Группа контролирует субканал. Она существует только пока PCM субканал аллоцирован приложением.
channels
Биты поля соответствуют каналам, содержащимся в группе. Например, левому и правому стерео динамикам соответствуют биты 1 и 2 (00011), а центральному стерео динамику бит 3 (00100).
min
max
Минимальное и максимальное значение уровня громкости. При этом минимум не обязан быть равен 0.
volume
Структура, содержащая уровни звука для каждого канала группы. Доступ может осуществляться по именам каналов или косвенно через массив значений.

Note: Если группа имеет общую громкость, все значения должны быть одинаковыми; установка разных значений приводит к неопределенному поведению.

mute
Состояние отключения звука (mute) для каждого канала группы. Если соответствующий бит установлен, звук в канале отключен.

Note: Если группа имеет общий контроль отключения звука (mute), все биты должны быть одинаковыми; установка разных значений бит приводит к неопределенному поведению.

capture
Состояние захвата звука для каждого канала группы. Если соответствующий бит установлен, звук в канале может захватываться приложением. Если группа предназначена для эксклюзивного захвата звука (см SND_MIXER_GRPCAP_EXCL_CAPTURE выше), установка бита говорит о том, что звук в ней больше не может быть захвачен.

Note: Если группа имеет общий контроль захвата звука, все биты должны быть одинаковыми; установка разных значений бит приводит к неопределенному поведению.

capture_group
Не используется.
elements_size
Размер блока памяти, ассоциированного с полем pelements в единицах snd_mixer_eid_t.
elements
Число идентификаторов элементов, которые в настоящий момент заполнено в pelements.
elements_over
Число идентификаторов элементов, информацию о которых не удалось разместить в pelements из-за недостаточности размера хранилища.
pelements
Указатель на область памяти (хранилище), выделенную приложением, используемую для хранения массива идентификаторов элементов микшера. Хранилище представляет собой массив структур snd_mixer_eid_t. Записанные идентификаторы характеризуются полем elements и идентификатором группы gid.
change_duration
Число миллисекунд, в течение которых следует увеличивать громкость.
min_dB
max_dB
Минимальный и максимальный уровень звука в децибелах.

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

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

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

snd_mixer_eid_t, snd_mixer_gid_t, snd_mixer_group_read(), snd_mixer_group_write()




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