"Kővágó, Zoltán" <dirty.ice...@gmail.com> writes: > This patch adds structures into qapi to replace the existing > configuration structures used by audio backends currently. This qapi > will be the base of the -audiodev command line parameter (that replaces > the old environment variables based config). > > This is not a 1:1 translation of the old options, I've tried to make > them much more consistent (e.g. almost every backend had an option to > specify buffer size, but the name was different for every backend, and > some backends required usecs, while some other required frames, samples > or bytes). Also tried to reduce the number of abbreviations used by the > config keys. > > Some of the more important changes: > * use `in` and `out` instead of `ADC` and `DAC`, as the former is more > user friendly imho > * moved buffer settings into the global setting area (so it's the same > for all backends that support it. Backends that can't change buffer > size will simply ignore them). Also using usecs, as it's probably more > user friendly than samples or bytes. > * try-poll is now an alsa backend specific option (as all other backends > currently ignore it) > > Signed-off-by: Kővágó, Zoltán <dirty.ice...@gmail.com> > Reviewed-by: Markus Armbruster <arm...@redhat.com> > --- > > Notes: > Changes from v5: > > * documentation fixes > * renamed buffer-len to buffer-length and period-len to period-length > > Changes from v4: > > * documentation fixes > * renamed pa's source/sink to pa-in/pa-out > * per-direction options changed per Markus Armbruster's comments > > Changes from v2: > > * update copyright, version numbers > * remove #optional > * per-direction options are now optional (needed for > qobject_object_visitor_new_str) > * removed unnecessary AudiodevNoOptions > * changed integers to unsigned > > qapi/audio.json | 304 ++++++++++++++++++++++++++++++++++++++++++ > qapi/qapi-schema.json | 1 + > qapi/Makefile.objs | 6 +- > 3 files changed, 308 insertions(+), 3 deletions(-) > create mode 100644 qapi/audio.json > > diff --git a/qapi/audio.json b/qapi/audio.json > new file mode 100644 > index 0000000000..97aee37288 > --- /dev/null > +++ b/qapi/audio.json > @@ -0,0 +1,304 @@ > +# -*- mode: python -*- > +# > +# Copyright (C) 2015-2019 Zoltán Kővágó <dirty.ice...@gmail.com> > +# > +# This work is licensed under the terms of the GNU GPL, version 2 or later. > +# See the COPYING file in the top-level directory. > + > +## > +# @AudiodevPerDirectionOptions: > +# > +# General audio backend options that are used for both playback and > +# recording. > +# > +# @fixed-settings: use fixed settings for host input/output. When off, > +# frequency, channels and format must not be > +# specified (default true) > +# > +# @frequency: frequency to use when using fixed settings > +# (default 44100) > +# > +# @channels: number of channels when using fixed settings (default 2) > +# > +# @voices: number of voices to use (default 1) > +# > +# @format: sample format to use when using fixed settings > +# (default s16) > +# > +# @buffer-length: the buffer length in microseconds
The name buffer-length suggests bytes rather than microseconds. That's why I suggested @buffer-capacity. Matter of taste, up to you and Gerd. > +# > +# Since: 4.0 > +## > +{ 'struct': 'AudiodevPerDirectionOptions', > + 'data': { > + '*fixed-settings': 'bool', > + '*frequency': 'uint32', > + '*channels': 'uint32', > + '*voices': 'uint32', > + '*format': 'AudioFormat', > + '*buffer-length': 'uint32' } } [...] Regardless: Reviewed-by: Markus Armbruster <arm...@redhat.com>