Note: this patch depends on my not-yet-merged audio cleanup patches: https://lists.nongnu.org/archive/html/qemu-devel/2015-06/msg02558.html
This series of patches adds a new -audiodev command line option to specify audio subsytem parameters instead of environment variables. This will later allow us to specify multiple audio backends. The syntax is something like this: -audiodev driver_name,property=value,... like: -audiodev alsa,frequency=8000,channels=1 The first 6 commits are cleanup commits of the audio backends. The next commit adds a qapi Audiodev struct that describes the audio backend options. The next 4 commits are some miscellaneous additions that are needed by the last commit which finally adds the -audiodev option. For users with esoteric platforms or needs please check I did not break anything accidentally. For easier testing, pull https://github.com/DirtYiCE/qemu.git tag audio-cmdline-v1. Please review. Kővágó, Zoltán (12): audio: remove LOG_TO_MONITOR along with default_mon audio: remove plive dsoundaudio: remove *_retries kludges dsoundaudio: remove primary buffer alsaaudio: use trace events instead of verbose ossaudio: use trace events instead of debug config flag qapi: qapi for audio backends qapi: support nested structs in OptsVisitor opts: do not print separator before first item in qemu_opts_print qapi: AllocVisitor audio: use qapi AudioFormat instead of audfmt_e audio: -audiodev command line option Makefile | 4 +- audio/Makefile.objs | 2 +- audio/alsaaudio.c | 397 +++++---------- audio/audio.c | 831 +++++++++----------------------- audio/audio.h | 32 +- audio/audio_int.h | 7 +- audio/audio_legacy.c | 319 ++++++++++++ audio/audio_template.h | 54 +-- audio/audio_win_int.c | 18 +- audio/coreaudio.c | 49 +- audio/dsound_template.h | 41 +- audio/dsoundaudio.c | 228 ++------- audio/noaudio.c | 3 +- audio/ossaudio.c | 208 +++----- audio/paaudio.c | 109 ++--- audio/sdlaudio.c | 50 +- audio/spiceaudio.c | 11 +- audio/wavaudio.c | 76 +-- audio/wavcapture.c | 2 +- block.c | 2 +- hw/arm/omap2.c | 2 +- hw/audio/ac97.c | 2 +- hw/audio/adlib.c | 2 +- hw/audio/cs4231a.c | 6 +- hw/audio/es1370.c | 4 +- hw/audio/gus.c | 2 +- hw/audio/hda-codec.c | 18 +- hw/audio/lm4549.c | 6 +- hw/audio/milkymist-ac97.c | 2 +- hw/audio/pcspk.c | 2 +- hw/audio/sb16.c | 14 +- hw/audio/wm8750.c | 4 +- hw/input/tsc210x.c | 2 +- hw/usb/dev-audio.c | 2 +- include/monitor/monitor.h | 1 - include/qapi/alloc-visitor.h | 18 + monitor.c | 4 - qapi-schema.json | 3 + qapi/Makefile.objs | 1 + qapi/alloc-visitor.c | 62 +++ qapi/audio.json | 217 +++++++++ qapi/opts-visitor.c | 144 ++++-- qemu-options.hx | 218 ++++++++- tests/qapi-schema/qapi-schema-test.json | 9 +- tests/test-opts-visitor.c | 34 ++ trace-events | 16 + ui/vnc.c | 14 +- util/qemu-option.c | 5 +- vl.c | 9 +- 49 files changed, 1663 insertions(+), 1603 deletions(-) create mode 100644 audio/audio_legacy.c create mode 100644 include/qapi/alloc-visitor.h create mode 100644 qapi/alloc-visitor.c create mode 100644 qapi/audio.json -- 2.4.2