forked from mirror/OpenTTD
(svn r2688) MSVC and Watcom can't handle identical file names in different directories, oh my...
This commit is contained in:
40
sound/sdl_s.c
Normal file
40
sound/sdl_s.c
Normal file
@@ -0,0 +1,40 @@
|
||||
#include "stdafx.h"
|
||||
#include "openttd.h"
|
||||
#include "driver.h"
|
||||
#include "mixer.h"
|
||||
#include "sdl.h"
|
||||
#include "sound/sdl_s.h"
|
||||
#include <SDL.h>
|
||||
|
||||
static void CDECL fill_sound_buffer(void *userdata, Uint8 *stream, int len)
|
||||
{
|
||||
MxMixSamples(_mixer, stream, len / 4);
|
||||
}
|
||||
|
||||
static const char *SdlSoundStart(const char * const *parm)
|
||||
{
|
||||
SDL_AudioSpec spec;
|
||||
|
||||
const char *s = SdlOpen(SDL_INIT_AUDIO);
|
||||
if (s != NULL) return s;
|
||||
|
||||
spec.freq = GetDriverParamInt(parm, "hz", 11025);
|
||||
spec.format = AUDIO_S16SYS;
|
||||
spec.channels = 2;
|
||||
spec.samples = 512;
|
||||
spec.callback = fill_sound_buffer;
|
||||
SDL_CALL SDL_OpenAudio(&spec, &spec);
|
||||
SDL_CALL SDL_PauseAudio(0);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static void SdlSoundStop(void)
|
||||
{
|
||||
SDL_CALL SDL_CloseAudio();
|
||||
SdlClose(SDL_INIT_AUDIO);
|
||||
}
|
||||
|
||||
const HalSoundDriver _sdl_sound_driver = {
|
||||
SdlSoundStart,
|
||||
SdlSoundStop,
|
||||
};
|
Reference in New Issue
Block a user