tron@2186: /* $Id$ */ tron@2186: bjarni@6268: #ifdef WITH_SDL bjarni@6268: tron@2189: #include "../stdafx.h" tron@2189: tron@2189: #include "../driver.h" tron@2189: #include "../mixer.h" tron@2189: #include "../sdl.h" tron@2189: #include "sdl_s.h" truelight@0: #include truelight@0: truelight@0: static void CDECL fill_sound_buffer(void *userdata, Uint8 *stream, int len) truelight@0: { tron@2977: MxMixSamples(stream, len / 4); truelight@0: } truelight@0: tron@1301: static const char *SdlSoundStart(const char * const *parm) truelight@0: { truelight@0: SDL_AudioSpec spec; truelight@193: tron@1301: const char *s = SdlOpen(SDL_INIT_AUDIO); tron@423: if (s != NULL) return s; tron@423: truelight@0: spec.freq = GetDriverParamInt(parm, "hz", 11025); truelight@0: spec.format = AUDIO_S16SYS; truelight@0: spec.channels = 2; truelight@0: spec.samples = 512; tron@423: spec.callback = fill_sound_buffer; truelight@0: SDL_CALL SDL_OpenAudio(&spec, &spec); truelight@0: SDL_CALL SDL_PauseAudio(0); truelight@0: return NULL; truelight@0: } truelight@0: bjarni@6298: static void SdlSoundStop() truelight@0: { truelight@0: SDL_CALL SDL_CloseAudio(); truelight@0: SdlClose(SDL_INIT_AUDIO); truelight@0: } truelight@0: truelight@0: const HalSoundDriver _sdl_sound_driver = { truelight@0: SdlSoundStart, truelight@0: SdlSoundStop, truelight@0: }; tron@2189: bjarni@6253: #endif /* WITH_SDL */