|
Zephyr Project API 3.7.0
A Scalable Open Source RTOS
|
USB Audio 2 application event handlers. More...
#include <usbd_uac2.h>
Data Fields | |
| void(* | sof_cb )(const struct device *dev, void *user_data) |
| Start of Frame callback. | |
| void(* | terminal_update_cb )(const struct device *dev, uint8_t terminal, bool enabled, bool microframes, void *user_data) |
| Terminal update callback. | |
| void *(* | get_recv_buf )(const struct device *dev, uint8_t terminal, uint16_t size, void *user_data) |
| Get receive buffer address. | |
| void(* | data_recv_cb )(const struct device *dev, uint8_t terminal, void *buf, uint16_t size, void *user_data) |
| Data received. | |
| void(* | buf_release_cb )(const struct device *dev, uint8_t terminal, void *buf, void *user_data) |
| Transmit buffer release callback. | |
| uint32_t(* | feedback_cb )(const struct device *dev, uint8_t terminal, void *user_data) |
| Get Explicit Feedback value. | |
USB Audio 2 application event handlers.
| void(* uac2_ops::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.
| dev | USB Audio 2 device |
| terminal | Output Terminal ID linked to AudioStreaming interface |
| buf | Buffer previously provided via usbd_uac2_send |
| user_data | Opaque user data pointer |
| void(* uac2_ops::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.
| dev | USB Audio 2 device |
| terminal | Input Terminal ID linked to AudioStreaming interface |
| buf | Buffer previously obtained via get_recv_buf |
| size | Number of bytes written to buffer |
| user_data | Opaque user data pointer |
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).
| dev | USB Audio 2 device |
| terminal | Input Terminal ID whose feedback should be returned |
| user_data | Opaque user data pointer |
| void *(* uac2_ops::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.
| dev | USB Audio 2 device |
| terminal | Input Terminal ID linked to AudioStreaming interface |
| size | Maximum number of bytes USB stack will write to buffer. |
| user_data | Opaque user data pointer |
Start of Frame callback.
Notifies application about SOF event on the bus.
| dev | USB Audio 2 device |
| user_data | Opaque user data pointer |
| void(* uac2_ops::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.
| dev | USB Audio 2 device |
| terminal | Terminal ID linked to AudioStreaming interface |
| enabled | True if host enabled terminal, False otherwise |
| microframes | True if USB connection speed uses microframes |
| user_data | Opaque user data pointer |