From 6849c64e1fdbed0c18439878151dc19adcc7be2b Mon Sep 17 00:00:00 2001 From: Pauli Virtanen Date: Mon, 25 Mar 2024 19:52:09 +0200 Subject: [PATCH] shared/bap: add bt_bap_cancel_select to cancel ongoing pac select Add function and PAC ops for canceling a previously initiated SelectProperties() call. --- src/shared/bap.c | 12 ++++++++++++ src/shared/bap.h | 5 +++++ 2 files changed, 17 insertions(+) diff --git a/src/shared/bap.c b/src/shared/bap.c index a1749153b..f553096df 100644 --- a/src/shared/bap.c +++ b/src/shared/bap.c @@ -5180,6 +5180,18 @@ int bt_bap_select(struct bt_bap_pac *lpac, struct bt_bap_pac *rpac, return 0; } +void bt_bap_cancel_select(struct bt_bap_pac *lpac, bt_bap_pac_select_t func, + void *user_data) +{ + if (!lpac || !func) + return; + + if (!lpac->ops || !lpac->ops->cancel_select) + return; + + lpac->ops->cancel_select(lpac, func, user_data, lpac->user_data); +} + static struct bt_bap_stream *bap_bcast_stream_new(struct bt_bap *bap, struct bt_bap_pac *lpac, struct bt_bap_pac *rpac, diff --git a/src/shared/bap.h b/src/shared/bap.h index 9839e3249..62e210485 100644 --- a/src/shared/bap.h +++ b/src/shared/bap.h @@ -72,6 +72,8 @@ struct bt_bap_pac_ops { int (*select)(struct bt_bap_pac *lpac, struct bt_bap_pac *rpac, uint32_t chan_alloc, struct bt_bap_pac_qos *qos, bt_bap_pac_select_t cb, void *cb_data, void *user_data); + void (*cancel_select)(struct bt_bap_pac *lpac, + bt_bap_pac_select_t cb, void *cb_data, void *user_data); int (*config)(struct bt_bap_stream *stream, struct iovec *cfg, struct bt_bap_qos *qos, bt_bap_pac_config_t cb, void *user_data); @@ -160,6 +162,9 @@ int bt_bap_select(struct bt_bap_pac *lpac, struct bt_bap_pac *rpac, int *count, bt_bap_pac_select_t func, void *user_data); +void bt_bap_cancel_select(struct bt_bap_pac *lpac, bt_bap_pac_select_t func, + void *user_data); + struct bt_bap_stream *bt_bap_stream_new(struct bt_bap *bap, struct bt_bap_pac *lpac, struct bt_bap_pac *rpac,