Lines Matching refs:source
127 static void broadcast_source_set_state(struct bt_bap_broadcast_source *source, uint8_t state) in broadcast_source_set_state() argument
131 SYS_SLIST_FOR_EACH_CONTAINER(&source->subgroups, subgroup, _node) { in broadcast_source_set_state()
298 struct bt_bap_broadcast_source *source) in broadcast_source_setup_stream() argument
329 stream->group = source; in broadcast_source_setup_stream()
330 ep->broadcast_source = source; in broadcast_source_setup_stream()
420 static bool encode_base(struct bt_bap_broadcast_source *source, struct net_buf_simple *buf) in encode_base() argument
432 SYS_SLIST_FOR_EACH_CONTAINER(&source->subgroups, subgroup, _node) { in encode_base()
438 net_buf_simple_add_le24(buf, source->qos->pd); in encode_base()
445 SYS_SLIST_FOR_EACH_CONTAINER(&source->subgroups, subgroup, _node) { in encode_base()
446 if (!encode_base_subgroup(subgroup, &source->stream_data[streams_encoded], in encode_base()
455 static void broadcast_source_cleanup(struct bt_bap_broadcast_source *source) in broadcast_source_cleanup() argument
459 SYS_SLIST_FOR_EACH_CONTAINER_SAFE(&source->subgroups, subgroup, next_subgroup, _node) { in broadcast_source_cleanup()
474 sys_slist_remove(&source->subgroups, NULL, &subgroup->_node); in broadcast_source_cleanup()
477 (void)memset(source, 0, sizeof(*source)); in broadcast_source_cleanup()
481 const struct bt_bap_broadcast_source *source) in valid_broadcast_source_param() argument
561 stream_param->stream->group != source) { in valid_broadcast_source_param()
600 static enum bt_bap_ep_state broadcast_source_get_state(struct bt_bap_broadcast_source *source) in broadcast_source_get_state() argument
605 if (source == NULL) { in broadcast_source_get_state()
610 if (sys_slist_is_empty(&source->subgroups)) { in broadcast_source_get_state()
615 SYS_SLIST_FOR_EACH_CONTAINER(&source->subgroups, subgroup, _node) { in broadcast_source_get_state()
689 struct bt_bap_broadcast_source *source; in bt_bap_broadcast_source_create() local
709 source = NULL; in bt_bap_broadcast_source_create()
712 source = &broadcast_sources[index]; in bt_bap_broadcast_source_create()
717 if (source == NULL) { in bt_bap_broadcast_source_create()
737 broadcast_source_cleanup(source); in bt_bap_broadcast_source_create()
742 sys_slist_append(&source->subgroups, &subgroup->_node); in bt_bap_broadcast_source_create()
747 broadcast_source_cleanup(source); in bt_bap_broadcast_source_create()
767 codec_cfg = &source->codec_cfg[bis_count]; in bt_bap_broadcast_source_create()
774 broadcast_source_cleanup(source); in bt_bap_broadcast_source_create()
781 err = broadcast_source_setup_stream(index, stream, codec_cfg, qos, source); in bt_bap_broadcast_source_create()
784 broadcast_source_cleanup(source); in bt_bap_broadcast_source_create()
794 (void)memcpy(source->stream_data[stream_count].data, stream_param->data, in bt_bap_broadcast_source_create()
796 source->stream_data[stream_count].data_len = stream_param->data_len; in bt_bap_broadcast_source_create()
804 broadcast_source_set_state(source, BT_BAP_EP_STATE_QOS_CONFIGURED); in bt_bap_broadcast_source_create()
805 source->qos = qos; in bt_bap_broadcast_source_create()
806 source->packing = param->packing; in bt_bap_broadcast_source_create()
808 source->irc = param->irc; in bt_bap_broadcast_source_create()
809 source->pto = param->pto; in bt_bap_broadcast_source_create()
810 source->iso_interval = param->iso_interval; in bt_bap_broadcast_source_create()
813 source->encryption = param->encryption; in bt_bap_broadcast_source_create()
814 if (source->encryption) { in bt_bap_broadcast_source_create()
815 (void)memcpy(source->broadcast_code, param->broadcast_code, in bt_bap_broadcast_source_create()
816 sizeof(source->broadcast_code)); in bt_bap_broadcast_source_create()
819 *out_source = source; in bt_bap_broadcast_source_create()
824 int bt_bap_broadcast_source_reconfig(struct bt_bap_broadcast_source *source, in bt_bap_broadcast_source_reconfig() argument
833 CHECKIF(source == NULL) { in bt_bap_broadcast_source_reconfig()
838 if (!valid_broadcast_source_param(param, source)) { in bt_bap_broadcast_source_reconfig()
843 broadcast_state = broadcast_source_get_state(source); in bt_bap_broadcast_source_reconfig()
844 if (broadcast_source_get_state(source) != BT_BAP_EP_STATE_QOS_CONFIGURED) { in bt_bap_broadcast_source_reconfig()
851 SYS_SLIST_FOR_EACH_CONTAINER(&source->subgroups, subgroup, _node) { in bt_bap_broadcast_source_reconfig()
911 SYS_SLIST_PEEK_HEAD_CONTAINER(&source->subgroups, subgroup, _node); in bt_bap_broadcast_source_reconfig()
936 codec_cfg = &source->codec_cfg[bis_count]; in bt_bap_broadcast_source_reconfig()
963 stream_data = &source->stream_data[stream_idx]; in bt_bap_broadcast_source_reconfig()
977 SYS_SLIST_FOR_EACH_CONTAINER(&source->subgroups, subgroup, _node) { in bt_bap_broadcast_source_reconfig()
989 source->qos = qos; in bt_bap_broadcast_source_reconfig()
994 int bt_bap_broadcast_source_update_metadata(struct bt_bap_broadcast_source *source, in bt_bap_broadcast_source_update_metadata() argument
1000 CHECKIF(source == NULL) { in bt_bap_broadcast_source_update_metadata()
1019 broadcast_state = broadcast_source_get_state(source); in bt_bap_broadcast_source_update_metadata()
1020 if (broadcast_source_get_state(source) != BT_BAP_EP_STATE_STREAMING) { in bt_bap_broadcast_source_update_metadata()
1029 SYS_SLIST_FOR_EACH_CONTAINER(&source->subgroups, subgroup, _node) { in bt_bap_broadcast_source_update_metadata()
1038 int bt_bap_broadcast_source_start(struct bt_bap_broadcast_source *source, struct bt_le_ext_adv *adv) in bt_bap_broadcast_source_start() argument
1048 CHECKIF(source == NULL) { in bt_bap_broadcast_source_start()
1058 broadcast_state = broadcast_source_get_state(source); in bt_bap_broadcast_source_start()
1059 if (broadcast_source_get_state(source) != BT_BAP_EP_STATE_QOS_CONFIGURED) { in bt_bap_broadcast_source_start()
1065 SYS_SLIST_FOR_EACH_CONTAINER(&source->subgroups, subgroup, _node) { in bt_bap_broadcast_source_start()
1074 param.framing = source->qos->framing; in bt_bap_broadcast_source_start()
1075 param.packing = source->packing; in bt_bap_broadcast_source_start()
1076 param.interval = source->qos->interval; in bt_bap_broadcast_source_start()
1077 param.latency = source->qos->latency; in bt_bap_broadcast_source_start()
1078 param.encryption = source->encryption; in bt_bap_broadcast_source_start()
1080 (void)memcpy(param.bcode, source->broadcast_code, sizeof(param.bcode)); in bt_bap_broadcast_source_start()
1083 param.irc = source->irc; in bt_bap_broadcast_source_start()
1084 param.pto = source->pto; in bt_bap_broadcast_source_start()
1085 param.iso_interval = source->iso_interval; in bt_bap_broadcast_source_start()
1091 broadcast_source_set_state(source, BT_BAP_EP_STATE_ENABLING); in bt_bap_broadcast_source_start()
1093 err = bt_iso_big_create(adv, ¶m, &source->big); in bt_bap_broadcast_source_start()
1096 broadcast_source_set_state(source, BT_BAP_EP_STATE_QOS_CONFIGURED); in bt_bap_broadcast_source_start()
1104 int bt_bap_broadcast_source_stop(struct bt_bap_broadcast_source *source) in bt_bap_broadcast_source_stop() argument
1109 CHECKIF(source == NULL) { in bt_bap_broadcast_source_stop()
1114 broadcast_state = broadcast_source_get_state(source); in bt_bap_broadcast_source_stop()
1121 if (source->big == NULL) { in bt_bap_broadcast_source_stop()
1126 err = bt_iso_big_terminate(source->big); in bt_bap_broadcast_source_stop()
1135 int bt_bap_broadcast_source_delete(struct bt_bap_broadcast_source *source) in bt_bap_broadcast_source_delete() argument
1139 CHECKIF(source == NULL) { in bt_bap_broadcast_source_delete()
1144 broadcast_state = broadcast_source_get_state(source); in bt_bap_broadcast_source_delete()
1150 broadcast_source_set_state(source, BT_BAP_EP_STATE_IDLE); in bt_bap_broadcast_source_delete()
1153 broadcast_source_cleanup(source); in bt_bap_broadcast_source_delete()
1158 int bt_bap_broadcast_source_get_base(struct bt_bap_broadcast_source *source, in bt_bap_broadcast_source_get_base() argument
1163 CHECKIF(source == NULL) { in bt_bap_broadcast_source_get_base()
1173 broadcast_state = broadcast_source_get_state(source); in bt_bap_broadcast_source_get_base()
1179 if (!encode_base(source, base_buf)) { in bt_bap_broadcast_source_get_base()
1201 struct bt_bap_broadcast_source *source = get_broadcast_source_by_big(big); in big_started_cb() local
1204 if (source == NULL) { in big_started_cb()
1211 listener->started(source); in big_started_cb()
1218 struct bt_bap_broadcast_source *source = get_broadcast_source_by_big(big); in big_stopped_cb() local
1221 if (source == NULL) { in big_stopped_cb()
1226 source->big = NULL; in big_stopped_cb()
1230 listener->stopped(source, reason); in big_stopped_cb()
1287 int bt_bap_broadcast_source_foreach_stream(struct bt_bap_broadcast_source *source, in bt_bap_broadcast_source_foreach_stream() argument
1293 if (source == NULL) { in bt_bap_broadcast_source_foreach_stream()
1303 SYS_SLIST_FOR_EACH_CONTAINER_SAFE(&source->subgroups, subgroup, next_subgroup, _node) { in bt_bap_broadcast_source_foreach_stream()