Home | History | Annotate | Download | only in hh

Lines Matching full:p_cb

175   tBTA_HH_DEV_CB* p_cb = bta_hh_cb.p_cur;
180 if ((result == SDP_SUCCESS) && (p_cb != NULL)) {
182 if (p_cb->sec_mask) attr_mask |= HID_SEC_REQUIRED;
185 APPL_TRACE_EVENT("%s: p_cb: %d result 0x%02x, attr_mask 0x%02x, handle %x",
186 __func__, p_cb, result, attr_mask, p_cb->hid_handle);
191 if (bta_hh_tod_spt(p_cb, sdp_rec->sub_class)) {
193 if (p_cb->hid_handle == BTA_HH_INVALID_HANDLE) {
195 if (HID_HostAddDev(p_cb->addr, attr_mask, &hdl) == HID_SUCCESS) {
198 bta_hh_cb.cb_index[hdl] = p_cb->index;
200 p_cb->app_id = 0;
203 hdl = p_cb->hid_handle;
208 if (p_cb->app_id != 0) {
210 bta_hh_add_device_to_list(p_cb, hdl, attr_mask, &sdp_rec->dscp_info,
212 sdp_rec->ssr_min_tout, p_cb->app_id);
214 p_cb->dscp_info.ctry_code = sdp_rec->ctry_code;
227 bta_hh_sm_execute(p_cb, BTA_HH_SDP_CMPL_EVT, (tBTA_HH_DATA*)&status);
241 tBTA_HH_DEV_CB* p_cb = bta_hh_cb.p_cur;
246 APPL_TRACE_EVENT("%s: p_cb: %d result 0x%02x", __func__, p_cb, result);
256 (p_cb != NULL)) {
261 bta_hh_update_di_info(p_cb, di_rec.rec.vendor, di_rec.rec.product,
267 bta_hh_update_di_info(p_cb, BTA_HH_VENDOR_ID_INVALID, 0, 0, 0);
270 ret = HID_HostGetSDPRecord(p_cb->addr, bta_hh_cb.p_disc_db,
285 bta_hh_sm_execute(p_cb, BTA_HH_SDP_CMPL_EVT, (tBTA_HH_DATA*)&status);
302 void bta_hh_start_sdp(tBTA_HH_DEV_CB* p_cb, tBTA_HH_DATA* p_data) {
306 p_cb->sec_mask = p_data->api_conn.sec_mask;
307 p_cb->mode = p_data->api_conn.mode;
308 bta_hh_cb.p_cur = p_cb;
311 if (bta_hh_is_le_device(p_cb, p_data->api_conn.bd_addr)) {
312 bta_hh_le_open_conn(p_cb, p_data->api_conn.bd_addr);
318 if (p_cb->app_id) {
323 if (p_cb->hid_handle == BTA_HH_INVALID_HANDLE) {
324 if (HID_HostAddDev(p_cb->addr, p_cb->attr_mask, &hdl) == HID_SUCCESS) {
326 bta_hh_add_device_to_list(p_cb, hdl, p_cb->attr_mask, NULL,
327 p_cb->sub_class,
328 p_cb->dscp_info.ssr_max_latency,
329 p_cb->dscp_info.ssr_min_tout, p_cb->app_id);
331 bta_hh_cb.cb_index[hdl] = p_cb->index;
335 bta_hh_sm_execute(p_cb, BTA_HH_SDP_CMPL_EVT, (tBTA_HH_DATA*)&status);
343 bta_hh_cb.p_cur = p_cb;
370 bta_hh_sm_execute(p_cb, BTA_HH_SDP_CMPL_EVT, (tBTA_HH_DATA*)&status);
385 void bta_hh_sdp_cmpl(tBTA_HH_DEV_CB* p_cb, tBTA_HH_DATA* p_data) {
395 conn_dat.handle = p_cb->hid_handle;
396 conn_dat.bda = p_cb->addr;
401 if (!p_cb->incoming_conn) {
404 HID_HostSetSecurityLevel("", p_cb->sec_mask);
407 ret = HID_HostOpenDev(p_cb->hid_handle);
423 HID_HostRemoveDev(p_cb->hid_handle);
428 bta_hh_sm_execute(p_cb, BTA_HH_OPEN_CMPL_EVT, NULL);
438 if ((status == BTA_HH_ERR_SDP) && (p_cb->incoming_conn) &&
439 (p_cb->app_id == 0)) {
441 p_cb->incoming_hid_handle);
442 HID_HostRemoveDev(p_cb->incoming_hid_handle);
448 bta_hh_sm_execute(p_cb, BTA_HH_API_CLOSE_EVT, NULL);
451 if (p_cb->app_id == 0 && !p_cb->incoming_conn) {
453 bta_hh_clean_up_kdev(p_cb);
472 void bta_hh_api_disc_act(tBTA_HH_DEV_CB* p_cb, tBTA_HH_DATA* p_data) {
477 if (p_cb->is_le_device)
478 bta_hh_le_api_disc_act(p_cb);
484 p_data ? (uint8_t)p_data->hdr.layer_specific : p_cb->hid_handle;
504 void bta_hh_open_cmpl_act(tBTA_HH_DEV_CB* p_cb, tBTA_HH_DATA* p_data) {
507 p_data ? (uint8_t)p_data->hid_cback.hdr.layer_specific : p_cb->hid_handle;
511 conn.bda = p_cb->addr;
517 bta_hh_co_open(p_cb->hid_handle, p_cb->sub_class, p_cb->attr_mask,
518 p_cb->app_id);
521 conn.status = p_cb->status;
522 conn.le_hid = p_cb->is_le_device;
523 conn.scps_supported = p_cb->scps_supported;
525 if (!p_cb->is_le_device)
529 bta_sys_conn_open(BTA_ID_HH, p_cb->app_id, p_cb->addr);
532 if (p_cb->mode != BTA_HH_PROTO_RPT_MODE
534 && !p_cb->is_le_device
545 p_cb->w4_evt = BTA_HH_OPEN_EVT;
550 p_cb->incoming_conn = false;
551 p_cb->incoming_hid_handle = BTA_HH_INVALID_HANDLE;
563 void bta_hh_open_act(tBTA_HH_DEV_CB* p_cb, tBTA_HH_DATA* p_data) {
567 p_data ? (uint8_t)p_data->hid_cback.hdr.layer_specific : p_cb->hid_handle;
574 if (p_cb->app_id != 0) {
575 bta_hh_sm_execute(p_cb, BTA_HH_OPEN_CMPL_EVT, p_data);
581 p_cb->incoming_conn = true;
583 p_cb->incoming_hid_handle = dev_handle;
586 conn_data.bd_addr = p_cb->addr;
587 bta_hh_start_sdp(p_cb, (tBTA_HH_DATA*)&conn_data);
603 void bta_hh_data_act(tBTA_HH_DEV_CB* p_cb, tBTA_HH_DATA* p_data) {
608 pdata->len, p_cb->mode, p_cb->sub_class,
609 p_cb->dscp_info.ctry_code, p_cb->addr, p_cb->app_id);
624 void bta_hh_handsk_act(tBTA_HH_DEV_CB* p_cb, tBTA_HH_DATA* p_data) {
631 bta_hh_get_w4_event(p_cb->w4_evt), p_data->hid_cback.data);
637 switch (p_cb->w4_evt) {
644 hs_data.handle = p_cb->hid_handle;
649 (*bta_hh_cb.p_cback)(p_cb->w4_evt, (tBTA_HH*)&hs_data);
650 p_cb->w4_evt = 0;
657 cback_data.handle = p_cb->hid_handle;
659 (*bta_hh_cb.p_cback)(p_cb->w4_evt, (tBTA_HH*)&cback_data);
660 p_cb->w4_evt = 0;
666 conn.handle = p_cb->hid_handle;
667 conn.bda = p_cb->addr;
668 (*bta_hh_cb.p_cback)(p_cb->w4_evt, (tBTA_HH*)&conn);
672 p_cb->w4_evt = 0;
682 bta_sys_idle(BTA_ID_HH, p_cb->app_id, p_cb->addr);
695 void bta_hh_ctrl_dat_act(tBTA_HH_DEV_CB* p_cb, tBTA_HH_DATA* p_data) {
702 bta_hh_get_w4_event(p_cb->w4_evt));
705 hs_data.handle = p_cb->hid_handle;
707 switch (p_cb->w4_evt) {
736 bta_hh_get_w4_event(p_cb->w4_evt));
742 bta_sys_busy(BTA_ID_HH, p_cb->app_id, p_cb->addr);
743 bta_sys_idle(BTA_ID_HH, p_cb->app_id, p_cb->addr);
745 (*bta_hh_cb.p_cback)(p_cb->w4_evt, (tBTA_HH*)&hs_data);
747 p_cb->w4_evt = 0;
762 void bta_hh_open_failure(tBTA_HH_DEV_CB* p_cb, tBTA_HH_DATA* p_data) {
767 conn_dat.handle = p_cb->hid_handle;
770 conn_dat.bda = p_cb->addr;
771 HID_HostCloseDev(p_cb->hid_handle);
780 p_cb->vp = false;
781 p_cb->w4_evt = 0;
789 p_cb->incoming_conn = false;
790 p_cb->incoming_hid_handle = BTA_HH_INVALID_HANDLE;
803 void bta_hh_close_act(tBTA_HH_DEV_CB* p_cb, tBTA_HH_DATA* p_data) {
809 uint16_t event = p_cb->vp ? BTA_HH_VC_UNPLUG_EVT : BTA_HH_CLOSE_EVT;
811 disc_dat.handle = p_cb->hid_handle;
823 conn_dat.handle = p_cb->hid_handle;
826 conn_dat.bda = p_cb->addr;
827 HID_HostCloseDev(p_cb->hid_handle);
840 bta_hh_co_close(p_cb->hid_handle, p_cb->app_id);
842 bta_sys_conn_close(BTA_ID_HH, p_cb->app_id, p_cb->addr);
851 if (p_cb->vp) {
852 HID_HostRemoveDev(p_cb->hid_handle);
853 bta_hh_clean_up_kdev(p_cb);
862 p_cb->vp = false;
863 p_cb->w4_evt = 0;
883 void bta_hh_get_dscp_act(tBTA_HH_DEV_CB* p_cb,
886 if (p_cb->is_le_device) {
887 bta_hh_le_get_dscp_act(p_cb);
890 (*bta_hh_cb.p_cback)(BTA_HH_GET_DSCP_EVT, (tBTA_HH*)&p_cb->dscp_info);
903 void bta_hh_maint_dev_act(tBTA_HH_DEV_CB* p_cb, tBTA_HH_DATA* p_data) {
915 if (p_cb->hid_handle == BTA_HH_INVALID_HANDLE) {
917 if (bta_hh_is_le_device(p_cb, p_data->api_conn.bd_addr)) {
918 dev_info.handle = bta_hh_le_add_device(p_cb, p_dev_info);
930 bta_hh_update_di_info(p_cb, p_dev_info->dscp_info.vendor_id,
935 bta_hh_update_di_info(p_cb, p_dev_info->dscp_info.vendor_id,
942 p_cb, dev_handle, p_dev_info->attr_mask,
947 bta_hh_cb.cb_index[dev_handle] = p_cb->index;
951 dev_info.handle = p_cb->hid_handle;
961 dev_info.bda = p_cb->addr;
964 if (p_cb->is_le_device) {
965 bta_hh_le_remove_dev_bg_conn(p_cb);
966 bta_hh_sm_execute(p_cb, BTA_HH_API_CLOSE_EVT, NULL);
967 bta_hh_clean_up_kdev(p_cb);
975 bta_hh_clean_up_kdev(p_cb);
996 void bta_hh_write_dev_act(tBTA_HH_DEV_CB* p_cb, tBTA_HH_DATA* p_data) {
1002 if (p_cb->is_le_device)
1003 bta_hh_le_write_dev_act(p_cb, p_data);
1008 cbdata.handle = p_cb->hid_handle;
1018 if (HID_HostWriteDev(p_cb->hid_handle, p_data->api_sndcmd.t_type,
1044 p_cb->w4_evt = event;
1052 p_cb->vp = true;
1066 bta_sys_busy(BTA_ID_HH, p_cb->app_id, p_cb->addr);
1067 bta_sys_idle(BTA_ID_HH, p_cb->app_id, p_cb->addr);
1069 bta_sys_sco_close(BTA_ID_HH, p_cb->app_id, p_cb->addr);
1071 bta_sys_busy(BTA_ID_HH, p_cb->app_id, p_cb->addr);