qapi, audio: add query-audiodev command
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 alone is maybe not very useful by itself, but it makes Audiodev introspectable via 'query-qmp-schema', so that libvirt (and other upper layer tools) can discover the available audiodevs. Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> [thuth: Update for upcoming QEMU v8.0, and use QAPI_LIST_PREPEND] Message-Id: <20230123083957.20349-2-thuth@redhat.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
This commit is contained in:
parent
e59a59a457
commit
637d18090e
@ -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 "qemu/help_option.h"
|
||||
@ -2311,3 +2313,13 @@ size_t audio_rate_get_bytes(RateCtl *rate, struct audio_pcm_info *info,
|
||||
|
||||
return bytes;
|
||||
}
|
||||
|
||||
AudiodevList *qmp_query_audiodevs(Error **errp)
|
||||
{
|
||||
AudiodevList *ret = NULL;
|
||||
AudiodevListEntry *e;
|
||||
QSIMPLEQ_FOREACH(e, &audiodevs, next) {
|
||||
QAPI_LIST_PREPEND(ret, QAPI_CLONE(Audiodev, e->dev));
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
@ -443,3 +443,16 @@
|
||||
'sndio': 'AudiodevSndioOptions',
|
||||
'spice': 'AudiodevGenericOptions',
|
||||
'wav': 'AudiodevWavOptions' } }
|
||||
|
||||
##
|
||||
# @query-audiodevs:
|
||||
#
|
||||
# Returns information about audiodev configuration
|
||||
#
|
||||
# Returns: array of @Audiodev
|
||||
#
|
||||
# Since: 8.0
|
||||
#
|
||||
##
|
||||
{ 'command': 'query-audiodevs',
|
||||
'returns': ['Audiodev'] }
|
||||
|
Loading…
Reference in New Issue
Block a user