qemu-e2k/qapi
Dorinda Bassey c2d3d1c294 audio/pwaudio.c: Add Pipewire audio backend for QEMU
This commit adds a new audiodev backend to allow QEMU to use Pipewire as
both an audio sink and source. This backend is available on most systems

Add Pipewire entry points for QEMU Pipewire audio backend
Add wrappers for QEMU Pipewire audio backend in qpw_pcm_ops()
qpw_write function returns the current state of the stream to pwaudio
and Writes some data to the server for playback streams using pipewire
spa_ringbuffer implementation.
qpw_read function returns the current state of the stream to pwaudio and
reads some data from the server for capture streams using pipewire
spa_ringbuffer implementation. These functions qpw_write and qpw_read
are called during playback and capture.
Added some functions that convert pw audio formats to QEMU audio format
and vice versa which would be needed in the pipewire audio sink and
source functions qpw_init_in() & qpw_init_out().
These methods that implement playback and recording will create streams
for playback and capture that will start processing and will result in
the on_process callbacks to be called.
Built a connection to the Pipewire sound system server in the
qpw_audio_init() method.

Signed-off-by: Dorinda Bassey <dbassey@redhat.com>
Reviewed-by: Volker Rümelin <vr_qemu@t-online.de>
Message-Id: <20230417105654.32328-1-dbassey@redhat.com>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2023-05-05 13:23:08 +04:00
..
acpi.json qapi: fix example of ACPI_DEVICE_OST event 2022-03-31 12:35:59 +02:00
audio.json audio/pwaudio.c: Add Pipewire audio backend for QEMU 2023-05-05 13:23:08 +04:00
authz.json
block-core.json qapi: Format since information the conventional way: (since X.Y) 2023-04-28 11:48:34 +02:00
block-export.json qapi: Fix bullet list markup in documentation 2023-04-28 11:48:34 +02:00
block.json qapi: Tidy up examples 2023-04-28 11:48:34 +02:00
char.json qapi: Tidy up examples 2023-04-28 11:48:34 +02:00
common.json qapi: Drop unnecessary empty lines in comments 2022-05-16 07:22:28 +02:00
compat.json qapi: Belatedly adjust limitations documentation 2022-02-28 11:39:35 +01:00
control.json qapi: Fix unintended definition lists in documentation 2023-04-28 11:48:34 +02:00
crypto.json qapi: crypto-akcipher: Introduce akcipher types to qapi 2022-05-26 11:41:42 +01:00
cryptodev.json qapi storage-daemon/qapi: Fix documentation section structure 2023-04-28 11:48:34 +02:00
cxl.json hw/mem/cxl_type3: Add CXL RAS Error Injection Support. 2023-03-07 12:39:00 -05:00
dump.json qapi: fix example of query-dump-guest-memory-capability command 2022-09-07 15:10:13 +02:00
error.json
introspect.json qapi: Add feature flags to enum members 2021-10-27 17:18:55 +02:00
job.json qapi storage-daemon/qapi: Fix documentation section structure 2023-04-28 11:48:34 +02:00
machine-target.json qapi: Fix misspelled references 2023-04-28 11:48:34 +02:00
machine.json qapi: Fix misspelled section tags in doc comments 2023-04-28 11:48:34 +02:00
meson.build hw/mem/cxl_type3: Add CXL RAS Error Injection Support. 2023-03-07 12:39:00 -05:00
migration.json qapi: Fix misspelled section tags in doc comments 2023-04-28 11:48:34 +02:00
misc-target.json qapi, i386/sev: Change the reduced-phys-bits value from 5 to 1 2023-04-28 12:50:34 +02:00
misc.json qapi: Tidy up examples 2023-04-28 11:48:34 +02:00
net.json qapi: Replace ad hoc "since" documentation by member documentation 2023-04-28 11:48:34 +02:00
opts-visitor.c
pci.json
pragma.json qapi/pragma: Tidy up comments 2022-05-16 07:31:26 +02:00
qapi-clone-visitor.c
qapi-dealloc-visitor.c
qapi-forward-visitor.c qapi: remove needless include 2022-03-22 14:46:18 +04:00
qapi-schema.json qapi storage-daemon/qapi: Fix documentation section structure 2023-04-28 11:48:34 +02:00
qapi-type-helpers.c monitor: introduce HumanReadableText and HMP support 2021-11-02 15:55:13 +00:00
qapi-util.c qapi: Fix stale reference to scripts/qapi.py in a comment 2022-02-28 11:39:35 +01:00
qapi-visit-core.c qapi: Factor out compat_policy_input_ok() 2021-10-29 21:27:20 +02:00
qdev.json qapi: Tidy up examples 2023-04-28 11:48:34 +02:00
qmp-dispatch.c monitor: mark mixed functions that can suspend 2023-04-20 11:17:35 +02:00
qmp-event.c Replace qemu_gettimeofday() with g_get_real_time() 2022-04-06 10:50:37 +02:00
qmp-registry.c qapi: Generalize command policy checking 2021-10-29 18:24:46 +02:00
qobject-input-visitor.c include: add qemu/keyval.h 2022-04-21 17:03:51 +04:00
qobject-output-visitor.c qapi: Extend -compat to set policy for unstable interfaces 2021-10-29 21:28:01 +02:00
qom.json qapi: Tidy up examples 2023-04-28 11:48:34 +02:00
rdma.json qapi: Fix argument documentation markup 2023-04-28 11:48:34 +02:00
replay.json qapi: Tidy up examples 2023-04-28 11:48:34 +02:00
rocker.json
run-state.json qmp: Deprecate 'singlestep' member of StatusInfo 2023-05-02 15:47:40 +01:00
sockets.json qapi: Stop using whitespace for alignment in comments 2022-05-16 07:26:25 +02:00
stats.json qapi: Format since information the conventional way: (since X.Y) 2023-04-28 11:48:34 +02:00
string-input-visitor.c
string-output-visitor.c qapi: remove needless include 2022-03-22 14:46:18 +04:00
tpm.json qapi: Format since information the conventional way: (since X.Y) 2023-04-28 11:48:34 +02:00
trace-events qapi: Generalize struct member policy checking 2021-10-29 18:23:09 +02:00
trace.h
trace.json qapi: Fix bullet list markup in documentation 2023-04-28 11:48:34 +02:00
transaction.json qapi: deprecate drive-backup 2021-11-09 18:21:19 +01:00
ui.json qapi: Format since information the conventional way: (since X.Y) 2023-04-28 11:48:34 +02:00
virtio.json Fix several typos in documentation (found by codespell) 2022-11-11 09:39:25 +01:00
yank.json qapi: Fix bullet list markup in documentation 2023-04-28 11:48:34 +02:00