AN295
4.1.5. Input Terminal Audio Class Descriptor
The next Descriptor, using the subclass tag Input Terminal, describes capabilities of the controls on the audio
stream.
0x0C,
0x24,
0x02,
0x01,
0x1007,
0x00,
0x02,
0x0300,
0x00,
0x00
0x01,
0x1007,
//
//
//
//
//
//
//
//
//
//
bLength (12)
bDescriptorType (CS_INTERFACE)
bDescriptorSubtype (INPUT_TERMINAL)
bTerminalID (1)
wTerminalType (radio receiver)
bAssocTerminal (none)
bNrChannels (2)
wChannelConfig (left, right)
iChannelNames (none)
iTerminal (none)
// bTerminalID (1)
// wTerminalType (radio receiver)
The host addresses this terminal using the value stored in this ID field.
This two-byte value defines the input terminal’s control according to definitions found in the document called “USB
Audio Terminal Types”.
0x00,
// bAssocTerminal (none)
Some terminals are associated with other terminals. For example, an input terminal could be a microphone, and its
associated output terminal could be the headset attached to that microphone. This example has only one input
terminal for the audio stream and no associated terminals.
0x02,
0x0300,
// bNrChannels (2)
// wChannelConfig (left, right)
These fields describe the number of “logical” channels in the audio channel cluster, and the spatial characteristics
of the audio channels. This stream will carry a stereo signal, with a left and a right channel of audio.
0x00,
0x00
// iChannelNames (none)
// iTerminal (none)
These fields are indexes to strings describing the name of the first logical audio channel of the stream and the
name of the terminal, respectively. This example does not define these strings.
4.1.6. Feature Unit Audio Class Descriptor
The next Descriptor describes the capabilities of a Feature Unit associated with the input terminal. A Feature unit
can control different aspects of an audio stream such as volume control, audio gain, and delay. The firmware
defines the Feature Unit as follows:
0x0D,
0x24,
0x06,
0x02,
0x01,
0x02,
0x0100,
0x0000,
0x0000,
0x00
0x02,
//
//
//
//
//
//
//
//
//
//
bLength (13)
bDescriptorType (CS_INTERFACE)
bDescriptorSubtype (FEATURE_UNIT)
bUnitID (2)
bSourceID (input terminal 1)
bControlSize (2 bytes)
Master controls
Channel 0 controls
Channel 1 controls
iFeature (none)
// bUnitID (2)
bUnitID
gives the unit a unique ID, and this value is chosen by the programmer.
Rev. 0.1
9