sdlaudio: port to -audiodev config
Signed-off-by: Kővágó, Zoltán <DirtY.iCE.hu@gmail.com> Message-id: 1dc596cba39378df862582a0b952e497a16c6c31.1552083282.git.DirtY.iCE.hu@gmail.com Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
This commit is contained in:
parent
2c324b284a
commit
57dea55332
@ -281,6 +281,14 @@ static void handle_pa(Audiodev *dev)
|
|||||||
get_str("QEMU_PA_SERVER", &dev->u.pa.server, &dev->u.pa.has_server);
|
get_str("QEMU_PA_SERVER", &dev->u.pa.server, &dev->u.pa.has_server);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* SDL */
|
||||||
|
static void handle_sdl(Audiodev *dev)
|
||||||
|
{
|
||||||
|
/* SDL is output only */
|
||||||
|
get_samples_to_usecs("QEMU_SDL_SAMPLES", &dev->u.sdl.out->buffer_length,
|
||||||
|
&dev->u.sdl.out->has_buffer_length, dev->u.sdl.out);
|
||||||
|
}
|
||||||
|
|
||||||
/* general */
|
/* general */
|
||||||
static void handle_per_direction(
|
static void handle_per_direction(
|
||||||
AudiodevPerDirectionOptions *pdo, const char *prefix)
|
AudiodevPerDirectionOptions *pdo, const char *prefix)
|
||||||
@ -342,6 +350,10 @@ static AudiodevListEntry *legacy_opt(const char *drvname)
|
|||||||
handle_pa(e->dev);
|
handle_pa(e->dev);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case AUDIODEV_DRIVER_SDL:
|
||||||
|
handle_sdl(e->dev);
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -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,
|
||||||
|
Loading…
Reference in New Issue
Block a user