[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 1/3] qapi, audio: add query-audiodev command
From: |
Daniel P . Berrangé |
Subject: |
[PATCH 1/3] qapi, audio: add query-audiodev command |
Date: |
Tue, 2 Mar 2021 17:55:22 +0000 |
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
- Re: [PATCH 2/3] qapi, audio: respect build time conditions in audio schema, (continued)
Re: [PATCH 2/3] qapi, audio: respect build time conditions in audio schema, Markus Armbruster, 2021/03/05
[PATCH 3/3] qapi: provide a friendly string representation of QAPI classes, Daniel P . Berrangé, 2021/03/02
[PATCH 1/3] qapi, audio: add query-audiodev command,
Daniel P . Berrangé <=
Re: [PATCH 1/3] qapi, audio: add query-audiodev command, Markus Armbruster, 2021/03/05