@@ -533,40 +533,37 @@ static int cap_broadcast_source_adv_setup(struct btp_bap_broadcast_local_source
533
533
uint32_t * gap_settings )
534
534
{
535
535
int err ;
536
- struct bt_le_adv_param param = * BT_LE_EXT_ADV_NCONN ;
537
- uint32_t broadcast_id ;
538
536
539
- NET_BUF_SIMPLE_DEFINE (ad_buf , BT_UUID_SIZE_16 + BT_AUDIO_BROADCAST_ID_SIZE );
540
537
NET_BUF_SIMPLE_DEFINE (base_buf , 128 );
541
538
542
539
/* Broadcast Audio Streaming Endpoint advertising data */
543
- struct bt_data base_ad [2 ];
544
540
struct bt_data per_ad ;
545
541
546
- err = bt_rand (& broadcast_id , BT_AUDIO_BROADCAST_ID_SIZE );
547
- if (err ) {
548
- printk ("Unable to generate broadcast ID: %d\n" , err );
549
-
550
- return - EINVAL ;
551
- }
552
-
553
- * gap_settings = BIT (BTP_GAP_SETTINGS_DISCOVERABLE ) |
554
- BIT (BTP_GAP_SETTINGS_EXTENDED_ADVERTISING );
555
- /* Setup extended advertising data */
556
- net_buf_simple_add_le16 (& ad_buf , BT_UUID_BROADCAST_AUDIO_VAL );
557
- net_buf_simple_add_le24 (& ad_buf , source -> broadcast_id );
558
- base_ad [0 ].type = BT_DATA_SVC_DATA16 ;
559
- base_ad [0 ].data_len = ad_buf .len ;
560
- base_ad [0 ].data = ad_buf .data ;
561
- base_ad [1 ].type = BT_DATA_NAME_COMPLETE ;
562
- base_ad [1 ].data_len = sizeof (CONFIG_BT_DEVICE_NAME ) - 1 ;
563
- base_ad [1 ].data = CONFIG_BT_DEVICE_NAME ;
564
- err = tester_gap_create_adv_instance (& param , BTP_GAP_ADDR_TYPE_IDENTITY , base_ad , 2 , NULL ,
565
- 0 , gap_settings );
566
- if (err != 0 ) {
567
- LOG_DBG ("Failed to create extended advertising instance: %d" , err );
568
-
569
- return - EINVAL ;
542
+ /* A more specialized adv instance may already have been created by another btp module */
543
+ if (tester_gap_ext_adv_get () == NULL ) {
544
+ struct bt_le_adv_param param = * BT_LE_EXT_ADV_NCONN ;
545
+ struct bt_data base_ad [2 ];
546
+
547
+ NET_BUF_SIMPLE_DEFINE (ad_buf , BT_UUID_SIZE_16 + BT_AUDIO_BROADCAST_ID_SIZE );
548
+ * gap_settings = BIT (BTP_GAP_SETTINGS_DISCOVERABLE ) |
549
+ BIT (BTP_GAP_SETTINGS_EXTENDED_ADVERTISING );
550
+ /* Setup extended advertising data */
551
+ net_buf_simple_add_le16 (& ad_buf , BT_UUID_BROADCAST_AUDIO_VAL );
552
+ net_buf_simple_add_le24 (& ad_buf , source -> broadcast_id );
553
+ base_ad [0 ].type = BT_DATA_SVC_DATA16 ;
554
+ base_ad [0 ].data_len = ad_buf .len ;
555
+ base_ad [0 ].data = ad_buf .data ;
556
+ base_ad [1 ].type = BT_DATA_NAME_COMPLETE ;
557
+ base_ad [1 ].data_len = sizeof (CONFIG_BT_DEVICE_NAME ) - 1 ;
558
+ base_ad [1 ].data = CONFIG_BT_DEVICE_NAME ;
559
+
560
+ err = tester_gap_create_adv_instance (& param , BTP_GAP_ADDR_TYPE_IDENTITY , base_ad ,
561
+ 2 , NULL , 0 , gap_settings );
562
+ if (err != 0 ) {
563
+ LOG_DBG ("Failed to create extended advertising instance: %d" , err );
564
+
565
+ return - EINVAL ;
566
+ }
570
567
}
571
568
572
569
err = tester_gap_padv_configure (BT_LE_PER_ADV_PARAM (BT_GAP_PER_ADV_FAST_INT_MIN_2 ,
0 commit comments