"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) > > AudiodevPaPerDirectionOptions struct might look pointless right now, but > later we will have new per-direction options, so it's more future-proof > this way. > > Signed-off-by: Kővágó, Zoltán <dirty.ice...@gmail.com> [...] > diff --git a/qapi/audio.json b/qapi/audio.json > new file mode 100644 > index 0000000000..bd6e2494bd > --- /dev/null > +++ b/qapi/audio.json [...] > +## > +# @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 on) > +# > +# @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)
If I specify any of @frequency, @channels, @voices, @format, then I have to have "fixed-settings": true. Since true is the default, I don't have to say it explicitly, which would be redundant and mildly annoying. However, specifying "fixed-settings": false is *not* redundant, because it's different from specifying nothing at all, which is the same as "fixed-settings": true, "frequency": 44100, "channels": 2, "voices": 1, "format": "s16". I think I get it. > +# > +# @buffer-len: the buffer size in microseconds > +# > +# @buffer-count: number of buffers > +# > +# Since: 4.0 > +## [...]