sjanc commented on code in PR #1813:
URL: https://github.com/apache/mynewt-nimble/pull/1813#discussion_r1705364192


##########
apps/bttester/src/btp/bttester.h:
##########
@@ -148,6 +148,9 @@ tester_init_bap(void);
 uint8_t
 tester_unregister_bap(void);
 #endif /* MYNEWT_VAL(BLE_ISO_BROADCAST_SOURCE) */
-
-#endif /* __BTTESTER_H__ */
+uint8_t
+tester_init_bass(void);
+uint8_t
+tester_unregister_bass(void);
+#endif /* MYNEWT_VAL(BLE_ISO_BROADCASTER) */

Review Comment:
   this #endif looks  odd,   some rebase misclick?



##########
apps/bttester/src/btp_bap.c:
##########
@@ -371,8 +401,171 @@ static const struct btp_handler handlers[] = {
         .expect_len = sizeof(struct bap_bap_broadcast_source_stop_cmd),
         .func = broadcast_source_stop,
     },
+    {
+        .opcode = BTP_BAP_SET_BROADCAST_CODE,
+        .index = BTP_INDEX,
+        .expect_len = sizeof(struct btp_bap_set_broadcast_code_cmd),
+        .func = broadcast_code_set,
+    },
+    {
+        .opcode = BTP_BAP_BROADCAST_SINK_SETUP,
+        .index = BTP_INDEX,
+        .expect_len = BTP_HANDLER_LENGTH_VARIABLE,
+        .func = broadcast_sink_setup,
+    },
+    {
+        .opcode = BTP_BAP_BROADCAST_SINK_STOP,
+        .index = BTP_INDEX,
+        .expect_len = BTP_HANDLER_LENGTH_VARIABLE,

Review Comment:
   ditto



##########
apps/bttester/src/btp_bap.c:
##########
@@ -371,8 +401,171 @@ static const struct btp_handler handlers[] = {
         .expect_len = sizeof(struct bap_bap_broadcast_source_stop_cmd),
         .func = broadcast_source_stop,
     },
+    {
+        .opcode = BTP_BAP_SET_BROADCAST_CODE,
+        .index = BTP_INDEX,
+        .expect_len = sizeof(struct btp_bap_set_broadcast_code_cmd),
+        .func = broadcast_code_set,
+    },
+    {
+        .opcode = BTP_BAP_BROADCAST_SINK_SETUP,
+        .index = BTP_INDEX,
+        .expect_len = BTP_HANDLER_LENGTH_VARIABLE,

Review Comment:
   BTP defines this as fixed size



##########
apps/bttester/src/btp_bap.c:
##########
@@ -319,6 +321,34 @@ broadcast_source_start(const void *cmd, uint16_t cmd_len, 
void *rsp,
     return BTP_STATUS_SUCCESS;
 }
 
+static uint8_t
+broadcast_code_set(const void *cmd, uint16_t cmd_len, void *rsp,
+                   uint16_t *rsp_len)
+{
+    return BTP_STATUS_SUCCESS;
+}
+
+static uint8_t
+broadcast_sink_setup(const void *cmd, uint16_t cmd_len, void *rsp,
+                     uint16_t *rsp_len)
+{
+    return BTP_STATUS_SUCCESS;
+}
+
+static uint8_t
+broadcast_sink_stop(const void *cmd, uint16_t cmd_len, void *rsp,
+                    uint16_t *rsp_len)
+{
+    int rc;
+
+    rc = ble_audio_broadcast_sink_stop(0);

Review Comment:
   why all BTP params are ignored?



##########
apps/bttester/src/btp_bap.c:
##########
@@ -371,8 +401,171 @@ static const struct btp_handler handlers[] = {
         .expect_len = sizeof(struct bap_bap_broadcast_source_stop_cmd),
         .func = broadcast_source_stop,
     },
+    {
+        .opcode = BTP_BAP_SET_BROADCAST_CODE,
+        .index = BTP_INDEX,
+        .expect_len = sizeof(struct btp_bap_set_broadcast_code_cmd),
+        .func = broadcast_code_set,
+    },
+    {
+        .opcode = BTP_BAP_BROADCAST_SINK_SETUP,
+        .index = BTP_INDEX,
+        .expect_len = BTP_HANDLER_LENGTH_VARIABLE,
+        .func = broadcast_sink_setup,
+    },
+    {
+        .opcode = BTP_BAP_BROADCAST_SINK_STOP,
+        .index = BTP_INDEX,
+        .expect_len = BTP_HANDLER_LENGTH_VARIABLE,
+        .func = broadcast_sink_stop,
+    },
 };
 
+#define BROADCAST_SINK_PA_SYNC_TIMEOUT_DEFAULT  0x07D0
+
+static int
+broadcast_sink_pa_sync_params_get(struct ble_gap_periodic_sync_params *params)
+{
+    params->skip = 0;
+    params->sync_timeout = BROADCAST_SINK_PA_SYNC_TIMEOUT_DEFAULT;
+    params->reports_disabled = false;
+
+    return 0;
+}
+
+static int
+broadcast_sink_disc_start(const struct ble_gap_ext_disc_params *params)
+{
+    uint8_t own_addr_type;
+    int rc;
+
+    /* Figure out address to use while scanning. */
+    rc = ble_hs_id_infer_auto(0, &own_addr_type);
+    if (rc != 0) {
+        console_printf("determining own address type failed (%d)", rc);
+        assert(0);
+    }
+
+    rc = ble_gap_ext_disc(own_addr_type, 0, 0, 0, 0, 0, params, NULL, NULL, 
NULL);
+    if (rc != 0) {
+        console_printf("ext disc failed (%d)", rc);
+    }
+
+    return rc;
+}
+
+static int
+broadcast_sink_disc_stop(void)
+{
+    int rc;
+
+    rc = ble_gap_disc_cancel();
+    if (rc != 0) {
+        console_printf("disc cancel failed (%d)", rc);
+    }
+
+    return rc;
+}
+
+static int
+broadcast_sink_action_fn(struct ble_audio_broadcast_sink_action *action, void 
*arg)
+{
+    switch (action->type) {
+    case BLE_AUDIO_BROADCAST_SINK_ACTION_PA_SYNC:
+        return broadcast_sink_pa_sync_params_get(action->pa_sync.out_params);
+    case BLE_AUDIO_BROADCAST_SINK_ACTION_BIG_SYNC:
+        break;
+    case BLE_AUDIO_BROADCAST_SINK_ACTION_BIS_SYNC:
+        return 0;
+    case BLE_AUDIO_BROADCAST_SINK_ACTION_DISC_START:
+        return broadcast_sink_disc_start(action->disc_start.params_preferred);
+    case BLE_AUDIO_BROADCAST_SINK_ACTION_DISC_STOP:
+        return broadcast_sink_disc_stop();
+    default:
+        assert(false);
+        return BLE_HS_ENOTSUP;
+    }
+
+    return 0;
+}
+
+static int
+broadcast_sink_audio_event_handler(struct ble_audio_event *event, void *arg)
+{
+    switch (event->type) {
+    case BLE_AUDIO_EVENT_BROADCAST_SINK_PA_SYNC_STATE:
+        console_printf("source_id=0x%02x PA sync: %s\n",
+                       event->broadcast_sink_pa_sync_state.source_id,
+                       ble_audio_broadcast_sink_sync_state_str(
+                               event->broadcast_sink_pa_sync_state.state));
+        break;
+    case BLE_AUDIO_EVENT_BROADCAST_SINK_BIS_SYNC_STATE:
+        console_printf("source_id=0x%02x bis_index=0x%02x BIS sync: %s\n",
+                       event->broadcast_sink_bis_sync_state.source_id,
+                       event->broadcast_sink_bis_sync_state.bis_index,
+                       ble_audio_broadcast_sink_sync_state_str(
+                               event->broadcast_sink_bis_sync_state.state));
+        if (event->broadcast_sink_bis_sync_state.state ==
+            BLE_AUDIO_BROADCAST_SINK_SYNC_STATE_ESTABLISHED) {
+            console_printf("conn_handle=0x%04x\n",
+                           event->broadcast_sink_bis_sync_state.conn_handle);
+        }
+        break;
+    default:
+        break;
+    }
+
+    return 0;
+}
+
+static int
+scan_delegator_pick_source_id_to_swap(uint8_t *out_source_id_to_swap)
+{
+    /* TODO: Add some logic here */
+    *out_source_id_to_swap = 0;
+
+    return 0;
+}
+
+static int
+scan_delegator_action_fn(struct ble_audio_scan_delegator_action *action, void 
*arg)
+{
+    switch (action->type) {
+    case BLE_AUDIO_SCAN_DELEGATOR_ACTION_SOURCE_ADD:
+        console_printf("Source Add:\nsource_id=%u\n", 
action->source_add.source_id);
+        if (action->source_add.out_source_id_to_swap == NULL) {
+            return 0;
+        } else {
+            return 
scan_delegator_pick_source_id_to_swap(action->source_add.out_source_id_to_swap);
+        }
+    case BLE_AUDIO_SCAN_DELEGATOR_ACTION_SOURCE_MODIFY:
+        console_printf("Source Modify:\nsource_id=%u\n", 
action->source_modify.source_id);
+        break;
+    case BLE_AUDIO_SCAN_DELEGATOR_ACTION_SOURCE_REMOVE:
+        console_printf("Source Remove:\nsource_id=%u\n", 
action->source_remove.source_id);
+        break;
+    default:
+        assert(false);
+        return BLE_HS_ENOTSUP;
+    }
+
+    return 0;
+}
+
+static int
+scan_delegator_audio_event_handler(struct ble_audio_event *event, void *arg)
+{
+    switch (event->type) {
+    case BLE_AUDIO_EVENT_BROADCAST_ANNOUNCEMENT:
+        console_printf("\n");

Review Comment:
   hm?



##########
apps/bttester/src/btp_bap.c:
##########
@@ -319,6 +321,34 @@ broadcast_source_start(const void *cmd, uint16_t cmd_len, 
void *rsp,
     return BTP_STATUS_SUCCESS;
 }
 
+static uint8_t
+broadcast_code_set(const void *cmd, uint16_t cmd_len, void *rsp,
+                   uint16_t *rsp_len)
+{
+    return BTP_STATUS_SUCCESS;

Review Comment:
   why those have no implementation?



##########
apps/bttester/src/btp_gap.c:
##########
@@ -2000,6 +2001,44 @@ set_filter_accept_list(const void *cmd, uint16_t cmd_len,
     return BTP_STATUS_SUCCESS;
 }
 
+#if MYNEWT_VAL(BLE_EXT_ADV)
+static uint8_t
+set_ext_advertising(const void *cmd, uint16_t cmd_len,

Review Comment:
   This is not valid implementation of this command. From BTP spec:  "This 
command is used to enable/disable Extended Advertising when Start/Stop 
Advertising is used."
   
   So it should be used to tune if advertising is using legacy or ext_adv PDUs, 
not to start advertising



##########
targets/nordic_pca10095_net-blehci/syscfg.yml:
##########
@@ -39,4 +39,7 @@ syscfg.vals:
     BLE_MULTI_ADV_INSTANCES: 5
     BLE_PERIODIC_ADV: 1
     BLE_PERIODIC_ADV_SYNC_TRANSFER: 1
-    BLE_VERSION: 51
+    BLE_PERIODIC_ADV_SYNC_BIGINFO_REPORTS: 1

Review Comment:
   I think we should enable all (non-experimental) features in default netcore 
image, so this is fine but should be in separate PR



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to