From 5b9e6fe440a0adadf19597f36e707c85f12815e1 Mon Sep 17 00:00:00 2001 From: Chris Robinson Date: Tue, 12 Jan 2010 08:26:25 -0800 Subject: [PATCH] Only allow 8- and 16-bit, and mono and stereo, wave file output --- Alc/wave.c | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/Alc/wave.c b/Alc/wave.c index 09c8a63b..57322486 100644 --- a/Alc/wave.c +++ b/Alc/wave.c @@ -150,21 +150,25 @@ static ALCboolean wave_reset_playback(ALCdevice *device) bits = aluBytesFromFormat(device->Format) * 8; channels = aluChannelsFromFormat(device->Format); - switch(bits) - { - case 8: - case 16: - case 32: - if(channels == 0) - { - AL_PRINT("Unknown format?! %x\n", device->Format); - return ALC_FALSE; - } - break; - default: - AL_PRINT("Unknown format?! %x\n", device->Format); - return ALC_FALSE; + if(channels != 1 && channels != 2) + { + if(bits == 8) + device->Format = AL_FORMAT_STEREO8; + else + { + device->Format = AL_FORMAT_STEREO16; + bits = 16; + } + channels = 2; + } + else if(bits != 8 && bits != 16) + { + if(channels == 1) + device->Format = AL_FORMAT_MONO16; + else + device->Format = AL_FORMAT_STEREO16; + bits = 16; } fprintf(data->f, "RIFF"); -- 2.11.4.GIT