AN295
0x00,
0x01,
0x02,
0x00,
0x00
0x01,
0x00,
//
//
//
//
//
bNumEndpoints (0)
bInterfaceClass (AUDIO)
bInterfaceSubClass (AUDIO_STREAMING)
bInterfaceProtocol (none)
iInterface (none)
// bInterfaceNumber (1)
// bAlternateSetting (0)
The
InterfaceNumber
field gives the audio streaming interface a unique ID number. Interfaces with alternative
settings such as this audio streaming interface use the same InterfaceNumber in each Interface Descriptor, and
distinguish themselves by defining
AlternateSetting
IDs that are unique to the interface group.
0x00,
// bNumEndpoints (0)
This interface does not use an endpoint, since the host will use it only if the necessary amount of data bandwidth
cannot be allocated for the isochronous endpoint.
0x01,
0x02,
// bInterfaceClass (AUDIO)
// bInterfaceSubClass (AUDIO_STREAMING)
These bytes tell the host that this interface is used for streaming audio.
4.1.9. Alternate Audio Interface Descriptor
The second interface setting for this group defines an interface that uses an isochronous endpoint. The firmware
defines this Interface Descriptor as follows:
0x09,
0x04,
0x01,
0x01,
0x01,
0x01,
0x02,
0x00,
0x00
0x01,
0x01,
//
//
//
//
//
//
//
//
//
bLength (9)
bDescriptorType (INTERFACE)
bInterfaceNumber (1)
bAlternateSetting (1)
bNumEndpoints (1)
bInterfaceClass (AUDIO)
bInterfaceSubClass (AUDIO_STREAMING)
bInterfaceProtocol (none)
iInterface (none)
// bInterfaceNumber (1)
// bAlternateSetting (1)
This interface uses the same
InterfaceNumber
as the previous Interface Descriptor, but distinguishes itself by
defining a unique
AlternateSetting
ID.
0x01,
// bNumEndpoints (1)
This interface defines one isochronous endpoint which streams audio data.
4.1.10. Audio Stream Audio Class Descriptor
The next descriptor describes the audio stream in greater detail. The firmware defines the AS_GENERAL
Descriptor as follows:
0x07,
0x24,
0x01,
0x03,
0x00,
0x0100
0x03,
//
//
//
//
//
//
bLength (7)
bDescriptorType (CS_INTERFACE)
bDescriptorSubtype (AS_GENERAL)
bTerminalLink (terminal 3)
bDelay (none)
wFormatTag (PCM format)
// bTerminalLink (terminal 3)
bTerminalLink
links the audio stream to the output terminal defined in a descriptor found above.
Rev. 0.1
11