15738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/****************************************************************************** 25738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 35738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * Copyright (C) 2009-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#include "gki.h" 195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "bta_api.h" 205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "bta_sys.h" 215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "bta_ag_api.h" 225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "bta_ag_co.h" 235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "bte_appl.h" 245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define LOG_TAG "BTA_AG_CO: " 265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#ifndef LINUX_NATIVE 285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include <cutils/properties.h> 295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include <cutils/log.h> 305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#else 315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include <stdio.h> 325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define LOGI(format, ...) fprintf (stdout, LOG_TAG format"\n", ## __VA_ARGS__) 335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define LOGD(format, ...) fprintf (stdout, LOG_TAG format"\n", ## __VA_ARGS__) 345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define LOGV(format, ...) fprintf (stdout, LOG_TAG format"\n", ## __VA_ARGS__) 355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define LOGE(format, ...) fprintf (stderr, LOG_TAG format"\n", ## __VA_ARGS__) 365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif 375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function bta_ag_co_init 425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description This callout function is executed by AG when it is 445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** started by calling BTA_AgEnable(). This function can be 455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** used by the phone to initialize audio paths or for other 465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** initialization purposes. 475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns Void. 505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectvoid bta_ag_co_init(void) 535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTM_WriteVoiceSettings(AG_VOICE_SETTINGS); 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** 605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function bta_ag_co_audio_state 615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description This function is called by the AG before the audio connection 635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** is brought up, after it comes up, and after it goes down. 645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters handle - handle of the AG instance 665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** state - Audio state 675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** BTA_AG_CO_AUD_STATE_OFF - Audio has been turned off 685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** BTA_AG_CO_AUD_STATE_OFF_XFER - Audio has been turned off (xfer) 695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** BTA_AG_CO_AUD_STATE_ON - Audio has been turned on 705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** BTA_AG_CO_AUD_STATE_SETUP - Audio is about to be turned on 715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns void 735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectvoid bta_ag_co_audio_state(UINT16 handle, UINT8 app_id, UINT8 state) 765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTIF_TRACE_DEBUG2("bta_ag_co_audio_state: handle %d, state %d", handle, state); 785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} 795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function bta_ag_co_data_open 845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description This function is executed by AG when a service level connection 865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** is opened. The phone can use this function to set 875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** up data paths or perform any required initialization or 885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** set up particular to the connected service. 895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns void 925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectvoid bta_ag_co_data_open(UINT16 handle, tBTA_SERVICE_ID service) 955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTIF_TRACE_DEBUG2("bta_ag_co_data_open handle:%d service:%d", handle, service); 975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} 985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 1005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 1015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function bta_ag_co_data_close 1025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 1035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description This function is called by AG when a service level 1045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** connection is closed 1055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 1065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 1075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns void 1085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 1095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 1105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectvoid bta_ag_co_data_close(UINT16 handle) 1115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 1125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTIF_TRACE_DEBUG1("bta_ag_co_data_close handle:%d", handle); 1135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} 1145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 1175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project ** 1185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project ** Function bta_ag_co_tx_write 1195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project ** 1205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project ** Description This function is called by the AG to send data to the 1215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project ** phone when the AG is configured for AT command pass-through. 1225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project ** The implementation of this function must copy the data to 1235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project ** the phones memory. 1245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project ** 1255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project ** Returns void 1265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project ** 1275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *******************************************************************************/ 1285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectvoid bta_ag_co_tx_write(UINT16 handle, UINT8 * p_data, UINT16 len) 1295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 1305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTIF_TRACE_DEBUG2( "bta_ag_co_tx_write: handle: %d, len: %d", handle, len ); 1315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} 1325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 133