mirror of
https://github.com/espressif/esp-idf.git
synced 2026-10-03 03:31:41 +03:00
feat(bt/bluedroid): Add Kconfig option to keep device bonding info when HID unplugging
This commit is contained in:
@@ -903,14 +903,10 @@ void btc_hd_cb_handler(btc_msg_t *msg)
|
||||
btc_hd_cb_to_app(ESP_HIDD_INTR_DATA_EVT, ¶m);
|
||||
break;
|
||||
case BTA_HD_VC_UNPLUG_EVT: {
|
||||
bt_bdaddr_t *bd_addr = (bt_bdaddr_t *)&p_data->conn.bda;
|
||||
if (bta_dm_check_if_only_hd_connected(p_data->conn.bda)) {
|
||||
BTC_TRACE_DEBUG("%s: Removing bonding as only HID profile connected", __func__);
|
||||
BTA_DmRemoveDevice((uint8_t *)&p_data->conn.bda, BT_TRANSPORT_BR_EDR);
|
||||
} else {
|
||||
BTC_TRACE_DEBUG("%s: Only removing HID data as some other profiles connected", __func__);
|
||||
btc_hd_remove_device(*bd_addr);
|
||||
}
|
||||
#if BTC_HID_REMOVE_DEVICE_BONDING
|
||||
BTC_TRACE_DEBUG("%s: Removing bonding information", __func__);
|
||||
BTA_DmRemoveDevice((uint8_t *)&p_data->conn.bda, BT_TRANSPORT_BR_EDR);
|
||||
#endif
|
||||
|
||||
if (btc_hd_cb.status == BTC_HD_DISCONNECTING || btc_hd_cb.status == BTC_HD_CONNECTING ||
|
||||
btc_hd_cb.status == BTC_HD_CONNECTED) {
|
||||
|
||||
@@ -1372,7 +1372,10 @@ void btc_hh_cb_handler(btc_msg_t *msg)
|
||||
*/
|
||||
if (p_dev->local_vup) {
|
||||
p_dev->local_vup = false;
|
||||
#if BTC_HID_REMOVE_DEVICE_BONDING
|
||||
BTA_DmRemoveDevice(p_dev->bd_addr, BT_TRANSPORT_BR_EDR);
|
||||
#endif
|
||||
btc_hh_remove_device(p_dev->bd_addr);
|
||||
}
|
||||
|
||||
btc_hh_cb.status = (BTC_HH_STATUS)BTC_HH_DEV_DISCONNECTED;
|
||||
@@ -1406,8 +1409,9 @@ void btc_hh_cb_handler(btc_msg_t *msg)
|
||||
// [boblane]
|
||||
if (p_dev->local_vup) {
|
||||
p_dev->local_vup = false;
|
||||
#if BTC_HID_REMOVE_DEVICE_BONDING
|
||||
BTA_DmRemoveDevice(p_dev->bd_addr, BT_TRANSPORT_BR_EDR);
|
||||
} else {
|
||||
#endif
|
||||
btc_hh_remove_device(p_dev->bd_addr);
|
||||
}
|
||||
param.unplug.status = p_data->dev_status.status;
|
||||
|
||||
Reference in New Issue
Block a user