@@ -7505,3 +7505,54 @@ bool bt_bap_bcode_cb_unregister(struct bt_bap *bap, unsigned int id)
return false;
}
+
+void bt_bap_iso_qos_to_bap_qos(struct bt_iso_qos *iso_qos,
+ struct bt_bap_qos *bap_qos)
+{
+ bap_qos->bcast.big = iso_qos->bcast.big;
+ bap_qos->bcast.bis = iso_qos->bcast.bis;
+ bap_qos->bcast.sync_factor = iso_qos->bcast.sync_factor;
+ bap_qos->bcast.packing = iso_qos->bcast.packing;
+ bap_qos->bcast.framing = iso_qos->bcast.framing;
+ bap_qos->bcast.encryption = iso_qos->bcast.encryption;
+ if (bap_qos->bcast.encryption)
+ bap_qos->bcast.bcode = util_iov_new(iso_qos->bcast.bcode,
+ sizeof(iso_qos->bcast.bcode));
+ bap_qos->bcast.options = iso_qos->bcast.options;
+ bap_qos->bcast.skip = iso_qos->bcast.skip;
+ bap_qos->bcast.sync_timeout = iso_qos->bcast.sync_timeout;
+ bap_qos->bcast.sync_cte_type =
+ iso_qos->bcast.sync_cte_type;
+ bap_qos->bcast.mse = iso_qos->bcast.mse;
+ bap_qos->bcast.timeout = iso_qos->bcast.timeout;
+ bap_qos->bcast.io_qos.interval =
+ iso_qos->bcast.in.interval;
+ bap_qos->bcast.io_qos.latency = iso_qos->bcast.in.latency;
+ bap_qos->bcast.io_qos.phy = iso_qos->bcast.in.phy;
+ bap_qos->bcast.io_qos.rtn = iso_qos->bcast.in.rtn;
+ bap_qos->bcast.io_qos.sdu = iso_qos->bcast.in.sdu;
+}
+
+void bt_bap_qos_to_iso_qos(struct bt_bap_qos *bap_qos,
+ struct bt_iso_qos *iso_qos)
+{
+ memset(iso_qos, 0, sizeof(*iso_qos));
+
+ iso_qos->bcast.big = bap_qos->bcast.big;
+ iso_qos->bcast.bis = bap_qos->bcast.bis;
+ iso_qos->bcast.sync_factor = bap_qos->bcast.sync_factor;
+ iso_qos->bcast.packing = bap_qos->bcast.packing;
+ iso_qos->bcast.framing = bap_qos->bcast.framing;
+ iso_qos->bcast.encryption = bap_qos->bcast.encryption;
+ if (bap_qos->bcast.bcode && bap_qos->bcast.bcode->iov_base)
+ memcpy(iso_qos->bcast.bcode, bap_qos->bcast.bcode->iov_base,
+ bap_qos->bcast.bcode->iov_len);
+ iso_qos->bcast.options = bap_qos->bcast.options;
+ iso_qos->bcast.skip = bap_qos->bcast.skip;
+ iso_qos->bcast.sync_timeout = bap_qos->bcast.sync_timeout;
+ iso_qos->bcast.sync_cte_type = bap_qos->bcast.sync_cte_type;
+ iso_qos->bcast.mse = bap_qos->bcast.mse;
+ iso_qos->bcast.timeout = bap_qos->bcast.timeout;
+ memcpy(&iso_qos->bcast.out, &bap_qos->bcast.io_qos,
+ sizeof(struct bt_iso_io_qos));
+}
@@ -300,3 +300,8 @@ unsigned int bt_bap_bcode_cb_register(struct bt_bap *bap,
bool bt_bap_bcode_cb_unregister(struct bt_bap *bap, unsigned int id);
struct bt_bap *bt_bap_get_session(struct bt_att *att, struct gatt_db *db);
+
+void bt_bap_iso_qos_to_bap_qos(struct bt_iso_qos *iso_qos,
+ struct bt_bap_qos *bap_qos);
+void bt_bap_qos_to_iso_qos(struct bt_bap_qos *bap_qos,
+ struct bt_iso_qos *iso_qos);