diff options
author | Syed Ibrahim M <syedibra@broadcom.com> | 2012-05-28 18:28:23 +0530 |
---|---|---|
committer | Matthew Xie <mattx@google.com> | 2012-07-14 11:19:21 -0700 |
commit | 001b6bbb50d8d371015efc12401ae1a2014b5f20 (patch) | |
tree | 806898e1b5542c0bb2beee1f82933fec64bc5a2c /btif/src/btif_hh.c | |
parent | 4583aa99e8985f15f81c3e069a29ac0fa7cc1f83 (diff) | |
download | external_bluetooth_bluedroid-001b6bbb50d8d371015efc12401ae1a2014b5f20.zip external_bluetooth_bluedroid-001b6bbb50d8d371015efc12401ae1a2014b5f20.tar.gz external_bluetooth_bluedroid-001b6bbb50d8d371015efc12401ae1a2014b5f20.tar.bz2 |
Modified the BT stack to check for HID_VIRTUAL_UNPLUG SDP attribute and send a virtual unplug for all HID devices for device disconnect event;
Change-Id: I0068958800103037998eeaa01a45aad1f1605729
Diffstat (limited to 'btif/src/btif_hh.c')
-rwxr-xr-x | btif/src/btif_hh.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/btif/src/btif_hh.c b/btif/src/btif_hh.c index ef1e907..c9aa530 100755 --- a/btif/src/btif_hh.c +++ b/btif/src/btif_hh.c @@ -400,7 +400,9 @@ bt_status_t btif_hh_virtual_unpug(bt_bdaddr_t *bd_addr) bd_addr->address[0], bd_addr->address[1], bd_addr->address[2], bd_addr->address[3], bd_addr->address[4], bd_addr->address[5]); p_dev = btif_hh_find_dev_by_bda(bd_addr); - if ((p_dev != NULL) && (p_dev->dev_status == BTHH_CONN_STATE_CONNECTED)) + BTIF_TRACE_DEBUG2("%s mask : 0x%x", __func__, p_dev->attr_mask); + if ((p_dev != NULL) && (p_dev->dev_status == BTHH_CONN_STATE_CONNECTED) + && (p_dev->attr_mask & HID_VIRTUAL_CABLE)) { BTIF_TRACE_DEBUG1("%s Sending BTA_HH_CTRL_VIRTUAL_CABLE_UNPLUG", __FUNCTION__); BTA_HhSendCtrl(p_dev->dev_handle, BTA_HH_CTRL_VIRTUAL_CABLE_UNPLUG); @@ -751,6 +753,7 @@ static void btif_hh_upstreams_evt(UINT16 event, char* p_param) if (memcmp(btif_hh_cb.added_devices[i].bd_addr.address, p_data->dev_info.bda, 6) == 0) { if (p_data->dev_info.status == BTA_HH_OK) { btif_hh_cb.added_devices[i].dev_handle = p_data->dev_info.handle; + btif_hh_cb.added_devices[i].attr_mask = p_data->dev_info.attr_mask; } else { memset(btif_hh_cb.added_devices[i].bd_addr.address, 0, 6); |