-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Hi,
I'm working on getting the usb part of this very nice control surface to work with alsa. I sniffed the usb traffic of the windows driver then browsed the snd-usb-audio source code for clues.
I managed to get it partially working using a modified QUIRK_MIDI_EMAGIC since the protocols are fairly similar (at least the 0xF5 port switching part).
Please find attached the patch I came up to.
I have a few problems and dark areas I hope you'll be able to light up a little :
First, I more or less get the picture of what the code is doing but there's one part I fiddled with that I don't understand fully. What are the .out_cables and .in_cables bitmasks doing besides defining the number of ports ?
Next, the input part seem to work flawlessly on all ports, but I have what seems to be a buffer overflow on the device when outputting midi data. Comparing the windows and linux usb traffic, something obvious shows up : the windows driver seem to be waiting for the device's acknowledgment after each sent byte before sending the next one while the snd-usb-audio module sends a bunch of bytes at once that ends up confusing the device _and_ module. How can I make it behave like the windows driver ?
I have traffic and error logs available if needed.
Thanks. - -- Raphaël Doursenaud http://raphael.doursenaud.fr