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