Mercurial > sdl-ios-xcode
changeset 3809:7852b5b78af5 SDL-ryan-multiple-audio-device
Cleaning out SDL_audiodev.c and related references ...
author | Ryan C. Gordon <icculus@icculus.org> |
---|---|
date | Thu, 05 Oct 2006 01:13:47 +0000 |
parents | e630f5fe29d8 |
children | 2c5387c0a642 |
files | src/audio/SDL_audiodev.c src/audio/arts/SDL_artsaudio.c src/audio/disk/SDL_diskaudio.c src/audio/dummy/SDL_dummyaudio.c src/audio/esd/SDL_esdaudio.c src/audio/nas/SDL_nasaudio.c src/audio/paudio/SDL_paudio.c src/audio/ums/SDL_umsaudio.c |
diffstat | 8 files changed, 79 insertions(+), 89 deletions(-) [+] |
line wrap: on
line diff
--- a/src/audio/SDL_audiodev.c Thu Oct 05 01:06:06 2006 +0000 +++ b/src/audio/SDL_audiodev.c Thu Oct 05 01:13:47 2006 +0000 @@ -99,85 +99,5 @@ return (audio_fd); } -#elif SDL_AUDIO_DRIVER_PAUD - -/* Get the name of the audio device we use for output */ - -#include <sys/types.h> -#include <sys/stat.h> - -#include "SDL_stdinc.h" -#include "SDL_audiodev_c.h" - -#ifndef _PATH_DEV_DSP -#define _PATH_DEV_DSP "/dev/%caud%c/%c" -#endif - -char devsettings[][3] = { - {'p', '0', '1'}, {'p', '0', '2'}, {'p', '0', '3'}, {'p', '0', '4'}, - {'p', '1', '1'}, {'p', '1', '2'}, {'p', '1', '3'}, {'p', '1', '4'}, - {'p', '2', '1'}, {'p', '2', '2'}, {'p', '2', '3'}, {'p', '2', '4'}, - {'p', '3', '1'}, {'p', '3', '2'}, {'p', '3', '3'}, {'p', '3', '4'}, - {'b', '0', '1'}, {'b', '0', '2'}, {'b', '0', '3'}, {'b', '0', '4'}, - {'b', '1', '1'}, {'b', '1', '2'}, {'b', '1', '3'}, {'b', '1', '4'}, - {'b', '2', '1'}, {'b', '2', '2'}, {'b', '2', '3'}, {'b', '2', '4'}, - {'b', '3', '1'}, {'b', '3', '2'}, {'b', '3', '3'}, {'b', '3', '4'}, - {'\0', '\0', '\0'} -}; - -static int -OpenUserDefinedDevice(char *path, int maxlen, int flags) -{ - const char *audiodev; - int audio_fd; - - /* Figure out what our audio device is */ - if ((audiodev = SDL_getenv("SDL_PATH_DSP")) == NULL) { - audiodev = SDL_getenv("AUDIODEV"); - } - if (audiodev == NULL) { - return -1; - } - audio_fd = open(audiodev, flags, 0); - if (path != NULL) { - SDL_strlcpy(path, audiodev, maxlen); - path[maxlen - 1] = '\0'; - } - return audio_fd; -} - -int -SDL_OpenAudioPath(char *path, int maxlen, int flags, int classic) -{ - struct stat sb; - int audio_fd; - char audiopath[1024]; - int cycle; - - audio_fd = OpenUserDefinedDevice(path, maxlen, flags); - if (audio_fd != -1) { - return audio_fd; - } - - cycle = 0; - while (devsettings[cycle][0] != '\0') { - SDL_snprintf(audiopath, SDL_arraysize(audiopath), - _PATH_DEV_DSP, - devsettings[cycle][0], - devsettings[cycle][1], devsettings[cycle][2]); - - if (stat(audiopath, &sb) == 0) { - audio_fd = open(audiopath, flags, 0); - if (audio_fd > 0) { - if (path != NULL) { - SDL_strlcpy(path, audiopath, maxlen); - } - return audio_fd; - } - } - } - return -1; -} - #endif /* Audio driver selection */ /* vi: set ts=4 sw=4 expandtab: */
--- a/src/audio/arts/SDL_artsaudio.c Thu Oct 05 01:06:06 2006 +0000 +++ b/src/audio/arts/SDL_artsaudio.c Thu Oct 05 01:13:47 2006 +0000 @@ -27,7 +27,6 @@ #include "SDL_audio.h" #include "../SDL_audiomem.h" #include "../SDL_audio_c.h" -#include "../SDL_audiodev_c.h" #include "SDL_artsaudio.h" #ifdef SDL_AUDIO_DRIVER_ARTS_DYNAMIC
--- a/src/audio/disk/SDL_diskaudio.c Thu Oct 05 01:06:06 2006 +0000 +++ b/src/audio/disk/SDL_diskaudio.c Thu Oct 05 01:13:47 2006 +0000 @@ -34,7 +34,6 @@ #include "SDL_audio.h" #include "../SDL_audiomem.h" #include "../SDL_audio_c.h" -#include "../SDL_audiodev_c.h" #include "SDL_diskaudio.h" /* The tag name used by DISK audio */
--- a/src/audio/dummy/SDL_dummyaudio.c Thu Oct 05 01:06:06 2006 +0000 +++ b/src/audio/dummy/SDL_dummyaudio.c Thu Oct 05 01:13:47 2006 +0000 @@ -30,7 +30,6 @@ #include "SDL_audio.h" #include "../SDL_audiomem.h" #include "../SDL_audio_c.h" -#include "../SDL_audiodev_c.h" #include "SDL_dummyaudio.h" /* The tag name used by DUMMY audio */
--- a/src/audio/esd/SDL_esdaudio.c Thu Oct 05 01:06:06 2006 +0000 +++ b/src/audio/esd/SDL_esdaudio.c Thu Oct 05 01:13:47 2006 +0000 @@ -33,7 +33,6 @@ #include "SDL_audio.h" #include "../SDL_audiomem.h" #include "../SDL_audio_c.h" -#include "../SDL_audiodev_c.h" #include "SDL_esdaudio.h" #ifdef SDL_AUDIO_DRIVER_ESD_DYNAMIC
--- a/src/audio/nas/SDL_nasaudio.c Thu Oct 05 01:06:06 2006 +0000 +++ b/src/audio/nas/SDL_nasaudio.c Thu Oct 05 01:13:47 2006 +0000 @@ -34,7 +34,6 @@ #include "SDL_audio.h" #include "../SDL_audiomem.h" #include "../SDL_audio_c.h" -#include "../SDL_audiodev_c.h" #include "SDL_nasaudio.h" /* The tag name used by artsc audio */
--- a/src/audio/paudio/SDL_paudio.c Thu Oct 05 01:06:06 2006 +0000 +++ b/src/audio/paudio/SDL_paudio.c Thu Oct 05 01:13:47 2006 +0000 @@ -30,13 +30,14 @@ #include <fcntl.h> #include <sys/time.h> #include <sys/ioctl.h> +#include <sys/types.h> #include <sys/stat.h> #include "SDL_timer.h" #include "SDL_audio.h" +#include "SDL_stdinc.h" #include "../SDL_audiomem.h" #include "../SDL_audio_c.h" -#include "../SDL_audiodev_c.h" #include "SDL_paudio.h" #define DEBUG_AUDIO 1 @@ -61,6 +62,81 @@ static Uint8 *Paud_GetAudioBuf(_THIS); static void Paud_CloseAudio(_THIS); + +/* Get the name of the audio device we use for output */ + +#ifndef _PATH_DEV_DSP +#define _PATH_DEV_DSP "/dev/%caud%c/%c" +#endif + +static char devsettings[][3] = { + {'p', '0', '1'}, {'p', '0', '2'}, {'p', '0', '3'}, {'p', '0', '4'}, + {'p', '1', '1'}, {'p', '1', '2'}, {'p', '1', '3'}, {'p', '1', '4'}, + {'p', '2', '1'}, {'p', '2', '2'}, {'p', '2', '3'}, {'p', '2', '4'}, + {'p', '3', '1'}, {'p', '3', '2'}, {'p', '3', '3'}, {'p', '3', '4'}, + {'b', '0', '1'}, {'b', '0', '2'}, {'b', '0', '3'}, {'b', '0', '4'}, + {'b', '1', '1'}, {'b', '1', '2'}, {'b', '1', '3'}, {'b', '1', '4'}, + {'b', '2', '1'}, {'b', '2', '2'}, {'b', '2', '3'}, {'b', '2', '4'}, + {'b', '3', '1'}, {'b', '3', '2'}, {'b', '3', '3'}, {'b', '3', '4'}, + {'\0', '\0', '\0'} +}; + +static int +OpenUserDefinedDevice(char *path, int maxlen, int flags) +{ + const char *audiodev; + int audio_fd; + + /* Figure out what our audio device is */ + if ((audiodev = SDL_getenv("SDL_PATH_DSP")) == NULL) { + audiodev = SDL_getenv("AUDIODEV"); + } + if (audiodev == NULL) { + return -1; + } + audio_fd = open(audiodev, flags, 0); + if (path != NULL) { + SDL_strlcpy(path, audiodev, maxlen); + path[maxlen - 1] = '\0'; + } + return audio_fd; +} + +int +OpenAudioPath(char *path, int maxlen, int flags, int classic) +{ + struct stat sb; + int audio_fd; + char audiopath[1024]; + int cycle; + + audio_fd = OpenUserDefinedDevice(path, maxlen, flags); + if (audio_fd != -1) { + return audio_fd; + } + + cycle = 0; + /* !!! FIXME: do we really need a table here? */ + while (devsettings[cycle][0] != '\0') { + SDL_snprintf(audiopath, SDL_arraysize(audiopath), + _PATH_DEV_DSP, + devsettings[cycle][0], + devsettings[cycle][1], devsettings[cycle][2]); + + if (stat(audiopath, &sb) == 0) { + audio_fd = open(audiopath, flags, 0); + if (audio_fd > 0) { + if (path != NULL) { + SDL_strlcpy(path, audiopath, maxlen); + } + return audio_fd; + } + } + } + return -1; +} + + /* Audio driver bootstrap functions */ static int @@ -70,7 +146,7 @@ int available; available = 0; - fd = SDL_OpenAudioPath(NULL, 0, OPEN_FLAGS, 0); + fd = OpenAudioPath(NULL, 0, OPEN_FLAGS, 0); if (fd >= 0) { available = 1; close(fd); @@ -255,7 +331,7 @@ frame_ticks = 0.0; /* Open the audio device */ - audio_fd = SDL_OpenAudioPath(audiodev, sizeof(audiodev), OPEN_FLAGS, 0); + audio_fd = OpenAudioPath(audiodev, sizeof(audiodev), OPEN_FLAGS, 0); if (audio_fd < 0) { SDL_SetError("Couldn't open %s: %s", audiodev, strerror(errno)); return -1;