diff options
author | Simon Wilson <ksattic@gmail.com> | 2015-09-15 11:27:32 -0700 |
---|---|---|
committer | Simon Wilson <ksattic@gmail.com> | 2015-09-15 11:27:32 -0700 |
commit | 53e232c3ef1f8a4a51dbf97ca56010eadbc4769c (patch) | |
tree | 53c34481c922346e945535b962889774f9337bda | |
parent | 1c30d6eb6ac4ce3870298c36d44202e13917f588 (diff) | |
parent | 57a877495e9bd8e2e1ea8fd42bacbc149a6cbcd3 (diff) |
Merge pull request #52 from rfvirgil/get_id
mixer: Add mixer_ctl_get_id
-rw-r--r-- | include/tinyalsa/asoundlib.h | 1 | ||||
-rw-r--r-- | mixer.c | 12 |
2 files changed, 13 insertions, 0 deletions
diff --git a/include/tinyalsa/asoundlib.h b/include/tinyalsa/asoundlib.h index a85e810..584cfe1 100644 --- a/include/tinyalsa/asoundlib.h +++ b/include/tinyalsa/asoundlib.h @@ -225,6 +225,7 @@ struct mixer_ctl *mixer_get_ctl(struct mixer *mixer, unsigned int id); struct mixer_ctl *mixer_get_ctl_by_name(struct mixer *mixer, const char *name); /* Get info about mixer controls */ +unsigned int mixer_ctl_get_id(struct mixer_ctl *ctl); const char *mixer_ctl_get_name(struct mixer_ctl *ctl); enum mixer_ctl_type mixer_ctl_get_type(struct mixer_ctl *ctl); const char *mixer_ctl_get_type_string(struct mixer_ctl *ctl); @@ -33,6 +33,7 @@ #include <fcntl.h> #include <errno.h> #include <ctype.h> +#include <limits.h> #include <sys/ioctl.h> @@ -209,6 +210,17 @@ void mixer_ctl_update(struct mixer_ctl *ctl) ioctl(ctl->mixer->fd, SNDRV_CTL_IOCTL_ELEM_INFO, ctl->info); } +unsigned int mixer_ctl_get_id(struct mixer_ctl *ctl) +{ + if (!ctl) + return UINT_MAX; + + /* numid values start at 1, return a 0-base value that + * can be passed to mixer_get_ctl() + */ + return ctl->info->id.numid - 1; +} + const char *mixer_ctl_get_name(struct mixer_ctl *ctl) { if (!ctl) |