3.3.2.1 Abstraction Model

The USB Audio v1.0 Host Client Driver interacts with Host Layer to control the attached Audio v1.0 device. The USB Host Layer attaches the Audio v1.0 Host Client Driver to the Audio v1.0 device when it meets the matching criteria specified in the USB Host TPL table. The Audio v1.0 Host Client Driver abstracts the details of sending Audio v1.0 class specific control transfer commands by providing easy to use non-blocking API to send these command. A command when issued is assigned a request handle. This request handle is returned in the event that is generated when the command has been processed, and can be used by the application to track the command.

While transferring data Audio Stream Data over the USB Audio v1.0 Host Client Driver abstracts details such as the Audio Streaming interface, endpoints and endpoint size. The USB Audio v1.0 Host Client Driver internally (and without application intervention) validates the Audio v1.0 class specific device descriptors and opens isochronous pipes. While transferring data, multiple read and write requests can be queued. Each such request gets assigned a transfer handle. The transfer handle for a transfer request is returned along with the completion event for that transfer request. The data transfer routines are implemented in usb_host_audio_v1_0.c.