Mercurial > sdl-ios-xcode
diff src/audio/mint/SDL_mintaudio_dma8.c @ 3846:66fb40445587 SDL-ryan-multiple-audio-device
Removed distinction between "available" and "init" in audio backends, since
both had to be checked for success as a pair at the higher level and several
of the Available methods were just always-succeed placeholders anyhow. Now
the availability check is done in the init code, and the higher level tries
all possible drivers until one manages to initialize successfully.
author | Ryan C. Gordon <icculus@icculus.org> |
---|---|
date | Tue, 17 Oct 2006 09:09:21 +0000 |
parents | 1f156fd874fa |
children |
line wrap: on
line diff
--- a/src/audio/mint/SDL_mintaudio_dma8.c Tue Oct 17 08:04:51 2006 +0000 +++ b/src/audio/mint/SDL_mintaudio_dma8.c Tue Oct 17 09:09:21 2006 +0000 @@ -61,40 +61,6 @@ static unsigned long cookie_snd, cookie_mch; - -static int -MINTDMA8_Available(void) -{ - /* Cookie _MCH present ? if not, assume ST machine */ - if (Getcookie(C__MCH, &cookie_mch) == C_NOTFOUND) { - cookie_mch = MCH_ST; - } - - /* Cookie _SND present ? if not, assume ST machine */ - if (Getcookie(C__SND, &cookie_snd) == C_NOTFOUND) { - cookie_snd = SND_PSG; - } - - /* Check if we have 8 bits audio */ - if ((cookie_snd & SND_8BIT) == 0) { - DEBUG_PRINT((DEBUG_NAME "no 8 bits sound\n")); - return (0); - } - - /* Check if audio is lockable */ - if (cookie_snd & SND_16BIT) { - if (Locksnd() != 1) { - DEBUG_PRINT((DEBUG_NAME "audio locked by other application\n")); - return (0); - } - - Unlocksnd(); - } - - DEBUG_PRINT((DEBUG_NAME "8 bits audio available!\n")); - return (1); -} - static void MINTDMA8_LockDevice(_THIS) { @@ -330,6 +296,34 @@ static int MINTDMA8_Init(SDL_AudioDriverImpl *impl) { + /* Cookie _MCH present ? if not, assume ST machine */ + if (Getcookie(C__MCH, &cookie_mch) == C_NOTFOUND) { + cookie_mch = MCH_ST; + } + + /* Cookie _SND present ? if not, assume ST machine */ + if (Getcookie(C__SND, &cookie_snd) == C_NOTFOUND) { + cookie_snd = SND_PSG; + } + + /* Check if we have 8 bits audio */ + if ((cookie_snd & SND_8BIT) == 0) { + SDL_SetError(DEBUG_NAME "no 8 bits sound"); + return 0; + } + + /* Check if audio is lockable */ + if (cookie_snd & SND_16BIT) { + if (Locksnd() != 1) { + SDL_SetError(DEBUG_NAME "audio locked by other application"); + return 0; + } + + Unlocksnd(); + } + + DEBUG_PRINT((DEBUG_NAME "8 bits audio available!\n")); + /* Set the function pointers */ impl->OpenDevice = MINTDMA8_OpenDevice; impl->CloseDevice = MINTDMA8_CloseDevice; @@ -343,8 +337,7 @@ } AudioBootStrap MINTAUDIO_DMA8_bootstrap = { - MINT_AUDIO_DRIVER_NAME, "MiNT DMA 8 bits audio driver", - MINTDMA8_Available, MINTDMA8_Init, 0 + MINT_AUDIO_DRIVER_NAME, "MiNT DMA 8 bits audio driver", MINTDMA8_Init, 0 }; /* vi: set ts=4 sw=4 expandtab: */