3 #ifdef SL_USING_OSS_AUDIO
4 /* ------------------------------------------------------------ */
5 /* OSSAUDIO - Linux, FreeBSD */
6 /* ------------------------------------------------------------ */
9 void smMixer::open ( char *device )
11 fd = ::open ( device, O_WRONLY ) ;
15 perror ( "smMixer: open" ) ;
21 devices = ioctl ( SOUND_MIXER_READ_DEVMASK ) ;
24 void smMixer::close ()
33 open ( SMMIXER_DEFAULT_DEVICE ) ;
36 smMixer::smMixer ( char *device )
46 int smMixer::not_working ()
51 /* Volume controls are in integer percentages */
53 int smMixer::getVolume ( int channel )
55 return ioctl ( MIXER_READ ( channel ) ) & 0xFF ;
59 void smMixer::setVolume ( int channel, int volume )
61 ioctl ( MIXER_WRITE ( channel ), (( volume & 255 ) << 8 ) |
65 void smMixer::getVolume ( int channel, int *left, int *right )
67 int vv = ioctl ( MIXER_READ ( channel ) ) ;
69 if ( left ) *left = vv & 0xFF ;
70 if ( right ) *right = (vv>>8) & 0xFF ;
73 void smMixer::setVolume ( int channel, int left, int right )
75 ioctl ( MIXER_WRITE ( channel ), (( right & 255 ) << 8 ) |
79 void smMixer::setTreble ( int treble )
81 setVolume ( SOUND_MIXER_TREBLE , treble ) ;
84 void smMixer::setBass ( int bass )
86 setVolume ( SOUND_MIXER_TREBLE , bass ) ;
89 void smMixer::setMasterVolume ( int volume )
91 setVolume ( SOUND_MIXER_VOLUME , volume ) ;
94 void smMixer::setSynthVolume ( int volume )
96 setVolume ( SOUND_MIXER_SYNTH , volume ) ;
99 void smMixer::setPCMVolume ( int volume )
101 setVolume ( SOUND_MIXER_PCM , volume ) ;
104 void smMixer::setSpeakerVolume( int volume )
106 setVolume ( SOUND_MIXER_SPEAKER, volume ) ;
109 void smMixer::setLineVolume ( int volume )
111 setVolume ( SOUND_MIXER_LINE , volume ) ;
114 void smMixer::setMicVolume ( int volume )
116 setVolume ( SOUND_MIXER_MIC , volume ) ;
119 void smMixer::setCDVolume ( int volume )
121 setVolume ( SOUND_MIXER_CD , volume ) ;
124 void smMixer::setMasterVolume ( int left, int right )
126 setVolume ( SOUND_MIXER_VOLUME , left, right ) ;
129 void smMixer::setSynthVolume ( int left, int right )
131 setVolume ( SOUND_MIXER_SYNTH , left, right ) ;
134 void smMixer::setPCMVolume ( int left, int right )
136 setVolume ( SOUND_MIXER_PCM , left, right ) ;
139 void smMixer::setSpeakerVolume( int left, int right )
141 setVolume ( SOUND_MIXER_SPEAKER, left, right ) ;
144 void smMixer::setLineVolume ( int left, int right )
146 setVolume ( SOUND_MIXER_LINE , left, right ) ;
149 void smMixer::setMicVolume ( int left, int right )
151 setVolume ( SOUND_MIXER_MIC , left, right ) ;
154 void smMixer::setCDVolume ( int left, int right )
156 setVolume ( SOUND_MIXER_CD , left, right ) ;
159 #elif defined(__OpenBSD__)
161 /* ------------------------------------------------------------ */
163 /* ------------------------------------------------------------ */
165 void smMixer::open ( char *device )
169 void smMixer::close (){}
171 smMixer::smMixer () {}
172 smMixer::smMixer ( char * ) {}
173 smMixer::~smMixer () {}
175 int smMixer::not_working ()
180 /* Volume controls are in integer percentages */
182 int smMixer::getVolume ( int ) { return 50 ; }
183 void smMixer::getVolume ( int, int *left, int *right )
185 if ( left ) *left = 50 ;
186 if ( right ) *right = 50 ;
189 void smMixer::setVolume ( int , int ) {}
190 void smMixer::setVolume ( int , int , int ){}
191 void smMixer::setTreble ( int ) {}
192 void smMixer::setBass ( int ) {}
193 void smMixer::setMasterVolume ( int ) {}
194 void smMixer::setSynthVolume ( int ) {}
195 void smMixer::setPCMVolume ( int ) {}
196 void smMixer::setSpeakerVolume( int ) {}
197 void smMixer::setLineVolume ( int ) {}
198 void smMixer::setMicVolume ( int ) {}
199 void smMixer::setCDVolume ( int ) {}
200 void smMixer::setMasterVolume ( int, int ) {}
201 void smMixer::setSynthVolume ( int, int ) {}
202 void smMixer::setPCMVolume ( int, int ) {}
203 void smMixer::setSpeakerVolume( int, int ) {}
204 void smMixer::setLineVolume ( int, int ) {}
205 void smMixer::setMicVolume ( int, int ) {}
206 void smMixer::setCDVolume ( int, int ) {}
210 /* ------------------------------------------------------------ */
212 /* ------------------------------------------------------------ */
214 void smMixer::open ( char * ) {}
216 void smMixer::close (){}
218 smMixer::smMixer () {}
219 smMixer::smMixer ( char * ) {}
220 smMixer::~smMixer () {}
222 int smMixer::not_working ()
227 /* Volume controls are in integer percentages */
229 int smMixer::getVolume ( int ) { return 50 ; }
230 void smMixer::getVolume ( int, int *left, int *right )
232 if ( left ) *left = 50 ;
233 if ( right ) *right = 50 ;
236 void smMixer::setVolume ( int, int ) {}
237 void smMixer::setVolume ( int, int, int ){}
238 void smMixer::setTreble ( int ) {}
239 void smMixer::setBass ( int ) {}
240 void smMixer::setMasterVolume ( int ) {}
241 void smMixer::setSynthVolume ( int ) {}
242 void smMixer::setPCMVolume ( int ) {}
243 void smMixer::setSpeakerVolume( int ) {}
244 void smMixer::setLineVolume ( int ) {}
245 void smMixer::setMicVolume ( int ) {}
246 void smMixer::setCDVolume ( int ) {}
247 void smMixer::setMasterVolume ( int, int ) {}
248 void smMixer::setSynthVolume ( int, int ) {}
249 void smMixer::setPCMVolume ( int, int ) {}
250 void smMixer::setSpeakerVolume( int, int ) {}
251 void smMixer::setLineVolume ( int, int ) {}
252 void smMixer::setMicVolume ( int, int ) {}
253 void smMixer::setCDVolume ( int, int ) {}