From 581a81f98e5a5a1784178cc6e64ca7c39d84b9fd Mon Sep 17 00:00:00 2001
From: atmos4 <atmos4@b3059339-0415-0410-9bf9-f77b7e298cf2>
Date: Tue, 11 Sep 2001 16:26:41 +0000
Subject: [PATCH] Applied fix for mixercontrol w/alsa ossemu by Christian Ohm.

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@1882 b3059339-0415-0410-9bf9-f77b7e298cf2
---
 mixer.c   |  9 +++++----
 mplayer.c | 11 +++--------
 2 files changed, 8 insertions(+), 12 deletions(-)

diff --git a/mixer.c b/mixer.c
index 91a9bcccfa..07cb54b2df 100644
--- a/mixer.c
+++ b/mixer.c
@@ -127,14 +127,15 @@ void mixer_setvolume( float l,float r ){
 
 #endif
 
+#define MIXER_CHANGE 3
 
 void mixer_incvolume( void )
 {
  float mixer_l, mixer_r;
  mixer_getvolume( &mixer_l,&mixer_r );
- mixer_l++;
+ mixer_l += MIXER_CHANGE;
  if ( mixer_l > 100 ) mixer_l = 100;
- mixer_r++;
+ mixer_r += MIXER_CHANGE;
  if ( mixer_r > 100 ) mixer_r = 100;
  mixer_setvolume( mixer_l,mixer_r );
 }
@@ -143,9 +144,9 @@ void mixer_decvolume( void )
 {
  float mixer_l, mixer_r;
  mixer_getvolume( &mixer_l,&mixer_r );
- mixer_l--;
+ mixer_l -= MIXER_CHANGE;
  if ( mixer_l < 0 ) mixer_l = 0;
- mixer_r--;
+ mixer_r -= MIXER_CHANGE;
  if ( mixer_r < 0 ) mixer_r = 0;
  mixer_setvolume( mixer_l,mixer_r );
 }
diff --git a/mplayer.c b/mplayer.c
index 00fcd475e0..9779011363 100644
--- a/mplayer.c
+++ b/mplayer.c
@@ -1645,22 +1645,17 @@ if(auto_quality>0){
     case '0':
     case '*':
     case '/': {
-        float mixer_l, mixer_r;
-        mixer_getvolume( &mixer_l,&mixer_r );
         if(c=='*' || c=='0'){
-            if ( ++mixer_l > 100 ) mixer_l = 100;
-            if ( ++mixer_r > 100 ) mixer_r = 100;
+               mixer_incvolume();
         } else {
-            if ( --mixer_l < 0 ) mixer_l = 0;
-            if ( --mixer_r < 0 ) mixer_r = 0;
+               mixer_decvolume();
         }
-        mixer_setvolume( mixer_l,mixer_r );
 
 #ifdef USE_OSD
         if(osd_level){
           osd_visible=sh_video->fps; // 1 sec
           vo_osd_progbar_type=OSD_VOLUME;
-          vo_osd_progbar_value=((mixer_l+mixer_r)*256.0)/200.0;
+          vo_osd_progbar_value=(mixer_getbothvolume()*256.0)/100.0;
           //printf("volume: %d\n",vo_osd_progbar_value);
         }
 #endif