diff options
author | Jaroslav Kysela <perex@perex.cz> | 2008-11-21 14:44:31 +0100 |
---|---|---|
committer | Jaroslav Kysela <perex@perex.cz> | 2008-11-21 14:44:31 +0100 |
commit | 05f78cc6811110156c701fd9a2a5d15de8b4b1c7 (patch) | |
tree | bc2a6f1296db72ed134f1716cc4bd673fb998894 /alsactl/state.c | |
parent | 6232f1c96cde1fee247e95cd97235c48cc7b168d (diff) | |
download | alsa-utils-05f78cc6811110156c701fd9a2a5d15de8b4b1c7.tar.gz |
alsactl: Fix restore / init call behaviour when driver contains more controls
Fix check when driver contains more controls than state file. In this case,
initialization procedure should be run, too.
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Diffstat (limited to 'alsactl/state.c')
-rw-r--r-- | alsactl/state.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/alsactl/state.c b/alsactl/state.c index 467fa93..635a999 100644 --- a/alsactl/state.c +++ b/alsactl/state.c @@ -1162,7 +1162,7 @@ static int set_control(snd_ctl_t *handle, snd_config_t *control, return -EINVAL; } numid = atoi(id); - if (numid > *maxnumid) + if ((int)numid > *maxnumid) *maxnumid = numid; snd_config_for_each(i, next, control) { snd_config_t *n = snd_config_iterator_entry(i); @@ -1398,7 +1398,7 @@ static int set_controls(int card, snd_config_t *top, int doit) snd_ctl_card_info_t *info; snd_config_t *control; snd_config_iterator_t i, next; - int err, maxnumid; + int err, maxnumid = -1; char name[32], tmpid[16]; const char *id; snd_ctl_card_info_alloca(&info); @@ -1442,7 +1442,7 @@ static int set_controls(int card, snd_config_t *top, int doit) /* check if we have additional controls in driver */ /* in this case we should go through init procedure */ - if (!doit) { + if (!doit && maxnumid >= 0) { snd_ctl_elem_id_t *id; snd_ctl_elem_info_t *info; snd_ctl_elem_id_alloca(&id); |