xref: /openbmc/qemu/qapi/audio.json (revision f44ccac2c0c4c8dc8007b8647e50dcfb16fe7cce)
18c3a7d00SKővágó, Zoltán# -*- mode: python -*-
27e7237cdSVictor Toso# vim: filetype=python
38c3a7d00SKővágó, Zoltán#
48c3a7d00SKővágó, Zoltán# Copyright (C) 2015-2019 Zoltán Kővágó <DirtY.iCE.hu@gmail.com>
58c3a7d00SKővágó, Zoltán#
68c3a7d00SKővágó, Zoltán# This work is licensed under the terms of the GNU GPL, version 2 or later.
78c3a7d00SKővágó, Zoltán# See the COPYING file in the top-level directory.
88c3a7d00SKővágó, Zoltán
98c3a7d00SKővágó, Zoltán##
10a1d12a21SMarkus Armbruster# = Audio
11a1d12a21SMarkus Armbruster##
12a1d12a21SMarkus Armbruster
13a1d12a21SMarkus Armbruster##
148c3a7d00SKővágó, Zoltán# @AudiodevPerDirectionOptions:
158c3a7d00SKővágó, Zoltán#
168c3a7d00SKővágó, Zoltán# General audio backend options that are used for both playback and
178c3a7d00SKővágó, Zoltán# recording.
188c3a7d00SKővágó, Zoltán#
19a937b6aaSMarkus Armbruster# @mixing-engine: use QEMU's mixing engine to mix all streams inside
20a937b6aaSMarkus Armbruster#     QEMU and convert audio formats when not supported by the
21a937b6aaSMarkus Armbruster#     backend.  When set to off, fixed-settings must be also off
22a937b6aaSMarkus Armbruster#     (default on, since 4.2)
238efac073SKővágó, Zoltán#
24a937b6aaSMarkus Armbruster# @fixed-settings: use fixed settings for host input/output.  When
25a937b6aaSMarkus Armbruster#     off, frequency, channels and format must not be specified
26a937b6aaSMarkus Armbruster#     (default true)
278c3a7d00SKővágó, Zoltán#
28a937b6aaSMarkus Armbruster# @frequency: frequency to use when using fixed settings (default
29a937b6aaSMarkus Armbruster#     44100)
308c3a7d00SKővágó, Zoltán#
318c3a7d00SKővágó, Zoltán# @channels: number of channels when using fixed settings (default 2)
328c3a7d00SKővágó, Zoltán#
338c3a7d00SKővágó, Zoltán# @voices: number of voices to use (default 1)
348c3a7d00SKővágó, Zoltán#
35a937b6aaSMarkus Armbruster# @format: sample format to use when using fixed settings (default
36a937b6aaSMarkus Armbruster#     s16)
378c3a7d00SKővágó, Zoltán#
388c3a7d00SKővágó, Zoltán# @buffer-length: the buffer length in microseconds
398c3a7d00SKővágó, Zoltán#
408c3a7d00SKővágó, Zoltán# Since: 4.0
418c3a7d00SKővágó, Zoltán##
428c3a7d00SKővágó, Zoltán{ 'struct': 'AudiodevPerDirectionOptions',
438c3a7d00SKővágó, Zoltán  'data': {
448efac073SKővágó, Zoltán    '*mixing-engine':  'bool',
458c3a7d00SKővágó, Zoltán    '*fixed-settings': 'bool',
468c3a7d00SKővágó, Zoltán    '*frequency':      'uint32',
478c3a7d00SKővágó, Zoltán    '*channels':       'uint32',
488c3a7d00SKővágó, Zoltán    '*voices':         'uint32',
498c3a7d00SKővágó, Zoltán    '*format':         'AudioFormat',
508c3a7d00SKővágó, Zoltán    '*buffer-length':  'uint32' } }
518c3a7d00SKővágó, Zoltán
528c3a7d00SKővágó, Zoltán##
538c3a7d00SKővágó, Zoltán# @AudiodevGenericOptions:
548c3a7d00SKővágó, Zoltán#
558c3a7d00SKővágó, Zoltán# Generic driver-specific options.
568c3a7d00SKővágó, Zoltán#
578c3a7d00SKővágó, Zoltán# @in: options of the capture stream
588c3a7d00SKővágó, Zoltán#
598c3a7d00SKővágó, Zoltán# @out: options of the playback stream
608c3a7d00SKővágó, Zoltán#
618c3a7d00SKővágó, Zoltán# Since: 4.0
628c3a7d00SKővágó, Zoltán##
638c3a7d00SKővágó, Zoltán{ 'struct': 'AudiodevGenericOptions',
648c3a7d00SKővágó, Zoltán  'data': {
658c3a7d00SKővágó, Zoltán    '*in':  'AudiodevPerDirectionOptions',
668c3a7d00SKővágó, Zoltán    '*out': 'AudiodevPerDirectionOptions' } }
678c3a7d00SKővágó, Zoltán
688c3a7d00SKővágó, Zoltán##
698c3a7d00SKővágó, Zoltán# @AudiodevAlsaPerDirectionOptions:
708c3a7d00SKővágó, Zoltán#
718c3a7d00SKővágó, Zoltán# Options of the ALSA backend that are used for both playback and
728c3a7d00SKővágó, Zoltán# recording.
738c3a7d00SKővágó, Zoltán#
748c3a7d00SKővágó, Zoltán# @dev: the name of the ALSA device to use (default 'default')
758c3a7d00SKővágó, Zoltán#
768c3a7d00SKővágó, Zoltán# @period-length: the period length in microseconds
778c3a7d00SKővágó, Zoltán#
788c3a7d00SKővágó, Zoltán# @try-poll: attempt to use poll mode, falling back to non-polling
798c3a7d00SKővágó, Zoltán#     access on failure (default true)
808c3a7d00SKővágó, Zoltán#
818c3a7d00SKővágó, Zoltán# Since: 4.0
828c3a7d00SKővágó, Zoltán##
838c3a7d00SKővágó, Zoltán{ 'struct': 'AudiodevAlsaPerDirectionOptions',
848c3a7d00SKővágó, Zoltán  'base': 'AudiodevPerDirectionOptions',
858c3a7d00SKővágó, Zoltán  'data': {
868c3a7d00SKővágó, Zoltán    '*dev':           'str',
878c3a7d00SKővágó, Zoltán    '*period-length': 'uint32',
888c3a7d00SKővágó, Zoltán    '*try-poll':      'bool' } }
898c3a7d00SKővágó, Zoltán
908c3a7d00SKővágó, Zoltán##
918c3a7d00SKővágó, Zoltán# @AudiodevAlsaOptions:
928c3a7d00SKővágó, Zoltán#
938c3a7d00SKővágó, Zoltán# Options of the ALSA audio backend.
948c3a7d00SKővágó, Zoltán#
958c3a7d00SKővágó, Zoltán# @in: options of the capture stream
968c3a7d00SKővágó, Zoltán#
978c3a7d00SKővágó, Zoltán# @out: options of the playback stream
988c3a7d00SKővágó, Zoltán#
998c3a7d00SKővágó, Zoltán# @threshold: set the threshold (in microseconds) when playback starts
1008c3a7d00SKővágó, Zoltán#
1018c3a7d00SKővágó, Zoltán# Since: 4.0
1028c3a7d00SKővágó, Zoltán##
1038c3a7d00SKővágó, Zoltán{ 'struct': 'AudiodevAlsaOptions',
1048c3a7d00SKővágó, Zoltán  'data': {
1058c3a7d00SKővágó, Zoltán    '*in':        'AudiodevAlsaPerDirectionOptions',
1068c3a7d00SKővágó, Zoltán    '*out':       'AudiodevAlsaPerDirectionOptions',
1078c3a7d00SKővágó, Zoltán    '*threshold': 'uint32' } }
1088c3a7d00SKővágó, Zoltán
1098c3a7d00SKővágó, Zoltán##
110663df1ccSAlexandre Ratchov# @AudiodevSndioOptions:
111663df1ccSAlexandre Ratchov#
112663df1ccSAlexandre Ratchov# Options of the sndio audio backend.
113663df1ccSAlexandre Ratchov#
114663df1ccSAlexandre Ratchov# @in: options of the capture stream
115663df1ccSAlexandre Ratchov#
116663df1ccSAlexandre Ratchov# @out: options of the playback stream
117663df1ccSAlexandre Ratchov#
118663df1ccSAlexandre Ratchov# @dev: the name of the sndio device to use (default 'default')
119663df1ccSAlexandre Ratchov#
120663df1ccSAlexandre Ratchov# @latency: play buffer size (in microseconds)
121663df1ccSAlexandre Ratchov#
122663df1ccSAlexandre Ratchov# Since: 7.2
123663df1ccSAlexandre Ratchov##
124663df1ccSAlexandre Ratchov{ 'struct': 'AudiodevSndioOptions',
125663df1ccSAlexandre Ratchov  'data': {
126663df1ccSAlexandre Ratchov    '*in':        'AudiodevPerDirectionOptions',
127663df1ccSAlexandre Ratchov    '*out':       'AudiodevPerDirectionOptions',
128663df1ccSAlexandre Ratchov    '*dev':       'str',
129663df1ccSAlexandre Ratchov    '*latency':   'uint32'} }
130663df1ccSAlexandre Ratchov
131663df1ccSAlexandre Ratchov##
1328c3a7d00SKővágó, Zoltán# @AudiodevCoreaudioPerDirectionOptions:
1338c3a7d00SKővágó, Zoltán#
134a937b6aaSMarkus Armbruster# Options of the Core Audio backend that are used for both playback
135a937b6aaSMarkus Armbruster# and recording.
1368c3a7d00SKővágó, Zoltán#
1378c3a7d00SKővágó, Zoltán# @buffer-count: number of buffers
1388c3a7d00SKővágó, Zoltán#
1398c3a7d00SKővágó, Zoltán# Since: 4.0
1408c3a7d00SKővágó, Zoltán##
1418c3a7d00SKővágó, Zoltán{ 'struct': 'AudiodevCoreaudioPerDirectionOptions',
1428c3a7d00SKővágó, Zoltán  'base': 'AudiodevPerDirectionOptions',
1438c3a7d00SKővágó, Zoltán  'data': {
1448c3a7d00SKővágó, Zoltán    '*buffer-count': 'uint32' } }
1458c3a7d00SKővágó, Zoltán
1468c3a7d00SKővágó, Zoltán##
1478c3a7d00SKővágó, Zoltán# @AudiodevCoreaudioOptions:
1488c3a7d00SKővágó, Zoltán#
1498c3a7d00SKővágó, Zoltán# Options of the coreaudio audio backend.
1508c3a7d00SKővágó, Zoltán#
1518c3a7d00SKővágó, Zoltán# @in: options of the capture stream
1528c3a7d00SKővágó, Zoltán#
1538c3a7d00SKővágó, Zoltán# @out: options of the playback stream
1548c3a7d00SKővágó, Zoltán#
1558c3a7d00SKővágó, Zoltán# Since: 4.0
1568c3a7d00SKővágó, Zoltán##
1578c3a7d00SKővágó, Zoltán{ 'struct': 'AudiodevCoreaudioOptions',
1588c3a7d00SKővágó, Zoltán  'data': {
1598c3a7d00SKővágó, Zoltán    '*in':  'AudiodevCoreaudioPerDirectionOptions',
1608c3a7d00SKővágó, Zoltán    '*out': 'AudiodevCoreaudioPerDirectionOptions' } }
1618c3a7d00SKővágó, Zoltán
1628c3a7d00SKővágó, Zoltán##
1638c3a7d00SKővágó, Zoltán# @AudiodevDsoundOptions:
1648c3a7d00SKővágó, Zoltán#
1658c3a7d00SKővágó, Zoltán# Options of the DirectSound audio backend.
1668c3a7d00SKővágó, Zoltán#
1678c3a7d00SKővágó, Zoltán# @in: options of the capture stream
1688c3a7d00SKővágó, Zoltán#
1698c3a7d00SKővágó, Zoltán# @out: options of the playback stream
1708c3a7d00SKővágó, Zoltán#
171a937b6aaSMarkus Armbruster# @latency: add extra latency to playback in microseconds (default
172a937b6aaSMarkus Armbruster#     10000)
1738c3a7d00SKővágó, Zoltán#
1748c3a7d00SKővágó, Zoltán# Since: 4.0
1758c3a7d00SKővágó, Zoltán##
1768c3a7d00SKővágó, Zoltán{ 'struct': 'AudiodevDsoundOptions',
1778c3a7d00SKővágó, Zoltán  'data': {
1788c3a7d00SKővágó, Zoltán    '*in':      'AudiodevPerDirectionOptions',
1798c3a7d00SKővágó, Zoltán    '*out':     'AudiodevPerDirectionOptions',
1808c3a7d00SKővágó, Zoltán    '*latency': 'uint32' } }
1818c3a7d00SKővágó, Zoltán
1828c3a7d00SKővágó, Zoltán##
1832e445703SGeoffrey McRae# @AudiodevJackPerDirectionOptions:
1842e445703SGeoffrey McRae#
1852e445703SGeoffrey McRae# Options of the JACK backend that are used for both playback and
1862e445703SGeoffrey McRae# recording.
1872e445703SGeoffrey McRae#
188a937b6aaSMarkus Armbruster# @server-name: select from among several possible concurrent server
189a937b6aaSMarkus Armbruster#     instances (default: environment variable $JACK_DEFAULT_SERVER if
190a937b6aaSMarkus Armbruster#     set, else "default")
1912e445703SGeoffrey McRae#
192a937b6aaSMarkus Armbruster# @client-name: the client name to use.  The server will modify this
193a937b6aaSMarkus Armbruster#     name to create a unique variant, if needed unless @exact-name is
194a937b6aaSMarkus Armbruster#     true (default: the guest's name)
1952e445703SGeoffrey McRae#
196a937b6aaSMarkus Armbruster# @connect-ports: if set, a regular expression of JACK client port
197a937b6aaSMarkus Armbruster#     name(s) to monitor for and automatically connect to
1982e445703SGeoffrey McRae#
199a937b6aaSMarkus Armbruster# @start-server: start a jack server process if one is not already
200a937b6aaSMarkus Armbruster#     present (default: false)
2012e445703SGeoffrey McRae#
202a937b6aaSMarkus Armbruster# @exact-name: use the exact name requested otherwise JACK
203a937b6aaSMarkus Armbruster#     automatically generates a unique one, if needed (default: false)
2042e445703SGeoffrey McRae#
2052e445703SGeoffrey McRae# Since: 5.1
2062e445703SGeoffrey McRae##
2072e445703SGeoffrey McRae{ 'struct': 'AudiodevJackPerDirectionOptions',
2082e445703SGeoffrey McRae  'base': 'AudiodevPerDirectionOptions',
2092e445703SGeoffrey McRae  'data': {
2102e445703SGeoffrey McRae    '*server-name':   'str',
2112e445703SGeoffrey McRae    '*client-name':   'str',
2122e445703SGeoffrey McRae    '*connect-ports': 'str',
2132e445703SGeoffrey McRae    '*start-server':  'bool',
2142e445703SGeoffrey McRae    '*exact-name':    'bool' } }
2152e445703SGeoffrey McRae
2162e445703SGeoffrey McRae##
2172e445703SGeoffrey McRae# @AudiodevJackOptions:
2182e445703SGeoffrey McRae#
2192e445703SGeoffrey McRae# Options of the JACK audio backend.
2202e445703SGeoffrey McRae#
2212e445703SGeoffrey McRae# @in: options of the capture stream
2222e445703SGeoffrey McRae#
2232e445703SGeoffrey McRae# @out: options of the playback stream
2242e445703SGeoffrey McRae#
2252e445703SGeoffrey McRae# Since: 5.1
2262e445703SGeoffrey McRae##
2272e445703SGeoffrey McRae{ 'struct': 'AudiodevJackOptions',
2282e445703SGeoffrey McRae  'data': {
2292e445703SGeoffrey McRae    '*in':  'AudiodevJackPerDirectionOptions',
2302e445703SGeoffrey McRae    '*out': 'AudiodevJackPerDirectionOptions' } }
2312e445703SGeoffrey McRae
2322e445703SGeoffrey McRae##
2338c3a7d00SKővágó, Zoltán# @AudiodevOssPerDirectionOptions:
2348c3a7d00SKővágó, Zoltán#
2358c3a7d00SKővágó, Zoltán# Options of the OSS backend that are used for both playback and
2368c3a7d00SKővágó, Zoltán# recording.
2378c3a7d00SKővágó, Zoltán#
2388c3a7d00SKővágó, Zoltán# @dev: file name of the OSS device (default '/dev/dsp')
2398c3a7d00SKővágó, Zoltán#
2408c3a7d00SKővágó, Zoltán# @buffer-count: number of buffers
2418c3a7d00SKővágó, Zoltán#
2428c3a7d00SKővágó, Zoltán# @try-poll: attempt to use poll mode, falling back to non-polling
2438c3a7d00SKővágó, Zoltán#     access on failure (default true)
2448c3a7d00SKővágó, Zoltán#
2458c3a7d00SKővágó, Zoltán# Since: 4.0
2468c3a7d00SKővágó, Zoltán##
2478c3a7d00SKővágó, Zoltán{ 'struct': 'AudiodevOssPerDirectionOptions',
2488c3a7d00SKővágó, Zoltán  'base': 'AudiodevPerDirectionOptions',
2498c3a7d00SKővágó, Zoltán  'data': {
2508c3a7d00SKővágó, Zoltán    '*dev':          'str',
2518c3a7d00SKővágó, Zoltán    '*buffer-count': 'uint32',
2528c3a7d00SKővágó, Zoltán    '*try-poll':     'bool' } }
2538c3a7d00SKővágó, Zoltán
2548c3a7d00SKővágó, Zoltán##
2558c3a7d00SKővágó, Zoltán# @AudiodevOssOptions:
2568c3a7d00SKővágó, Zoltán#
2578c3a7d00SKővágó, Zoltán# Options of the OSS audio backend.
2588c3a7d00SKővágó, Zoltán#
2598c3a7d00SKővágó, Zoltán# @in: options of the capture stream
2608c3a7d00SKővágó, Zoltán#
2618c3a7d00SKővágó, Zoltán# @out: options of the playback stream
2628c3a7d00SKővágó, Zoltán#
2638c3a7d00SKővágó, Zoltán# @try-mmap: try using memory-mapped access, falling back to
2648c3a7d00SKővágó, Zoltán#     non-memory-mapped access on failure (default true)
2658c3a7d00SKővágó, Zoltán#
266a937b6aaSMarkus Armbruster# @exclusive: open device in exclusive mode (vmix won't work) (default
267a937b6aaSMarkus Armbruster#     false)
2688c3a7d00SKővágó, Zoltán#
2698c3a7d00SKővágó, Zoltán# @dsp-policy: set the timing policy of the device (between 0 and 10,
270a937b6aaSMarkus Armbruster#     where smaller number means smaller latency but higher CPU usage)
271a937b6aaSMarkus Armbruster#     or -1 to use fragment mode (option ignored on some platforms)
272a937b6aaSMarkus Armbruster#     (default 5)
2738c3a7d00SKővágó, Zoltán#
2748c3a7d00SKővágó, Zoltán# Since: 4.0
2758c3a7d00SKővágó, Zoltán##
2768c3a7d00SKővágó, Zoltán{ 'struct': 'AudiodevOssOptions',
2778c3a7d00SKővágó, Zoltán  'data': {
2788c3a7d00SKővágó, Zoltán    '*in':         'AudiodevOssPerDirectionOptions',
2798c3a7d00SKővágó, Zoltán    '*out':        'AudiodevOssPerDirectionOptions',
2808c3a7d00SKővágó, Zoltán    '*try-mmap':   'bool',
2818c3a7d00SKővágó, Zoltán    '*exclusive':  'bool',
2828c3a7d00SKővágó, Zoltán    '*dsp-policy': 'uint32' } }
2838c3a7d00SKővágó, Zoltán
2848c3a7d00SKővágó, Zoltán##
2858c3a7d00SKővágó, Zoltán# @AudiodevPaPerDirectionOptions:
2868c3a7d00SKővágó, Zoltán#
287a937b6aaSMarkus Armbruster# Options of the Pulseaudio backend that are used for both playback
288a937b6aaSMarkus Armbruster# and recording.
2898c3a7d00SKővágó, Zoltán#
2908c3a7d00SKővágó, Zoltán# @name: name of the sink/source to use
2918c3a7d00SKővágó, Zoltán#
292f47dffe8SKővágó, Zoltán# @stream-name: name of the PulseAudio stream created by qemu.  Can be
293a937b6aaSMarkus Armbruster#     used to identify the stream in PulseAudio when you create
294a937b6aaSMarkus Armbruster#     multiple PulseAudio devices or run multiple qemu instances
295a937b6aaSMarkus Armbruster#     (default: audiodev's id, since 4.2)
296f47dffe8SKővágó, Zoltán#
297f6142777SMartin Schrodt# @latency: latency you want PulseAudio to achieve in microseconds
298f6142777SMartin Schrodt#     (default 15000)
299f6142777SMartin Schrodt#
3008c3a7d00SKővágó, Zoltán# Since: 4.0
3018c3a7d00SKővágó, Zoltán##
3028c3a7d00SKővágó, Zoltán{ 'struct': 'AudiodevPaPerDirectionOptions',
3038c3a7d00SKővágó, Zoltán  'base': 'AudiodevPerDirectionOptions',
3048c3a7d00SKővágó, Zoltán  'data': {
305f6142777SMartin Schrodt    '*name': 'str',
306f47dffe8SKővágó, Zoltán    '*stream-name': 'str',
307f6142777SMartin Schrodt    '*latency': 'uint32' } }
3088c3a7d00SKővágó, Zoltán
3098c3a7d00SKővágó, Zoltán##
3108c3a7d00SKővágó, Zoltán# @AudiodevPaOptions:
3118c3a7d00SKővágó, Zoltán#
3128c3a7d00SKővágó, Zoltán# Options of the PulseAudio audio backend.
3138c3a7d00SKővágó, Zoltán#
3148c3a7d00SKővágó, Zoltán# @in: options of the capture stream
3158c3a7d00SKővágó, Zoltán#
3168c3a7d00SKővágó, Zoltán# @out: options of the playback stream
3178c3a7d00SKővágó, Zoltán#
3188c3a7d00SKővágó, Zoltán# @server: PulseAudio server address (default: let PulseAudio choose)
3198c3a7d00SKővágó, Zoltán#
3208c3a7d00SKővágó, Zoltán# Since: 4.0
3218c3a7d00SKővágó, Zoltán##
3228c3a7d00SKővágó, Zoltán{ 'struct': 'AudiodevPaOptions',
3238c3a7d00SKővágó, Zoltán  'data': {
3248c3a7d00SKővágó, Zoltán    '*in':     'AudiodevPaPerDirectionOptions',
3258c3a7d00SKővágó, Zoltán    '*out':    'AudiodevPaPerDirectionOptions',
3268c3a7d00SKővágó, Zoltán    '*server': 'str' } }
3278c3a7d00SKővágó, Zoltán
3288c3a7d00SKővágó, Zoltán##
329c2d3d1c2SDorinda Bassey# @AudiodevPipewirePerDirectionOptions:
330c2d3d1c2SDorinda Bassey#
331*20c51248SMarc-André Lureau# Options of the PipeWire backend that are used for both playback and
332c2d3d1c2SDorinda Bassey# recording.
333c2d3d1c2SDorinda Bassey#
334c2d3d1c2SDorinda Bassey# @name: name of the sink/source to use
335c2d3d1c2SDorinda Bassey#
336*20c51248SMarc-André Lureau# @stream-name: name of the PipeWire stream created by qemu.  Can be
337*20c51248SMarc-André Lureau#     used to identify the stream in PipeWire when you create multiple
338*20c51248SMarc-André Lureau#     PipeWire devices or run multiple qemu instances (default:
339a937b6aaSMarkus Armbruster#     audiodev's id)
340c2d3d1c2SDorinda Bassey#
341*20c51248SMarc-André Lureau# @latency: latency you want PipeWire to achieve in microseconds
342c2d3d1c2SDorinda Bassey#     (default 46000)
343c2d3d1c2SDorinda Bassey#
344c2d3d1c2SDorinda Bassey# Since: 8.1
345c2d3d1c2SDorinda Bassey##
346c2d3d1c2SDorinda Bassey{ 'struct': 'AudiodevPipewirePerDirectionOptions',
347c2d3d1c2SDorinda Bassey  'base': 'AudiodevPerDirectionOptions',
348c2d3d1c2SDorinda Bassey  'data': {
349c2d3d1c2SDorinda Bassey    '*name': 'str',
350c2d3d1c2SDorinda Bassey    '*stream-name': 'str',
351c2d3d1c2SDorinda Bassey    '*latency': 'uint32' } }
352c2d3d1c2SDorinda Bassey
353c2d3d1c2SDorinda Bassey##
354c2d3d1c2SDorinda Bassey# @AudiodevPipewireOptions:
355c2d3d1c2SDorinda Bassey#
356*20c51248SMarc-André Lureau# Options of the PipeWire audio backend.
357c2d3d1c2SDorinda Bassey#
358c2d3d1c2SDorinda Bassey# @in: options of the capture stream
359c2d3d1c2SDorinda Bassey#
360c2d3d1c2SDorinda Bassey# @out: options of the playback stream
361c2d3d1c2SDorinda Bassey#
362c2d3d1c2SDorinda Bassey# Since: 8.1
363c2d3d1c2SDorinda Bassey##
364c2d3d1c2SDorinda Bassey{ 'struct': 'AudiodevPipewireOptions',
365c2d3d1c2SDorinda Bassey  'data': {
366c2d3d1c2SDorinda Bassey    '*in':     'AudiodevPipewirePerDirectionOptions',
367c2d3d1c2SDorinda Bassey    '*out':    'AudiodevPipewirePerDirectionOptions' } }
368c2d3d1c2SDorinda Bassey
369c2d3d1c2SDorinda Bassey##
3705a0926c2SVolker Rümelin# @AudiodevSdlPerDirectionOptions:
3715a0926c2SVolker Rümelin#
3725a0926c2SVolker Rümelin# Options of the SDL audio backend that are used for both playback and
3735a0926c2SVolker Rümelin# recording.
3745a0926c2SVolker Rümelin#
3755a0926c2SVolker Rümelin# @buffer-count: number of buffers (default 4)
3765a0926c2SVolker Rümelin#
3775a0926c2SVolker Rümelin# Since: 6.0
3785a0926c2SVolker Rümelin##
3795a0926c2SVolker Rümelin{ 'struct': 'AudiodevSdlPerDirectionOptions',
3805a0926c2SVolker Rümelin  'base': 'AudiodevPerDirectionOptions',
3815a0926c2SVolker Rümelin  'data': {
3825a0926c2SVolker Rümelin    '*buffer-count': 'uint32' } }
3835a0926c2SVolker Rümelin
3845a0926c2SVolker Rümelin##
3855a0926c2SVolker Rümelin# @AudiodevSdlOptions:
3865a0926c2SVolker Rümelin#
3875a0926c2SVolker Rümelin# Options of the SDL audio backend.
3885a0926c2SVolker Rümelin#
3895a0926c2SVolker Rümelin# @in: options of the recording stream
3905a0926c2SVolker Rümelin#
3915a0926c2SVolker Rümelin# @out: options of the playback stream
3925a0926c2SVolker Rümelin#
3935a0926c2SVolker Rümelin# Since: 6.0
3945a0926c2SVolker Rümelin##
3955a0926c2SVolker Rümelin{ 'struct': 'AudiodevSdlOptions',
3965a0926c2SVolker Rümelin  'data': {
3975a0926c2SVolker Rümelin    '*in':  'AudiodevSdlPerDirectionOptions',
3985a0926c2SVolker Rümelin    '*out': 'AudiodevSdlPerDirectionOptions' } }
3995a0926c2SVolker Rümelin
4005a0926c2SVolker Rümelin##
4018c3a7d00SKővágó, Zoltán# @AudiodevWavOptions:
4028c3a7d00SKővágó, Zoltán#
4038c3a7d00SKővágó, Zoltán# Options of the wav audio backend.
4048c3a7d00SKővágó, Zoltán#
4058c3a7d00SKővágó, Zoltán# @in: options of the capture stream
4068c3a7d00SKővágó, Zoltán#
4078c3a7d00SKővágó, Zoltán# @out: options of the playback stream
4088c3a7d00SKővágó, Zoltán#
4098c3a7d00SKővágó, Zoltán# @path: name of the wav file to record (default 'qemu.wav')
4108c3a7d00SKővágó, Zoltán#
4118c3a7d00SKővágó, Zoltán# Since: 4.0
4128c3a7d00SKővágó, Zoltán##
4138c3a7d00SKővágó, Zoltán{ 'struct': 'AudiodevWavOptions',
4148c3a7d00SKővágó, Zoltán  'data': {
4158c3a7d00SKővágó, Zoltán    '*in':   'AudiodevPerDirectionOptions',
4168c3a7d00SKővágó, Zoltán    '*out':  'AudiodevPerDirectionOptions',
4178c3a7d00SKővágó, Zoltán    '*path': 'str' } }
4188c3a7d00SKővágó, Zoltán
4198c3a7d00SKővágó, Zoltán##
4208c3a7d00SKővágó, Zoltán# @AudioFormat:
4218c3a7d00SKővágó, Zoltán#
4228c3a7d00SKővágó, Zoltán# An enumeration of possible audio formats.
4238c3a7d00SKővágó, Zoltán#
424019b5ba7SVolker Rümelin# @u8: unsigned 8 bit integer
425019b5ba7SVolker Rümelin#
426019b5ba7SVolker Rümelin# @s8: signed 8 bit integer
427019b5ba7SVolker Rümelin#
428019b5ba7SVolker Rümelin# @u16: unsigned 16 bit integer
429019b5ba7SVolker Rümelin#
430019b5ba7SVolker Rümelin# @s16: signed 16 bit integer
431019b5ba7SVolker Rümelin#
432019b5ba7SVolker Rümelin# @u32: unsigned 32 bit integer
433019b5ba7SVolker Rümelin#
434019b5ba7SVolker Rümelin# @s32: signed 32 bit integer
435019b5ba7SVolker Rümelin#
436019b5ba7SVolker Rümelin# @f32: single precision floating-point (since 5.0)
437019b5ba7SVolker Rümelin#
4388c3a7d00SKővágó, Zoltán# Since: 4.0
4398c3a7d00SKővágó, Zoltán##
4408c3a7d00SKővágó, Zoltán{ 'enum': 'AudioFormat',
441ed2a4a79SKővágó, Zoltán  'data': [ 'u8', 's8', 'u16', 's16', 'u32', 's32', 'f32' ] }
4428c3a7d00SKővágó, Zoltán
4438c3a7d00SKővágó, Zoltán##
4448c3a7d00SKővágó, Zoltán# @AudiodevDriver:
4458c3a7d00SKővágó, Zoltán#
4468c3a7d00SKővágó, Zoltán# An enumeration of possible audio backend drivers.
4478c3a7d00SKővágó, Zoltán#
4482e445703SGeoffrey McRae# @jack: JACK audio backend (since 5.1)
4492e445703SGeoffrey McRae#
4508c3a7d00SKővágó, Zoltán# Since: 4.0
4518c3a7d00SKővágó, Zoltán##
4528c3a7d00SKővágó, Zoltán{ 'enum': 'AudiodevDriver',
4537a92a857SDaniel P. Berrangé  'data': [ 'none',
4547a92a857SDaniel P. Berrangé            { 'name': 'alsa', 'if': 'CONFIG_AUDIO_ALSA' },
4557a92a857SDaniel P. Berrangé            { 'name': 'coreaudio', 'if': 'CONFIG_AUDIO_COREAUDIO' },
4567a92a857SDaniel P. Berrangé            { 'name': 'dbus', 'if': 'CONFIG_DBUS_DISPLAY' },
4577a92a857SDaniel P. Berrangé            { 'name': 'dsound', 'if': 'CONFIG_AUDIO_DSOUND' },
4587a92a857SDaniel P. Berrangé            { 'name': 'jack', 'if': 'CONFIG_AUDIO_JACK' },
4597a92a857SDaniel P. Berrangé            { 'name': 'oss', 'if': 'CONFIG_AUDIO_OSS' },
4607a92a857SDaniel P. Berrangé            { 'name': 'pa', 'if': 'CONFIG_AUDIO_PA' },
461c2d3d1c2SDorinda Bassey            { 'name': 'pipewire', 'if': 'CONFIG_AUDIO_PIPEWIRE' },
4627a92a857SDaniel P. Berrangé            { 'name': 'sdl', 'if': 'CONFIG_AUDIO_SDL' },
4637a92a857SDaniel P. Berrangé            { 'name': 'sndio', 'if': 'CONFIG_AUDIO_SNDIO' },
4647a92a857SDaniel P. Berrangé            { 'name': 'spice', 'if': 'CONFIG_SPICE' },
4657a92a857SDaniel P. Berrangé            'wav' ] }
4668c3a7d00SKővágó, Zoltán
4678c3a7d00SKővágó, Zoltán##
4688c3a7d00SKővágó, Zoltán# @Audiodev:
4698c3a7d00SKővágó, Zoltán#
4708c3a7d00SKővágó, Zoltán# Options of an audio backend.
4718c3a7d00SKővágó, Zoltán#
4728c3a7d00SKővágó, Zoltán# @id: identifier of the backend
4738c3a7d00SKővágó, Zoltán#
4748c3a7d00SKővágó, Zoltán# @driver: the backend driver to use
4758c3a7d00SKővágó, Zoltán#
476a937b6aaSMarkus Armbruster# @timer-period: timer period (in microseconds, 0: use lowest
477a937b6aaSMarkus Armbruster#     possible)
4788c3a7d00SKővágó, Zoltán#
4798c3a7d00SKővágó, Zoltán# Since: 4.0
4808c3a7d00SKővágó, Zoltán##
4818c3a7d00SKővágó, Zoltán{ 'union': 'Audiodev',
4828c3a7d00SKővágó, Zoltán  'base': {
4838c3a7d00SKővágó, Zoltán    'id':            'str',
4848c3a7d00SKővágó, Zoltán    'driver':        'AudiodevDriver',
4858c3a7d00SKővágó, Zoltán    '*timer-period': 'uint32' },
4868c3a7d00SKővágó, Zoltán  'discriminator': 'driver',
4878c3a7d00SKővágó, Zoltán  'data': {
4888c3a7d00SKővágó, Zoltán    'none':      'AudiodevGenericOptions',
4897a92a857SDaniel P. Berrangé    'alsa':      { 'type': 'AudiodevAlsaOptions',
4907a92a857SDaniel P. Berrangé                   'if': 'CONFIG_AUDIO_ALSA' },
4917a92a857SDaniel P. Berrangé    'coreaudio': { 'type': 'AudiodevCoreaudioOptions',
4927a92a857SDaniel P. Berrangé                   'if': 'CONFIG_AUDIO_COREAUDIO' },
4937a92a857SDaniel P. Berrangé    'dbus':      { 'type': 'AudiodevGenericOptions',
4947a92a857SDaniel P. Berrangé                   'if': 'CONFIG_DBUS_DISPLAY' },
4957a92a857SDaniel P. Berrangé    'dsound':    { 'type': 'AudiodevDsoundOptions',
4967a92a857SDaniel P. Berrangé                   'if': 'CONFIG_AUDIO_DSOUND' },
4977a92a857SDaniel P. Berrangé    'jack':      { 'type': 'AudiodevJackOptions',
4987a92a857SDaniel P. Berrangé                   'if': 'CONFIG_AUDIO_JACK' },
4997a92a857SDaniel P. Berrangé    'oss':       { 'type': 'AudiodevOssOptions',
5007a92a857SDaniel P. Berrangé                   'if': 'CONFIG_AUDIO_OSS' },
5017a92a857SDaniel P. Berrangé    'pa':        { 'type': 'AudiodevPaOptions',
5027a92a857SDaniel P. Berrangé                   'if': 'CONFIG_AUDIO_PA' },
503c2d3d1c2SDorinda Bassey    'pipewire':  { 'type': 'AudiodevPipewireOptions',
504c2d3d1c2SDorinda Bassey                   'if': 'CONFIG_AUDIO_PIPEWIRE' },
5057a92a857SDaniel P. Berrangé    'sdl':       { 'type': 'AudiodevSdlOptions',
5067a92a857SDaniel P. Berrangé                   'if': 'CONFIG_AUDIO_SDL' },
5077a92a857SDaniel P. Berrangé    'sndio':     { 'type': 'AudiodevSndioOptions',
5087a92a857SDaniel P. Berrangé                   'if': 'CONFIG_AUDIO_SNDIO' },
5097a92a857SDaniel P. Berrangé    'spice':     { 'type': 'AudiodevGenericOptions',
5107a92a857SDaniel P. Berrangé                   'if': 'CONFIG_SPICE' },
5118c3a7d00SKővágó, Zoltán    'wav':       'AudiodevWavOptions' } }
512637d1809SDaniel P. Berrangé
513637d1809SDaniel P. Berrangé##
514637d1809SDaniel P. Berrangé# @query-audiodevs:
515637d1809SDaniel P. Berrangé#
516637d1809SDaniel P. Berrangé# Returns information about audiodev configuration
517637d1809SDaniel P. Berrangé#
518637d1809SDaniel P. Berrangé# Returns: array of @Audiodev
519637d1809SDaniel P. Berrangé#
520637d1809SDaniel P. Berrangé# Since: 8.0
521637d1809SDaniel P. Berrangé##
522637d1809SDaniel P. Berrangé{ 'command': 'query-audiodevs',
523637d1809SDaniel P. Berrangé  'returns': ['Audiodev'] }
524