Revision c0fe3827 audio/sdlaudio.c
b/audio/sdlaudio.c | ||
---|---|---|
303 | 303 |
sdl_close (&glob_sdl); |
304 | 304 |
} |
305 | 305 |
|
306 |
static int sdl_init_out (HWVoiceOut *hw, int freq, int nchannels, audfmt_e fmt)
|
|
306 |
static int sdl_init_out (HWVoiceOut *hw, audsettings_t *as)
|
|
307 | 307 |
{ |
308 | 308 |
SDLVoiceOut *sdl = (SDLVoiceOut *) hw; |
309 | 309 |
SDLAudioState *s = &glob_sdl; |
... | ... | |
312 | 312 |
int endianess; |
313 | 313 |
int err; |
314 | 314 |
audfmt_e effective_fmt; |
315 |
audsettings_t obt_as; |
|
315 | 316 |
|
316 |
if (nchannels != 2) { |
|
317 |
dolog ("Can not init DAC. Bogus channel count %d\n", nchannels); |
|
318 |
return -1; |
|
319 |
} |
|
317 |
shift <<= as->nchannels == 2; |
|
320 | 318 |
|
321 |
req.freq = freq; |
|
322 |
req.format = aud_to_sdlfmt (fmt, &shift); |
|
323 |
req.channels = nchannels; |
|
319 |
req.freq = as->freq;
|
|
320 |
req.format = aud_to_sdlfmt (as->fmt, &shift);
|
|
321 |
req.channels = as->nchannels;
|
|
324 | 322 |
req.samples = conf.nb_samples; |
325 |
shift <<= nchannels == 2; |
|
326 |
|
|
327 | 323 |
req.callback = sdl_callback; |
328 | 324 |
req.userdata = sdl; |
329 | 325 |
|
... | ... | |
337 | 333 |
return -1; |
338 | 334 |
} |
339 | 335 |
|
336 |
obt_as.freq = obt.freq; |
|
337 |
obt_as.nchannels = obt.channels; |
|
338 |
obt_as.fmt = effective_fmt; |
|
339 |
|
|
340 | 340 |
audio_pcm_init_info ( |
341 | 341 |
&hw->info, |
342 |
obt.freq, |
|
343 |
obt.channels, |
|
344 |
effective_fmt, |
|
342 |
&obt_as, |
|
345 | 343 |
audio_need_to_swap_endian (endianess) |
346 | 344 |
); |
347 |
hw->bufsize = obt.samples << shift;
|
|
345 |
hw->samples = obt.samples;
|
|
348 | 346 |
|
349 | 347 |
s->initialized = 1; |
350 | 348 |
s->exit = 0; |
Also available in: Unified diff