[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 3/8] audio: add module loading support
From: |
Gerd Hoffmann |
Subject: |
[Qemu-devel] [PULL 3/8] audio: add module loading support |
Date: |
Mon, 12 Mar 2018 11:42:36 +0100 |
Make audio_driver_lookup() try load the module in case it doesn't find
the driver in the registry. Also load all modules for -audio-help, so
the help output includes the help text for modular audio drivers.
Signed-off-by: Gerd Hoffmann <address@hidden>
Reviewed-by: Marc-André Lureau <address@hidden>
Message-id: address@hidden
---
include/qemu/module.h | 1 +
audio/audio.c | 20 ++++++++++++++++++++
2 files changed, 21 insertions(+)
diff --git a/include/qemu/module.h b/include/qemu/module.h
index 9fea75aaeb..54300ab6e5 100644
--- a/include/qemu/module.h
+++ b/include/qemu/module.h
@@ -54,6 +54,7 @@ typedef enum {
#define block_module_load_one(lib) module_load_one("block-", lib)
#define ui_module_load_one(lib) module_load_one("ui-", lib)
+#define audio_module_load_one(lib) module_load_one("audio-", lib)
void register_module_init(void (*fn)(void), module_init_type type);
void register_dso_module_init(void (*fn)(void), module_init_type type);
diff --git a/audio/audio.c b/audio/audio.c
index 2384612b87..6eccdb17ee 100644
--- a/audio/audio.c
+++ b/audio/audio.c
@@ -68,9 +68,26 @@ audio_driver *audio_driver_lookup(const char *name)
return d;
}
}
+
+ audio_module_load_one(name);
+ QLIST_FOREACH(d, &audio_drivers, next) {
+ if (strcmp(name, d->name) == 0) {
+ return d;
+ }
+ }
+
return NULL;
}
+static void audio_module_load_all(void)
+{
+ int i;
+
+ for (i = 0; i < ARRAY_SIZE(audio_prio_list); i++) {
+ audio_driver_lookup(audio_prio_list[i]);
+ }
+}
+
struct fixed_settings {
int enabled;
int nb_voices;
@@ -1675,6 +1692,9 @@ void AUD_help (void)
{
struct audio_driver *d;
+ /* make sure we print the help text for modular drivers too */
+ audio_module_load_all();
+
audio_process_options ("AUDIO", audio_options);
QLIST_FOREACH(d, &audio_drivers, next) {
if (d->options) {
--
2.9.3
- [Qemu-devel] [PULL 0/8] Audio 20180312 patches, Gerd Hoffmann, 2018/03/12
- [Qemu-devel] [PULL 4/8] build: enable audio modules, Gerd Hoffmann, 2018/03/12
- [Qemu-devel] [PULL 5/8] audio/alsa: build as module, Gerd Hoffmann, 2018/03/12
- [Qemu-devel] [PULL 8/8] audio/sdl: build as module, Gerd Hoffmann, 2018/03/12
- [Qemu-devel] [PULL 6/8] audio/oss: build as module, Gerd Hoffmann, 2018/03/12
- [Qemu-devel] [PULL 7/8] audio/pulseaudio: build as module, Gerd Hoffmann, 2018/03/12
- [Qemu-devel] [PULL 1/8] modules: use gmodule-export, Gerd Hoffmann, 2018/03/12
- [Qemu-devel] [PULL 3/8] audio: add module loading support,
Gerd Hoffmann <=
- [Qemu-devel] [PULL 2/8] audio: add driver registry, Gerd Hoffmann, 2018/03/12
- Re: [Qemu-devel] [PULL 0/8] Audio 20180312 patches, Peter Maydell, 2018/03/12