ADIT alsa improvement backports
Hello,
please consider merging these changes developed internally at ADIT.
These changes are part of a larger effort by ADIT to port jack2 to QNX, improve responsiveness of jack2, improve error handling, hardening of jack2 and adding alsa multi device functionality and more.
This specific PR includes general refactoring and code improvements for the alsa driver. This is a precursor for further improvements like QNX port and 'alsa multi device feature' discussed in PR-608
Although QNX port is not going to be merged to upstream, as discussed in previous PRs, this PR is still needed for the PR-608
If we can merge this I have prepared another PR that contains only the alsa multi dev feature patches.
The changed are used in production, but I had to backport them to newest master branch (it was a couple of years since I looked into this) and I have tested the PR on my laptop with a simple test:
jackd -r -d alsa -C hw:1 -P hw:1 -r 48000 -i 2 -o 2
jack_connect system:capture_1 system:playback_2
jack_connect system:capture_1 system:playback_2
Result: audio capture by card is audible on output
Please let me know what you think.
Best Regards, Adam