diff --git a/src/modules/bluetooth/backend-native.c b/src/modules/bluetooth/backend-native.c index a3b849411..3da8c9471 100644 --- a/src/modules/bluetooth/backend-native.c +++ b/src/modules/bluetooth/backend-native.c @@ -641,7 +641,7 @@ static DBusMessage *profile_new_connection(DBusConnection *conn, DBusMessage *m, goto fail; } - if (pa_bluetooth_discovery_get_enable_native_hfp_hf(b->discovery)) { + if (d->enable_hfp_hf) { if (p == PA_BLUETOOTH_PROFILE_HSP_HS && pa_hashmap_get(d->uuids, PA_BLUETOOTH_UUID_HFP_HF)) { /* If peer connecting to HSP Audio Gateway supports HFP HF profile * reject this connection to force it to connect to HSP Audio Gateway instead. diff --git a/src/modules/bluetooth/bluez5-util.c b/src/modules/bluetooth/bluez5-util.c index 759a47b86..5f3d651b4 100644 --- a/src/modules/bluetooth/bluez5-util.c +++ b/src/modules/bluetooth/bluez5-util.c @@ -195,11 +195,9 @@ static const char *transport_state_to_string(pa_bluetooth_transport_state_t stat } static bool device_supports_profile(pa_bluetooth_device *device, pa_bluetooth_profile_t profile) { - bool show_hfp, show_hsp, enable_native_hfp_hf; + bool show_hfp, show_hsp; - enable_native_hfp_hf = pa_bluetooth_discovery_get_enable_native_hfp_hf(device->discovery); - - if (enable_native_hfp_hf) { + if (device->enable_hfp_hf) { show_hfp = pa_hashmap_get(device->uuids, PA_BLUETOOTH_UUID_HFP_HF); show_hsp = !show_hfp; } else { @@ -727,6 +725,7 @@ static pa_bluetooth_device* device_create(pa_bluetooth_discovery *y, const char d = pa_xnew0(pa_bluetooth_device, 1); d->discovery = y; + d->enable_hfp_hf = pa_bluetooth_discovery_get_enable_native_hfp_hf(y); d->path = pa_xstrdup(path); d->uuids = pa_hashmap_new_full(pa_idxset_string_hash_func, pa_idxset_string_compare_func, NULL, pa_xfree); d->a2dp_sink_endpoints = pa_hashmap_new_full(pa_a2dp_codec_id_hash_func, pa_a2dp_codec_id_compare_func, pa_xfree, (pa_free_cb_t)pa_hashmap_free); diff --git a/src/modules/bluetooth/bluez5-util.h b/src/modules/bluetooth/bluez5-util.h index ad057117d..05ad0d05b 100644 --- a/src/modules/bluetooth/bluez5-util.h +++ b/src/modules/bluetooth/bluez5-util.h @@ -120,6 +120,7 @@ struct pa_bluetooth_device { pa_bluetooth_discovery *discovery; pa_bluetooth_adapter *adapter; + bool enable_hfp_hf; bool properties_received; bool tried_to_link_with_adapter; bool valid; diff --git a/src/modules/bluetooth/module-bluez5-device.c b/src/modules/bluetooth/module-bluez5-device.c index a9f170952..b28bd0bd4 100644 --- a/src/modules/bluetooth/module-bluez5-device.c +++ b/src/modules/bluetooth/module-bluez5-device.c @@ -2090,7 +2090,6 @@ static int add_card(struct userdata *u) { pa_bluetooth_profile_t *p; const char *uuid; void *state; - bool enable_native_hfp_hf, has_both; pa_assert(u); pa_assert(u->device); @@ -2121,9 +2120,6 @@ static int add_card(struct userdata *u) { create_card_ports(u, data.ports); - enable_native_hfp_hf = pa_bluetooth_discovery_get_enable_native_hfp_hf(u->discovery); - - has_both = enable_native_hfp_hf && pa_hashmap_get(d->uuids, PA_BLUETOOTH_UUID_HFP_HF) && pa_hashmap_get(d->uuids, PA_BLUETOOTH_UUID_HSP_HS); PA_HASHMAP_FOREACH(uuid, d->uuids, state) { pa_bluetooth_profile_t profile;