Like mmdevice with wasapi/directsound.
To get support for multiple audio tracks playback at once, all aout
modules need to be split between device and stream. This is the first
step in that direction (second step is to add aout_stream_t in the CORE).
This will allow a single aout module to choose between audiotrack,
opensles and the future aaudio plugin depending on the audio
format/codec. Indeed, only AudioTrack can handle pass-through, and PCM
playback should be done by aaudio in priority.
There were two purposes to this as a better alternative to XVideo:
- video surfaces pass-through in GPU in case of hardware decoding,
- scaled SPU blending in both software and hardware decoding cases.
Both functions are now supported with higher priority by the OpenGL
video output. Also the software case no longer works at all anyway.
This gives a table listing all options, similar to and inspired by the
`about:config` interface in Firefox.
Unique benefits:
- It highlights which options have been modified from default state.
- It allows selective resetting of individual options to default values.
Support is included to toggle booleans with a simple double-click.
Double-clicking on other types opens the edit dialog.
For colour selection items, the modify action directly opens the Qt
colour selection dialog rather than present the colour control used in
the advanced preferences view, since this is much cleaner.
Note that the existing simple and advanced views are not linked; if you
change an option in one view, that change is not reflected in the other,
and saving changes only uses the state from the selected view. The same
is currently true of the new expert mode, though I plan to later change
this behaviour (for all three).
Note also that hotkey items are deliberately excluded from this view.
The dedicated hotkey editor is best suited to managing hotkeys. It does
not work well to include the set of 224 unique hotkey options within this
table, especially since we'd have to duplicate the code checking for
duplicate assignments if we allow editing of them as with all other
option types within this interface. It may seem odd for the 'expert'
mode to be the only one without hotkey editing, however the hotkey editor
does not really fit well into 'advanced' mode either, and I have plans to
propose separating the hotkey editor entirely from within the set of
three views in a small redesign.
Fixes#18607.
Down the line, we probably should not have one directory per ISA
extension. This replicates the model from the hw/*/ directory.
isa/ seems better than arch/ because:
- "Instruction Set Architecture" is more specific than "Architecture",
- it saves one character,
- no modules/ subdirectory starts with I yet (so this will not break
auto-completion habits).
This also moves non-NEON-specific files to isa/arm/.