alsa-mixer: handle the index for ALSA mixer element identifiers

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
This commit is contained in:
Jaroslav Kysela 2019-11-23 20:59:24 +01:00 committed by Arun Raghavan
parent ab5be56a10
commit 7f4b8e1a7c
2 changed files with 217 additions and 81 deletions

View file

@ -34,6 +34,7 @@
typedef struct pa_alsa_fdlist pa_alsa_fdlist;
typedef struct pa_alsa_mixer_pdata pa_alsa_mixer_pdata;
typedef struct pa_alsa_setting pa_alsa_setting;
typedef struct pa_alsa_mixer_id pa_alsa_mixer_id;
typedef struct pa_alsa_option pa_alsa_option;
typedef struct pa_alsa_element pa_alsa_element;
typedef struct pa_alsa_jack pa_alsa_jack;
@ -97,6 +98,12 @@ struct pa_alsa_setting {
unsigned priority;
};
/* ALSA mixer element identifier */
struct pa_alsa_mixer_id {
char *name;
int index;
};
/* An option belongs to an element and refers to one enumeration item
* of the element is an enumeration item, or a switch status if the
* element is a switch item. */
@ -123,7 +130,7 @@ struct pa_alsa_element {
pa_alsa_path *path;
PA_LLIST_FIELDS(pa_alsa_element);
char *alsa_name;
struct pa_alsa_mixer_id alsa_id;
pa_alsa_direction_t direction;
pa_alsa_switch_use_t switch_use;
@ -315,9 +322,12 @@ struct pa_alsa_profile {
};
struct pa_alsa_decibel_fix {
char *key;
pa_alsa_profile_set *profile_set;
char *name; /* Alsa volume element name. */
int index; /* Alsa volume element index. */
long min_step;
long max_step;