Home | History | Annotate | Download | only in hh

Lines Matching defs:p_cb

179   tBTA_HH_DEV_CB* p_cb = bta_hh_cb.p_cur;
184 if ((result == SDP_SUCCESS) && (p_cb != NULL)) {
186 if (p_cb->sec_mask) attr_mask |= HID_SEC_REQUIRED;
189 APPL_TRACE_EVENT("%s: p_cb: %d result 0x%02x, attr_mask 0x%02x, handle %x",
190 __func__, p_cb, result, attr_mask, p_cb->hid_handle);
195 if (bta_hh_tod_spt(p_cb, sdp_rec->sub_class)) {
197 if (p_cb->hid_handle == BTA_HH_INVALID_HANDLE) {
199 if (HID_HostAddDev(p_cb->addr, attr_mask, &hdl) == HID_SUCCESS) {
202 bta_hh_cb.cb_index[hdl] = p_cb->index;
204 p_cb->app_id = 0;
207 hdl = p_cb->hid_handle;
212 if (p_cb->app_id != 0) {
214 bta_hh_add_device_to_list(p_cb, hdl, attr_mask, &sdp_rec->dscp_info,
216 sdp_rec->ssr_min_tout, p_cb->app_id);
218 p_cb->dscp_info.ctry_code = sdp_rec->ctry_code;
233 bta_hh_sm_execute(p_cb, BTA_HH_SDP_CMPL_EVT, &bta_hh_data);
247 tBTA_HH_DEV_CB* p_cb = bta_hh_cb.p_cur;
252 APPL_TRACE_EVENT("%s: p_cb: %d result 0x%02x", __func__, p_cb, result);
262 (p_cb != NULL)) {
267 bta_hh_update_di_info(p_cb, di_rec.rec.vendor, di_rec.rec.product,
273 bta_hh_update_di_info(p_cb, BTA_HH_VENDOR_ID_INVALID, 0, 0, 0);
276 ret = HID_HostGetSDPRecord(p_cb->addr, bta_hh_cb.p_disc_db,
293 bta_hh_sm_execute(p_cb, BTA_HH_SDP_CMPL_EVT, &bta_hh_data);
310 void bta_hh_start_sdp(tBTA_HH_DEV_CB* p_cb, tBTA_HH_DATA* p_data) {
314 p_cb->sec_mask = p_data->api_conn.sec_mask;
315 p_cb->mode = p_data->api_conn.mode;
316 bta_hh_cb.p_cur = p_cb;
319 if (bta_hh_is_le_device(p_cb, p_data->api_conn.bd_addr)) {
320 bta_hh_le_open_conn(p_cb, p_data->api_conn.bd_addr);
326 if (p_cb->app_id) {
331 if (p_cb->hid_handle == BTA_HH_INVALID_HANDLE) {
332 if (HID_HostAddDev(p_cb->addr, p_cb->attr_mask, &hdl) == HID_SUCCESS) {
334 bta_hh_add_device_to_list(p_cb, hdl, p_cb->attr_mask, NULL,
335 p_cb->sub_class,
336 p_cb->dscp_info.ssr_max_latency,
337 p_cb->dscp_info.ssr_min_tout, p_cb->app_id);
339 bta_hh_cb.cb_index[hdl] = p_cb->index;
345 bta_hh_sm_execute(p_cb, BTA_HH_SDP_CMPL_EVT, &bta_hh_data);
353 bta_hh_cb.p_cur = p_cb;
382 bta_hh_sm_execute(p_cb, BTA_HH_SDP_CMPL_EVT, &bta_hh_data);
398 void bta_hh_sdp_cmpl(tBTA_HH_DEV_CB* p_cb, tBTA_HH_DATA* p_data) {
408 conn_dat.handle = p_cb->hid_handle;
409 conn_dat.bda = p_cb->addr;
414 if (!p_cb->incoming_conn) {
417 HID_HostSetSecurityLevel("", p_cb->sec_mask);
420 ret = HID_HostOpenDev(p_cb->hid_handle);
436 HID_HostRemoveDev(p_cb->hid_handle);
441 bta_hh_sm_execute(p_cb, BTA_HH_OPEN_CMPL_EVT, NULL);
451 if ((status == BTA_HH_ERR_SDP) && (p_cb->incoming_conn) &&
452 (p_cb->app_id == 0)) {
454 p_cb->incoming_hid_handle);
455 HID_HostRemoveDev(p_cb->incoming_hid_handle);
461 bta_hh_sm_execute(p_cb, BTA_HH_API_CLOSE_EVT, NULL);
464 if (p_cb->app_id == 0 && !p_cb->incoming_conn) {
466 bta_hh_clean_up_kdev(p_cb);
485 void bta_hh_api_disc_act(tBTA_HH_DEV_CB* p_cb, tBTA_HH_DATA* p_data) {
490 if (p_cb->is_le_device)
491 bta_hh_le_api_disc_act(p_cb);
497 p_data ? (uint8_t)p_data->hdr.layer_specific : p_cb->hid_handle;
521 void bta_hh_open_cmpl_act(tBTA_HH_DEV_CB* p_cb, tBTA_HH_DATA* p_data) {
524 p_data ? (uint8_t)p_data->hid_cback.hdr.layer_specific : p_cb->hid_handle;
528 conn.bda = p_cb->addr;
534 bta_hh_co_open(p_cb->hid_handle, p_cb->sub_class, p_cb->attr_mask,
535 p_cb->app_id);
538 conn.status = p_cb->status;
539 conn.le_hid = p_cb->is_le_device;
540 conn.scps_supported = p_cb->scps_supported;
542 if (!p_cb->is_le_device)
546 bta_sys_conn_open(BTA_ID_HH, p_cb->app_id, p_cb->addr);
549 if (p_cb->mode != BTA_HH_PROTO_RPT_MODE
551 && !p_cb->is_le_device
562 p_cb->w4_evt = BTA_HH_OPEN_EVT;
567 p_cb->incoming_conn = false;
568 p_cb->incoming_hid_handle = BTA_HH_INVALID_HANDLE;
580 void bta_hh_open_act(tBTA_HH_DEV_CB* p_cb, tBTA_HH_DATA* p_data) {
584 p_data ? (uint8_t)p_data->hid_cback.hdr.layer_specific : p_cb->hid_handle;
591 if (p_cb->app_id != 0) {
592 bta_hh_sm_execute(p_cb, BTA_HH_OPEN_CMPL_EVT, p_data);
598 p_cb->incoming_conn = true;
600 p_cb->incoming_hid_handle = dev_handle;
603 conn_data.bd_addr = p_cb->addr;
604 bta_hh_start_sdp(p_cb, (tBTA_HH_DATA*)&conn_data);
620 void bta_hh_data_act(tBTA_HH_DEV_CB* p_cb, tBTA_HH_DATA* p_data) {
625 pdata->len, p_cb->mode, p_cb->sub_class,
626 p_cb->dscp_info.ctry_code, p_cb->addr, p_cb->app_id);
641 void bta_hh_handsk_act(tBTA_HH_DEV_CB* p_cb, tBTA_HH_DATA* p_data) {
644 bta_hh_get_w4_event(p_cb->w4_evt), p_data->hid_cback.data);
650 switch (p_cb->w4_evt) {
657 bta_hh.hs_data.handle = p_cb->hid_handle;
663 (*bta_hh_cb.p_cback)(p_cb->w4_evt, &bta_hh);
664 p_cb->w4_evt = 0;
671 bta_hh.dev_status.handle = p_cb->hid_handle;
674 (*bta_hh_cb.p_cback)(p_cb->w4_evt, &bta_hh);
675 p_cb->w4_evt = 0;
682 bta_hh.conn.handle = p_cb->hid_handle;
683 bta_hh.conn.bda = p_cb->addr;
684 (*bta_hh_cb.p_cback)(p_cb->w4_evt, &bta_hh);
688 p_cb->w4_evt = 0;
698 bta_sys_idle(BTA_ID_HH, p_cb->app_id, p_cb->addr);
711 void bta_hh_ctrl_dat_act(tBTA_HH_DEV_CB* p_cb, tBTA_HH_DATA* p_data) {
718 bta_hh_get_w4_event(p_cb->w4_evt));
721 hs_data.handle = p_cb->hid_handle;
723 switch (p_cb->w4_evt) {
752 bta_hh_get_w4_event(p_cb->w4_evt));
758 bta_sys_busy(BTA_ID_HH, p_cb->app_id, p_cb->addr);
759 bta_sys_idle(BTA_ID_HH, p_cb->app_id, p_cb->addr);
761 (*bta_hh_cb.p_cback)(p_cb->w4_evt, (tBTA_HH*)&hs_data);
763 p_cb->w4_evt = 0;
778 void bta_hh_open_failure(tBTA_HH_DEV_CB* p_cb, tBTA_HH_DATA* p_data) {
783 conn_dat.handle = p_cb->hid_handle;
786 conn_dat.bda = p_cb->addr;
787 HID_HostCloseDev(p_cb->hid_handle);
796 p_cb->vp = false;
797 p_cb->w4_evt = 0;
805 p_cb->incoming_conn = false;
806 p_cb->incoming_hid_handle = BTA_HH_INVALID_HANDLE;
819 void bta_hh_close_act(tBTA_HH_DEV_CB* p_cb, tBTA_HH_DATA* p_data) {
825 uint16_t event = p_cb->vp ? BTA_HH_VC_UNPLUG_EVT : BTA_HH_CLOSE_EVT;
827 disc_dat.handle = p_cb->hid_handle;
839 conn_dat.handle = p_cb->hid_handle;
842 conn_dat.bda = p_cb->addr;
843 HID_HostCloseDev(p_cb->hid_handle);
856 bta_hh_co_close(p_cb->hid_handle, p_cb->app_id);
858 bta_sys_conn_close(BTA_ID_HH, p_cb->app_id, p_cb->addr);
867 if (p_cb->vp) {
868 HID_HostRemoveDev(p_cb->hid_handle);
869 bta_hh_clean_up_kdev(p_cb);
878 p_cb->vp = false;
879 p_cb->w4_evt = 0;
899 void bta_hh_get_dscp_act(tBTA_HH_DEV_CB* p_cb,
902 if (p_cb->is_le_device) {
903 bta_hh_le_get_dscp_act(p_cb);
906 (*bta_hh_cb.p_cback)(BTA_HH_GET_DSCP_EVT, (tBTA_HH*)&p_cb->dscp_info);
919 void bta_hh_maint_dev_act(tBTA_HH_DEV_CB* p_cb, tBTA_HH_DATA* p_data) {
931 if (p_cb->hid_handle == BTA_HH_INVALID_HANDLE) {
933 if (bta_hh_is_le_device(p_cb, p_data->api_conn.bd_addr)) {
934 dev_info.handle = bta_hh_le_add_device(p_cb, p_dev_info);
947 bta_hh_update_di_info(p_cb, p_dev_info->dscp_info.vendor_id,
952 bta_hh_update_di_info(p_cb, p_dev_info->dscp_info.vendor_id,
959 p_cb, dev_handle, p_dev_info->attr_mask,
964 bta_hh_cb.cb_index[dev_handle] = p_cb->index;
968 dev_info.handle = p_cb->hid_handle;
978 dev_info.bda = p_cb->addr;
981 if (p_cb->is_le_device) {
982 bta_hh_le_remove_dev_bg_conn(p_cb);
983 bta_hh_sm_execute(p_cb, BTA_HH_API_CLOSE_EVT, NULL);
984 bta_hh_clean_up_kdev(p_cb);
992 bta_hh_clean_up_kdev(p_cb);
1013 void bta_hh_write_dev_act(tBTA_HH_DEV_CB* p_cb, tBTA_HH_DATA* p_data) {
1019 if (p_cb->is_le_device)
1020 bta_hh_le_write_dev_act(p_cb, p_data);
1025 cbdata.handle = p_cb->hid_handle;
1035 if (HID_HostWriteDev(p_cb->hid_handle, p_data->api_sndcmd.t_type,
1061 p_cb->w4_evt = event;
1069 p_cb->vp = true;
1083 bta_sys_busy(BTA_ID_HH, p_cb->app_id, p_cb->addr);
1084 bta_sys_idle(BTA_ID_HH, p_cb->app_id, p_cb->addr);
1086 bta_sys_sco_close(BTA_ID_HH, p_cb->app_id, p_cb->addr);
1088 bta_sys_busy(BTA_ID_HH, p_cb->app_id, p_cb->addr);