From: Jo?o Paulo Rechi Vita <jprvita@xxxxxxxxxxxxx> Use the correct value for block size and instead of trying to acquire the transport, get it from the HF card. --- src/modules/bluetooth/bluetooth-util.c | 15 +++++++++++++++ src/modules/bluetooth/module-bluetooth-device.c | 2 +- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/modules/bluetooth/bluetooth-util.c b/src/modules/bluetooth/bluetooth-util.c index a2be396..37d96ee 100644 --- a/src/modules/bluetooth/bluetooth-util.c +++ b/src/modules/bluetooth/bluetooth-util.c @@ -1838,6 +1838,21 @@ int pa_bluetooth_transport_acquire(pa_bluetooth_transport *t, bool optional, siz pa_assert(t->device); pa_assert(t->device->discovery); + if (t->profile == PROFILE_HFP_AG) { + struct handsfree_card *hf_card = pa_hashmap_get(t->device->discovery->hf_cards, t->path); + + /* TODO: get block size from adapter and USB endpoint */ + if (imtu) + *imtu = 48; + if (omtu) + *omtu = 48; + + if (hf_card) + return hf_card->fd; + else + return -1; + } + dbus_error_init(&err); if (t->device->discovery->version == BLUEZ_VERSION_4) { diff --git a/src/modules/bluetooth/module-bluetooth-device.c b/src/modules/bluetooth/module-bluetooth-device.c index 1027dd5..47457e5 100644 --- a/src/modules/bluetooth/module-bluetooth-device.c +++ b/src/modules/bluetooth/module-bluetooth-device.c @@ -243,7 +243,7 @@ static void a2dp_set_bitpool(struct userdata *u, uint8_t bitpool) /* from IO thread, except in SCO over PCM */ static void bt_transport_config_mtu(struct userdata *u) { /* Calculate block sizes */ - if (u->profile == PROFILE_HSP || u->profile == PROFILE_HFGW) { + if (u->profile == PROFILE_HSP || u->profile == PROFILE_HFGW || u->profile == PROFILE_HFP_AG) { u->read_block_size = u->read_link_mtu; u->write_block_size = u->write_link_mtu; } else { -- 1.7.11.7