* [Qemu-devel] [PULL 0/8] Audio 20180312 patches
@ 2018-03-12 10:42 Gerd Hoffmann
2018-03-12 10:42 ` [Qemu-devel] [PULL 1/8] modules: use gmodule-export Gerd Hoffmann
` (8 more replies)
0 siblings, 9 replies; 10+ messages in thread
From: Gerd Hoffmann @ 2018-03-12 10:42 UTC (permalink / raw)
To: qemu-devel; +Cc: Gerd Hoffmann
The following changes since commit e4ae62b802cec437f877f2cadc4ef059cc0eca76:
Merge remote-tracking branch 'remotes/stefanha/tags/block-pull-request' into staging (2018-03-09 17:28:16 +0000)
are available in the git repository at:
git://git.kraxel.org/qemu tags/audio-20180312-pull-request
for you to fetch changes up to 051c7d5c1e2f4a392a4b89027b27aa4c50c16fe0:
audio/sdl: build as module (2018-03-12 11:18:27 +0100)
----------------------------------------------------------------
modules: use gmodule-export.
audio: add driver registry, enable module builds.
----------------------------------------------------------------
Gerd Hoffmann (8):
modules: use gmodule-export
audio: add driver registry
audio: add module loading support
build: enable audio modules
audio/alsa: build as module
audio/oss: build as module
audio/pulseaudio: build as module
audio/sdl: build as module
configure | 9 ++++--
Makefile | 4 +++
Makefile.objs | 1 +
audio/audio_int.h | 14 ++++-----
include/qemu/module.h | 1 +
audio/alsaaudio.c | 8 ++++-
audio/audio.c | 83 +++++++++++++++++++++++++++++++++++----------------
audio/coreaudio.c | 8 ++++-
audio/dsoundaudio.c | 8 ++++-
audio/noaudio.c | 8 ++++-
audio/ossaudio.c | 8 ++++-
audio/paaudio.c | 8 ++++-
audio/sdlaudio.c | 8 ++++-
audio/spiceaudio.c | 8 ++++-
audio/wavaudio.c | 8 ++++-
audio/Makefile.objs | 30 +++++++++++++------
scripts/create_config | 2 +-
17 files changed, 160 insertions(+), 56 deletions(-)
--
2.9.3
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Qemu-devel] [PULL 1/8] modules: use gmodule-export
2018-03-12 10:42 [Qemu-devel] [PULL 0/8] Audio 20180312 patches Gerd Hoffmann
@ 2018-03-12 10:42 ` Gerd Hoffmann
2018-03-12 10:42 ` [Qemu-devel] [PULL 2/8] audio: add driver registry Gerd Hoffmann
` (7 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Gerd Hoffmann @ 2018-03-12 10:42 UTC (permalink / raw)
To: qemu-devel; +Cc: Gerd Hoffmann, Marc-André Lureau
As we want qemu symbols be exported to modules we should use the
gmodule-export-2.0 pkg-config instead of gmodule-2.0.
Cc: Marc-André Lureau <marcandre.lureau@gmail.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Message-id: 20180308085301.8875-2-kraxel@redhat.com
---
configure | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/configure b/configure
index f74e1f3b7c..973dbb99ac 100755
--- a/configure
+++ b/configure
@@ -3352,7 +3352,7 @@ else
fi
glib_modules=gthread-2.0
if test "$modules" = yes; then
- glib_modules="$glib_modules gmodule-2.0"
+ glib_modules="$glib_modules gmodule-export-2.0"
fi
# This workaround is required due to a bug in pkg-config file for glib as it
--
2.9.3
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [Qemu-devel] [PULL 2/8] audio: add driver registry
2018-03-12 10:42 [Qemu-devel] [PULL 0/8] Audio 20180312 patches Gerd Hoffmann
2018-03-12 10:42 ` [Qemu-devel] [PULL 1/8] modules: use gmodule-export Gerd Hoffmann
@ 2018-03-12 10:42 ` Gerd Hoffmann
2018-03-12 10:42 ` [Qemu-devel] [PULL 3/8] audio: add module loading support Gerd Hoffmann
` (6 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Gerd Hoffmann @ 2018-03-12 10:42 UTC (permalink / raw)
To: qemu-devel; +Cc: Gerd Hoffmann
Add registry for audio drivers, using the existing audio_driver struct.
Make all drivers register themself. The old list of audio_driver struct
pointers is now a list of audio driver names, specifying the priority
(aka probe order) in case no driver is explicitly asked for.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-id: 20180306074053.22856-2-kraxel@redhat.com
---
audio/audio_int.h | 14 ++++--------
audio/alsaaudio.c | 8 ++++++-
audio/audio.c | 63 ++++++++++++++++++++++++++++++---------------------
audio/coreaudio.c | 8 ++++++-
audio/dsoundaudio.c | 8 ++++++-
audio/noaudio.c | 8 ++++++-
audio/ossaudio.c | 8 ++++++-
audio/paaudio.c | 8 ++++++-
audio/sdlaudio.c | 8 ++++++-
audio/spiceaudio.c | 8 ++++++-
audio/wavaudio.c | 8 ++++++-
scripts/create_config | 2 +-
12 files changed, 106 insertions(+), 45 deletions(-)
diff --git a/audio/audio_int.h b/audio/audio_int.h
index 700bd43143..244b454012 100644
--- a/audio/audio_int.h
+++ b/audio/audio_int.h
@@ -141,6 +141,7 @@ struct SWVoiceIn {
QLIST_ENTRY (SWVoiceIn) entries;
};
+typedef struct audio_driver audio_driver;
struct audio_driver {
const char *name;
const char *descr;
@@ -154,6 +155,7 @@ struct audio_driver {
int voice_size_out;
int voice_size_in;
int ctl_caps;
+ QLIST_ENTRY(audio_driver) next;
};
struct audio_pcm_ops {
@@ -203,17 +205,11 @@ struct AudioState {
int vm_running;
};
-extern struct audio_driver no_audio_driver;
-extern struct audio_driver oss_audio_driver;
-extern struct audio_driver sdl_audio_driver;
-extern struct audio_driver wav_audio_driver;
-extern struct audio_driver alsa_audio_driver;
-extern struct audio_driver coreaudio_audio_driver;
-extern struct audio_driver dsound_audio_driver;
-extern struct audio_driver pa_audio_driver;
-extern struct audio_driver spice_audio_driver;
extern const struct mixeng_volume nominal_volume;
+void audio_driver_register(audio_driver *drv);
+audio_driver *audio_driver_lookup(const char *name);
+
void audio_pcm_init_info (struct audio_pcm_info *info, struct audsettings *as);
void audio_pcm_info_clear_buf (struct audio_pcm_info *info, void *buf, int len);
diff --git a/audio/alsaaudio.c b/audio/alsaaudio.c
index 92a96f8b2b..362a2276fd 100644
--- a/audio/alsaaudio.c
+++ b/audio/alsaaudio.c
@@ -1213,7 +1213,7 @@ static struct audio_pcm_ops alsa_pcm_ops = {
.ctl_in = alsa_ctl_in,
};
-struct audio_driver alsa_audio_driver = {
+static struct audio_driver alsa_audio_driver = {
.name = "alsa",
.descr = "ALSA http://www.alsa-project.org",
.options = alsa_options,
@@ -1226,3 +1226,9 @@ struct audio_driver alsa_audio_driver = {
.voice_size_out = sizeof (ALSAVoiceOut),
.voice_size_in = sizeof (ALSAVoiceIn)
};
+
+static void register_audio_alsa(void)
+{
+ audio_driver_register(&alsa_audio_driver);
+}
+type_init(register_audio_alsa);
diff --git a/audio/audio.c b/audio/audio.c
index 7658d2af66..2384612b87 100644
--- a/audio/audio.c
+++ b/audio/audio.c
@@ -45,15 +45,32 @@
The 1st one is the one used by default, that is the reason
that we generate the list.
*/
-static struct audio_driver *drvtab[] = {
-#ifdef CONFIG_SPICE
- &spice_audio_driver,
-#endif
+static const char *audio_prio_list[] = {
+ "spice",
CONFIG_AUDIO_DRIVERS
- &no_audio_driver,
- &wav_audio_driver
+ "none",
+ "wav",
};
+static QLIST_HEAD(, audio_driver) audio_drivers;
+
+void audio_driver_register(audio_driver *drv)
+{
+ QLIST_INSERT_HEAD(&audio_drivers, drv, next);
+}
+
+audio_driver *audio_driver_lookup(const char *name)
+{
+ struct audio_driver *d;
+
+ QLIST_FOREACH(d, &audio_drivers, next) {
+ if (strcmp(name, d->name) == 0) {
+ return d;
+ }
+ }
+ return NULL;
+}
+
struct fixed_settings {
int enabled;
int nb_voices;
@@ -1656,11 +1673,10 @@ static void audio_pp_nb_voices (const char *typ, int nb)
void AUD_help (void)
{
- size_t i;
+ struct audio_driver *d;
audio_process_options ("AUDIO", audio_options);
- for (i = 0; i < ARRAY_SIZE (drvtab); i++) {
- struct audio_driver *d = drvtab[i];
+ QLIST_FOREACH(d, &audio_drivers, next) {
if (d->options) {
audio_process_options (d->name, d->options);
}
@@ -1672,8 +1688,7 @@ void AUD_help (void)
printf ("Available drivers:\n");
- for (i = 0; i < ARRAY_SIZE (drvtab); i++) {
- struct audio_driver *d = drvtab[i];
+ QLIST_FOREACH(d, &audio_drivers, next) {
printf ("Name: %s\n", d->name);
printf ("Description: %s\n", d->descr);
@@ -1807,6 +1822,7 @@ static void audio_init (void)
const char *drvname;
VMChangeStateEntry *e;
AudioState *s = &glob_audio_state;
+ struct audio_driver *driver;
if (s->drv) {
return;
@@ -1842,32 +1858,27 @@ static void audio_init (void)
}
if (drvname) {
- int found = 0;
-
- for (i = 0; i < ARRAY_SIZE (drvtab); i++) {
- if (!strcmp (drvname, drvtab[i]->name)) {
- done = !audio_driver_init (s, drvtab[i]);
- found = 1;
- break;
- }
- }
-
- if (!found) {
+ driver = audio_driver_lookup(drvname);
+ if (driver) {
+ done = !audio_driver_init(s, driver);
+ } else {
dolog ("Unknown audio driver `%s'\n", drvname);
dolog ("Run with -audio-help to list available drivers\n");
}
}
if (!done) {
- for (i = 0; !done && i < ARRAY_SIZE (drvtab); i++) {
- if (drvtab[i]->can_be_default) {
- done = !audio_driver_init (s, drvtab[i]);
+ for (i = 0; !done && i < ARRAY_SIZE(audio_prio_list); i++) {
+ driver = audio_driver_lookup(audio_prio_list[i]);
+ if (driver && driver->can_be_default) {
+ done = !audio_driver_init(s, driver);
}
}
}
if (!done) {
- done = !audio_driver_init (s, &no_audio_driver);
+ driver = audio_driver_lookup("none");
+ done = !audio_driver_init(s, driver);
assert(done);
dolog("warning: Using timer based audio emulation\n");
}
diff --git a/audio/coreaudio.c b/audio/coreaudio.c
index c75142084f..638c60b300 100644
--- a/audio/coreaudio.c
+++ b/audio/coreaudio.c
@@ -722,7 +722,7 @@ static struct audio_pcm_ops coreaudio_pcm_ops = {
.ctl_out = coreaudio_ctl_out
};
-struct audio_driver coreaudio_audio_driver = {
+static struct audio_driver coreaudio_audio_driver = {
.name = "coreaudio",
.descr = "CoreAudio http://developer.apple.com/audio/coreaudio.html",
.options = coreaudio_options,
@@ -735,3 +735,9 @@ struct audio_driver coreaudio_audio_driver = {
.voice_size_out = sizeof (coreaudioVoiceOut),
.voice_size_in = 0
};
+
+static void register_audio_coreaudio(void)
+{
+ audio_driver_register(&coreaudio_audio_driver);
+}
+type_init(register_audio_coreaudio);
diff --git a/audio/dsoundaudio.c b/audio/dsoundaudio.c
index bc39cb9b4d..3ed73a30d1 100644
--- a/audio/dsoundaudio.c
+++ b/audio/dsoundaudio.c
@@ -890,7 +890,7 @@ static struct audio_pcm_ops dsound_pcm_ops = {
.ctl_in = dsound_ctl_in
};
-struct audio_driver dsound_audio_driver = {
+static struct audio_driver dsound_audio_driver = {
.name = "dsound",
.descr = "DirectSound http://wikipedia.org/wiki/DirectSound",
.options = dsound_options,
@@ -903,3 +903,9 @@ struct audio_driver dsound_audio_driver = {
.voice_size_out = sizeof (DSoundVoiceOut),
.voice_size_in = sizeof (DSoundVoiceIn)
};
+
+static void register_audio_dsound(void)
+{
+ audio_driver_register(&dsound_audio_driver);
+}
+type_init(register_audio_dsound);
diff --git a/audio/noaudio.c b/audio/noaudio.c
index 9ca9eaf01f..1bfebeca7d 100644
--- a/audio/noaudio.c
+++ b/audio/noaudio.c
@@ -160,7 +160,7 @@ static struct audio_pcm_ops no_pcm_ops = {
.ctl_in = no_ctl_in
};
-struct audio_driver no_audio_driver = {
+static struct audio_driver no_audio_driver = {
.name = "none",
.descr = "Timer based audio emulation",
.options = NULL,
@@ -173,3 +173,9 @@ struct audio_driver no_audio_driver = {
.voice_size_out = sizeof (NoVoiceOut),
.voice_size_in = sizeof (NoVoiceIn)
};
+
+static void register_audio_none(void)
+{
+ audio_driver_register(&no_audio_driver);
+}
+type_init(register_audio_none);
diff --git a/audio/ossaudio.c b/audio/ossaudio.c
index a0428881c2..6c69622b4c 100644
--- a/audio/ossaudio.c
+++ b/audio/ossaudio.c
@@ -922,7 +922,7 @@ static struct audio_pcm_ops oss_pcm_ops = {
.ctl_in = oss_ctl_in
};
-struct audio_driver oss_audio_driver = {
+static struct audio_driver oss_audio_driver = {
.name = "oss",
.descr = "OSS http://www.opensound.com",
.options = oss_options,
@@ -935,3 +935,9 @@ struct audio_driver oss_audio_driver = {
.voice_size_out = sizeof (OSSVoiceOut),
.voice_size_in = sizeof (OSSVoiceIn)
};
+
+static void register_audio_oss(void)
+{
+ audio_driver_register(&oss_audio_driver);
+}
+type_init(register_audio_oss);
diff --git a/audio/paaudio.c b/audio/paaudio.c
index aa0a7477d3..949769774d 100644
--- a/audio/paaudio.c
+++ b/audio/paaudio.c
@@ -937,7 +937,7 @@ static struct audio_pcm_ops qpa_pcm_ops = {
.ctl_in = qpa_ctl_in
};
-struct audio_driver pa_audio_driver = {
+static struct audio_driver pa_audio_driver = {
.name = "pa",
.descr = "http://www.pulseaudio.org/",
.options = qpa_options,
@@ -951,3 +951,9 @@ struct audio_driver pa_audio_driver = {
.voice_size_in = sizeof (PAVoiceIn),
.ctl_caps = VOICE_VOLUME_CAP
};
+
+static void register_audio_pa(void)
+{
+ audio_driver_register(&pa_audio_driver);
+}
+type_init(register_audio_pa);
diff --git a/audio/sdlaudio.c b/audio/sdlaudio.c
index e92135bd2f..9db5ac92bc 100644
--- a/audio/sdlaudio.c
+++ b/audio/sdlaudio.c
@@ -500,7 +500,7 @@ static struct audio_pcm_ops sdl_pcm_ops = {
.ctl_out = sdl_ctl_out,
};
-struct audio_driver sdl_audio_driver = {
+static struct audio_driver sdl_audio_driver = {
.name = "sdl",
.descr = "SDL http://www.libsdl.org",
.options = sdl_options,
@@ -513,3 +513,9 @@ struct audio_driver sdl_audio_driver = {
.voice_size_out = sizeof (SDLVoiceOut),
.voice_size_in = 0
};
+
+static void register_audio_sdl(void)
+{
+ audio_driver_register(&sdl_audio_driver);
+}
+type_init(register_audio_sdl);
diff --git a/audio/spiceaudio.c b/audio/spiceaudio.c
index 5580e76307..6ad0eafbc6 100644
--- a/audio/spiceaudio.c
+++ b/audio/spiceaudio.c
@@ -391,7 +391,7 @@ static struct audio_pcm_ops audio_callbacks = {
.ctl_in = line_in_ctl,
};
-struct audio_driver spice_audio_driver = {
+static struct audio_driver spice_audio_driver = {
.name = "spice",
.descr = "spice audio driver",
.options = audio_options,
@@ -411,3 +411,9 @@ void qemu_spice_audio_init (void)
{
spice_audio_driver.can_be_default = 1;
}
+
+static void register_audio_spice(void)
+{
+ audio_driver_register(&spice_audio_driver);
+}
+type_init(register_audio_spice);
diff --git a/audio/wavaudio.c b/audio/wavaudio.c
index 068a595732..40adfa30c3 100644
--- a/audio/wavaudio.c
+++ b/audio/wavaudio.c
@@ -278,7 +278,7 @@ static struct audio_pcm_ops wav_pcm_ops = {
.ctl_out = wav_ctl_out,
};
-struct audio_driver wav_audio_driver = {
+static struct audio_driver wav_audio_driver = {
.name = "wav",
.descr = "WAV renderer http://wikipedia.org/wiki/WAV",
.options = wav_options,
@@ -291,3 +291,9 @@ struct audio_driver wav_audio_driver = {
.voice_size_out = sizeof (WAVVoiceOut),
.voice_size_in = 0
};
+
+static void register_audio_wav(void)
+{
+ audio_driver_register(&wav_audio_driver);
+}
+type_init(register_audio_wav);
diff --git a/scripts/create_config b/scripts/create_config
index 603b826886..d727e5e36e 100755
--- a/scripts/create_config
+++ b/scripts/create_config
@@ -36,7 +36,7 @@ case $line in
drivers=${line#*=}
echo "#define CONFIG_AUDIO_DRIVERS \\"
for drv in $drivers; do
- echo " &${drv}_audio_driver,\\"
+ echo " \"${drv}\",\\"
done
echo ""
;;
--
2.9.3
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [Qemu-devel] [PULL 3/8] audio: add module loading support
2018-03-12 10:42 [Qemu-devel] [PULL 0/8] Audio 20180312 patches Gerd Hoffmann
2018-03-12 10:42 ` [Qemu-devel] [PULL 1/8] modules: use gmodule-export Gerd Hoffmann
2018-03-12 10:42 ` [Qemu-devel] [PULL 2/8] audio: add driver registry Gerd Hoffmann
@ 2018-03-12 10:42 ` Gerd Hoffmann
2018-03-12 10:42 ` [Qemu-devel] [PULL 4/8] build: enable audio modules Gerd Hoffmann
` (5 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Gerd Hoffmann @ 2018-03-12 10:42 UTC (permalink / raw)
To: qemu-devel; +Cc: Gerd Hoffmann
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 <kraxel@redhat.com>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-id: 20180306074053.22856-3-kraxel@redhat.com
---
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
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [Qemu-devel] [PULL 4/8] build: enable audio modules
2018-03-12 10:42 [Qemu-devel] [PULL 0/8] Audio 20180312 patches Gerd Hoffmann
` (2 preceding siblings ...)
2018-03-12 10:42 ` [Qemu-devel] [PULL 3/8] audio: add module loading support Gerd Hoffmann
@ 2018-03-12 10:42 ` Gerd Hoffmann
2018-03-12 10:42 ` [Qemu-devel] [PULL 5/8] audio/alsa: build as module Gerd Hoffmann
` (4 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Gerd Hoffmann @ 2018-03-12 10:42 UTC (permalink / raw)
To: qemu-devel; +Cc: Gerd Hoffmann
Add audio/ to common-obj-m variable.
Also run both audio and ui variables through unnest-vars.
This avoids sdl.mo (exists in both audio/ and ui/) name clashes.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Message-id: 20180306074053.22856-4-kraxel@redhat.com
---
Makefile | 4 ++++
Makefile.objs | 1 +
2 files changed, 5 insertions(+)
diff --git a/Makefile b/Makefile
index 9a75c48ae0..f198f19ba2 100644
--- a/Makefile
+++ b/Makefile
@@ -425,6 +425,10 @@ dummy := $(call unnest-vars,, \
io-obj-y \
common-obj-y \
common-obj-m \
+ ui-obj-y \
+ ui-obj-m \
+ audio-obj-y \
+ audio-obj-m \
trace-obj-y)
include $(SRC_PATH)/tests/Makefile.include
diff --git a/Makefile.objs b/Makefile.objs
index d8b44a2d3c..c6c9b8fc21 100644
--- a/Makefile.objs
+++ b/Makefile.objs
@@ -104,6 +104,7 @@ common-obj-$(CONFIG_LINUX) += fsdev/
common-obj-y += migration/
common-obj-y += audio/
+common-obj-m += audio/
common-obj-y += hw/
common-obj-y += replay/
--
2.9.3
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [Qemu-devel] [PULL 5/8] audio/alsa: build as module
2018-03-12 10:42 [Qemu-devel] [PULL 0/8] Audio 20180312 patches Gerd Hoffmann
` (3 preceding siblings ...)
2018-03-12 10:42 ` [Qemu-devel] [PULL 4/8] build: enable audio modules Gerd Hoffmann
@ 2018-03-12 10:42 ` Gerd Hoffmann
2018-03-12 10:42 ` [Qemu-devel] [PULL 6/8] audio/oss: " Gerd Hoffmann
` (3 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Gerd Hoffmann @ 2018-03-12 10:42 UTC (permalink / raw)
To: qemu-devel; +Cc: Gerd Hoffmann
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Message-id: 20180306074053.22856-5-kraxel@redhat.com
---
configure | 7 ++++++-
audio/Makefile.objs | 7 +++++--
2 files changed, 11 insertions(+), 3 deletions(-)
diff --git a/configure b/configure
index 973dbb99ac..b150ee80c6 100755
--- a/configure
+++ b/configure
@@ -5973,7 +5973,12 @@ fi
echo "CONFIG_AUDIO_DRIVERS=$audio_drv_list" >> $config_host_mak
for drv in $audio_drv_list; do
def=CONFIG_AUDIO_$(echo $drv | LC_ALL=C tr '[a-z]' '[A-Z]')
- echo "$def=y" >> $config_host_mak
+ case "$drv" in
+ alsa)
+ echo "$def=m" >> $config_host_mak ;;
+ *)
+ echo "$def=y" >> $config_host_mak ;;
+ esac
done
echo "ALSA_LIBS=$alsa_libs" >> $config_host_mak
echo "PULSE_LIBS=$pulse_libs" >> $config_host_mak
diff --git a/audio/Makefile.objs b/audio/Makefile.objs
index f6ce5c6744..97f22ec097 100644
--- a/audio/Makefile.objs
+++ b/audio/Makefile.objs
@@ -3,7 +3,6 @@ common-obj-$(CONFIG_AUDIO_SDL) += sdlaudio.o
common-obj-$(CONFIG_AUDIO_OSS) += ossaudio.o
common-obj-$(CONFIG_SPICE) += spiceaudio.o
common-obj-$(CONFIG_AUDIO_COREAUDIO) += coreaudio.o
-common-obj-$(CONFIG_AUDIO_ALSA) += alsaaudio.o
common-obj-$(CONFIG_AUDIO_DSOUND) += dsoundaudio.o
common-obj-$(CONFIG_AUDIO_PA) += paaudio.o
common-obj-$(CONFIG_AUDIO_PT_INT) += audio_pt_int.o
@@ -12,8 +11,12 @@ common-obj-y += wavcapture.o
sdlaudio.o-cflags := $(SDL_CFLAGS)
sdlaudio.o-libs := $(SDL_LIBS)
-alsaaudio.o-libs := $(ALSA_LIBS)
paaudio.o-libs := $(PULSE_LIBS)
coreaudio.o-libs := $(COREAUDIO_LIBS)
dsoundaudio.o-libs := $(DSOUND_LIBS)
ossaudio.o-libs := $(OSS_LIBS)
+
+# alsa module
+common-obj-$(CONFIG_AUDIO_ALSA) += alsa.mo
+alsa.mo-objs = alsaaudio.o
+alsa.mo-libs := $(ALSA_LIBS)
--
2.9.3
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [Qemu-devel] [PULL 6/8] audio/oss: build as module
2018-03-12 10:42 [Qemu-devel] [PULL 0/8] Audio 20180312 patches Gerd Hoffmann
` (4 preceding siblings ...)
2018-03-12 10:42 ` [Qemu-devel] [PULL 5/8] audio/alsa: build as module Gerd Hoffmann
@ 2018-03-12 10:42 ` Gerd Hoffmann
2018-03-12 10:42 ` [Qemu-devel] [PULL 7/8] audio/pulseaudio: " Gerd Hoffmann
` (2 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Gerd Hoffmann @ 2018-03-12 10:42 UTC (permalink / raw)
To: qemu-devel; +Cc: Gerd Hoffmann
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Message-id: 20180306074053.22856-6-kraxel@redhat.com
---
configure | 2 +-
audio/Makefile.objs | 7 +++++--
2 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/configure b/configure
index b150ee80c6..b9336b1808 100755
--- a/configure
+++ b/configure
@@ -5974,7 +5974,7 @@ echo "CONFIG_AUDIO_DRIVERS=$audio_drv_list" >> $config_host_mak
for drv in $audio_drv_list; do
def=CONFIG_AUDIO_$(echo $drv | LC_ALL=C tr '[a-z]' '[A-Z]')
case "$drv" in
- alsa)
+ alsa | oss)
echo "$def=m" >> $config_host_mak ;;
*)
echo "$def=y" >> $config_host_mak ;;
diff --git a/audio/Makefile.objs b/audio/Makefile.objs
index 97f22ec097..9ea19c6a87 100644
--- a/audio/Makefile.objs
+++ b/audio/Makefile.objs
@@ -1,6 +1,5 @@
common-obj-y = audio.o noaudio.o wavaudio.o mixeng.o
common-obj-$(CONFIG_AUDIO_SDL) += sdlaudio.o
-common-obj-$(CONFIG_AUDIO_OSS) += ossaudio.o
common-obj-$(CONFIG_SPICE) += spiceaudio.o
common-obj-$(CONFIG_AUDIO_COREAUDIO) += coreaudio.o
common-obj-$(CONFIG_AUDIO_DSOUND) += dsoundaudio.o
@@ -14,9 +13,13 @@ sdlaudio.o-libs := $(SDL_LIBS)
paaudio.o-libs := $(PULSE_LIBS)
coreaudio.o-libs := $(COREAUDIO_LIBS)
dsoundaudio.o-libs := $(DSOUND_LIBS)
-ossaudio.o-libs := $(OSS_LIBS)
# alsa module
common-obj-$(CONFIG_AUDIO_ALSA) += alsa.mo
alsa.mo-objs = alsaaudio.o
alsa.mo-libs := $(ALSA_LIBS)
+
+# oss module
+common-obj-$(CONFIG_AUDIO_OSS) += oss.mo
+oss.mo-objs = ossaudio.o
+oss.mo-libs := $(OSS_LIBS)
--
2.9.3
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [Qemu-devel] [PULL 7/8] audio/pulseaudio: build as module
2018-03-12 10:42 [Qemu-devel] [PULL 0/8] Audio 20180312 patches Gerd Hoffmann
` (5 preceding siblings ...)
2018-03-12 10:42 ` [Qemu-devel] [PULL 6/8] audio/oss: " Gerd Hoffmann
@ 2018-03-12 10:42 ` Gerd Hoffmann
2018-03-12 10:42 ` [Qemu-devel] [PULL 8/8] audio/sdl: " Gerd Hoffmann
2018-03-12 18:35 ` [Qemu-devel] [PULL 0/8] Audio 20180312 patches Peter Maydell
8 siblings, 0 replies; 10+ messages in thread
From: Gerd Hoffmann @ 2018-03-12 10:42 UTC (permalink / raw)
To: qemu-devel; +Cc: Gerd Hoffmann
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Message-id: 20180306074053.22856-7-kraxel@redhat.com
---
configure | 2 +-
audio/Makefile.objs | 7 +++++--
2 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/configure b/configure
index b9336b1808..27bc39bd4d 100755
--- a/configure
+++ b/configure
@@ -5974,7 +5974,7 @@ echo "CONFIG_AUDIO_DRIVERS=$audio_drv_list" >> $config_host_mak
for drv in $audio_drv_list; do
def=CONFIG_AUDIO_$(echo $drv | LC_ALL=C tr '[a-z]' '[A-Z]')
case "$drv" in
- alsa | oss)
+ alsa | oss | pa)
echo "$def=m" >> $config_host_mak ;;
*)
echo "$def=y" >> $config_host_mak ;;
diff --git a/audio/Makefile.objs b/audio/Makefile.objs
index 9ea19c6a87..b98835934d 100644
--- a/audio/Makefile.objs
+++ b/audio/Makefile.objs
@@ -3,14 +3,12 @@ common-obj-$(CONFIG_AUDIO_SDL) += sdlaudio.o
common-obj-$(CONFIG_SPICE) += spiceaudio.o
common-obj-$(CONFIG_AUDIO_COREAUDIO) += coreaudio.o
common-obj-$(CONFIG_AUDIO_DSOUND) += dsoundaudio.o
-common-obj-$(CONFIG_AUDIO_PA) += paaudio.o
common-obj-$(CONFIG_AUDIO_PT_INT) += audio_pt_int.o
common-obj-$(CONFIG_AUDIO_WIN_INT) += audio_win_int.o
common-obj-y += wavcapture.o
sdlaudio.o-cflags := $(SDL_CFLAGS)
sdlaudio.o-libs := $(SDL_LIBS)
-paaudio.o-libs := $(PULSE_LIBS)
coreaudio.o-libs := $(COREAUDIO_LIBS)
dsoundaudio.o-libs := $(DSOUND_LIBS)
@@ -23,3 +21,8 @@ alsa.mo-libs := $(ALSA_LIBS)
common-obj-$(CONFIG_AUDIO_OSS) += oss.mo
oss.mo-objs = ossaudio.o
oss.mo-libs := $(OSS_LIBS)
+
+# pulseaudio module
+common-obj-$(CONFIG_AUDIO_PA) += pa.mo
+pa.mo-objs = paaudio.o
+pa.mo-libs := $(PULSE_LIBS)
--
2.9.3
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [Qemu-devel] [PULL 8/8] audio/sdl: build as module
2018-03-12 10:42 [Qemu-devel] [PULL 0/8] Audio 20180312 patches Gerd Hoffmann
` (6 preceding siblings ...)
2018-03-12 10:42 ` [Qemu-devel] [PULL 7/8] audio/pulseaudio: " Gerd Hoffmann
@ 2018-03-12 10:42 ` Gerd Hoffmann
2018-03-12 18:35 ` [Qemu-devel] [PULL 0/8] Audio 20180312 patches Peter Maydell
8 siblings, 0 replies; 10+ messages in thread
From: Gerd Hoffmann @ 2018-03-12 10:42 UTC (permalink / raw)
To: qemu-devel; +Cc: Gerd Hoffmann
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Message-id: 20180306074053.22856-8-kraxel@redhat.com
---
configure | 2 +-
audio/Makefile.objs | 9 ++++++---
2 files changed, 7 insertions(+), 4 deletions(-)
diff --git a/configure b/configure
index 27bc39bd4d..9f9ffb2cf9 100755
--- a/configure
+++ b/configure
@@ -5974,7 +5974,7 @@ echo "CONFIG_AUDIO_DRIVERS=$audio_drv_list" >> $config_host_mak
for drv in $audio_drv_list; do
def=CONFIG_AUDIO_$(echo $drv | LC_ALL=C tr '[a-z]' '[A-Z]')
case "$drv" in
- alsa | oss | pa)
+ alsa | oss | pa | sdl)
echo "$def=m" >> $config_host_mak ;;
*)
echo "$def=y" >> $config_host_mak ;;
diff --git a/audio/Makefile.objs b/audio/Makefile.objs
index b98835934d..db4fa7f18f 100644
--- a/audio/Makefile.objs
+++ b/audio/Makefile.objs
@@ -1,5 +1,4 @@
common-obj-y = audio.o noaudio.o wavaudio.o mixeng.o
-common-obj-$(CONFIG_AUDIO_SDL) += sdlaudio.o
common-obj-$(CONFIG_SPICE) += spiceaudio.o
common-obj-$(CONFIG_AUDIO_COREAUDIO) += coreaudio.o
common-obj-$(CONFIG_AUDIO_DSOUND) += dsoundaudio.o
@@ -7,8 +6,6 @@ common-obj-$(CONFIG_AUDIO_PT_INT) += audio_pt_int.o
common-obj-$(CONFIG_AUDIO_WIN_INT) += audio_win_int.o
common-obj-y += wavcapture.o
-sdlaudio.o-cflags := $(SDL_CFLAGS)
-sdlaudio.o-libs := $(SDL_LIBS)
coreaudio.o-libs := $(COREAUDIO_LIBS)
dsoundaudio.o-libs := $(DSOUND_LIBS)
@@ -26,3 +23,9 @@ oss.mo-libs := $(OSS_LIBS)
common-obj-$(CONFIG_AUDIO_PA) += pa.mo
pa.mo-objs = paaudio.o
pa.mo-libs := $(PULSE_LIBS)
+
+# sdl module
+common-obj-$(CONFIG_AUDIO_SDL) += sdl.mo
+sdl.mo-objs = sdlaudio.o
+sdl.mo-cflags := $(SDL_CFLAGS)
+sdl.mo-libs := $(SDL_LIBS)
--
2.9.3
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [Qemu-devel] [PULL 0/8] Audio 20180312 patches
2018-03-12 10:42 [Qemu-devel] [PULL 0/8] Audio 20180312 patches Gerd Hoffmann
` (7 preceding siblings ...)
2018-03-12 10:42 ` [Qemu-devel] [PULL 8/8] audio/sdl: " Gerd Hoffmann
@ 2018-03-12 18:35 ` Peter Maydell
8 siblings, 0 replies; 10+ messages in thread
From: Peter Maydell @ 2018-03-12 18:35 UTC (permalink / raw)
To: Gerd Hoffmann; +Cc: QEMU Developers
On 12 March 2018 at 10:42, Gerd Hoffmann <kraxel@redhat.com> wrote:
> The following changes since commit e4ae62b802cec437f877f2cadc4ef059cc0eca76:
>
> Merge remote-tracking branch 'remotes/stefanha/tags/block-pull-request' into staging (2018-03-09 17:28:16 +0000)
>
> are available in the git repository at:
>
> git://git.kraxel.org/qemu tags/audio-20180312-pull-request
>
> for you to fetch changes up to 051c7d5c1e2f4a392a4b89027b27aa4c50c16fe0:
>
> audio/sdl: build as module (2018-03-12 11:18:27 +0100)
>
> ----------------------------------------------------------------
> modules: use gmodule-export.
> audio: add driver registry, enable module builds.
>
> ----------------------------------------------------------------
>
Applied, thanks.
-- PMM
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2018-03-12 18:35 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-03-12 10:42 [Qemu-devel] [PULL 0/8] Audio 20180312 patches Gerd Hoffmann
2018-03-12 10:42 ` [Qemu-devel] [PULL 1/8] modules: use gmodule-export Gerd Hoffmann
2018-03-12 10:42 ` [Qemu-devel] [PULL 2/8] audio: add driver registry Gerd Hoffmann
2018-03-12 10:42 ` [Qemu-devel] [PULL 3/8] audio: add module loading support Gerd Hoffmann
2018-03-12 10:42 ` [Qemu-devel] [PULL 4/8] build: enable audio modules Gerd Hoffmann
2018-03-12 10:42 ` [Qemu-devel] [PULL 5/8] audio/alsa: build as module Gerd Hoffmann
2018-03-12 10:42 ` [Qemu-devel] [PULL 6/8] audio/oss: " Gerd Hoffmann
2018-03-12 10:42 ` [Qemu-devel] [PULL 7/8] audio/pulseaudio: " Gerd Hoffmann
2018-03-12 10:42 ` [Qemu-devel] [PULL 8/8] audio/sdl: " Gerd Hoffmann
2018-03-12 18:35 ` [Qemu-devel] [PULL 0/8] Audio 20180312 patches Peter Maydell
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).