diff options
author | Daniel Mack <daniel@caiaq.de> | 2010-02-22 17:49:11 -0500 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2010-02-23 02:40:24 -0500 |
commit | 53ee98fe8ac77d00bacc1c814d450d83cbd193d4 (patch) | |
tree | c7f454b89c1032fe964b847048598c0071d88b1d /sound/usb/usbaudio.h | |
parent | 8fee4aff8c89c229593b76a6ab172a9cad24b412 (diff) |
ALSA: usbaudio: implement basic set of class v2.0 parser
This adds a number of parsers for audio class v2.0. In particular, the
following internals are different and now handled by the code:
* the number of streaming interfaces is now reported by an interface
association descriptor. The old approach using a proprietary
descriptor is deprecated.
* The number of channels per interface is now stored in the AS_GENERAL
descriptor (used to be part of the FORMAT_TYPE descriptor).
* The list of supported sample rates is no longer stored in a variable
length appendix of the format_type descriptor but is retrieved from
the device using a class specific GET_RANGE command.
* Supported sample formats are now reported as 32bit bitmap rather than
a fixed value. For now, this is worked around by choosing just one of
them.
* A devices needs to have at least one CLOCK_SOURCE descriptor which
denotes a clockID that is needed im the class request command.
* Many descriptors (format_type, ...) have changed their layout. Handle
this by casting the descriptors to the appropriate structs.
Signed-off-by: Daniel Mack <daniel@caiaq.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/usb/usbaudio.h')
-rw-r--r-- | sound/usb/usbaudio.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/sound/usb/usbaudio.h b/sound/usb/usbaudio.h index 4f482939e8e8..26daf68631eb 100644 --- a/sound/usb/usbaudio.h +++ b/sound/usb/usbaudio.h | |||
@@ -142,6 +142,9 @@ struct snd_usb_audio { | |||
142 | int num_interfaces; | 142 | int num_interfaces; |
143 | int num_suspended_intf; | 143 | int num_suspended_intf; |
144 | 144 | ||
145 | /* for audio class v2 */ | ||
146 | int clock_id; | ||
147 | |||
145 | struct list_head pcm_list; /* list of pcm streams */ | 148 | struct list_head pcm_list; /* list of pcm streams */ |
146 | int pcm_devs; | 149 | int pcm_devs; |
147 | 150 | ||