xref: /haiku/headers/os/drivers/usb/USB_audio.h (revision 51978af14a173e7fae0563b562be5603bc652aeb)
1 #ifndef USB_AUDIO_H
2 #define USB_AUDIO_H
3 
4 // (Partial) USB Class Definitions for Audio Devices, version 1.0
5 // Reference: http://www.usb.org/developers/devclass_docs/audio10.pdf
6 
7 #define USB_AUDIO_DEVICE_CLASS 			0x01
8 #define USB_AUDIO_CLASS_VERSION			0x0100
9 
10 enum {
11 	USB_AUDIO_INTERFACE_AUDIO_CLASS		= 0x01
12 };
13 
14 enum { // Audio Interface Subclasses
15 	USB_AUDIO_INTERFACE_AUDIOCONTROL_SUBCLASS =	0x01,	//
16 	USB_AUDIO_INTERFACE_AUDIOSTREAMING_SUBCLASS,		//
17 	USB_AUDIO_INTERFACE_MIDISTREAMING_SUBCLASS			//
18 };
19 
20 enum { // Audio Class-Specific AudioControl Interface descriptor subtypes
21 	USB_AUDIO_AC_HEADER						= 0x01,
22 	USB_AUDIO_AC_INPUT_TERMINAL,
23 	USB_AUDIO_AC_OUTPUT_TERMINAL,
24 	USB_AUDIO_AC_MIXER_UNIT,
25 	USB_AUDIO_AC_SELECTOR_UNIT,
26 	USB_AUDIO_AC_FEATURE_UNIT,
27 	USB_AUDIO_AC_PROCESSING_UNIT,
28 	USB_AUDIO_AC_EXTENSION_UNIT
29 };
30 
31 enum { // Audio Class-Specific AudioStreaming Interface descriptor subtypes
32 	USB_AUDIO_AS_GENERAL						= 0x01,
33 	USB_AUDIO_AS_FORMAT_GENERAL,
34 	USB_AUDIO_AS_FORMAT_SPECIFIC
35 };
36 
37 enum { // Processing Unit Process Types  (for USB_AUDIO_AC_PROCESSING_UNIT)
38 	USB_AUDIO_UP_DOWNMIX_PROCESS	= 0x01,
39 	USB_AUDIO_DOLBY_PROLOGIC_PROCESS,
40 	USB_AUDIO_3D_STEREO_EXTENDER_PROCESS,
41 	USB_AUDIO_REVERBERATION_PROCESS,
42 	USB_AUDIO_CHORUS_PROCESS,
43 	USB_AUDIO_DYN_RANGE_COMP_PROCESS
44 };
45 
46 
47 #endif	// USB_AUDIO_H
48