annotate mixer.c @ 10151:f096d8578c3d

ao_win32 and ao_macosx
author gabucino
date Thu, 22 May 2003 16:04:27 +0000
parents 6586ec1f6ee4
children 4e8f8efb6906
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
441
c4b4e2aac9de ups, I missed'em..
gabucino
parents:
diff changeset
1
c4b4e2aac9de ups, I missed'em..
gabucino
parents:
diff changeset
2 #include <string.h>
9772
6586ec1f6ee4 MINGW32 port
faust3
parents: 9633
diff changeset
3 #ifndef __MINGW32__
441
c4b4e2aac9de ups, I missed'em..
gabucino
parents:
diff changeset
4 #include <sys/ioctl.h>
9772
6586ec1f6ee4 MINGW32 port
faust3
parents: 9633
diff changeset
5 #endif
441
c4b4e2aac9de ups, I missed'em..
gabucino
parents:
diff changeset
6 #include <fcntl.h>
c4b4e2aac9de ups, I missed'em..
gabucino
parents:
diff changeset
7 #include <stdio.h>
605
abd7391a31e3 warnings killed
szabii
parents: 556
diff changeset
8 #include <unistd.h>
441
c4b4e2aac9de ups, I missed'em..
gabucino
parents:
diff changeset
9
1038
b36fb1ae4b53 applied solaris8/netbsd/other fixes patch by J¸«ärgen Keil <jk@tools.de>
arpi_esp
parents: 1020
diff changeset
10 #include "config.h"
441
c4b4e2aac9de ups, I missed'em..
gabucino
parents:
diff changeset
11 #include "mixer.h"
4788
d678ce495a75 Moved HW dependent mixer stuff to libao and removed master switch
anders
parents: 4749
diff changeset
12 #include "libao2/audio_out.h"
1038
b36fb1ae4b53 applied solaris8/netbsd/other fixes patch by J¸«ärgen Keil <jk@tools.de>
arpi_esp
parents: 1020
diff changeset
13
4788
d678ce495a75 Moved HW dependent mixer stuff to libao and removed master switch
anders
parents: 4749
diff changeset
14 extern ao_functions_t *audio_out;
1061
0f7be115a4db patch by J¸«ärgen Keil
arpi_esp
parents: 1038
diff changeset
15
4788
d678ce495a75 Moved HW dependent mixer stuff to libao and removed master switch
anders
parents: 4749
diff changeset
16 char * mixer_device=NULL;
441
c4b4e2aac9de ups, I missed'em..
gabucino
parents:
diff changeset
17
6311
da2dda48b7ec add mute support ( step 1 ) and fixed panscan bugs (1000l for me)
pontscho
parents: 4788
diff changeset
18 int muted = 0;
da2dda48b7ec add mute support ( step 1 ) and fixed panscan bugs (1000l for me)
pontscho
parents: 4788
diff changeset
19 float mute_l = 0.0f;
da2dda48b7ec add mute support ( step 1 ) and fixed panscan bugs (1000l for me)
pontscho
parents: 4788
diff changeset
20 float mute_r = 0.0f;
da2dda48b7ec add mute support ( step 1 ) and fixed panscan bugs (1000l for me)
pontscho
parents: 4788
diff changeset
21
1038
b36fb1ae4b53 applied solaris8/netbsd/other fixes patch by J¸«ärgen Keil <jk@tools.de>
arpi_esp
parents: 1020
diff changeset
22 void mixer_getvolume( float *l,float *r )
441
c4b4e2aac9de ups, I missed'em..
gabucino
parents:
diff changeset
23 {
4788
d678ce495a75 Moved HW dependent mixer stuff to libao and removed master switch
anders
parents: 4749
diff changeset
24 ao_control_vol_t vol;
d678ce495a75 Moved HW dependent mixer stuff to libao and removed master switch
anders
parents: 4749
diff changeset
25 *l=0; *r=0;
d678ce495a75 Moved HW dependent mixer stuff to libao and removed master switch
anders
parents: 4749
diff changeset
26 if(audio_out){
9633
12b1790038b0 64bit libao2 fix by Jens Axboe <mplayer-dev@kernel.dk>
alex
parents: 6311
diff changeset
27 if(CONTROL_OK != audio_out->control(AOCONTROL_GET_VOLUME,&vol))
4788
d678ce495a75 Moved HW dependent mixer stuff to libao and removed master switch
anders
parents: 4749
diff changeset
28 return;
d678ce495a75 Moved HW dependent mixer stuff to libao and removed master switch
anders
parents: 4749
diff changeset
29 *r=vol.right;
d678ce495a75 Moved HW dependent mixer stuff to libao and removed master switch
anders
parents: 4749
diff changeset
30 *l=vol.left;
441
c4b4e2aac9de ups, I missed'em..
gabucino
parents:
diff changeset
31 }
c4b4e2aac9de ups, I missed'em..
gabucino
parents:
diff changeset
32 }
c4b4e2aac9de ups, I missed'em..
gabucino
parents:
diff changeset
33
1038
b36fb1ae4b53 applied solaris8/netbsd/other fixes patch by J¸«ärgen Keil <jk@tools.de>
arpi_esp
parents: 1020
diff changeset
34 void mixer_setvolume( float l,float r )
441
c4b4e2aac9de ups, I missed'em..
gabucino
parents:
diff changeset
35 {
4788
d678ce495a75 Moved HW dependent mixer stuff to libao and removed master switch
anders
parents: 4749
diff changeset
36 ao_control_vol_t vol;
d678ce495a75 Moved HW dependent mixer stuff to libao and removed master switch
anders
parents: 4749
diff changeset
37 vol.right=r; vol.left=l;
d678ce495a75 Moved HW dependent mixer stuff to libao and removed master switch
anders
parents: 4749
diff changeset
38 if(audio_out){
9633
12b1790038b0 64bit libao2 fix by Jens Axboe <mplayer-dev@kernel.dk>
alex
parents: 6311
diff changeset
39 if(CONTROL_OK != audio_out->control(AOCONTROL_SET_VOLUME,&vol))
4788
d678ce495a75 Moved HW dependent mixer stuff to libao and removed master switch
anders
parents: 4749
diff changeset
40 return;
1038
b36fb1ae4b53 applied solaris8/netbsd/other fixes patch by J¸«ärgen Keil <jk@tools.de>
arpi_esp
parents: 1020
diff changeset
41 }
6311
da2dda48b7ec add mute support ( step 1 ) and fixed panscan bugs (1000l for me)
pontscho
parents: 4788
diff changeset
42 muted=0;
1038
b36fb1ae4b53 applied solaris8/netbsd/other fixes patch by J¸«ärgen Keil <jk@tools.de>
arpi_esp
parents: 1020
diff changeset
43 }
1061
0f7be115a4db patch by J¸«ärgen Keil
arpi_esp
parents: 1038
diff changeset
44
1881
d75b24bda7ce Applied fix for mixercontrol w/alsa ossemu by Christian Ohm.
atmos4
parents: 1061
diff changeset
45 #define MIXER_CHANGE 3
441
c4b4e2aac9de ups, I missed'em..
gabucino
parents:
diff changeset
46
c4b4e2aac9de ups, I missed'em..
gabucino
parents:
diff changeset
47 void mixer_incvolume( void )
c4b4e2aac9de ups, I missed'em..
gabucino
parents:
diff changeset
48 {
1038
b36fb1ae4b53 applied solaris8/netbsd/other fixes patch by J¸«ärgen Keil <jk@tools.de>
arpi_esp
parents: 1020
diff changeset
49 float mixer_l, mixer_r;
441
c4b4e2aac9de ups, I missed'em..
gabucino
parents:
diff changeset
50 mixer_getvolume( &mixer_l,&mixer_r );
1881
d75b24bda7ce Applied fix for mixercontrol w/alsa ossemu by Christian Ohm.
atmos4
parents: 1061
diff changeset
51 mixer_l += MIXER_CHANGE;
1038
b36fb1ae4b53 applied solaris8/netbsd/other fixes patch by J¸«ärgen Keil <jk@tools.de>
arpi_esp
parents: 1020
diff changeset
52 if ( mixer_l > 100 ) mixer_l = 100;
1881
d75b24bda7ce Applied fix for mixercontrol w/alsa ossemu by Christian Ohm.
atmos4
parents: 1061
diff changeset
53 mixer_r += MIXER_CHANGE;
1038
b36fb1ae4b53 applied solaris8/netbsd/other fixes patch by J¸«ärgen Keil <jk@tools.de>
arpi_esp
parents: 1020
diff changeset
54 if ( mixer_r > 100 ) mixer_r = 100;
441
c4b4e2aac9de ups, I missed'em..
gabucino
parents:
diff changeset
55 mixer_setvolume( mixer_l,mixer_r );
c4b4e2aac9de ups, I missed'em..
gabucino
parents:
diff changeset
56 }
c4b4e2aac9de ups, I missed'em..
gabucino
parents:
diff changeset
57
c4b4e2aac9de ups, I missed'em..
gabucino
parents:
diff changeset
58 void mixer_decvolume( void )
c4b4e2aac9de ups, I missed'em..
gabucino
parents:
diff changeset
59 {
1038
b36fb1ae4b53 applied solaris8/netbsd/other fixes patch by J¸«ärgen Keil <jk@tools.de>
arpi_esp
parents: 1020
diff changeset
60 float mixer_l, mixer_r;
441
c4b4e2aac9de ups, I missed'em..
gabucino
parents:
diff changeset
61 mixer_getvolume( &mixer_l,&mixer_r );
1881
d75b24bda7ce Applied fix for mixercontrol w/alsa ossemu by Christian Ohm.
atmos4
parents: 1061
diff changeset
62 mixer_l -= MIXER_CHANGE;
1038
b36fb1ae4b53 applied solaris8/netbsd/other fixes patch by J¸«ärgen Keil <jk@tools.de>
arpi_esp
parents: 1020
diff changeset
63 if ( mixer_l < 0 ) mixer_l = 0;
1881
d75b24bda7ce Applied fix for mixercontrol w/alsa ossemu by Christian Ohm.
atmos4
parents: 1061
diff changeset
64 mixer_r -= MIXER_CHANGE;
1038
b36fb1ae4b53 applied solaris8/netbsd/other fixes patch by J¸«ärgen Keil <jk@tools.de>
arpi_esp
parents: 1020
diff changeset
65 if ( mixer_r < 0 ) mixer_r = 0;
441
c4b4e2aac9de ups, I missed'em..
gabucino
parents:
diff changeset
66 mixer_setvolume( mixer_l,mixer_r );
c4b4e2aac9de ups, I missed'em..
gabucino
parents:
diff changeset
67 }
c4b4e2aac9de ups, I missed'em..
gabucino
parents:
diff changeset
68
1038
b36fb1ae4b53 applied solaris8/netbsd/other fixes patch by J¸«ärgen Keil <jk@tools.de>
arpi_esp
parents: 1020
diff changeset
69 float mixer_getbothvolume( void )
441
c4b4e2aac9de ups, I missed'em..
gabucino
parents:
diff changeset
70 {
1038
b36fb1ae4b53 applied solaris8/netbsd/other fixes patch by J¸«ärgen Keil <jk@tools.de>
arpi_esp
parents: 1020
diff changeset
71 float mixer_l, mixer_r;
441
c4b4e2aac9de ups, I missed'em..
gabucino
parents:
diff changeset
72 mixer_getvolume( &mixer_l,&mixer_r );
c4b4e2aac9de ups, I missed'em..
gabucino
parents:
diff changeset
73 return ( mixer_l + mixer_r ) / 2;
c4b4e2aac9de ups, I missed'em..
gabucino
parents:
diff changeset
74 }
4788
d678ce495a75 Moved HW dependent mixer stuff to libao and removed master switch
anders
parents: 4749
diff changeset
75
6311
da2dda48b7ec add mute support ( step 1 ) and fixed panscan bugs (1000l for me)
pontscho
parents: 4788
diff changeset
76 void mixer_mute( void )
da2dda48b7ec add mute support ( step 1 ) and fixed panscan bugs (1000l for me)
pontscho
parents: 4788
diff changeset
77 {
da2dda48b7ec add mute support ( step 1 ) and fixed panscan bugs (1000l for me)
pontscho
parents: 4788
diff changeset
78 if ( muted ) mixer_setvolume( mute_l,mute_r );
da2dda48b7ec add mute support ( step 1 ) and fixed panscan bugs (1000l for me)
pontscho
parents: 4788
diff changeset
79 else
da2dda48b7ec add mute support ( step 1 ) and fixed panscan bugs (1000l for me)
pontscho
parents: 4788
diff changeset
80 {
da2dda48b7ec add mute support ( step 1 ) and fixed panscan bugs (1000l for me)
pontscho
parents: 4788
diff changeset
81 mixer_getvolume( &mute_l,&mute_r );
da2dda48b7ec add mute support ( step 1 ) and fixed panscan bugs (1000l for me)
pontscho
parents: 4788
diff changeset
82 mixer_setvolume( 0,0 );
da2dda48b7ec add mute support ( step 1 ) and fixed panscan bugs (1000l for me)
pontscho
parents: 4788
diff changeset
83 muted=1;
da2dda48b7ec add mute support ( step 1 ) and fixed panscan bugs (1000l for me)
pontscho
parents: 4788
diff changeset
84 }
da2dda48b7ec add mute support ( step 1 ) and fixed panscan bugs (1000l for me)
pontscho
parents: 4788
diff changeset
85 }
4788
d678ce495a75 Moved HW dependent mixer stuff to libao and removed master switch
anders
parents: 4749
diff changeset
86
d678ce495a75 Moved HW dependent mixer stuff to libao and removed master switch
anders
parents: 4749
diff changeset
87
d678ce495a75 Moved HW dependent mixer stuff to libao and removed master switch
anders
parents: 4749
diff changeset
88