15738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/****************************************************************************** 25738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 35738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * Copyright (C) 2005-2012 Broadcom Corporation 45738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 55738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 65738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * you may not use this file except in compliance with the License. 75738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * You may obtain a copy of the License at: 85738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 95738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * See the License for the specific language governing permissions and 155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * limitations under the License. 165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project ******************************************************************************/ 185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/****************************************************************************** 205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * This is the implementation file for advanced audio/video call-in 225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * functions. 235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project ******************************************************************************/ 255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "bta_api.h" 275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "bta_sys.h" 285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "bta_av_int.h" 295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "bta_av_ci.h" 305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include <string.h> 325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function bta_av_ci_src_data_ready 365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description This function sends an event to the AV indicating that 385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** the phone has audio stream data ready to send and AV 395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** should call bta_av_co_audio_src_data_path() or 405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** bta_av_co_video_src_data_path(). 415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns void 435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectvoid bta_av_ci_src_data_ready(tBTA_AV_CHNL chnl) 465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BT_HDR *p_buf; 485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project if ((p_buf = (BT_HDR *) GKI_getbuf(sizeof(BT_HDR))) != NULL) 505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project { 515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project p_buf->layer_specific = chnl; 525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project p_buf->event = BTA_AV_CI_SRC_DATA_READY_EVT; 535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project bta_sys_sendmsg(p_buf); 545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project } 555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} 565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function bta_av_ci_setconfig 605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description This function must be called in response to function 625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** bta_av_co_audio_setconfig() or bta_av_co_video_setconfig. 635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameter err_code is set to an AVDTP status value; 645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** AVDT_SUCCESS if the codec configuration is ok, 655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** otherwise error. 665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns void 685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectvoid bta_av_ci_setconfig(tBTA_AV_HNDL hndl, UINT8 err_code, UINT8 category, 71f7dd9f5779680da37dc89e5df2b26d436487818cHemant Gupta UINT8 num_seid, UINT8 *p_seid, BOOLEAN recfg_needed, UINT8 avdt_handle) 725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBTA_AV_CI_SETCONFIG *p_buf; 745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project if ((p_buf = (tBTA_AV_CI_SETCONFIG *) GKI_getbuf(sizeof(tBTA_AV_CI_SETCONFIG))) != NULL) 765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project { 775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project p_buf->hdr.layer_specific = hndl; 785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project p_buf->hdr.event = (err_code == AVDT_SUCCESS) ? 795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_AV_CI_SETCONFIG_OK_EVT : BTA_AV_CI_SETCONFIG_FAIL_EVT; 805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project p_buf->err_code = err_code; 815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project p_buf->category = category; 825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project p_buf->recfg_needed = recfg_needed; 835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project p_buf->num_seid = num_seid; 84f7dd9f5779680da37dc89e5df2b26d436487818cHemant Gupta p_buf->avdt_handle= avdt_handle; 855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project if(p_seid && num_seid) 865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project { 875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project p_buf->p_seid = (UINT8 *)(p_buf + 1); 885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project memcpy(p_buf->p_seid, p_seid, num_seid); 895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project } 905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project else 915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project { 925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project p_buf->p_seid = NULL; 935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project p_buf->num_seid = 0; 945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project } 955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project bta_sys_sendmsg(p_buf); 975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project } 985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} 995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 100