LUFA Library  130901
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Common Class Definitions

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]freqRequired 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 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.

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

Enumerator
AUDIO_DSUBTYPE_CSEndpoint_General 

Audio class specific endpoint general descriptor.

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.

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 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 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.