@@ -613,7 +613,7 @@ static bool pac_found(struct bt_bap_pac *lpac, struct bt_bap_pac *rpac,
/* TODO: Cache LRU? */
if (btd_service_is_initiator(service))
- bt_bap_select(lpac, rpac, select_cb, ep);
+ bt_bap_select(lpac, rpac, ep->path, select_cb, ep);
return true;
}
@@ -891,6 +891,7 @@ done:
static int pac_select(struct bt_bap_pac *pac, struct bt_bap_pac_qos *qos,
struct iovec *caps, struct iovec *metadata,
+ const char *remote_ep_path,
bt_bap_pac_select_t cb, void *cb_data, void *user_data)
{
struct media_endpoint *endpoint = user_data;
@@ -917,6 +918,8 @@ static int pac_select(struct bt_bap_pac *pac, struct bt_bap_pac_qos *qos,
dbus_message_iter_init_append(msg, &iter);
+ dbus_message_iter_append_basic(&iter, DBUS_TYPE_OBJECT_PATH, &remote_ep_path);
+
dbus_message_iter_open_container(&iter, DBUS_TYPE_ARRAY, "{sv}", &dict);
g_dbus_dict_append_basic_array(&dict, DBUS_TYPE_STRING, &key,
@@ -4058,6 +4058,7 @@ static bool match_pac(struct bt_bap_pac *lpac, struct bt_bap_pac *rpac,
}
int bt_bap_select(struct bt_bap_pac *lpac, struct bt_bap_pac *rpac,
+ const char *remote_ep_path,
bt_bap_pac_select_t func, void *user_data)
{
if (!lpac || !rpac || !func)
@@ -4067,6 +4068,7 @@ int bt_bap_select(struct bt_bap_pac *lpac, struct bt_bap_pac *rpac,
return -EOPNOTSUPP;
lpac->ops->select(lpac, &rpac->qos, rpac->data, rpac->metadata,
+ remote_ep_path,
func, user_data, lpac->user_data);
return 0;
@@ -122,6 +122,7 @@ struct bt_bap_pac *bt_bap_add_pac(struct gatt_db *db, const char *name,
struct bt_bap_pac_ops {
int (*select) (struct bt_bap_pac *pac, struct bt_bap_pac_qos *qos,
struct iovec *caps, struct iovec *metadata,
+ const char *remote_ep_path,
bt_bap_pac_select_t cb, void *cb_data, void *user_data);
int (*config) (struct bt_bap_stream *stream, struct iovec *cfg,
struct bt_bap_qos *qos, bt_bap_pac_config_t cb,
@@ -188,6 +189,7 @@ int bt_bap_pac_get_codec(struct bt_bap_pac *pac, uint8_t *id,
/* Stream related functions */
int bt_bap_select(struct bt_bap_pac *lpac, struct bt_bap_pac *rpac,
+ const char *remote_ep_path,
bt_bap_pac_select_t func, void *user_data);
struct bt_bap_stream *bt_bap_config(struct bt_bap *bap,