aboutsummaryrefslogtreecommitdiffstats
path: root/sound/usb/usbaudio.h
diff options
context:
space:
mode:
authorDaniel Mack <daniel@caiaq.de>2010-02-22 17:49:11 -0500
committerTakashi Iwai <tiwai@suse.de>2010-02-23 02:40:24 -0500
commit53ee98fe8ac77d00bacc1c814d450d83cbd193d4 (patch)
treec7f454b89c1032fe964b847048598c0071d88b1d /sound/usb/usbaudio.h
parent8fee4aff8c89c229593b76a6ab172a9cad24b412 (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.h3
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