/******************************************************************************* ** ** Function bta_ag_start_open ** ** Description This starts an AG open. ** ** ** Returns void ** *******************************************************************************/ void bta_ag_start_open(tBTA_AG_SCB *p_scb, tBTA_AG_DATA *p_data) { BD_ADDR pending_bd_addr; /* store parameters */ if (p_data) { bdcpy(p_scb->peer_addr, p_data->api_open.bd_addr); p_scb->open_services = p_data->api_open.services; p_scb->cli_sec_mask = p_data->api_open.sec_mask; } /* Check if RFCOMM has any incoming connection to avoid collision. */ if (PORT_IsOpening (pending_bd_addr)) { /* Let the incoming connection goes through. */ /* Issue collision for this scb for now. */ /* We will decide what to do when we find incoming connetion later. */ bta_ag_collision_cback (0, BTA_ID_AG, 0, p_scb->peer_addr); return; } /* close servers */ bta_ag_close_servers(p_scb, p_scb->reg_services); /* set role */ p_scb->role = BTA_AG_INT; /* do service search */ bta_ag_do_disc(p_scb, p_scb->open_services); }
/******************************************************************************* ** ** Function bta_hf_client_start_open ** ** Description This starts an HF Client open. ** ** ** Returns void ** *******************************************************************************/ void bta_hf_client_start_open(tBTA_HF_CLIENT_DATA *p_data) { BD_ADDR pending_bd_addr; /* store parameters */ if (p_data) { bdcpy(bta_hf_client_cb.scb.peer_addr, p_data->api_open.bd_addr); bta_hf_client_cb.scb.cli_sec_mask = p_data->api_open.sec_mask; } /* Check if RFCOMM has any incoming connection to avoid collision. */ if (PORT_IsOpening (pending_bd_addr)) { /* Let the incoming connection goes through. */ /* Issue collision for now. */ /* We will decide what to do when we find incoming connection later.*/ bta_hf_client_collision_cback (0, BTA_ID_HS, 0, bta_hf_client_cb.scb.peer_addr); return; } /* close server */ bta_hf_client_close_server(); /* set role */ bta_hf_client_cb.scb.role = BTA_HF_CLIENT_INT; /* do service search */ bta_hf_client_do_disc(); }