Hi, > Currently you have to specify the number of channels you want to use > when creating the usb-audio device, see the last commit for details. > To do this I currently dynamically allocate the whole USBDesc structure, > which looks ugly. If there's a better way, please let me know!
You can have multiple USBDesc stuctures defined and pick one at device initialization time (see hw/usb/dev-hid.c, there are usb 1.1 and usb 2.0 versions of all hid devices). For usb-audio I think we need two: the current one (stereo) and a new one with stereo + 5.1 and 7.1 support. Then for the new one have 4 alternative interface configurations (off, stereo, 5.1, 7.1) instead of only two (off, stereo). Or possibly we need 3 interfaces (stereo, 5.1, 7.1) with on and off alternatives for each of them. Didn't check usb-audio spec. cheers, Gerd