From 31b88697d441957cab235f7c80a5f066cf175af5 Mon Sep 17 00:00:00 2001 From: joyping Date: Wed, 14 Jul 2004 00:48:26 +0000 Subject: =?UTF-8?q?volume=20calc=20fixes=20for=20mixer,=20by=20reimar=20d?= =?UTF-8?q?=C3=B6ffinger,=2010l=20reverse=20by=20me?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@12812 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libao2/ao_alsa.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'libao2/ao_alsa.c') diff --git a/libao2/ao_alsa.c b/libao2/ao_alsa.c index 1c07c34a63..ab11e1f139 100644 --- a/libao2/ao_alsa.c +++ b/libao2/ao_alsa.c @@ -152,11 +152,11 @@ static int control(int cmd, void *arg) } snd_mixer_selem_get_playback_volume_range(elem,&pmin,&pmax); - f_multi = (100 / (float)pmax - pmin); + f_multi = (100 / (float)(pmax - pmin)); if (cmd == AOCONTROL_SET_VOLUME) { - set_vol = (vol->left + pmin) / f_multi + 0.5; + set_vol = vol->left / f_multi + pmin + 0.5; //setting channels if ((err = snd_mixer_selem_set_playback_volume(elem, 0, set_vol)) < 0) { @@ -166,7 +166,7 @@ static int control(int cmd, void *arg) } mp_msg(MSGT_AO,MSGL_DBG2,"left=%li, ", set_vol); - set_vol = (vol->right + pmin) / f_multi + 0.5; + set_vol = vol->right / f_multi + pmin + 0.5; if ((err = snd_mixer_selem_set_playback_volume(elem, 1, set_vol)) < 0) { mp_msg(MSGT_AO,MSGL_ERR,"alsa-control: error setting right channel, %s\n", @@ -178,9 +178,9 @@ static int control(int cmd, void *arg) } else { snd_mixer_selem_get_playback_volume(elem, 0, &get_vol); - vol->left = (get_vol * f_multi) - pmin; + vol->left = (get_vol - pmin) * f_multi; snd_mixer_selem_get_playback_volume(elem, 1, &get_vol); - vol->right = (get_vol * f_multi) - pmin; + vol->right = (get_vol - pmin) * f_multi; mp_msg(MSGT_AO,MSGL_DBG2,"left=%f, right=%f\n",vol->left,vol->right); } @@ -1103,7 +1103,7 @@ static int get_space() } } - if (snd_pcm_status_get_state(status) == SND_PCM_STATE_RUNNING) + if (snd_pcm_status_get_state(status) != SND_PCM_STATE_RUNNING) mp_msg(MSGT_AO,MSGL_V,"alsa-space: free space = %i, status=%i, %s --\n", ret, status, str_status); if (ret < 0) { -- cgit v1.2.3