12 #include "libao2/audio_out.h"
14 extern ao_functions_t
*audio_out
;
16 char * mixer_device
=NULL
;
17 char * mixer_channel
=NULL
;
23 void mixer_getvolume( float *l
,float *r
)
28 if(CONTROL_OK
!= audio_out
->control(AOCONTROL_GET_VOLUME
,&vol
))
35 void mixer_setvolume( float l
,float r
)
38 vol
.right
=r
; vol
.left
=l
;
40 if(CONTROL_OK
!= audio_out
->control(AOCONTROL_SET_VOLUME
,&vol
))
46 #define MIXER_CHANGE 3
48 void mixer_incvolume( void )
50 float mixer_l
, mixer_r
;
51 mixer_getvolume( &mixer_l
,&mixer_r
);
52 mixer_l
+= MIXER_CHANGE
;
53 if ( mixer_l
> 100 ) mixer_l
= 100;
54 mixer_r
+= MIXER_CHANGE
;
55 if ( mixer_r
> 100 ) mixer_r
= 100;
56 mixer_setvolume( mixer_l
,mixer_r
);
59 void mixer_decvolume( void )
61 float mixer_l
, mixer_r
;
62 mixer_getvolume( &mixer_l
,&mixer_r
);
63 mixer_l
-= MIXER_CHANGE
;
64 if ( mixer_l
< 0 ) mixer_l
= 0;
65 mixer_r
-= MIXER_CHANGE
;
66 if ( mixer_r
< 0 ) mixer_r
= 0;
67 mixer_setvolume( mixer_l
,mixer_r
);
70 float mixer_getbothvolume( void )
72 float mixer_l
, mixer_r
;
73 mixer_getvolume( &mixer_l
,&mixer_r
);
74 return ( mixer_l
+ mixer_r
) / 2;
77 void mixer_mute( void )
79 if ( muted
) mixer_setvolume( mute_l
,mute_r
);
82 mixer_getvolume( &mute_l
,&mute_r
);
83 mixer_setvolume( 0,0 );