diff options
Diffstat (limited to 'src/mixer/simple_none.c')
-rw-r--r-- | src/mixer/simple_none.c | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/src/mixer/simple_none.c b/src/mixer/simple_none.c index a90ee84c..0f23a063 100644 --- a/src/mixer/simple_none.c +++ b/src/mixer/simple_none.c @@ -234,12 +234,11 @@ static long from_user(selem_none_t *s, int dir, selem_ctl_t *c, long value) static int elem_read_volume(selem_none_t *s, int dir, selem_ctl_type_t type) { - snd_ctl_elem_value_t *ctl; + snd_ctl_elem_value_t ctl = {0}; unsigned int idx; int err; selem_ctl_t *c = &s->ctls[type]; - snd_ctl_elem_value_alloca(&ctl); - if ((err = snd_hctl_elem_read(c->elem, ctl)) < 0) + if ((err = snd_hctl_elem_read(c->elem, &ctl)) < 0) return err; for (idx = 0; idx < s->str[dir].channels; idx++) { unsigned int idx1 = idx; @@ -247,25 +246,24 @@ static int elem_read_volume(selem_none_t *s, int dir, selem_ctl_type_t type) idx1 = 0; s->str[dir].vol[idx] = to_user(s, dir, c, - snd_ctl_elem_value_get_integer(ctl, idx1)); + snd_ctl_elem_value_get_integer(&ctl, idx1)); } return 0; } static int elem_read_switch(selem_none_t *s, int dir, selem_ctl_type_t type) { - snd_ctl_elem_value_t *ctl; + snd_ctl_elem_value_t ctl = {0}; unsigned int idx; int err; selem_ctl_t *c = &s->ctls[type]; - snd_ctl_elem_value_alloca(&ctl); - if ((err = snd_hctl_elem_read(c->elem, ctl)) < 0) + if ((err = snd_hctl_elem_read(c->elem, &ctl)) < 0) return err; for (idx = 0; idx < s->str[dir].channels; idx++) { unsigned int idx1 = idx; if (idx >= c->values) idx1 = 0; - if (!snd_ctl_elem_value_get_integer(ctl, idx1)) + if (!snd_ctl_elem_value_get_integer(&ctl, idx1)) s->str[dir].sw &= ~(1 << idx); } return 0; |