X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/disorder/blobdiff_plain/ba70caca3f9debf14c9f551ff4dcaddd1eb07d3d..9d7a61297cb7263160d85a12d445fc1897fbfa80:/lib/uaudio-alsa.c diff --git a/lib/uaudio-alsa.c b/lib/uaudio-alsa.c index 14b2d2a..721639c 100644 --- a/lib/uaudio-alsa.c +++ b/lib/uaudio-alsa.c @@ -136,7 +136,8 @@ static void alsa_start(uaudio_callback *callback, alsa_open(); uaudio_thread_start(callback, userdata, alsa_play, 32 / uaudio_sample_size, - 4096 / uaudio_sample_size); + 4096 / uaudio_sample_size, + 0); } static void alsa_stop(void) { @@ -150,6 +151,11 @@ static int to_percent(long n) { return (n - alsa_mixer_min) * 100 / (alsa_mixer_max - alsa_mixer_min); } +/** @brief Convert a percentage to a level */ +static int from_percent(int n) { + return alsa_mixer_min + n * (alsa_mixer_max - alsa_mixer_min) / 100; +} + static void alsa_open_mixer(void) { int err; snd_mixer_selem_id_t *id; @@ -160,8 +166,8 @@ static void alsa_open_mixer(void) { snd_mixer_selem_id_alloca(&id); if((err = snd_mixer_open(&alsa_mixer_handle, 0))) fatal(0, "snd_mixer_open: %s", snd_strerror(err)); - if((err = snd_mixer_attach(alsa_mixer_handle, config->device))) - fatal(0, "snd_mixer_attach %s: %s", config->device, snd_strerror(err)); + if((err = snd_mixer_attach(alsa_mixer_handle, device))) + fatal(0, "snd_mixer_attach %s: %s", device, snd_strerror(err)); if((err = snd_mixer_selem_register(alsa_mixer_handle, 0/*options*/, 0/*classp*/))) fatal(0, "snd_mixer_selem_register %s: %s",