| LUFA Library 140302 |

All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Enumerations
Common Class Definitions
Audio 1.0 Class Driver

## Data Structures
struct | USB_Audio_Descriptor_FeatureUnit_t
| Audio class-specific Feature Unit Descriptor (LUFA naming conventions). More...
struct | USB_Audio_Descriptor_Format_t
| Audio class-specific Format Descriptor (LUFA naming conventions). More...
struct | USB_Audio_Descriptor_InputTerminal_t
| Audio class-specific Input Terminal Descriptor (LUFA naming conventions). More...
struct | USB_Audio_Descriptor_Interface_AC_t
| Audio class-specific Interface Descriptor (LUFA naming conventions). More...
struct | USB_Audio_Descriptor_Interface_AS_t
| Audio class-specific Streaming Audio Interface Descriptor (LUFA naming conventions). More...
struct | USB_Audio_Descriptor_OutputTerminal_t
| Audio class-specific Output Terminal Descriptor (LUFA naming conventions). More...
struct | USB_Audio_Descriptor_StreamEndpoint_Spc_t
| Audio class-specific Extended Endpoint Descriptor (LUFA naming conventions). More...
struct | USB_Audio_Descriptor_StreamEndpoint_Std_t
| Audio class-specific Streaming Endpoint Descriptor (LUFA naming conventions). More...
struct | USB_Audio_SampleFreq_t
| 24-Bit Audio Frequency Structure. More...
struct | USB_Audio_StdDescriptor_FeatureUnit_t
| Audio class-specific Feature Unit Descriptor (USB-IF naming conventions). More...
struct | USB_Audio_StdDescriptor_Format_t
| Audio class-specific Format Descriptor (USB-IF naming conventions). More...
struct | USB_Audio_StdDescriptor_InputTerminal_t
| Audio class-specific Input Terminal Descriptor (USB-IF naming conventions). More...
struct | USB_Audio_StdDescriptor_Interface_AC_t
| Audio class-specific Interface Descriptor (USB-IF naming conventions). More...
struct | USB_Audio_StdDescriptor_Interface_AS_t
| Audio class-specific Streaming Audio Interface Descriptor (USB-IF naming conventions). More...
struct | USB_Audio_StdDescriptor_OutputTerminal_t
| Audio class-specific Output Terminal Descriptor (USB-IF naming conventions). More...
struct | USB_Audio_StdDescriptor_StreamEndpoint_Spc_t
| Audio class-specific Extended Endpoint Descriptor (USB-IF naming conventions). More...
struct | USB_Audio_StdDescriptor_StreamEndpoint_Std_t
| Audio class-specific Streaming Endpoint Descriptor (USB-IF naming conventions). More...

## Macros
#define | AUDIO_EP_ACCEPTS_SMALL_PACKETS (0 << 7)
#define | AUDIO_EP_FULL_PACKETS_ONLY (1 << 7)
#define | AUDIO_EP_PITCH_CONTROL (1 << 1)
#define | AUDIO_EP_SAMPLE_FREQ_CONTROL (1 << 0)
#define | AUDIO_SAMPLE_FREQ(freq) {.Byte1 = ((uint32_t)freq & 0xFF), .Byte2 = (((uint32_t)freq >> 8) & 0xFF), .Byte3 = (((uint32_t)freq >> 16) & 0xFF)}

## Enumerations
enum | Audio_ClassRequests_t { AUDIO_REQ_SetCurrent = 0x01, AUDIO_REQ_SetMinimum = 0x02, AUDIO_REQ_SetMaximum = 0x03, AUDIO_REQ_SetResolution = 0x04, AUDIO_REQ_SetMemory = 0x05, AUDIO_REQ_GetCurrent = 0x81, AUDIO_REQ_GetMinimum = 0x82, AUDIO_REQ_GetMaximum = 0x83, AUDIO_REQ_GetResolution = 0x84, AUDIO_REQ_GetMemory = 0x85, AUDIO_REQ_GetStatus = 0xFF }
enum | Audio_CSEndpoint_SubTypes_t { AUDIO_DSUBTYPE_CSEndpoint_General = 0x01 }
enum | Audio_CSInterface_AC_SubTypes_t { AUDIO_DSUBTYPE_CSInterface_Header = 0x01, AUDIO_DSUBTYPE_CSInterface_InputTerminal = 0x02, AUDIO_DSUBTYPE_CSInterface_OutputTerminal = 0x03, AUDIO_DSUBTYPE_CSInterface_Mixer = 0x04, AUDIO_DSUBTYPE_CSInterface_Selector = 0x05, AUDIO_DSUBTYPE_CSInterface_Feature = 0x06, AUDIO_DSUBTYPE_CSInterface_Processing = 0x07, AUDIO_DSUBTYPE_CSInterface_Extension = 0x08 }
enum | Audio_CSInterface_AS_SubTypes_t { AUDIO_DSUBTYPE_CSInterface_General = 0x01, AUDIO_DSUBTYPE_CSInterface_FormatType = 0x02, AUDIO_DSUBTYPE_CSInterface_FormatSpecific = 0x03 }
enum | Audio_Descriptor_ClassSubclassProtocol_t { AUDIO_CSCP_AudioClass = 0x01, AUDIO_CSCP_ControlSubclass = 0x01, AUDIO_CSCP_ControlProtocol = 0x00, AUDIO_CSCP_AudioStreamingSubclass = 0x02, AUDIO_CSCP_MIDIStreamingSubclass = 0x03, AUDIO_CSCP_StreamingProtocol = 0x00 }
enum | Audio_EndpointControls_t { AUDIO_EPCONTROL_SamplingFreq = 0x01, AUDIO_EPCONTROL_Pitch = 0x02 }

## Audio Channel Masks
#define | AUDIO_CHANNEL_LEFT_FRONT (1 << 0)
#define | AUDIO_CHANNEL_RIGHT_FRONT (1 << 1)
#define | AUDIO_CHANNEL_CENTER_FRONT (1 << 2)
#define | AUDIO_CHANNEL_LOW_FREQ_ENHANCE (1 << 3)
#define | AUDIO_CHANNEL_LEFT_SURROUND (1 << 4)
#define | AUDIO_CHANNEL_RIGHT_SURROUND (1 << 5)
#define | AUDIO_CHANNEL_LEFT_OF_CENTER (1 << 6)
#define | AUDIO_CHANNEL_RIGHT_OF_CENTER (1 << 7)
#define | AUDIO_CHANNEL_SURROUND (1 << 8)
#define | AUDIO_CHANNEL_SIDE_LEFT (1 << 9)
#define | AUDIO_CHANNEL_SIDE_RIGHT (1 << 10)
#define | AUDIO_CHANNEL_TOP (1 << 11)

## Audio Feature Masks
#define | AUDIO_FEATURE_MUTE (1 << 0)
#define | AUDIO_FEATURE_VOLUME (1 << 1)
#define | AUDIO_FEATURE_BASS (1 << 2)
#define | AUDIO_FEATURE_MID (1 << 3)
#define | AUDIO_FEATURE_TREBLE (1 << 4)
#define | AUDIO_FEATURE_GRAPHIC_EQUALIZER (1 << 5)
#define | AUDIO_FEATURE_AUTOMATIC_GAIN (1 << 6)
#define | AUDIO_FEATURE_DELAY (1 << 7)
#define | AUDIO_FEATURE_BASS_BOOST (1 << 8)
#define | AUDIO_FEATURE_BASS_LOUDNESS (1 << 9)

## Audio Terminal Types
#define | AUDIO_TERMINAL_UNDEFINED 0x0100
#define | AUDIO_TERMINAL_STREAMING 0x0101
#define | AUDIO_TERMINAL_VENDOR 0x01FF
#define | AUDIO_TERMINAL_IN_UNDEFINED 0x0200
#define | AUDIO_TERMINAL_IN_MIC 0x0201
#define | AUDIO_TERMINAL_IN_DESKTOP_MIC 0x0202
#define | AUDIO_TERMINAL_IN_PERSONAL_MIC 0x0203
#define | AUDIO_TERMINAL_IN_OMNIDIR_MIC 0x0204
#define | AUDIO_TERMINAL_IN_MIC_ARRAY 0x0205
#define | AUDIO_TERMINAL_IN_PROCESSING_MIC 0x0206
#define | AUDIO_TERMINAL_IN_OUT_UNDEFINED 0x0300
#define | AUDIO_TERMINAL_OUT_SPEAKER 0x0301
#define | AUDIO_TERMINAL_OUT_HEADPHONES 0x0302
#define | AUDIO_TERMINAL_OUT_HEAD_MOUNTED 0x0303
#define | AUDIO_TERMINAL_OUT_DESKTOP 0x0304
#define | AUDIO_TERMINAL_OUT_ROOM 0x0305
#define | AUDIO_TERMINAL_OUT_COMMUNICATION 0x0306
#define | AUDIO_TERMINAL_OUT_LOWFREQ 0x0307

## Detailed Description

# Module Description

Constants, Types and Enum definitions that are common to both Device and Host modes for the USB Audio 1.0 Class.

## Macro Definition Documentation

#define AUDIO_CHANNEL_CENTER_FRONT (1 << 2)

Supported channel mask for an Audio class terminal descriptor. See the Audio class specification for more details.

#define AUDIO_CHANNEL_LEFT_FRONT (1 << 0)

Supported channel mask for an Audio class terminal descriptor. See the Audio class specification for more details.

#define AUDIO_CHANNEL_LEFT_OF_CENTER (1 << 6)

Supported channel mask for an Audio class terminal descriptor. See the Audio class specification for more details.

#define AUDIO_CHANNEL_LEFT_SURROUND (1 << 4)

Supported channel mask for an Audio class terminal descriptor. See the Audio class specification for more details.

#define AUDIO_CHANNEL_LOW_FREQ_ENHANCE (1 << 3)

Supported channel mask for an Audio class terminal descriptor. See the Audio class specification for more details.

#define AUDIO_CHANNEL_RIGHT_FRONT (1 << 1)

Supported channel mask for an Audio class terminal descriptor. See the Audio class specification for more details.

#define AUDIO_CHANNEL_RIGHT_OF_CENTER (1 << 7)

Supported channel mask for an Audio class terminal descriptor. See the Audio class specification for more details.

#define AUDIO_CHANNEL_RIGHT_SURROUND (1 << 5)

Supported channel mask for an Audio class terminal descriptor. See the Audio class specification for more details.

#define AUDIO_CHANNEL_SIDE_LEFT (1 << 9)

Supported channel mask for an Audio class terminal descriptor. See the Audio class specification for more details.

#define AUDIO_CHANNEL_SIDE_RIGHT (1 << 10)

Supported channel mask for an Audio class terminal descriptor. See the Audio class specification for more details.

#define AUDIO_CHANNEL_SURROUND (1 << 8)

Supported channel mask for an Audio class terminal descriptor. See the Audio class specification for more details.

#define AUDIO_CHANNEL_TOP (1 << 11)

Supported channel mask for an Audio class terminal descriptor. See the Audio class specification for more details.

#define AUDIO_EP_ACCEPTS_SMALL_PACKETS (0 << 7)

Mask for the attributes parameter of an Audio class-specific Endpoint descriptor, indicating that the endpoint will accept partially filled endpoint packets of audio samples.

#define AUDIO_EP_FULL_PACKETS_ONLY (1 << 7)

Mask for the attributes parameter of an Audio class-specific Endpoint descriptor, indicating that the endpoint accepts only filled endpoint packets of audio samples.

#define AUDIO_EP_PITCH_CONTROL (1 << 1)

Mask for the attributes parameter of an Audio class-specific Endpoint descriptor, indicating that the endpoint allows for pitch adjustments to be made via control requests directed at the endpoint.

#define AUDIO_EP_SAMPLE_FREQ_CONTROL (1 << 0)

Mask for the attributes parameter of an Audio class-specific Endpoint descriptor, indicating that the endpoint allows for sampling frequency adjustments to be made via control requests directed at the endpoint.

#define AUDIO_FEATURE_AUTOMATIC_GAIN (1 << 6)

Supported feature mask for an Audio class feature unit descriptor. See the Audio class specification for more details.

#define AUDIO_FEATURE_BASS (1 << 2)

Supported feature mask for an Audio class feature unit descriptor. See the Audio class specification for more details.

#define AUDIO_FEATURE_BASS_BOOST (1 << 8)

Supported feature mask for an Audio class feature unit descriptor. See the Audio class specification for more details.

#define AUDIO_FEATURE_BASS_LOUDNESS (1 << 9)

Supported feature mask for an Audio class feature unit descriptor. See the Audio class specification for more details.

#define AUDIO_FEATURE_DELAY (1 << 7)

Supported feature mask for an Audio class feature unit descriptor. See the Audio class specification for more details.

#define AUDIO_FEATURE_GRAPHIC_EQUALIZER (1 << 5)

Supported feature mask for an Audio class feature unit descriptor. See the Audio class specification for more details.

#define AUDIO_FEATURE_MID (1 << 3)

Supported feature mask for an Audio class feature unit descriptor. See the Audio class specification for more details.

#define AUDIO_FEATURE_MUTE (1 << 0)

Supported feature mask for an Audio class feature unit descriptor. See the Audio class specification for more details.

#define AUDIO_FEATURE_TREBLE (1 << 4)

Supported feature mask for an Audio class feature unit descriptor. See the Audio class specification for more details.

#define AUDIO_FEATURE_VOLUME (1 << 1)

Supported feature mask for an Audio class feature unit descriptor. See the Audio class specification for more details.

#define AUDIO_SAMPLE_FREQ | ( |  | freq | ) | {.Byte1 = ((uint32_t)freq & 0xFF), .Byte2 = (((uint32_t)freq >> 8) & 0xFF), .Byte3 = (((uint32_t)freq >> 16) & 0xFF)}

Convenience macro to fill a 24-bit USB_Audio_SampleFreq_t structure with the given sample rate as a 24-bit number.

Parameters

  [in] | freq | Required audio sampling frequency in HZ

#define AUDIO_TERMINAL_IN_DESKTOP_MIC 0x0202

Terminal type constant for an Audio class terminal descriptor. See the Audio class specification for more details.

#define AUDIO_TERMINAL_IN_MIC 0x0201

Terminal type constant for an Audio class terminal descriptor. See the Audio class specification for more details.

#define AUDIO_TERMINAL_IN_MIC_ARRAY 0x0205

Terminal type constant for an Audio class terminal descriptor. See the Audio class specification for more details.

#define AUDIO_TERMINAL_IN_OMNIDIR_MIC 0x0204

Terminal type constant for an Audio class terminal descriptor. See the Audio class specification for more details.

#define AUDIO_TERMINAL_IN_OUT_UNDEFINED 0x0300

Terminal type constant for an Audio class terminal descriptor. See the Audio class specification for more details.

#define AUDIO_TERMINAL_IN_PERSONAL_MIC 0x0203

Terminal type constant for an Audio class terminal descriptor. See the Audio class specification for more details.

#define AUDIO_TERMINAL_IN_PROCESSING_MIC 0x0206

Terminal type constant for an Audio class terminal descriptor. See the Audio class specification for more details.

#define AUDIO_TERMINAL_IN_UNDEFINED 0x0200

Terminal type constant for an Audio class terminal descriptor. See the Audio class specification for more details.

#define AUDIO_TERMINAL_OUT_COMMUNICATION 0x0306

Terminal type constant for an Audio class terminal descriptor. See the Audio class specification for more details.

#define AUDIO_TERMINAL_OUT_DESKTOP 0x0304

Terminal type constant for an Audio class terminal descriptor. See the Audio class specification for more details.

#define AUDIO_TERMINAL_OUT_HEAD_MOUNTED 0x0303

Terminal type constant for an Audio class terminal descriptor. See the Audio class specification for more details.

#define AUDIO_TERMINAL_OUT_HEADPHONES 0x0302

Terminal type constant for an Audio class terminal descriptor. See the Audio class specification for more details.

#define AUDIO_TERMINAL_OUT_LOWFREQ 0x0307

Terminal type constant for an Audio class terminal descriptor. See the Audio class specification for more details.

#define AUDIO_TERMINAL_OUT_ROOM 0x0305

Terminal type constant for an Audio class terminal descriptor. See the Audio class specification for more details.

#define AUDIO_TERMINAL_OUT_SPEAKER 0x0301

Terminal type constant for an Audio class terminal descriptor. See the Audio class specification for more details.

#define AUDIO_TERMINAL_STREAMING 0x0101

Terminal type constant for an Audio class terminal descriptor. See the Audio class specification for more details.

#define AUDIO_TERMINAL_UNDEFINED 0x0100

Terminal type constant for an Audio class terminal descriptor. See the Audio class specification for more details.

#define AUDIO_TERMINAL_VENDOR 0x01FF

Terminal type constant for an Audio class terminal descriptor. See the Audio class specification for more details.

## Enumeration Type Documentation

enum Audio_ClassRequests_t

Enum for the Audio class specific control requests that can be issued by the USB bus host.

Enumerator
AUDIO_REQ_SetCurrent | Audio class-specific request to set the current value of a parameter within the device.
AUDIO_REQ_SetMinimum | Audio class-specific request to set the minimum value of a parameter within the device.
AUDIO_REQ_SetMaximum | Audio class-specific request to set the maximum value of a parameter within the device.
AUDIO_REQ_SetResolution | Audio class-specific request to set the resolution value of a parameter within the device.
AUDIO_REQ_SetMemory | Audio class-specific request to set the memory value of a parameter within the device.
AUDIO_REQ_GetCurrent | Audio class-specific request to get the current value of a parameter within the device.
AUDIO_REQ_GetMinimum | Audio class-specific request to get the minimum value of a parameter within the device.
AUDIO_REQ_GetMaximum | Audio class-specific request to get the maximum value of a parameter within the device.
AUDIO_REQ_GetResolution | Audio class-specific request to get the resolution value of a parameter within the device.
AUDIO_REQ_GetMemory | Audio class-specific request to get the memory value of a parameter within the device.
AUDIO_REQ_GetStatus | Audio class-specific request to get the device status.

enum Audio_CSEndpoint_SubTypes_t

Audio class specific endpoint description subtypes, for the Audio Streaming interface.

Enumerator
AUDIO_DSUBTYPE_CSEndpoint_General | Audio class specific endpoint general descriptor.

enum Audio_CSInterface_AC_SubTypes_t

Audio class specific interface description subtypes, for the Audio Control interface.

Enumerator
AUDIO_DSUBTYPE_CSInterface_Header | Audio class specific control interface header.
AUDIO_DSUBTYPE_CSInterface_InputTerminal | Audio class specific control interface Input Terminal.
AUDIO_DSUBTYPE_CSInterface_OutputTerminal | Audio class specific control interface Output Terminal.
AUDIO_DSUBTYPE_CSInterface_Mixer | Audio class specific control interface Mixer Unit.
AUDIO_DSUBTYPE_CSInterface_Selector | Audio class specific control interface Selector Unit.
AUDIO_DSUBTYPE_CSInterface_Feature | Audio class specific control interface Feature Unit.
AUDIO_DSUBTYPE_CSInterface_Processing | Audio class specific control interface Processing Unit.
AUDIO_DSUBTYPE_CSInterface_Extension | Audio class specific control interface Extension Unit.

enum Audio_CSInterface_AS_SubTypes_t

Audio class specific interface description subtypes, for the Audio Streaming interface.

Enumerator
AUDIO_DSUBTYPE_CSInterface_General | Audio class specific streaming interface general descriptor.
AUDIO_DSUBTYPE_CSInterface_FormatType | Audio class specific streaming interface format type descriptor.
AUDIO_DSUBTYPE_CSInterface_FormatSpecific | Audio class specific streaming interface format information descriptor.

enum Audio_Descriptor_ClassSubclassProtocol_t

Enum for possible Class, Subclass and Protocol values of device and interface descriptors relating to the Audio device class.

Enumerator
AUDIO_CSCP_AudioClass | Descriptor Class value indicating that the device or interface belongs to the USB Audio 1.0 class.
AUDIO_CSCP_ControlSubclass | Descriptor Subclass value indicating that the device or interface belongs to the Audio Control subclass.
AUDIO_CSCP_ControlProtocol | Descriptor Protocol value indicating that the device or interface belongs to the Audio Control protocol.
AUDIO_CSCP_AudioStreamingSubclass | Descriptor Subclass value indicating that the device or interface belongs to the MIDI Streaming subclass.
AUDIO_CSCP_MIDIStreamingSubclass | Descriptor Subclass value indicating that the device or interface belongs to the Audio streaming subclass.
AUDIO_CSCP_StreamingProtocol | Descriptor Protocol value indicating that the device or interface belongs to the Streaming Audio protocol.

enum Audio_EndpointControls_t

Enum for Audio class specific Endpoint control modifiers which can be set and retrieved by a USB host, if the corresponding endpoint control is indicated to be supported in the Endpoint's Audio-class specific endpoint descriptor.

Enumerator
AUDIO_EPCONTROL_SamplingFreq | Sampling frequency adjustment of the endpoint.
AUDIO_EPCONTROL_Pitch | Pitch adjustment of the endpoint.