/******************************************************************************* ** ** Function bta_ag_create_records ** ** Description Create SDP records for registered services. ** ** ** Returns void ** *******************************************************************************/ void bta_ag_create_records(tBTA_AG_SCB *p_scb, tBTA_AG_DATA *p_data) { int i; tBTA_SERVICE_MASK services; services = p_scb->reg_services >> BTA_HSP_SERVICE_ID; for (i = 0; i < BTA_AG_NUM_IDX && services != 0; i++, services >>= 1) { /* if service is set in mask */ if (services & 1) { /* add sdp record if not already registered */ if (bta_ag_cb.profile[i].sdp_handle == 0) { bta_ag_cb.profile[i].sdp_handle = SDP_CreateRecord(); bta_ag_cb.profile[i].scn = BTM_AllocateSCN(); bta_ag_add_record(bta_ag_uuid[i], p_data->api_register.p_name[i], bta_ag_cb.profile[i].scn, p_data->api_register.features, bta_ag_cb.profile[i].sdp_handle); bta_sys_add_uuid(bta_ag_uuid[i]); } } } p_scb->hsp_version = HSP_VERSION_1_2; }
/******************************************************************************* ** ** Function bta_hf_client_create_record ** ** Description Create SDP record for registered service. ** ** ** Returns void ** *******************************************************************************/ void bta_hf_client_create_record(tBTA_HF_CLIENT_DATA *p_data) { /* add sdp record if not already registered */ if (bta_hf_client_cb.sdp_handle == 0) { bta_hf_client_cb.sdp_handle = SDP_CreateRecord(); bta_hf_client_cb.scn = BTM_AllocateSCN(); bta_hf_client_add_record(p_data->api_register.name, bta_hf_client_cb.scn, p_data->api_register.features, bta_hf_client_cb.sdp_handle); bta_sys_add_uuid(UUID_SERVCLASS_HF_HANDSFREE); } }
static int create_server_sdp_record(rfc_slot_t* rs) { int scn = rs->scn; if(rs->scn > 0) { if(BTM_TryAllocateSCN(rs->scn) == FALSE) { APPL_TRACE_ERROR1("rfc channel:%d already in use", scn); return FALSE; } } else if((rs->scn = BTM_AllocateSCN()) == 0) { APPL_TRACE_ERROR0("run out of rfc channels"); return FALSE; } if((rs->sdp_handle = add_rfc_sdp_rec(rs->service_name, rs->service_uuid, rs->scn)) <= 0) { return FALSE; } return TRUE; }