This patch series adds support to multiple audio backends.  The first
part of the series (until -audiodev command line option) was submitted
multiple times, see
http://lists.nongnu.org/archive/html/qemu-devel/2015-06/msg05037.html
and
http://lists.nongnu.org/archive/html/qemu-devel/2015-07/msg00920.html

Afterwards I add support to multiple backends.  Audio fronteds gain a
new audiodev option to specify the id of the audiodev to use.  The
audiodev= option is required, unless you use the old environment
variable based configuration, in that case it must not used (and you
can't use multiple backends).

Finally I also make mixeng usage optional, it can save us some useless
format converting when not needed.  Also makes easier to support formats
currently not supported by qemu (as only the backend has to support it,
not the mixeng).

For easier testing pull https://github.com/DirtYiCE/qemu.git tag 
audio-multi-v1.

Please review.

Kővágó, Zoltán (25):
  qapi: support implicit structs in OptsVisitor
  qapi: convert NumaOptions into a flat union
  net: remove NetLegacy struct
  net: use Netdev instead of NetClientOptions in client init
  qapi: change Netdev into a flat union
  qapi: reorder NetdevBase and Netdev
  qapi: qapi for audio backends
  qapi: support nested structs in OptsVisitor
  audio: use qapi AudioFormat instead of audfmt_e
  audio: -audiodev command line option
  audio: reduce glob_audio_state usage
  audio: basic support for multi backend audio
  audio: add audiodev properties to frontends
  audio: audiodev= parameters no longer optional when -audiodev present
  paaudio: do not create multiple connections to the same server
  paaudio: properly disconnect streams in fini_*
  audio: remove gcc specific audio_MIN, audio_MAX
  audio: do not run each backend in audio_run
  paaudio: fix playback glitches
  audio: remove mixeng specific code from backends
  audio: common rate control code for timer based outputs
  audio: add mixeng option (documentation)
  audio: make mixeng optional
  paaudio: get/put_buffer functions
  audio: split ctl_* functions into enable_* and volume_*

 Makefile                                |    4 +-
 audio/Makefile.objs                     |    3 +-
 audio/alsaaudio.c                       |  739 +++++-----------
 audio/audio.c                           | 1436 +++++++++++++++----------------
 audio/audio.h                           |   67 +-
 audio/audio_int.h                       |  121 +--
 audio/audio_legacy.c                    |  328 +++++++
 audio/audio_pt_int.c                    |  173 ----
 audio/audio_pt_int.h                    |   22 -
 audio/audio_template.h                  |   99 +--
 audio/audio_win_int.c                   |   18 +-
 audio/coreaudio.c                       |  198 ++---
 audio/dsound_template.h                 |   59 +-
 audio/dsoundaudio.c                     |  444 +++-------
 audio/mixeng.h                          |   11 +-
 audio/noaudio.c                         |   98 +--
 audio/ossaudio.c                        |  589 +++++--------
 audio/paaudio.c                         |  860 ++++++++----------
 audio/rate_template.h                   |    2 +-
 audio/sdlaudio.c                        |  183 ++--
 audio/spiceaudio.c                      |  283 ++----
 audio/wavaudio.c                        |  156 +---
 audio/wavcapture.c                      |    8 +-
 configure                               |    5 -
 hmp-commands.hx                         |   11 +-
 hw/arm/musicpal.c                       |    2 +-
 hw/arm/omap2.c                          |    2 +-
 hw/audio/ac97.c                         |    3 +-
 hw/audio/adlib.c                        |    3 +-
 hw/audio/cs4231a.c                      |    7 +-
 hw/audio/es1370.c                       |   11 +-
 hw/audio/gus.c                          |    3 +-
 hw/audio/hda-codec.c                    |   19 +-
 hw/audio/lm4549.c                       |    6 +-
 hw/audio/milkymist-ac97.c               |    8 +-
 hw/audio/pcspk.c                        |    3 +-
 hw/audio/pl041.c                        |    1 +
 hw/audio/sb16.c                         |   15 +-
 hw/audio/wm8750.c                       |   10 +-
 hw/core/qdev-properties-system.c        |   59 +-
 hw/input/tsc210x.c                      |    2 +-
 hw/net/allwinner_emac.c                 |    2 +-
 hw/net/cadence_gem.c                    |    2 +-
 hw/net/dp8393x.c                        |    2 +-
 hw/net/e1000.c                          |    2 +-
 hw/net/eepro100.c                       |    2 +-
 hw/net/etraxfs_eth.c                    |    2 +-
 hw/net/fsl_etsec/etsec.c                |    2 +-
 hw/net/lan9118.c                        |    2 +-
 hw/net/lance.c                          |    2 +-
 hw/net/mcf_fec.c                        |    2 +-
 hw/net/milkymist-minimac2.c             |    2 +-
 hw/net/mipsnet.c                        |    2 +-
 hw/net/ne2000-isa.c                     |    2 +-
 hw/net/ne2000.c                         |    2 +-
 hw/net/opencores_eth.c                  |    2 +-
 hw/net/pcnet-pci.c                      |    2 +-
 hw/net/rocker/rocker_fp.c               |    2 +-
 hw/net/rtl8139.c                        |    2 +-
 hw/net/smc91c111.c                      |    2 +-
 hw/net/spapr_llan.c                     |    2 +-
 hw/net/stellaris_enet.c                 |    2 +-
 hw/net/vhost_net.c                      |   18 +-
 hw/net/virtio-net.c                     |    6 +-
 hw/net/vmxnet3.c                        |    2 +-
 hw/net/xen_nic.c                        |    2 +-
 hw/net/xgmac.c                          |    2 +-
 hw/net/xilinx_axienet.c                 |    2 +-
 hw/net/xilinx_ethlite.c                 |    2 +-
 hw/usb/dev-audio.c                      |    3 +-
 hw/usb/dev-network.c                    |    2 +-
 include/hw/qdev-properties.h            |    3 +
 include/net/net.h                       |    4 +-
 monitor.c                               |   26 +-
 net/clients.h                           |   20 +-
 net/dump.c                              |    8 +-
 net/hub.c                               |   24 +-
 net/l2tpv3.c                            |    8 +-
 net/net.c                               |  129 ++-
 net/netmap.c                            |    6 +-
 net/slirp.c                             |    8 +-
 net/socket.c                            |   10 +-
 net/tap-win32.c                         |    8 +-
 net/tap.c                               |   28 +-
 net/vde.c                               |    8 +-
 net/vhost-user.c                        |   14 +-
 numa.c                                  |    2 +-
 qapi-schema.json                        |  132 +--
 qapi/audio.json                         |  268 ++++++
 qapi/opts-visitor.c                     |  129 ++-
 qemu-options.hx                         |  237 ++++-
 tests/qapi-schema/qapi-schema-test.json |    9 +-
 tests/test-opts-visitor.c               |   34 +
 ui/vnc.c                                |   29 +-
 ui/vnc.h                                |    2 +
 vl.c                                    |   11 +-
 96 files changed, 3553 insertions(+), 3756 deletions(-)
 create mode 100644 audio/audio_legacy.c
 delete mode 100644 audio/audio_pt_int.c
 delete mode 100644 audio/audio_pt_int.h
 create mode 100644 qapi/audio.json

-- 
2.4.5


Reply via email to