Bluetooth: Audio: Add broadcast source subgroup count Kconfig

Add a (initally hidden) Kconfig option for broadcast source
used to determine the size of the advertisable BASE.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
This commit is contained in:
Emil Gydesen 2022-03-17 19:53:53 +01:00 committed by Carles Cufí
commit 9efa22940c
3 changed files with 13 additions and 8 deletions

View file

@ -143,10 +143,10 @@ extern "C" {
#if defined(CONFIG_BT_AUDIO_BROADCAST_SINK) #if defined(CONFIG_BT_AUDIO_BROADCAST_SINK)
#define BROADCAST_SNK_STREAM_CNT CONFIG_BT_AUDIO_BROADCAST_SNK_STREAM_COUNT #define BROADCAST_SNK_STREAM_CNT CONFIG_BT_AUDIO_BROADCAST_SNK_STREAM_COUNT
#define BROADCAST_SUBGROUP_CNT CONFIG_BT_AUDIO_BROADCAST_SUBGROUP_COUNT #define BROADCAST_SNK_SUBGROUP_CNT CONFIG_BT_AUDIO_BROADCAST_SNK_SUBGROUP_COUNT
#else /* !CONFIG_BT_AUDIO_BROADCAST_SINK */ #else /* !CONFIG_BT_AUDIO_BROADCAST_SINK */
#define BROADCAST_SNK_STREAM_CNT 0 #define BROADCAST_SNK_STREAM_CNT 0
#define BROADCAST_SUBGROUP_CNT 0 #define BROADCAST_SNK_SUBGROUP_CNT 0
#endif /* CONFIG_BT_AUDIO_BROADCAST_SINK*/ #endif /* CONFIG_BT_AUDIO_BROADCAST_SINK*/
/** @brief Abstract Audio Unicast Group structure. */ /** @brief Abstract Audio Unicast Group structure. */
@ -291,7 +291,7 @@ struct bt_audio_base {
/* Number of subgroups in the BASE */ /* Number of subgroups in the BASE */
size_t subgroup_count; size_t subgroup_count;
/* Array of subgroups in the BASE */ /* Array of subgroups in the BASE */
struct bt_audio_base_subgroup subgroups[BROADCAST_SUBGROUP_CNT]; struct bt_audio_base_subgroup subgroups[BROADCAST_SNK_SUBGROUP_CNT];
}; };
/** @brief Audio Capability type */ /** @brief Audio Capability type */

View file

@ -123,6 +123,10 @@ config BT_AUDIO_BROADCAST_SOURCE
Isochronous channels. Isochronous channels.
if BT_AUDIO_BROADCAST_SOURCE if BT_AUDIO_BROADCAST_SOURCE
config BT_AUDIO_BROADCAST_SRC_SUBGROUP_COUNT
int # hidden: TODO: Update once the API supports it
default 1
config BT_AUDIO_BROADCAST_SRC_COUNT config BT_AUDIO_BROADCAST_SRC_COUNT
int "Basic Audio Broadcaster source count" int "Basic Audio Broadcaster source count"
default 1 default 1
@ -153,7 +157,7 @@ config BT_AUDIO_BROADCAST_SINK
if BT_AUDIO_BROADCAST_SINK if BT_AUDIO_BROADCAST_SINK
config BT_AUDIO_BROADCAST_SUBGROUP_COUNT config BT_AUDIO_BROADCAST_SNK_SUBGROUP_COUNT
int # hidden: TODO: Update once the API supports it int # hidden: TODO: Update once the API supports it
default 1 default 1

View file

@ -55,7 +55,7 @@ struct bt_audio_base_ad_subgroup {
struct bt_audio_base_ad { struct bt_audio_base_ad {
uint16_t uuid_val; uint16_t uuid_val;
struct bt_audio_base_ad_subgroup subgroups[BROADCAST_SUBGROUP_CNT]; struct bt_audio_base_ad_subgroup subgroups[CONFIG_BT_AUDIO_BROADCAST_SRC_SUBGROUP_COUNT];
} __packed; } __packed;
static struct bt_audio_ep broadcast_source_eps static struct bt_audio_ep broadcast_source_eps
@ -251,8 +251,9 @@ static void bt_audio_encode_base(const struct bt_audio_broadcast_source *source,
uint8_t *start; uint8_t *start;
uint8_t len; uint8_t len;
__ASSERT(source->subgroup_count == BROADCAST_SUBGROUP_CNT, __ASSERT(source->subgroup_count == CONFIG_BT_AUDIO_BROADCAST_SRC_SUBGROUP_COUNT,
"Cannot encode BASE with more than a single subgroup"); "Cannot encode BASE with more than a %u subgroups",
CONFIG_BT_AUDIO_BROADCAST_SRC_SUBGROUP_COUNT);
net_buf_simple_add_le16(buf, BT_UUID_BASIC_AUDIO_VAL); net_buf_simple_add_le16(buf, BT_UUID_BASIC_AUDIO_VAL);
net_buf_simple_add_le24(buf, source->pd); net_buf_simple_add_le24(buf, source->pd);
@ -505,7 +506,7 @@ int bt_audio_broadcast_source_create(struct bt_audio_stream *streams,
return err; return err;
} }
source->subgroup_count = BROADCAST_SUBGROUP_CNT; source->subgroup_count = CONFIG_BT_AUDIO_BROADCAST_SRC_SUBGROUP_COUNT;
source->pd = qos->pd; source->pd = qos->pd;
err = bt_audio_set_base(source, codec); err = bt_audio_set_base(source, codec);
if (err != 0) { if (err != 0) {