Zephyr API Documentation 3.7.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
usbd_uac2.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2023-2024 Nordic Semiconductor ASA
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
17#ifndef ZEPHYR_INCLUDE_USB_CLASS_USBD_UAC2_H_
18#define ZEPHYR_INCLUDE_USB_CLASS_USBD_UAC2_H_
19
20#include <zephyr/device.h>
21
34#define UAC2_ENTITY_ID(node) \
35 ({ \
36 BUILD_ASSERT(DT_NODE_HAS_COMPAT(DT_PARENT(node), zephyr_uac2)); \
37 UTIL_INC(DT_NODE_CHILD_IDX(node)); \
38 })
39
43struct uac2_ops {
52 void (*sof_cb)(const struct device *dev, void *user_data);
64 void (*terminal_update_cb)(const struct device *dev, uint8_t terminal,
65 bool enabled, bool microframes,
66 void *user_data);
80 void *(*get_recv_buf)(const struct device *dev, uint8_t terminal,
81 uint16_t size, void *user_data);
94 void (*data_recv_cb)(const struct device *dev, uint8_t terminal,
95 void *buf, uint16_t size, void *user_data);
107 void (*buf_release_cb)(const struct device *dev, uint8_t terminal,
108 void *buf, void *user_data);
124 uint32_t (*feedback_cb)(const struct device *dev, uint8_t terminal,
125 void *user_data);
140 uint32_t (*get_sample_rate)(const struct device *dev, uint8_t clock_id,
141 void *user_data);
157 int (*set_sample_rate)(const struct device *dev, uint8_t clock_id,
158 uint32_t rate, void *user_data);
159};
160
168void usbd_uac2_set_ops(const struct device *dev,
169 const struct uac2_ops *ops, void *user_data);
170
184int usbd_uac2_send(const struct device *dev, uint8_t terminal,
185 void *data, uint16_t size);
186
191#endif /* ZEPHYR_INCLUDE_USB_CLASS_USBD_UAC2_H_ */
void usbd_uac2_set_ops(const struct device *dev, const struct uac2_ops *ops, void *user_data)
Register USB Audio 2 application callbacks.
int usbd_uac2_send(const struct device *dev, uint8_t terminal, void *data, uint16_t size)
Send audio data to output terminal.
__UINT32_TYPE__ uint32_t
Definition stdint.h:90
__UINT8_TYPE__ uint8_t
Definition stdint.h:88
__UINT16_TYPE__ uint16_t
Definition stdint.h:89
Runtime device structure (in ROM) per driver instance.
Definition device.h:403
void * data
Address of the device instance private data.
Definition device.h:413
USB Audio 2 application event handlers.
Definition usbd_uac2.h:43
void(* sof_cb)(const struct device *dev, void *user_data)
Start of Frame callback.
Definition usbd_uac2.h:52
void(* buf_release_cb)(const struct device *dev, uint8_t terminal, void *buf, void *user_data)
Transmit buffer release callback.
Definition usbd_uac2.h:107
int(* set_sample_rate)(const struct device *dev, uint8_t clock_id, uint32_t rate, void *user_data)
Set active sample rate.
Definition usbd_uac2.h:157
void(* data_recv_cb)(const struct device *dev, uint8_t terminal, void *buf, uint16_t size, void *user_data)
Data received.
Definition usbd_uac2.h:94
uint32_t(* feedback_cb)(const struct device *dev, uint8_t terminal, void *user_data)
Get Explicit Feedback value.
Definition usbd_uac2.h:124
uint32_t(* get_sample_rate)(const struct device *dev, uint8_t clock_id, void *user_data)
Get active sample rate.
Definition usbd_uac2.h:140
void(* terminal_update_cb)(const struct device *dev, uint8_t terminal, bool enabled, bool microframes, void *user_data)
Terminal update callback.
Definition usbd_uac2.h:64