blob: e5c2accb99f77702dc79a6242e43cf7fca55053e [file]
/* SPDX-License-Identifier: LGPL-2.1-or-later */
/*
*
* BlueZ - Bluetooth protocol stack for Linux
*
* Copyright (C) 2022 Intel Corporation. All rights reserved.
* Copyright 2023-2024 NXP
*
*/
#ifndef SRC_SHARED_BAP_DEFS_H_
#define SRC_SHARED_BAP_DEFS_H_
#ifndef __packed
#define __packed __attribute__((packed))
#endif
#define BT_BAP_SINK BIT(0)
#define BT_BAP_SOURCE BIT(1)
#define BT_BAP_BCAST_SOURCE BIT(2)
#define BT_BAP_BCAST_SINK BIT(3)
#define BT_BAP_STREAM_TYPE_UCAST 0x01
#define BT_BAP_STREAM_TYPE_BCAST 0x02
#define BT_BAP_STREAM_STATE_IDLE 0x00
#define BT_BAP_STREAM_STATE_CONFIG 0x01
#define BT_BAP_STREAM_STATE_QOS 0x02
#define BT_BAP_STREAM_STATE_ENABLING 0x03
#define BT_BAP_STREAM_STATE_STREAMING 0x04
#define BT_BAP_STREAM_STATE_DISABLING 0x05
#define BT_BAP_STREAM_STATE_RELEASING 0x06
#define BT_BAP_CONFIG_LATENCY_LOW 0x01
#define BT_BAP_CONFIG_LATENCY_BALANCED 0x02
#define BT_BAP_CONFIG_LATENCY_HIGH 0x03
#define BT_BAP_CONFIG_PHY_1M BIT(0)
#define BT_BAP_CONFIG_PHY_2M BIT(1)
#define BT_BAP_CONFIG_PHY_CODEC BIT(2)
struct bt_bap_codec {
uint8_t id;
uint16_t cid;
uint16_t vid;
} __packed;
struct bt_ltv {
uint8_t len;
uint8_t type;
uint8_t value[];
} __packed;
struct bt_bap_io_qos {
uint32_t interval; /* Frame interval */
uint16_t latency; /* Transport Latency */
uint16_t sdu; /* Maximum SDU Size */
uint8_t phys; /* PHY */
uint8_t rtn; /* Retransmission Effort */
};
struct bt_bap_ucast_qos {
uint8_t cig_id;
uint8_t cis_id;
uint8_t framing; /* Frame framing */
uint32_t delay; /* Presentation Delay */
uint8_t target_latency; /* Target Latency */
struct bt_bap_io_qos io_qos;
};
struct bt_bap_bcast_qos {
uint8_t big;
uint8_t bis;
uint8_t sync_factor;
uint8_t packing;
uint8_t framing;
uint8_t encryption;
struct iovec *bcode;
uint8_t options;
uint16_t skip;
uint16_t sync_timeout;
uint8_t sync_cte_type;
uint8_t mse;
uint16_t timeout;
uint8_t pa_sync;
struct bt_bap_io_qos io_qos;
uint32_t delay; /* Presentation Delay */
};
struct bt_bap_qos {
union {
struct bt_bap_ucast_qos ucast;
struct bt_bap_bcast_qos bcast;
};
};
#endif /* SRC_SHARED_BAP_DEFS_H_ */