[alsa-devel] E-MU 0404/0202 USB implementation
Clemens Ladisch
cladisch at fastmail.net
Tue Sep 18 09:40:42 CEST 2007
James Courtier-Dutton wrote:
> I am looking to implement support for the E-Mu USB cards.
> The card is basically following a mix of USB 1.0 and USB 2.0 descriptors.
>
> The bInterfaceClass field of the standard interface descriptors for the
> Audio Control, Audio Streaming, and MIDI Streaming interfaces are set to
> 0xFF (vendor-specific) instead of 0x01 (USB Audio).
>
> Can I put in a quirk into the snd-usb-audio driver to handle this?
There are no class-specific descriptors, so you cannot simply use an
AUDIO_STANDARD_INTERFACE quirk.
It would be possible to hardcode a specfifc sample format with an
AUDIO_FIXED_ENDPOINT quirk, but this doesn't work when there is more
than one alternate setting.
I think you have to manually add several sample formats, like in the
UA-1000 quirk, but calling add_audio_endpoint() several times.
The asynchronous feedback of the output endpoints should work; it does
with the SB Audigy 2 NX in high speed mode.
Please note that the descriptors may be different in full speed mode.
QUIRK_MIDI_FIXED_ENDPOINT should work for interface 3.
> The card also has customised controls. Can one add those to
> snd-usb-audio, or would it be better to add those to a totally new
> driver?
usbmixer.c currently doesn't have a mechanism to add mixer controls that
are not listed in the descriptors, but it should be possible to create
the data structures to describe those.
A totally new driver might be a good idea if the core part of usbaudio.c
were in a library. I always planned to do that when I'd find some time.
Regards,
Clemens
More information about the Alsa-devel
mailing list