#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