Skip to content
This repository has been archived by the owner on Feb 11, 2021. It is now read-only.

Commit

Permalink
Actually, my silly logic bug was actually correct. :/
Browse files Browse the repository at this point in the history
  • Loading branch information
icculus committed Aug 31, 2006
1 parent 0350ac5 commit 6efe5fd
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 6 deletions.
7 changes: 5 additions & 2 deletions src/audio/amigaos/SDL_ahiaudio.c
Expand Up @@ -227,11 +227,13 @@ AHI_OpenAudio(_THIS, SDL_AudioSpec * spec)
{
// int width;
SDL_AudioFormat test_format = SDL_FirstAudioFormat(spec->format);
int valid_datatype = 1;

D(bug("AHI opening...\n"));

/* Determine the audio parameters from the AudioSpec */
while (test_format) {
while ((!valid_datatype) && (test_format)) {
valid_datatype = 1;
switch (test_format) {
case AUDIO_S8:
D(bug("AUDIO_S8...\n"));
Expand Down Expand Up @@ -264,12 +266,13 @@ AHI_OpenAudio(_THIS, SDL_AudioSpec * spec)
break;

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

if (!test_format) { /* shouldn't happen, but just in case... */
if (!valid_datatype) { /* shouldn't happen, but just in case... */
SDL_SetError("Unsupported audio format");
return (-1);
}
Expand Down
7 changes: 5 additions & 2 deletions src/audio/baudio/SDL_beaudio.cc
Expand Up @@ -155,6 +155,7 @@ extern "C"

int BE_OpenAudio(_THIS, SDL_AudioSpec * spec)
{
int valid_datatype = 0;
media_raw_audio_format format;
SDL_AudioFormat test_format = SDL_FirstAudioFormat(spec->format);

Expand All @@ -163,7 +164,8 @@ extern "C"
format.byte_order = B_MEDIA_LITTLE_ENDIAN;
format.frame_rate = (float) spec->freq;
format.channel_count = spec->channels; /* !!! FIXME: support > 2? */
while (test_format) {
while ((!valid_datatype) && (test_format)) {
valid_datatype = 1;
spec->format = test_format;
switch (test_format) {
case AUDIO_S8:
Expand Down Expand Up @@ -202,14 +204,15 @@ extern "C"
break;

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

format.buffer_size = spec->samples;

if (!test_format) { /* shouldn't happen, but just in case... */
if (!valid_datatype) { /* shouldn't happen, but just in case... */
SDL_SetError("Unsupported audio format");
return (-1);
}
Expand Down
7 changes: 5 additions & 2 deletions src/audio/dart/SDL_dart.c
Expand Up @@ -75,6 +75,7 @@ int
DART_OpenAudio(_THIS, SDL_AudioSpec * spec)
{
SDL_AudioFormat test_format = SDL_FirstAudioFormat(spec->format);
int valid_datatype = 0;
MCI_AMP_OPEN_PARMS AmpOpenParms;
MCI_GENERIC_PARMS GenericParms;
int iDeviceOrd = 0; // Default device to be used
Expand Down Expand Up @@ -109,8 +110,9 @@ DART_OpenAudio(_THIS, SDL_AudioSpec * spec)
if (spec->channels > 2)
spec->channels = 2; // !!! FIXME: more than stereo support in OS/2?

while (test_format) {
while ((!valid_datatype) && (test_format)) {
spec->format = test_format;
valid_datatype = 1;
switch (test_format) {
case AUDIO_U8:
// Unsigned 8 bit audio data
Expand All @@ -127,12 +129,13 @@ DART_OpenAudio(_THIS, SDL_AudioSpec * spec)
// !!! FIXME: int32?

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

if (!test_format) { // shouldn't happen, but just in case...
if (!valid_datatype) { // shouldn't happen, but just in case...
// Close DART, and exit with error code!
mciSendCommand(iDeviceOrd, MCI_CLOSE, MCI_WAIT, &GenericParms, 0);
SDL_SetError("Unsupported audio format");
Expand Down

0 comments on commit 6efe5fd

Please sign in to comment.