From: "Daniel P. Berrangé" <berrange@redhat.com>
To: qemu-devel@nongnu.org
Cc: "Michael Roth" <michael.roth@amd.com>,
"Daniel P. Berrangé" <berrange@redhat.com>,
"Markus Armbruster" <armbru@redhat.com>,
"Gerd Hoffmann" <kraxel@redhat.com>
Subject: [PATCH 1/3] qapi, audio: add query-audiodev command
Date: Tue, 2 Mar 2021 17:55:22 +0000 [thread overview]
Message-ID: <20210302175524.1290840-2-berrange@redhat.com> (raw)
In-Reply-To: <20210302175524.1290840-1-berrange@redhat.com>
Way back in QEMU 4.0, the -audiodev command line option was introduced
for configuring audio backends. This CLI option does not use QemuOpts
so it is not visible for introspection in 'query-command-line-options',
instead using the QAPI Audiodev type. Unfortunately there is also no
QMP command that uses the Audiodev type, so it is not introspectable
with 'query-qmp-schema' either.
This introduces a 'query-audiodev' command that simply reflects back
the list of configured -audiodev command line options. This in turn
makes Audiodev introspectable via 'query-qmp-schema'.
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
---
audio/audio.c | 19 +++++++++++++++++++
qapi/audio.json | 13 +++++++++++++
2 files changed, 32 insertions(+)
diff --git a/audio/audio.c b/audio/audio.c
index 6734c8af70..40a4bbd7ce 100644
--- a/audio/audio.c
+++ b/audio/audio.c
@@ -28,8 +28,10 @@
#include "monitor/monitor.h"
#include "qemu/timer.h"
#include "qapi/error.h"
+#include "qapi/clone-visitor.h"
#include "qapi/qobject-input-visitor.h"
#include "qapi/qapi-visit-audio.h"
+#include "qapi/qapi-commands-audio.h"
#include "qemu/cutils.h"
#include "qemu/module.h"
#include "sysemu/replay.h"
@@ -2201,3 +2203,20 @@ size_t audio_rate_get_bytes(struct audio_pcm_info *info, RateCtl *rate,
rate->bytes_sent += ret;
return ret;
}
+
+AudiodevList *qmp_query_audiodevs(Error **errp)
+{
+ AudiodevList *ret = NULL, *prev = NULL, *curr;
+ AudiodevListEntry *e;
+ QSIMPLEQ_FOREACH(e, &audiodevs, next) {
+ curr = g_new0(AudiodevList, 1);
+ curr->value = QAPI_CLONE(Audiodev, e->dev);
+ if (prev) {
+ prev->next = curr;
+ prev = curr;
+ } else {
+ ret = prev = curr;
+ }
+ }
+ return ret;
+}
diff --git a/qapi/audio.json b/qapi/audio.json
index 9cba0df8a4..d7b91230d7 100644
--- a/qapi/audio.json
+++ b/qapi/audio.json
@@ -419,3 +419,16 @@
'sdl': 'AudiodevSdlOptions',
'spice': 'AudiodevGenericOptions',
'wav': 'AudiodevWavOptions' } }
+
+##
+# @query-audiodevs:
+#
+# Returns information about audiodev configuration
+#
+# Returns: array of @Audiodev
+#
+# Since: 6.0
+#
+##
+{ 'command': 'query-audiodevs',
+ 'returns': ['Audiodev'] }
--
2.29.2
next prev parent reply other threads:[~2021-03-02 17:57 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-03-02 17:55 [PATCH 0/3] audio: make audiodev introspectable by mgmt apps Daniel P. Berrangé
2021-03-02 17:55 ` Daniel P. Berrangé [this message]
2021-03-02 19:03 ` [PATCH 1/3] qapi, audio: add query-audiodev command Eric Blake
2021-03-02 21:10 ` Philippe Mathieu-Daudé
2021-03-02 21:12 ` Philippe Mathieu-Daudé
2021-03-03 10:07 ` Daniel P. Berrangé
2021-03-03 10:08 ` Daniel P. Berrangé
2021-03-05 13:01 ` Markus Armbruster
2021-03-11 11:00 ` Daniel P. Berrangé
2021-03-02 17:55 ` [PATCH 2/3] qapi, audio: respect build time conditions in audio schema Daniel P. Berrangé
2021-03-02 19:05 ` Eric Blake
2021-03-03 10:09 ` Daniel P. Berrangé
2021-03-03 7:00 ` Gerd Hoffmann
2021-03-03 10:11 ` Daniel P. Berrangé
2021-03-05 10:56 ` Markus Armbruster
2021-03-11 11:04 ` Daniel P. Berrangé
2021-03-05 12:12 ` Markus Armbruster
2022-12-12 16:53 ` Thomas Huth
2022-12-14 11:28 ` Daniel P. Berrangé
2021-03-02 17:55 ` [PATCH 3/3] qapi: provide a friendly string representation of QAPI classes Daniel P. Berrangé
2021-03-02 19:06 ` Eric Blake
2021-03-02 21:02 ` Philippe Mathieu-Daudé
2021-03-05 13:18 ` Markus Armbruster
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210302175524.1290840-2-berrange@redhat.com \
--to=berrange@redhat.com \
--cc=armbru@redhat.com \
--cc=kraxel@redhat.com \
--cc=michael.roth@amd.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).