Zephyr Project API 3.7.0
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
uac2_ops Struct Reference

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.
 

Detailed Description

USB Audio 2 application event handlers.

Field Documentation

◆ buf_release_cb

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.

Parameters
devUSB Audio 2 device
terminalOutput Terminal ID linked to AudioStreaming interface
bufBuffer previously provided via usbd_uac2_send
user_dataOpaque user data pointer

◆ data_recv_cb

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.

Parameters
devUSB Audio 2 device
terminalInput Terminal ID linked to AudioStreaming interface
bufBuffer previously obtained via get_recv_buf
sizeNumber of bytes written to buffer
user_dataOpaque user data pointer

◆ feedback_cb

uint32_t(* uac2_ops::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).

Parameters
devUSB Audio 2 device
terminalInput Terminal ID whose feedback should be returned
user_dataOpaque user data pointer

◆ get_recv_buf

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.

Parameters
devUSB Audio 2 device
terminalInput Terminal ID linked to AudioStreaming interface
sizeMaximum number of bytes USB stack will write to buffer.
user_dataOpaque user data pointer

◆ sof_cb

void(* uac2_ops::sof_cb) (const struct device *dev, void *user_data)

Start of Frame callback.

Notifies application about SOF event on the bus.

Parameters
devUSB Audio 2 device
user_dataOpaque user data pointer

◆ terminal_update_cb

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.

Parameters
devUSB Audio 2 device
terminalTerminal ID linked to AudioStreaming interface
enabledTrue if host enabled terminal, False otherwise
microframesTrue if USB connection speed uses microframes
user_dataOpaque user data pointer

The documentation for this struct was generated from the following file: