English
Language : 

AN295 Datasheet, PDF (9/18 Pages) Silicon Laboratories – USB AUDIO CLASS TUTORIAL
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
// bLength (12)
// bDescriptorType (CS_INTERFACE)
// bDescriptorSubtype (INPUT_TERMINAL)
// bTerminalID (1)
// wTerminalType (radio receiver)
// bAssocTerminal (none)
// bNrChannels (2)
// wChannelConfig (left, right)
// iChannelNames (none)
// iTerminal (none)
0x01,
// bTerminalID (1)
The host addresses this terminal using the value stored in this ID field.
0x1007,
// wTerminalType (radio receiver)
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,
// bNrChannels (2)
0x0300,
// 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,
// iChannelNames (none)
0x00
// 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
// 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)
0x02,
// bUnitID (2)
bUnitID gives the unit a unique ID, and this value is chosen by the programmer.
Rev. 0.1
9