Mercurial > sdl-ios-xcode
changeset 2689:e065c9f6a393 gsoc2008_nds
Some audio work, setting default frequency, volume, etc. and calling a generic playback function that uses them.
author | Darren Alton <dalton@stevens.edu> |
---|---|
date | Fri, 15 Aug 2008 10:44:31 +0000 |
parents | 71c56e900f8b |
children | ca01c20274c0 |
files | src/audio/nds/SDL_ndsaudio.c src/audio/nds/SDL_ndsaudio.h |
diffstat | 2 files changed, 44 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/src/audio/nds/SDL_ndsaudio.c Fri Aug 15 10:17:07 2008 +0000 +++ b/src/audio/nds/SDL_ndsaudio.c Fri Aug 15 10:44:31 2008 +0000 @@ -34,7 +34,36 @@ static int NDSAUD_OpenDevice(_THIS, const char *devname, int iscapture) { - return 1; /* always succeeds. */ + SDL_AudioFormat test_format = SDL_FirstAudioFormat(this->spec.format); + int valid_datatype = 0; + + this->hidden = SDL_malloc(sizeof(*(this->hidden))); + if(!this->hidden) { + SDL_OutOfMemory(); + return 0; + } + SDL_memset(this->hidden, 0, (sizeof *this->hidden)); + + while ((!valid_datatype) && (test_format)) { + this->spec.format = test_format; + switch (test_format) { + case AUDIO_S8: + /*case AUDIO_S16LSB:*/ + valid_datatype = 1; + break; + default: + test_format = SDL_NextAudioFormat(); + break; + } + } + + /* set the generic sound parameters */ + setGenericSound(22050, /* sample rate */ + 127, /* volume */ + 64, /* panning/balance */ + 0); /* sound format*/ + + return 1; } static void @@ -44,21 +73,23 @@ if(!sound) { SDL_OutOfMemory(); } - sound->data = NULL; /* pointer to raw audio data */ - sound->len = 0; /* 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);*/ - /* stub */ + + playGenericSound(this->hidden->mixbuf, this->hidden->mixlen); + +// 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); } static Uint8 * NDSAUD_GetDeviceBuf(_THIS) -{ - /* stub */ +{ /* is this right? */ + return this->hidden->mixbuf; } static void
--- a/src/audio/nds/SDL_ndsaudio.h Fri Aug 15 10:17:07 2008 +0000 +++ b/src/audio/nds/SDL_ndsaudio.h Fri Aug 15 10:44:31 2008 +0000 @@ -25,12 +25,14 @@ #define _SDL_ndsaudio_h #include "../SDL_sysaudio.h" +#include <nds/arm9/sound.h> /* Hidden "this" pointer for the audio functions */ #define _THIS SDL_AudioDevice *this struct SDL_PrivateAudioData { + TransferSoundData* sound; /* The file descriptor for the audio device */ Uint8 *mixbuf; Uint32 mixlen;