Implement USB Audio class asynchronous sink support.
commit146ff4b03af729a25bc6a6980f2f3f8b42587065
authorKrzysztof Foltman <wdev@foltman.com>
Sun, 30 Jun 2013 10:27:08 +0000 (30 11:27 +0100)
committerKrzysztof Foltman <wdev@foltman.com>
Sun, 30 Jun 2013 10:27:08 +0000 (30 11:27 +0100)
tree82df82acbc387f842c81a485d0df7c79b556c79d
parentd38d8bae0e5d37f415e558e9d93c8ab0257a7106
Implement USB Audio class asynchronous sink support.

Tested only with my own device implementation, so it may or may not work
for commercial devices using async sink endpoints. However, the same device
also works well with ALSA implementation, so chances are it's correct.

The packet size adjustment code is mostly shared with Alesis Multimix support
code, and I haven't tested Multimix after the change, so there's a possibility
of things breaking in short term until I do some tests. On a more positive side,
I've cleaned up the code because I now have a better understanding of the
problem. For one, it now works on sample rate estimation expressed in Hz, not
some arbitrary scaled units.
usbaudio.c
usbio_impl.h
usbprobe.c