#ifndef USB_AUDIO_H
#define USB_AUDIO_H

// (Partial) USB Class Definitions for Audio Devices, version 1.0
// Reference: http://www.usb.org/developers/devclass_docs/audio10.pdf

#define USB_AUDIO_DEVICE_CLASS 			0x01
#define USB_AUDIO_CLASS_VERSION			0x0100

enum {
	USB_AUDIO_INTERFACE_AUDIO_CLASS		= 0x01
};

enum { // Audio Interface Subclasses	
	USB_AUDIO_INTERFACE_AUDIOCONTROL_SUBCLASS =	0x01,	// 
	USB_AUDIO_INTERFACE_AUDIOSTREAMING_SUBCLASS,		//
	USB_AUDIO_INTERFACE_MIDISTREAMING_SUBCLASS			// 
};

enum { // Audio Class-Specific AudioControl Interface descriptor subtypes
	USB_AUDIO_AC_HEADER						= 0x01,
	USB_AUDIO_AC_INPUT_TERMINAL,
	USB_AUDIO_AC_OUTPUT_TERMINAL,
	USB_AUDIO_AC_MIXER_UNIT,
	USB_AUDIO_AC_SELECTOR_UNIT,
	USB_AUDIO_AC_FEATURE_UNIT,
	USB_AUDIO_AC_PROCESSING_UNIT,
	USB_AUDIO_AC_EXTENSION_UNIT
};

enum { // Audio Class-Specific AudioStreaming Interface descriptor subtypes
	USB_AUDIO_AS_GENERAL						= 0x01,
	USB_AUDIO_AS_FORMAT_GENERAL,
	USB_AUDIO_AS_FORMAT_SPECIFIC
};

enum { // Processing Unit Process Types  (for USB_AUDIO_AC_PROCESSING_UNIT)
	USB_AUDIO_UP_DOWNMIX_PROCESS	= 0x01,
	USB_AUDIO_DOLBY_PROLOGIC_PROCESS,
	USB_AUDIO_3D_STEREO_EXTENDER_PROCESS,
	USB_AUDIO_REVERBERATION_PROCESS,
	USB_AUDIO_CHORUS_PROCESS,
	USB_AUDIO_DYN_RANGE_COMP_PROCESS
};
	

#endif	// USB_AUDIO_H
