summaryrefslogtreecommitdiffstats
path: root/audio
diff options
context:
space:
mode:
authorPaolo Bonzini2022-04-27 12:27:46 +0200
committerPaolo Bonzini2022-05-14 12:33:44 +0200
commit039a68373c4544ff94871f945a733928b6dcfe93 (patch)
tree9a4d966054f19e7c967a5d9c046d9ab184ab0fc3 /audio
parentsoundhw: move help handling to vl.c (diff)
downloadqemu-039a68373c4544ff94871f945a733928b6dcfe93.tar.gz
qemu-039a68373c4544ff94871f945a733928b6dcfe93.tar.xz
qemu-039a68373c4544ff94871f945a733928b6dcfe93.zip
introduce -audio as a replacement for -soundhw
-audio is used like "-audio pa,model=sb16". It is almost as simple as -soundhw, but it reuses the -audiodev parsing machinery and attaches an audiodev to the newly-created device. The main 'feature' is that it knows about adding the codec device for model=intel-hda, and adding the audiodev to the codec device. In the future, it could be extended to support default models or builtin devices, just like -nic, or even a default backend. For now, keep it simple. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'audio')
-rw-r--r--audio/audio.c8
-rw-r--r--audio/audio.h1
2 files changed, 8 insertions, 1 deletions
diff --git a/audio/audio.c b/audio/audio.c
index 9e91a5a4f2..a02f3ce5c6 100644
--- a/audio/audio.c
+++ b/audio/audio.c
@@ -2099,13 +2099,19 @@ static void audio_validate_opts(Audiodev *dev, Error **errp)
void audio_parse_option(const char *opt)
{
- AudiodevListEntry *e;
Audiodev *dev = NULL;
Visitor *v = qobject_input_visitor_new_str(opt, "driver", &error_fatal);
visit_type_Audiodev(v, NULL, &dev, &error_fatal);
visit_free(v);
+ audio_define(dev);
+}
+
+void audio_define(Audiodev *dev)
+{
+ AudiodevListEntry *e;
+
audio_validate_opts(dev, &error_fatal);
e = g_new0(AudiodevListEntry, 1);
diff --git a/audio/audio.h b/audio/audio.h
index 3d5ecdecd5..b5e17cd218 100644
--- a/audio/audio.h
+++ b/audio/audio.h
@@ -168,6 +168,7 @@ void audio_sample_to_uint64(const void *samples, int pos,
void audio_sample_from_uint64(void *samples, int pos,
uint64_t left, uint64_t right);
+void audio_define(Audiodev *audio);
void audio_parse_option(const char *opt);
void audio_init_audiodevs(void);
void audio_legacy_help(void);