summaryrefslogtreecommitdiffstats
path: root/libao2/ao_alsa.c
diff options
context:
space:
mode:
authorjoyping <joyping@b3059339-0415-0410-9bf9-f77b7e298cf2>2004-07-14 00:48:26 +0000
committerjoyping <joyping@b3059339-0415-0410-9bf9-f77b7e298cf2>2004-07-14 00:48:26 +0000
commit31b88697d441957cab235f7c80a5f066cf175af5 (patch)
treecd10c031b64bdab5e27a5c8306d246454fe9daef /libao2/ao_alsa.c
parentc018f997933635315db1b8fc5f76001685f65275 (diff)
downloadmpv-31b88697d441957cab235f7c80a5f066cf175af5.tar.bz2
mpv-31b88697d441957cab235f7c80a5f066cf175af5.tar.xz
volume calc fixes for mixer, by reimar döffinger, 10l reverse by me
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@12812 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libao2/ao_alsa.c')
-rw-r--r--libao2/ao_alsa.c12
1 files changed, 6 insertions, 6 deletions
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) {