Order of the Butterfly
Posts: 423 from 2003/2/25
USB norm has been developped with this idea in mind: write a single driver (or class) and you can plug *any* compliant device and it will work out of the box.
USB has a lot of device class definition that can be found there: http://www.usb.org/developers/docs/devclass
That was the initial idea in a world full of unicorns.
In real life, things always go a bit off the plan. Manufacturers craft broken devices that do not exactly respect the device class, or worse, implement non standard and proprietary protocol that require custom class driver (nothing wrong there, you're just bound to supported systems by the manufacturer which generaly ends with Win/Apple).
In case of a slightly broken device, some workaround can be implemented to support this kind of devices in the supporting class. For example, HID class has numerous little tweaks for supporting some special devices (like Wacom Tablets for example) that do use HID but in 'weird' (read not exactly standard) way.
That's also why many USB devices come with class driver for Windows/Apple... because the device is half broken and requires fix in the class driver land (ie on the operating system) to work correctly.
In the case of interest here: we tested two simple audio and common devices and they worked as expected in ordinary cases of audio playback. It means that almost every other devices under the USB audio class definition having about the same specifications will work *flawlessly* in case of playback (assuming that the device is fully *compliant* to the usb audio class definition).
And for listing supported and tested devices in the release note, it is like listing supported and tested keyboards and mice. Pointless.
Also, keep in mind that AHI is totally outdated in respect of current state of the art in audio land hardware. It is not uncommon to find 8 stereo channels audio card nowadays. Totally unusable with the 4 outputs limit of AHI.
Improving audio support requires breaking AHI for a better and more modern API. And it won't be done in a weekend hacking session.