static void bta_hf_client_send_at(tBTA_HF_CLIENT_AT_CMD cmd, char *buf, UINT16 buf_len) { if ((bta_hf_client_cb.scb.at_cb.current_cmd == BTA_HF_CLIENT_AT_NONE || bta_hf_client_cb.scb.svc_conn == FALSE) && bta_hf_client_cb.scb.at_cb.hold_timer_on == FALSE) { UINT16 len; #ifdef BTA_HF_CLIENT_AT_DUMP APPL_TRACE_DEBUG("%s %.*s", __FUNCTION__, buf_len - 1, buf); #endif bta_hf_client_cb.scb.at_cb.current_cmd = cmd; /* Generate fake responses for these because they won't reliably work */ if (!service_availability && (cmd == BTA_HF_CLIENT_AT_CNUM || cmd == BTA_HF_CLIENT_AT_COPS)) { APPL_TRACE_WARNING("%s: No service, skipping %d command", __FUNCTION__, cmd); bta_hf_client_handle_ok(); return; } PORT_WriteData(bta_hf_client_cb.scb.conn_handle, buf, buf_len, &len); bta_hf_client_start_at_resp_timer(); return; } bta_hf_client_queue_at(cmd, buf, buf_len); }
/******************************************************************************* ** ** Function bta_ag_ci_rx_data ** ** Description Send result code ** ** Returns void ** *******************************************************************************/ void bta_ag_ci_rx_data(tBTA_AG_SCB *p_scb, tBTA_AG_DATA *p_data) { UINT16 len; tBTA_AG_CI_RX_WRITE *p_rx_write_msg = (tBTA_AG_CI_RX_WRITE *)p_data; char *p_data_area = (char *)(p_rx_write_msg+1); /* Point to data area after header */ APPL_TRACE_DEBUG ("bta_ag_ci_rx_data:"); /* send to RFCOMM */ bta_sys_busy(BTA_ID_AG, p_scb->app_id, p_scb->peer_addr); PORT_WriteData(p_scb->conn_handle, p_data_area, strlen(p_data_area), &len); if ((p_scb->sco_idx != BTM_INVALID_SCO_INDEX) && bta_ag_sco_is_open(p_scb)) { APPL_TRACE_IMP ("bta_ag_rfc_data, change link policy for SCO"); bta_sys_sco_open(BTA_ID_AG, p_scb->app_id, p_scb->peer_addr); } else { bta_sys_idle(BTA_ID_AG, p_scb->app_id, p_scb->peer_addr); } }
static void bta_hf_client_send_at(tBTA_HF_CLIENT_AT_CMD cmd, char *buf, UINT16 buf_len) { if ((bta_hf_client_cb.scb.at_cb.current_cmd == BTA_HF_CLIENT_AT_NONE || bta_hf_client_cb.scb.svc_conn == FALSE) && bta_hf_client_cb.scb.at_cb.hold_timer_on == FALSE) { UINT16 len; #ifdef BTA_HF_CLIENT_AT_DUMP APPL_TRACE_DEBUG3("%s %.*s", __FUNCTION__, buf_len - 1, buf); #endif bta_hf_client_cb.scb.at_cb.current_cmd = cmd; PORT_WriteData(bta_hf_client_cb.scb.conn_handle, buf, buf_len, &len); bta_hf_client_start_at_resp_timer(); return; } bta_hf_client_queue_at(cmd, buf, buf_len); }