summaryrefslogtreecommitdiffstats
path: root/libao2/ao_alsa.c
diff options
context:
space:
mode:
authorwanderer <wanderer@b3059339-0415-0410-9bf9-f77b7e298cf2>2005-12-15 17:50:29 +0000
committerwanderer <wanderer@b3059339-0415-0410-9bf9-f77b7e298cf2>2005-12-15 17:50:29 +0000
commitdd75eef3f3afea4b4e0ef332ab76fd8932b87fbf (patch)
treeb8c9685c04e0aa3d1f93b260c9c3110d13f17402 /libao2/ao_alsa.c
parent2ca0ead846488390f61c09225cd2f2cb0c886028 (diff)
downloadmpv-dd75eef3f3afea4b4e0ef332ab76fd8932b87fbf.tar.bz2
mpv-dd75eef3f3afea4b4e0ef332ab76fd8932b87fbf.tar.xz
use snd_mixer_selem_set_playback_switch when muting ALSA, patch by Matthias Lederhofer <matled -at- gmx dot net>
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@17195 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libao2/ao_alsa.c')
-rw-r--r--libao2/ao_alsa.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/libao2/ao_alsa.c b/libao2/ao_alsa.c
index 431a6bc756..2d820b1f70 100644
--- a/libao2/ao_alsa.c
+++ b/libao2/ao_alsa.c
@@ -197,6 +197,17 @@ static int control(int cmd, void *arg)
}
mp_msg(MSGT_AO,MSGL_DBG2,"right=%li, pmin=%li, pmax=%li, mult=%f\n",
set_vol, pmin, pmax, f_multi);
+
+ if (snd_mixer_selem_has_playback_switch(elem)) {
+ int lmute = (vol->left == 0.0);
+ int rmute = (vol->right == 0.0);
+ if (snd_mixer_selem_has_playback_switch_joined(elem)) {
+ lmute = rmute = lmute && rmute;
+ } else {
+ snd_mixer_selem_set_playback_switch(elem, SND_MIXER_SCHN_FRONT_RIGHT, !rmute);
+ }
+ snd_mixer_selem_set_playback_switch(elem, SND_MIXER_SCHN_FRONT_LEFT, !lmute);
+ }
}
else {
snd_mixer_selem_get_playback_volume(elem, 0, &get_vol);