From 4766b872ff8d2456a03baf222ec21e5212f0b7fb Mon Sep 17 00:00:00 2001 From: Paul Hunkin Date: Tue, 27 Jul 2010 11:34:43 +0200 Subject: [PATCH] Added stub android sound system --- Makefile.android | 2 +- src/audio/SDL_audio.c | 4 + src/audio/android/SDL_androidaudio.c | 106 +++++++++++++++++++++++++++ src/audio/android/SDL_androidaudio.h | 42 +++++++++++ src/audio/android/SDL_androidaudio.o | Bin 0 -> 8744 bytes 5 files changed, 153 insertions(+), 1 deletion(-) create mode 100644 src/audio/android/SDL_androidaudio.c create mode 100644 src/audio/android/SDL_androidaudio.h create mode 100644 src/audio/android/SDL_androidaudio.o diff --git a/Makefile.android b/Makefile.android index 7959f76de..5a7da8748 100755 --- a/Makefile.android +++ b/Makefile.android @@ -28,7 +28,7 @@ SOURCES = \ src/timer/*.c \ src/video/*.c \ src/power/*.c \ - src/audio/dummy/*.c \ + src/audio/android/*.c \ src/video/android/*.c \ src/joystick/dummy/*.c \ src/haptic/dummy/*.c \ diff --git a/src/audio/SDL_audio.c b/src/audio/SDL_audio.c index fe2f3ff86..572cdb4a7 100644 --- a/src/audio/SDL_audio.c +++ b/src/audio/SDL_audio.c @@ -69,6 +69,7 @@ extern AudioBootStrap MMEAUDIO_bootstrap; extern AudioBootStrap DART_bootstrap; extern AudioBootStrap NDSAUD_bootstrap; extern AudioBootStrap FUSIONSOUND_bootstrap; +extern AudioBootStrap ANDROIDAUD_bootstrap; /* Available audio drivers */ @@ -136,6 +137,9 @@ static const AudioBootStrap *const bootstrap[] = { #endif #if SDL_AUDIO_DRIVER_FUSIONSOUND &FUSIONSOUND_bootstrap, +#endif +#if SDL_AUDIO_DRIVER_ANDROID + &ANDROIDAUD_bootstrap, #endif NULL }; diff --git a/src/audio/android/SDL_androidaudio.c b/src/audio/android/SDL_androidaudio.c new file mode 100644 index 000000000..1b26d5170 --- /dev/null +++ b/src/audio/android/SDL_androidaudio.c @@ -0,0 +1,106 @@ +/* + SDL - Simple DirectMedia Layer + Copyright (C) 1997-2010 Sam Lantinga + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + Sam Lantinga + slouken@libsdl.org + + This file written by Ryan C. Gordon (icculus@icculus.org) +*/ +#include "SDL_config.h" + +/* Output audio to Android */ + +#include "SDL_audio.h" +#include "../SDL_audio_c.h" +#include "SDL_androidaudio.h" + +#include + +static int +AndroidAUD_OpenDevice(_THIS, const char *devname, int iscapture) +{ + //TODO: Sample rates etc + __android_log_print(ANDROID_LOG_INFO, "SDL", "AndroidAudio Open\n"); + + return 1; +} + +static void +AndroidAUD_PlayDevice(_THIS) +{ + __android_log_print(ANDROID_LOG_INFO, "SDL", "AndroidAudio Play\n"); + + + + //playGenericSound(this->hidden->mixbuf, this->hidden->mixlen); + +#if 0 +// sound->data = this->hidden->mixbuf;/* pointer to raw audio data */ +// sound->len = this->hidden->mixlen; /* size of raw data pointed to above */ +// sound->rate = 22050; /* sample rate = 22050Hz */ +// sound->vol = 127; /* volume [0..127] for [min..max] */ +// sound->pan = 64; /* balance [0..127] for [left..right] */ +// sound->format = 0; /* 0 for 16-bit, 1 for 8-bit */ +// playSound(sound); +#endif +} + + +static Uint8 * +AndroidAUD_GetDeviceBuf(_THIS) +{ + return this->hidden->mixbuf; /* is this right? */ +} + +static void +AndroidAUD_WaitDevice(_THIS) +{ + /* stub */ +} + +static void +AndroidAUD_CloseDevice(_THIS) +{ + /* stub */ +} + +static int +AndroidAUD_Init(SDL_AudioDriverImpl * impl) +{ + /* Set the function pointers */ + impl->OpenDevice = AndroidAUD_OpenDevice; + impl->PlayDevice = AndroidAUD_PlayDevice; + impl->WaitDevice = AndroidAUD_WaitDevice; + impl->GetDeviceBuf = AndroidAUD_GetDeviceBuf; + impl->CloseDevice = AndroidAUD_CloseDevice; + + /* and the capabilities */ + impl->HasCaptureSupport = 0; //TODO + impl->OnlyHasDefaultOutputDevice = 1; + impl->OnlyHasDefaultInputDevice = 1; + + __android_log_print(ANDROID_LOG_INFO, "SDL","Audio init\n"); + + return 1; /* this audio target is available. */ +} + +AudioBootStrap ANDROIDAUD_bootstrap = { + "android", "SDL Android audio driver", AndroidAUD_Init, 0 /*1? */ +}; + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/src/audio/android/SDL_androidaudio.h b/src/audio/android/SDL_androidaudio.h new file mode 100644 index 000000000..7bf55e33b --- /dev/null +++ b/src/audio/android/SDL_androidaudio.h @@ -0,0 +1,42 @@ +/* + SDL - Simple DirectMedia Layer + Copyright (C) 1997-2010 Sam Lantinga + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + Sam Lantinga + slouken@libsdl.org +*/ +#include "SDL_config.h" + +#ifndef _SDL_androidaudio_h +#define _SDL_androidaudio_h + +#include "../SDL_sysaudio.h" + +/* Hidden "this" pointer for the audio functions */ +#define _THIS SDL_AudioDevice *this + +struct SDL_PrivateAudioData +{ + /* The file descriptor for the audio device */ + Uint8 *mixbuf; + Uint32 mixlen; + Uint32 write_delay; + Uint32 initial_calls; +}; + +#endif /* _SDL_androidaudio_h */ +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/src/audio/android/SDL_androidaudio.o b/src/audio/android/SDL_androidaudio.o new file mode 100644 index 0000000000000000000000000000000000000000..2068b1a726b866209ac8f3ea3bc98740919ed2c1 GIT binary patch literal 8744 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 Tr0Da)mxRYODXzVTts?&)>|2NI literal 0 HcmV?d00001