@@ -3210,6 +3210,7 @@ static int cmd_create_broadcast(const struct shell *sh, size_t argc,
3210
3210
struct bt_bap_broadcast_source_subgroup_param subgroup_param ;
3211
3211
struct bt_bap_broadcast_source_param create_param = {0 };
3212
3212
const struct named_lc3_preset * named_preset ;
3213
+ uint32_t broadcast_id = 0U ;
3213
3214
int err ;
3214
3215
3215
3216
if (default_source .bap_source != NULL ) {
@@ -3268,6 +3269,15 @@ static int cmd_create_broadcast(const struct shell *sh, size_t argc,
3268
3269
}
3269
3270
}
3270
3271
3272
+ err = bt_rand (& broadcast_id , BT_AUDIO_BROADCAST_ID_SIZE );
3273
+ if (err != 0 ) {
3274
+ bt_shell_error ("Unable to generate broadcast ID: %d\n" , err );
3275
+
3276
+ return - ENOEXEC ;
3277
+ }
3278
+
3279
+ shell_print (sh , "Generated broadcast_id 0x%06X" , broadcast_id );
3280
+
3271
3281
copy_broadcast_source_preset (& default_source , named_preset );
3272
3282
3273
3283
(void )memset (stream_params , 0 , sizeof (stream_params ));
@@ -3285,11 +3295,14 @@ static int cmd_create_broadcast(const struct shell *sh, size_t argc,
3285
3295
err = bt_bap_broadcast_source_create (& create_param , & default_source .bap_source );
3286
3296
if (err != 0 ) {
3287
3297
shell_error (sh , "Unable to create broadcast source: %d" , err );
3298
+
3299
+ default_source .broadcast_id = BT_BAP_INVALID_BROADCAST_ID ;
3288
3300
return err ;
3289
3301
}
3290
3302
3291
3303
shell_print (sh , "Broadcast source created: preset %s" ,
3292
3304
named_preset -> name );
3305
+ default_source .broadcast_id = broadcast_id ;
3293
3306
3294
3307
if (default_stream == NULL ) {
3295
3308
default_stream = bap_stream_from_shell_stream (& broadcast_source_streams [0 ]);
@@ -3834,6 +3847,8 @@ static int cmd_init(const struct shell *sh, size_t argc, char *argv[])
3834
3847
bt_bap_stream_cb_register (
3835
3848
bap_stream_from_shell_stream (& broadcast_source_streams [i ]), & stream_ops );
3836
3849
}
3850
+
3851
+ default_source .broadcast_id = BT_BAP_INVALID_BROADCAST_ID ;
3837
3852
#endif /* CONFIG_BT_BAP_BROADCAST_SOURCE */
3838
3853
3839
3854
#if defined(CONFIG_LIBLC3 )
@@ -4276,18 +4291,7 @@ static size_t nonconnectable_ad_data_add(struct bt_data *data_array, const size_
4276
4291
static uint8_t ad_bap_broadcast_announcement [5 ] = {
4277
4292
BT_UUID_16_ENCODE (BT_UUID_BROADCAST_AUDIO_VAL ),
4278
4293
};
4279
- uint32_t broadcast_id ;
4280
- int err ;
4281
-
4282
- err = bt_rand (& broadcast_id , BT_AUDIO_BROADCAST_ID_SIZE );
4283
- if (err != 0 ) {
4284
- bt_shell_error ("Unable to generate broadcast ID: %d\n" , err );
4285
-
4286
- return 0 ;
4287
- }
4288
- bt_shell_print ("Generated broadcast_id 0x%06X" , broadcast_id );
4289
-
4290
- sys_put_le24 (broadcast_id , & ad_bap_broadcast_announcement [2 ]);
4294
+ sys_put_le24 (default_source .broadcast_id , & ad_bap_broadcast_announcement [2 ]);
4291
4295
data_array [ad_len ].type = BT_DATA_SVC_DATA16 ;
4292
4296
data_array [ad_len ].data_len = ARRAY_SIZE (ad_bap_broadcast_announcement );
4293
4297
data_array [ad_len ].data = ad_bap_broadcast_announcement ;
0 commit comments