diff options
author | cg <cg@FreeBSD.org> | 2000-03-20 15:21:50 +0000 |
---|---|---|
committer | cg <cg@FreeBSD.org> | 2000-03-20 15:21:50 +0000 |
commit | 2a1e86107da4228384ff5e206f3bd033a6913ee7 (patch) | |
tree | f6f86fe0505bffc5669a2a472ab0990ef68bf164 /sys/dev/sound/pcm/mixer.c | |
parent | ff3f6ce52c0295efd20a1710932a3798445329c2 (diff) | |
download | FreeBSD-src-2a1e86107da4228384ff5e206f3bd033a6913ee7.zip FreeBSD-src-2a1e86107da4228384ff5e206f3bd033a6913ee7.tar.gz |
add a function to reinitialize the mixer, to be called by drivers on
resuming after suspend
Diffstat (limited to 'sys/dev/sound/pcm/mixer.c')
-rw-r--r-- | sys/dev/sound/pcm/mixer.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/sys/dev/sound/pcm/mixer.c b/sys/dev/sound/pcm/mixer.c index 2a00a12..b1f28e0 100644 --- a/sys/dev/sound/pcm/mixer.c +++ b/sys/dev/sound/pcm/mixer.c @@ -62,6 +62,19 @@ mixer_init(snddev_info *d, snd_mixer *m, void *devinfo) } int +mixer_reinit(snddev_info *d) +{ + int i; + if (d == NULL) return -1; + if (d->mixer.init != NULL && d->mixer.init(&d->mixer) == 0) { + for (i = 0; i < SOUND_MIXER_NRDEVICES; i++) + mixer_set(d, i, d->mixer.level[i]); + mixer_setrecsrc(d, d->mixer.recsrc); + return 0; + } else return -1; +} + +int mixer_set(snddev_info *d, unsigned dev, unsigned lev) { if (d == NULL || d->mixer.set == NULL) return -1; |