|
@@ -44,16 +44,11 @@ typedef struct SDLVoiceOut {
|
|
int decr;
|
|
int decr;
|
|
} SDLVoiceOut;
|
|
} SDLVoiceOut;
|
|
|
|
|
|
-static struct {
|
|
|
|
- int nb_samples;
|
|
|
|
-} conf = {
|
|
|
|
- .nb_samples = 1024
|
|
|
|
-};
|
|
|
|
-
|
|
|
|
static struct SDLAudioState {
|
|
static struct SDLAudioState {
|
|
int exit;
|
|
int exit;
|
|
int initialized;
|
|
int initialized;
|
|
bool driver_created;
|
|
bool driver_created;
|
|
|
|
+ Audiodev *dev;
|
|
} glob_sdl;
|
|
} glob_sdl;
|
|
typedef struct SDLAudioState SDLAudioState;
|
|
typedef struct SDLAudioState SDLAudioState;
|
|
|
|
|
|
@@ -271,7 +266,7 @@ static int sdl_init_out(HWVoiceOut *hw, struct audsettings *as,
|
|
req.freq = as->freq;
|
|
req.freq = as->freq;
|
|
req.format = aud_to_sdlfmt (as->fmt);
|
|
req.format = aud_to_sdlfmt (as->fmt);
|
|
req.channels = as->nchannels;
|
|
req.channels = as->nchannels;
|
|
- req.samples = conf.nb_samples;
|
|
|
|
|
|
+ req.samples = audio_buffer_samples(s->dev->u.sdl.out, as, 11610);
|
|
req.callback = sdl_callback;
|
|
req.callback = sdl_callback;
|
|
req.userdata = sdl;
|
|
req.userdata = sdl;
|
|
|
|
|
|
@@ -329,6 +324,7 @@ static void *sdl_audio_init(Audiodev *dev)
|
|
}
|
|
}
|
|
|
|
|
|
s->driver_created = true;
|
|
s->driver_created = true;
|
|
|
|
+ s->dev = dev;
|
|
return s;
|
|
return s;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -338,18 +334,9 @@ static void sdl_audio_fini (void *opaque)
|
|
sdl_close (s);
|
|
sdl_close (s);
|
|
SDL_QuitSubSystem (SDL_INIT_AUDIO);
|
|
SDL_QuitSubSystem (SDL_INIT_AUDIO);
|
|
s->driver_created = false;
|
|
s->driver_created = false;
|
|
|
|
+ s->dev = NULL;
|
|
}
|
|
}
|
|
|
|
|
|
-static struct audio_option sdl_options[] = {
|
|
|
|
- {
|
|
|
|
- .name = "SAMPLES",
|
|
|
|
- .tag = AUD_OPT_INT,
|
|
|
|
- .valp = &conf.nb_samples,
|
|
|
|
- .descr = "Size of SDL buffer in samples"
|
|
|
|
- },
|
|
|
|
- { /* End of list */ }
|
|
|
|
-};
|
|
|
|
-
|
|
|
|
static struct audio_pcm_ops sdl_pcm_ops = {
|
|
static struct audio_pcm_ops sdl_pcm_ops = {
|
|
.init_out = sdl_init_out,
|
|
.init_out = sdl_init_out,
|
|
.fini_out = sdl_fini_out,
|
|
.fini_out = sdl_fini_out,
|
|
@@ -361,7 +348,6 @@ static struct audio_pcm_ops sdl_pcm_ops = {
|
|
static struct audio_driver sdl_audio_driver = {
|
|
static struct audio_driver sdl_audio_driver = {
|
|
.name = "sdl",
|
|
.name = "sdl",
|
|
.descr = "SDL http://www.libsdl.org",
|
|
.descr = "SDL http://www.libsdl.org",
|
|
- .options = sdl_options,
|
|
|
|
.init = sdl_audio_init,
|
|
.init = sdl_audio_init,
|
|
.fini = sdl_audio_fini,
|
|
.fini = sdl_audio_fini,
|
|
.pcm_ops = &sdl_pcm_ops,
|
|
.pcm_ops = &sdl_pcm_ops,
|