...
usbd_audio.h / usbd_audio.c
Prototype
Code Block | ||
---|---|---|
| ||
void USBD_Audio_CfgAdd (CPU_INT08U class_nbr,
CPU_INT08U dev_nbr,
CPU_INT08U cfg_nbr,
USBD_ERR *p_err); |
Arguments
class_nbr
Class instance number.
...
- If
USBD_Audio_CfgAdd()
is called several times from the application, it allows to create multiple instances and multiple configurations. For instance, the following architecture could be created:Audio Class 0 (device number 0)
|-- Configuration 0
|-- Configuration 1
Audio Class 1 (device number 1)
|-- Configuration 0
|-- Configuration 1
The Configuration Descriptor corresponding to an audio device has the following format:
Configuration Descriptor
|-- Interface Descriptor (AudioControl) [standard]
|-- Header Descriptor [class-specific]|-- Unit Descriptor(s) [class-specific]
|-- Terminal Descriptor(s) [class-specific]
|-- Endpoint Descriptor (Interrupt IN) - optional [standard]
|-- Interface Descriptor (AudioStreaming) [standard]
|-- AS Interface Descriptor [class-specific]
|-- AS Format Type Descriptor [class-specific]
|-- AS Format-Specific Descriptor(s) [class-specific]
|-- Endpoint Descriptor (Isochronous IN or OUT Data) [standard]
|-- AS Isochronous Audio Data Endpoint Descriptor [class-specific]
|-- Endpoint Descriptor (Isochronous OUT or IN Synch endpoint) [standard]
|-- Interface Descriptor (AudioStreaming) [standard]
|-- ...
|-- Interface Descriptor (AudioStreaming) [standard]
|-- ...
...