From beefdea22c6e4bfdccd95a07b1d2cdcb682075ea Mon Sep 17 00:00:00 2001 From: "Ryan C. Gordon" Date: Tue, 26 Jan 2010 06:01:33 +0000 Subject: [PATCH] Removed test for "driver is valid, but doesn't see any audio devices." It was causing problems, and it really doesn't make sense to do it that way. Fixes Bugzilla #834. --- src/audio/SDL_audio.c | 26 ++--------------------- src/audio/alsa/SDL_alsa_audio.c | 2 +- src/audio/arts/SDL_artsaudio.c | 2 +- src/audio/baudio/SDL_beaudio.cc | 2 +- src/audio/bsd/SDL_bsdaudio.c | 3 ++- src/audio/disk/SDL_diskaudio.c | 2 +- src/audio/dma/SDL_dmaaudio.c | 3 ++- src/audio/dmedia/SDL_irixaudio.c | 2 +- src/audio/dsp/SDL_dspaudio.c | 3 ++- src/audio/dummy/SDL_dummyaudio.c | 2 +- src/audio/esd/SDL_esdaudio.c | 2 +- src/audio/fusionsound/SDL_fsaudio.c | 2 +- src/audio/iphoneos/SDL_coreaudio_iphone.c | 2 +- src/audio/macosx/SDL_coreaudio.c | 2 +- src/audio/mme/SDL_mmeaudio.c | 2 +- src/audio/nas/SDL_nasaudio.c | 2 +- src/audio/nds/SDL_ndsaudio.c | 2 +- src/audio/paudio/SDL_paudio.c | 3 +-- src/audio/pulseaudio/SDL_pulseaudio.c | 3 +-- src/audio/qsa/SDL_qsa_audio.c | 3 +-- src/audio/windib/SDL_dibaudio.c | 3 +-- src/audio/windx5/SDL_dx5audio.c | 3 +-- 22 files changed, 26 insertions(+), 50 deletions(-) diff --git a/src/audio/SDL_audio.c b/src/audio/SDL_audio.c index 5b87e25f7..fe2f3ff86 100644 --- a/src/audio/SDL_audio.c +++ b/src/audio/SDL_audio.c @@ -581,8 +581,6 @@ SDL_AudioInit(const char *driver_name) int i = 0; int initialized = 0; int tried_to_init = 0; - int rc = 0; - int best_choice = -1; if (SDL_WasInit(SDL_INIT_AUDIO)) { SDL_AudioQuit(); /* shutdown driver if already running. */ @@ -608,34 +606,14 @@ SDL_AudioInit(const char *driver_name) SDL_memset(¤t_audio, 0, sizeof(current_audio)); current_audio.name = backend->name; current_audio.desc = backend->desc; - rc = backend->init(¤t_audio.impl); - if (rc == 2) { /* init'd, and devices available. Take it! */ - initialized = 1; - best_choice = i; - } else if (rc == 1) { /* init'd, but can't see any devices. */ - if (current_audio.impl.Deinitialize) { - current_audio.impl.Deinitialize(); - } - if (best_choice == -1) { - best_choice = i; - } - } - } - - /* No definite choice. Pick one that works but can't promise a device. */ - if ((!initialized) && (best_choice != -1)) { - const AudioBootStrap *backend = bootstrap[best_choice]; - SDL_memset(¤t_audio, 0, sizeof(current_audio)); - current_audio.name = backend->name; - current_audio.desc = backend->desc; - initialized = (backend->init(¤t_audio.impl) > 0); + initialized = backend->init(¤t_audio.impl); } if (!initialized) { /* specific drivers will set the error message if they fail... */ if (!tried_to_init) { if (driver_name) { - SDL_SetError("%s not available", driver_name); + SDL_SetError("Audio target '%s' not available", driver_name); } else { SDL_SetError("No available audio device"); } diff --git a/src/audio/alsa/SDL_alsa_audio.c b/src/audio/alsa/SDL_alsa_audio.c index cef569e55..614d92c86 100644 --- a/src/audio/alsa/SDL_alsa_audio.c +++ b/src/audio/alsa/SDL_alsa_audio.c @@ -681,7 +681,7 @@ ALSA_Init(SDL_AudioDriverImpl * impl) impl->Deinitialize = ALSA_Deinitialize; impl->OnlyHasDefaultOutputDevice = 1; /* !!! FIXME: Add device enum! */ - return 1; /* !!! FIXME: return 2 once device enum is implemented. */ + return 1; /* this audio target is available. */ } diff --git a/src/audio/arts/SDL_artsaudio.c b/src/audio/arts/SDL_artsaudio.c index e2dec3d5a..fa8788a8a 100644 --- a/src/audio/arts/SDL_artsaudio.c +++ b/src/audio/arts/SDL_artsaudio.c @@ -368,7 +368,7 @@ ARTS_Init(SDL_AudioDriverImpl * impl) impl->Deinitialize = ARTS_Deinitialize; impl->OnlyHasDefaultOutputDevice = 1; - return 1; + return 1; /* this audio target is available. */ } diff --git a/src/audio/baudio/SDL_beaudio.cc b/src/audio/baudio/SDL_beaudio.cc index babb95a42..2f04f8d4d 100644 --- a/src/audio/baudio/SDL_beaudio.cc +++ b/src/audio/baudio/SDL_beaudio.cc @@ -204,7 +204,7 @@ BEOSAUDIO_Init(SDL_AudioDriverImpl * impl) impl->ProvidesOwnCallbackThread = 1; impl->OnlyHasDefaultOutputDevice = 1; - return 1; + return 1; /* this audio target is available. */ } extern "C" diff --git a/src/audio/bsd/SDL_bsdaudio.c b/src/audio/bsd/SDL_bsdaudio.c index 6c8cb31d5..5d5db8a19 100644 --- a/src/audio/bsd/SDL_bsdaudio.c +++ b/src/audio/bsd/SDL_bsdaudio.c @@ -444,7 +444,8 @@ BSDAUDIO_Init(SDL_AudioDriverImpl * impl) impl->Deinitialize = BSDAUDIO_Deinitialize; build_device_lists(); - return (outputDeviceCount > 0) ? 2 : 1; + + return 1; /* this audio target is available. */ } diff --git a/src/audio/disk/SDL_diskaudio.c b/src/audio/disk/SDL_diskaudio.c index 04ceb45a4..4fa89a893 100644 --- a/src/audio/disk/SDL_diskaudio.c +++ b/src/audio/disk/SDL_diskaudio.c @@ -158,7 +158,7 @@ DISKAUD_Init(SDL_AudioDriverImpl * impl) impl->GetDeviceBuf = DISKAUD_GetDeviceBuf; impl->CloseDevice = DISKAUD_CloseDevice; - return 1; + return 1; /* this audio target is available. */ } AudioBootStrap DISKAUD_bootstrap = { diff --git a/src/audio/dma/SDL_dmaaudio.c b/src/audio/dma/SDL_dmaaudio.c index ed25ab404..bd2008918 100644 --- a/src/audio/dma/SDL_dmaaudio.c +++ b/src/audio/dma/SDL_dmaaudio.c @@ -524,7 +524,8 @@ DMA_Init(SDL_AudioDriverImpl * impl) impl->Deinitialize = DMA_Deinitialize; build_device_lists(); - return (outputDeviceCount > 0) ? 2 : 1; + + return 1; /* this audio target is available. */ } AudioBootStrap DMA_bootstrap = { diff --git a/src/audio/dmedia/SDL_irixaudio.c b/src/audio/dmedia/SDL_irixaudio.c index 330c8a792..bdc9c1bb6 100644 --- a/src/audio/dmedia/SDL_irixaudio.c +++ b/src/audio/dmedia/SDL_irixaudio.c @@ -228,7 +228,7 @@ IRIXAUDIO_Init(SDL_AudioDriverImpl * impl) impl->CloseDevice = DSP_CloseDevice; impl->OnlyHasDefaultOutputDevice = 1; /* !!! FIXME: not true, I think. */ - return 1; + return 1; /* this audio target is available. */ } AudioBootStrap IRIXAUDIO_bootstrap = { diff --git a/src/audio/dsp/SDL_dspaudio.c b/src/audio/dsp/SDL_dspaudio.c index 89aa343f3..e5440b074 100644 --- a/src/audio/dsp/SDL_dspaudio.c +++ b/src/audio/dsp/SDL_dspaudio.c @@ -381,7 +381,8 @@ DSP_Init(SDL_AudioDriverImpl * impl) impl->Deinitialize = DSP_Deinitialize; build_device_lists(); - return (outputDeviceCount > 0) ? 2 : 1; + + return 1; /* this audio target is available. */ } diff --git a/src/audio/dummy/SDL_dummyaudio.c b/src/audio/dummy/SDL_dummyaudio.c index 77db377b8..749818cc4 100644 --- a/src/audio/dummy/SDL_dummyaudio.c +++ b/src/audio/dummy/SDL_dummyaudio.c @@ -41,7 +41,7 @@ DUMMYAUD_Init(SDL_AudioDriverImpl * impl) /* Set the function pointers */ impl->OpenDevice = DUMMYAUD_OpenDevice; impl->OnlyHasDefaultOutputDevice = 1; - return 1; + return 1; /* this audio target is available. */ } AudioBootStrap DUMMYAUD_bootstrap = { diff --git a/src/audio/esd/SDL_esdaudio.c b/src/audio/esd/SDL_esdaudio.c index 0439715b8..25287170a 100644 --- a/src/audio/esd/SDL_esdaudio.c +++ b/src/audio/esd/SDL_esdaudio.c @@ -341,7 +341,7 @@ ESD_Init(SDL_AudioDriverImpl * impl) impl->Deinitialize = ESD_Deinitialize; impl->OnlyHasDefaultOutputDevice = 1; - return 2; /* return 2 (definitely have a "device"). */ + return 1; /* this audio target is available. */ } diff --git a/src/audio/fusionsound/SDL_fsaudio.c b/src/audio/fusionsound/SDL_fsaudio.c index c4106e0cc..a0341d595 100644 --- a/src/audio/fusionsound/SDL_fsaudio.c +++ b/src/audio/fusionsound/SDL_fsaudio.c @@ -340,7 +340,7 @@ SDL_FS_Init(SDL_AudioDriverImpl * impl) impl->Deinitialize = SDL_FS_Deinitialize; impl->OnlyHasDefaultOutputDevice = 1; - return 1; + return 1; /* this audio target is available. */ } diff --git a/src/audio/iphoneos/SDL_coreaudio_iphone.c b/src/audio/iphoneos/SDL_coreaudio_iphone.c index ef4cfb335..b8a32d4d9 100644 --- a/src/audio/iphoneos/SDL_coreaudio_iphone.c +++ b/src/audio/iphoneos/SDL_coreaudio_iphone.c @@ -329,7 +329,7 @@ COREAUDIO_Init(SDL_AudioDriverImpl * impl) impl->OnlyHasDefaultOutputDevice = 1; impl->HasCaptureSupport = 0; /* still needs to be written */ - return 2; /* defitely have an audio device. */ + return 1; /* this audio target is available. */ } AudioBootStrap COREAUDIOIPHONE_bootstrap = { diff --git a/src/audio/macosx/SDL_coreaudio.c b/src/audio/macosx/SDL_coreaudio.c index 6ce7e59ee..7d453a9cd 100644 --- a/src/audio/macosx/SDL_coreaudio.c +++ b/src/audio/macosx/SDL_coreaudio.c @@ -574,7 +574,7 @@ COREAUDIO_Init(SDL_AudioDriverImpl * impl) build_device_lists(); /* do an initial check for devices... */ - return (outputDeviceCount > 0) ? 2 : 1; + return 1; /* this audio target is available. */ } AudioBootStrap COREAUDIO_bootstrap = { diff --git a/src/audio/mme/SDL_mmeaudio.c b/src/audio/mme/SDL_mmeaudio.c index c764440c4..9eb55d8dc 100644 --- a/src/audio/mme/SDL_mmeaudio.c +++ b/src/audio/mme/SDL_mmeaudio.c @@ -249,7 +249,7 @@ MME_Init(SDL_AudioDriverImpl * impl) impl->CloseDevice = MME_CloseDevice; impl->OnlyHasDefaultOutputDevice = 1; - return 1; + return 1; /* this audio target is available. */ } /* !!! FIXME: Windows "windib" driver is called waveout, too */ diff --git a/src/audio/nas/SDL_nasaudio.c b/src/audio/nas/SDL_nasaudio.c index c7af8ee99..a9b134842 100644 --- a/src/audio/nas/SDL_nasaudio.c +++ b/src/audio/nas/SDL_nasaudio.c @@ -398,7 +398,7 @@ NAS_Init(SDL_AudioDriverImpl * impl) impl->Deinitialize = NAS_Deinitialize; impl->OnlyHasDefaultOutputDevice = 1; /* !!! FIXME: is this true? */ - return 2; /* 2 == definitely has an audio device. */ + return 1; /* this audio target is available. */ } AudioBootStrap NAS_bootstrap = { diff --git a/src/audio/nds/SDL_ndsaudio.c b/src/audio/nds/SDL_ndsaudio.c index 5065b1e5c..672bdc0e0 100644 --- a/src/audio/nds/SDL_ndsaudio.c +++ b/src/audio/nds/SDL_ndsaudio.c @@ -120,7 +120,7 @@ NDSAUD_Init(SDL_AudioDriverImpl * impl) impl->OnlyHasDefaultOutputDevice = 1; impl->OnlyHasDefaultInputDevice = 1; - return 2; /* 2 == definitely has an audio device. */ + return 1; /* this audio target is available. */ } AudioBootStrap NDSAUD_bootstrap = { diff --git a/src/audio/paudio/SDL_paudio.c b/src/audio/paudio/SDL_paudio.c index 5e7847ed8..cd05ddf21 100644 --- a/src/audio/paudio/SDL_paudio.c +++ b/src/audio/paudio/SDL_paudio.c @@ -544,8 +544,7 @@ PAUDIO_Init(SDL_AudioDriverImpl * impl) impl->CloseDevice = DSP_CloseDevice; impl->OnlyHasDefaultOutputDevice = 1; /* !!! FIXME: add device enum! */ - /* !!! FIXME: device enum might make this 1. */ - return 2; /* 2 == definitely has an audio device. */ + return 1; /* this audio target is available. */ } AudioBootStrap PAUDIO_bootstrap = { diff --git a/src/audio/pulseaudio/SDL_pulseaudio.c b/src/audio/pulseaudio/SDL_pulseaudio.c index 1a542302a..63bd030d7 100644 --- a/src/audio/pulseaudio/SDL_pulseaudio.c +++ b/src/audio/pulseaudio/SDL_pulseaudio.c @@ -529,8 +529,7 @@ PULSEAUDIO_Init(SDL_AudioDriverImpl * impl) impl->Deinitialize = PULSEAUDIO_Deinitialize; impl->OnlyHasDefaultOutputDevice = 1; - /* !!! FIXME: should test if server is available here, return 2 if so. */ - return 1; + return 1; /* this audio target is available. */ } diff --git a/src/audio/qsa/SDL_qsa_audio.c b/src/audio/qsa/SDL_qsa_audio.c index 3a146343a..6d7362594 100644 --- a/src/audio/qsa/SDL_qsa_audio.c +++ b/src/audio/qsa/SDL_qsa_audio.c @@ -883,8 +883,7 @@ QSA_Init(SDL_AudioDriverImpl * impl) return 1; } - /* At this point we are definitely has an audio device */ - return 2; + return 1; /* this audio target is available. */ } AudioBootStrap QSAAUDIO_bootstrap = { diff --git a/src/audio/windib/SDL_dibaudio.c b/src/audio/windib/SDL_dibaudio.c index b837f4657..7640c5eee 100644 --- a/src/audio/windib/SDL_dibaudio.c +++ b/src/audio/windib/SDL_dibaudio.c @@ -327,8 +327,7 @@ WINWAVEOUT_Init(SDL_AudioDriverImpl * impl) impl->CloseDevice = WINWAVEOUT_CloseDevice; impl->OnlyHasDefaultOutputDevice = 1; /* !!! FIXME: Is this true? */ - /* !!! FIXME: not right for device enum? */ - return 1; + return 1; /* this audio target is available. */ } AudioBootStrap WINWAVEOUT_bootstrap = { diff --git a/src/audio/windx5/SDL_dx5audio.c b/src/audio/windx5/SDL_dx5audio.c index 20d4c979b..c583b3e63 100644 --- a/src/audio/windx5/SDL_dx5audio.c +++ b/src/audio/windx5/SDL_dx5audio.c @@ -508,8 +508,7 @@ DSOUND_Init(SDL_AudioDriverImpl * impl) impl->Deinitialize = DSOUND_Deinitialize; impl->OnlyHasDefaultOutputDevice = 1; /* !!! FIXME */ - /* !!! FIXME: not right for device enum? */ - return 1; + return 1; /* this audio target is available. */ } AudioBootStrap DSOUND_bootstrap = {