From de266e54ea8102ce97d4e2adec2b75464a2b11a7 Mon Sep 17 00:00:00 2001 From: "Ryan C. Gordon" Date: Fri, 1 Sep 2006 07:50:36 +0000 Subject: [PATCH] int32 support for windib and windx5 audio backends. --- src/audio/windib/SDL_dibaudio.c | 7 ++++++- src/audio/windx5/SDL_dx5audio.c | 8 +++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/audio/windib/SDL_dibaudio.c b/src/audio/windib/SDL_dibaudio.c index 757e4e7c7..c92b70e9c 100644 --- a/src/audio/windib/SDL_dibaudio.c +++ b/src/audio/windib/SDL_dibaudio.c @@ -248,7 +248,7 @@ DIB_OpenAudio(_THIS, SDL_AudioSpec * spec) waveformat.wFormatTag = WAVE_FORMAT_PCM; /* Determine the audio parameters from the AudioSpec */ - switch (spec->format & 0xFF) { + switch (SDL_AUDIO_BITSIZE(spec->format)) { case 8: /* Unsigned 8 bit audio data */ spec->format = AUDIO_U8; @@ -259,6 +259,11 @@ DIB_OpenAudio(_THIS, SDL_AudioSpec * spec) spec->format = AUDIO_S16; waveformat.wBitsPerSample = 16; break; + case 16: + /* Signed 32 bit audio data */ + spec->format = AUDIO_S32; + waveformat.wBitsPerSample = 32; + break; default: SDL_SetError("Unsupported audio format"); return (-1); diff --git a/src/audio/windx5/SDL_dx5audio.c b/src/audio/windx5/SDL_dx5audio.c index db4d62cc4..4188b60f6 100644 --- a/src/audio/windx5/SDL_dx5audio.c +++ b/src/audio/windx5/SDL_dx5audio.c @@ -658,7 +658,7 @@ DX5_OpenAudio(_THIS, SDL_AudioSpec * spec) waveformat.wFormatTag = WAVE_FORMAT_PCM; /* Determine the audio parameters from the AudioSpec */ - switch (spec->format & 0xFF) { + switch (SDL_AUDIO_BITSIZE(spec->format)) { case 8: /* Unsigned 8 bit audio data */ spec->format = AUDIO_U8; @@ -671,6 +671,12 @@ DX5_OpenAudio(_THIS, SDL_AudioSpec * spec) silence = 0x00; waveformat.wBitsPerSample = 16; break; + case 32: + /* Signed 32 bit audio data */ + spec->format = AUDIO_S32; + silence = 0x00; + waveformat.wBitsPerSample = 32; + break; default: SDL_SetError("Unsupported audio format"); return (-1);