# HG changeset patch # User William Pitcock # Date 1244610375 18000 # Node ID 4634dab72608f756614353ba88fd66cf1ba3d92a # Parent 1117166277f7665c9f10660ed6e99c9a72298b07 alsa-ng: Add get_volume() implementation. diff -r 1117166277f7 -r 4634dab72608 src/alsa-ng/alsa-core.c --- a/src/alsa-ng/alsa-core.c Tue Jun 09 23:34:50 2009 -0500 +++ b/src/alsa-ng/alsa-core.c Wed Jun 10 00:06:15 2009 -0500 @@ -157,6 +157,31 @@ snd_mixer_handle_events(amixer); } +static void +alsaplug_get_volume(gint *l, gint *r) +{ + snd_mixer_elem_t *elem = alsaplug_guess_mixer_elem(amixer); + + if (elem == NULL) + return; + + snd_mixer_handle_events(amixer); + + *l = 0; + *r = 0; + + if (snd_mixer_selem_is_playback_mono(elem)) + { + snd_mixer_selem_get_playback_volume(elem, SND_MIXER_SCHN_MONO, (glong *) l); + snd_mixer_selem_get_playback_volume(elem, SND_MIXER_SCHN_MONO, (glong *) r); + } + else + { + snd_mixer_selem_get_playback_volume(elem, SND_MIXER_SCHN_FRONT_LEFT, (glong *) l); + snd_mixer_selem_get_playback_volume(elem, SND_MIXER_SCHN_FRONT_RIGHT, (glong *) r); + } +} + /******************************************************************************** * ALSA PCM I/O functions. * ********************************************************************************/ @@ -456,6 +481,7 @@ .flush = alsaplug_flush, .pause = alsaplug_pause, .set_volume = alsaplug_set_volume, + .get_volume = alsaplug_get_volume, }; OutputPlugin *alsa_oplist[] = { &alsa_op, NULL };