diff options
Diffstat (limited to 'src/mixer')
-rw-r--r-- | src/mixer/simple_none.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/src/mixer/simple_none.c b/src/mixer/simple_none.c index d0e800e6..c1f2b295 100644 --- a/src/mixer/simple_none.c +++ b/src/mixer/simple_none.c @@ -483,17 +483,16 @@ static int elem_write_volume(selem_none_t *s, int dir, selem_ctl_type_t type) static int elem_write_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 < c->values; idx++) - snd_ctl_elem_value_set_integer(ctl, idx, + snd_ctl_elem_value_set_integer(&ctl, idx, !!(s->str[dir].sw & (1 << idx))); - if ((err = snd_hctl_elem_write(c->elem, ctl)) < 0) + if ((err = snd_hctl_elem_write(c->elem, &ctl)) < 0) return err; return 0; } |