Skip to content
This repository has been archived by the owner. It is now read-only.
Permalink
Browse files

Let SDL convert to valid Dreamcast audio formats instead of failing i…

…f the

 hardware can't be opened in a specific format. Not that you'd want to swallow
 the overhead on a Dreamcast, but hey, it's the SDL way.
  • Loading branch information
icculus committed Aug 31, 2006
1 parent a3b390f commit 0350ac56d2054503c52529a1831604dc59127c07
Showing with 21 additions and 8 deletions.
  1. +21 −8 src/audio/dc/SDL_dcaudio.c
@@ -220,18 +220,31 @@ DCAUD_CloseAudio(_THIS)
static int
DCAUD_OpenAudio(_THIS, SDL_AudioSpec * spec)
{
switch (spec->format & 0xff) {
case 8:
spec->format = AUDIO_S8;
break;
case 16:
spec->format = AUDIO_S16LSB;
break;
default:
SDL_AudioFormat test_format = SDL_FirstAudioFormat(spec->format);
int valid_datatype = 0;
while ((!valid_datatype) && (test_format)) {
spec->format = test_format;
switch (test_format) {
/* only formats Dreamcast accepts... */
case AUDIO_S8:
case AUDIO_S16LSB:
valid_datatype = 1;
break;

default:
test_format = SDL_NextAudioFormat();
break;
}
}

if (!valid_datatype) { /* shouldn't happen, but just in case... */
SDL_SetError("Unsupported audio format");
return (-1);
}

if (spec->channels > 2)
spec->channels = 2; /* no more than stereo on the Dreamcast. */

/* Update the fragment size as size in bytes */
SDL_CalculateAudioSpec(spec);

0 comments on commit 0350ac5

Please sign in to comment.