diff options
author | Paolo Bonzini <pbonzini@redhat.com> | 2023-09-21 10:23:58 +0200 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2023-10-08 21:08:27 +0200 |
commit | 1ebdbff4c37d820b6a97d4c6f24aa38dae302b51 (patch) | |
tree | e0a68cb06c0fb9f8e7d8341d6452980f23baea77 /system/vl.c | |
parent | 8f527a3c0d2866df1affe8f0fb8ab73fbbb8ac52 (diff) | |
download | qemu-1ebdbff4c37d820b6a97d4c6f24aa38dae302b51.zip qemu-1ebdbff4c37d820b6a97d4c6f24aa38dae302b51.tar.gz qemu-1ebdbff4c37d820b6a97d4c6f24aa38dae302b51.tar.bz2 |
audio: extend -audio to allow creating a default backend
If "-audio BACKEND" is used without a model, the resulting backend
will be used whenever the audiodev property is not specified.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'system/vl.c')
-rw-r--r-- | system/vl.c | 27 |
1 files changed, 15 insertions, 12 deletions
diff --git a/system/vl.c b/system/vl.c index 7ca92d4..72be5a4 100644 --- a/system/vl.c +++ b/system/vl.c @@ -2935,7 +2935,7 @@ void qemu_init(int argc, char **argv) break; case QEMU_OPTION_audio: { bool help; - char *model; + char *model = NULL; Audiodev *dev = NULL; Visitor *v; QDict *dict = keyval_parse(optarg, "driver", &help, &error_fatal); @@ -2948,22 +2948,25 @@ void qemu_init(int argc, char **argv) if (!qdict_haskey(dict, "id")) { qdict_put_str(dict, "id", "audiodev0"); } - if (!qdict_haskey(dict, "model")) { - error_setg(&error_fatal, "Parameter 'model' is missing"); - } - model = g_strdup(qdict_get_str(dict, "model")); - qdict_del(dict, "model"); - if (is_help_option(model)) { - show_valid_soundhw(); - exit(0); + if (qdict_haskey(dict, "model")) { + model = g_strdup(qdict_get_str(dict, "model")); + qdict_del(dict, "model"); + if (is_help_option(model)) { + show_valid_soundhw(); + exit(0); + } } v = qobject_input_visitor_new_keyval(QOBJECT(dict)); qobject_unref(dict); visit_type_Audiodev(v, NULL, &dev, &error_fatal); visit_free(v); - audio_define(dev); - select_soundhw(model, dev->id); - g_free(model); + if (model) { + audio_define(dev); + select_soundhw(model, dev->id); + g_free(model); + } else { + audio_define_default(dev, &error_fatal); + } break; } case QEMU_OPTION_h: |