Audio Class 2 device API
USB Audio Class 2 device specific API defined in include/zephyr/usb/class/usbd_uac2.h.
API Reference
- group uac2_device
- USB Audio Class 2 device API. - Defines - 
UAC2_ENTITY_ID(node)
- Get entity ID. - Parameters:
- node – node identifier 
 
 
 - Functions - 
void usbd_uac2_set_ops(const struct device *dev, const struct uac2_ops *ops, void *user_data)
- Register USB Audio 2 application callbacks. - Parameters:
- dev – USB Audio 2 device instance 
- ops – USB Audio 2 callback structure 
- user_data – Opaque user data to pass to ops callbacks 
 
 
 - 
int usbd_uac2_send(const struct device *dev, uint8_t terminal, void *data, uint16_t size)
- Send audio data to output terminal. - Data buffer must be sufficiently aligned and otherwise suitable for use by UDC driver. - Parameters:
- dev – USB Audio 2 device 
- terminal – Output Terminal ID linked to AudioStreaming interface 
- data – Buffer containing outgoing data 
- size – Number of bytes to send 
 
- Returns:
- 0 on success, negative value on error 
 
 - 
struct uac2_ops
- #include <usbd_uac2.h>USB Audio 2 application event handlers. Public Members - 
void (*sof_cb)(const struct device *dev, void *user_data)
- Start of Frame callback. - Notifies application about SOF event on the bus. - Param dev:
- USB Audio 2 device 
- Param user_data:
- Opaque user data pointer 
 
 - 
void (*terminal_update_cb)(const struct device *dev, uint8_t terminal, bool enabled, bool microframes, void *user_data)
- Terminal update callback. - Notifies application that host has enabled or disabled a terminal. - Param dev:
- USB Audio 2 device 
- Param terminal:
- Terminal ID linked to AudioStreaming interface 
- Param enabled:
- True if host enabled terminal, False otherwise 
- Param microframes:
- True if USB connection speed uses microframes 
- Param user_data:
- Opaque user data pointer 
 
 - 
void *(*get_recv_buf)(const struct device *dev, uint8_t terminal, uint16_t size, void *user_data)
- Get receive buffer address. - USB stack calls this function to obtain receive buffer address for AudioStreaming interface. The buffer is owned by USB stack until data_recv_cb callback is called. The buffer must be sufficiently aligned and otherwise suitable for use by UDC driver. - Param dev:
- USB Audio 2 device 
- Param terminal:
- Input Terminal ID linked to AudioStreaming interface 
- Param size:
- Maximum number of bytes USB stack will write to buffer. 
- Param user_data:
- Opaque user data pointer 
 
 - 
void (*data_recv_cb)(const struct device *dev, uint8_t terminal, void *buf, uint16_t size, void *user_data)
- Data received. - This function releases buffer obtained in get_recv_buf after USB has written data to the buffer and/or no longer needs it. - Param dev:
- USB Audio 2 device 
- Param terminal:
- Input Terminal ID linked to AudioStreaming interface 
- Param buf:
- Buffer previously obtained via get_recv_buf 
- Param size:
- Number of bytes written to buffer 
- Param user_data:
- Opaque user data pointer 
 
 - 
void (*buf_release_cb)(const struct device *dev, uint8_t terminal, void *buf, void *user_data)
- Transmit buffer release callback. - This function releases buffer provided in usbd_uac2_send when the class no longer needs it. - Param dev:
- USB Audio 2 device 
- Param terminal:
- Output Terminal ID linked to AudioStreaming interface 
- Param buf:
- Buffer previously provided via usbd_uac2_send 
- Param user_data:
- Opaque user data pointer 
 
 - 
uint32_t (*feedback_cb)(const struct device *dev, uint8_t terminal, void *user_data)
- Get Explicit Feedback value. - Explicit feedback value format depends terminal connection speed. If device is High-Speed capable, it must use Q16.16 format if and only if the terminal_update_cb was called with microframes parameter set to true. On Full-Speed only devices, or if High-Speed capable device is operating at Full-Speed (microframes was false), the format is Q10.14 stored on 24 least significant bits (i.e. 8 most significant bits are ignored). - Param dev:
- USB Audio 2 device 
- Param terminal:
- Input Terminal ID whose feedback should be returned 
- Param user_data:
- Opaque user data pointer 
 
 
- 
void (*sof_cb)(const struct device *dev, void *user_data)
 
- 
UAC2_ENTITY_ID(node)