Zephyr API Documentation  3.7.0
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);
126};
127
135void usbd_uac2_set_ops(const struct device *dev,
136 const struct uac2_ops *ops, void *user_data);
137
151int usbd_uac2_send(const struct device *dev, uint8_t terminal,
152 void *data, uint16_t size);
153
158#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
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
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