Home | History | Annotate | Download | only in co
      1 /******************************************************************************
      2  *
      3  *  Copyright (C) 2009-2012 Broadcom Corporation
      4  *
      5  *  Licensed under the Apache License, Version 2.0 (the "License");
      6  *  you may not use this file except in compliance with the License.
      7  *  You may obtain a copy of the License at:
      8  *
      9  *  http://www.apache.org/licenses/LICENSE-2.0
     10  *
     11  *  Unless required by applicable law or agreed to in writing, software
     12  *  distributed under the License is distributed on an "AS IS" BASIS,
     13  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     14  *  See the License for the specific language governing permissions and
     15  *  limitations under the License.
     16  *
     17  ******************************************************************************/
     18 
     19 #define LOG_TAG "bt_btif_bta_ag"
     20 
     21 #include <cutils/properties.h>
     22 
     23 #include "bta/include/bta_ag_api.h"
     24 #include "hci/include/hci_audio.h"
     25 #include "osi/include/osi.h"
     26 
     27 /*******************************************************************************
     28 **
     29 ** Function         bta_ag_co_init
     30 **
     31 ** Description      This callout function is executed by AG when it is
     32 **                  started by calling BTA_AgEnable().  This function can be
     33 **                  used by the phone to initialize audio paths or for other
     34 **                  initialization purposes.
     35 **
     36 **
     37 ** Returns          Void.
     38 **
     39 *******************************************************************************/
     40 void bta_ag_co_init(void)
     41 {
     42     BTM_WriteVoiceSettings(AG_VOICE_SETTINGS);
     43 }
     44 
     45 
     46 /*******************************************************************************
     47 **
     48 ** Function         bta_ag_co_audio_state
     49 **
     50 ** Description      This function is called by the AG before the audio connection
     51 **                  is brought up, after it comes up, and after it goes down.
     52 **
     53 ** Parameters       handle - handle of the AG instance
     54 **                  state - Audio state
     55 **                  codec - if WBS support is compiled in, codec to going to be used is provided
     56 **                      and when in SCO_STATE_SETUP, BTM_I2SPCMConfig() must be called with
     57 **                      the correct platform parameters.
     58 **                      in the other states codec type should not be ignored
     59 **
     60 ** Returns          void
     61 **
     62 *******************************************************************************/
     63 #if (BTM_WBS_INCLUDED == TRUE )
     64 void bta_ag_co_audio_state(UINT16 handle, UINT8 app_id, UINT8 state, tBTA_AG_PEER_CODEC codec)
     65 #else
     66 void bta_ag_co_audio_state(UINT16 handle, UINT8 app_id, UINT8 state)
     67 #endif
     68 {
     69     BTIF_TRACE_DEBUG("bta_ag_co_audio_state: handle %d, state %d", handle, state);
     70     switch (state)
     71     {
     72     case SCO_STATE_OFF:
     73 #if (BTM_WBS_INCLUDED == TRUE )
     74         BTIF_TRACE_DEBUG("bta_ag_co_audio_state(handle %d)::Closed (OFF), codec: 0x%x",
     75                         handle, codec);
     76         set_audio_state(handle, codec, state);
     77 #else
     78         BTIF_TRACE_DEBUG("bta_ag_co_audio_state(handle %d)::Closed (OFF)",
     79                         handle);
     80 #endif
     81         break;
     82     case SCO_STATE_OFF_TRANSFER:
     83         BTIF_TRACE_DEBUG("bta_ag_co_audio_state(handle %d)::Closed (XFERRING)", handle);
     84         break;
     85     case SCO_STATE_SETUP:
     86 #if (BTM_WBS_INCLUDED == TRUE )
     87         set_audio_state(handle, codec, state);
     88 #else
     89         set_audio_state(handle, BTA_AG_CODEC_CVSD, state);
     90 #endif
     91         break;
     92     default:
     93         break;
     94     }
     95 #if (BTM_WBS_INCLUDED == TRUE )
     96     APPL_TRACE_DEBUG("bta_ag_co_audio_state(handle %d, app_id: %d, state %d, codec: 0x%x)",
     97                       handle, app_id, state, codec);
     98 #else
     99     APPL_TRACE_DEBUG("bta_ag_co_audio_state(handle %d, app_id: %d, state %d)", \
    100     handle, app_id, state);
    101 #endif
    102 }
    103 
    104 
    105 /*******************************************************************************
    106 **
    107 ** Function         bta_ag_co_data_open
    108 **
    109 ** Description      This function is executed by AG when a service level connection
    110 **                  is opened.  The phone can use this function to set
    111 **                  up data paths or perform any required initialization or
    112 **                  set up particular to the connected service.
    113 **
    114 **
    115 ** Returns          void
    116 **
    117 *******************************************************************************/
    118 void bta_ag_co_data_open(UINT16 handle, tBTA_SERVICE_ID service)
    119 {
    120     BTIF_TRACE_DEBUG("bta_ag_co_data_open handle:%d service:%d", handle, service);
    121 }
    122 
    123 /*******************************************************************************
    124 **
    125 ** Function         bta_ag_co_data_close
    126 **
    127 ** Description      This function is called by AG when a service level
    128 **                  connection is closed
    129 **
    130 **
    131 ** Returns          void
    132 **
    133 *******************************************************************************/
    134 void bta_ag_co_data_close(UINT16 handle)
    135 {
    136     BTIF_TRACE_DEBUG("bta_ag_co_data_close handle:%d", handle);
    137 }
    138 
    139 
    140 /*******************************************************************************
    141  **
    142  ** Function         bta_ag_co_tx_write
    143  **
    144  ** Description      This function is called by the AG to send data to the
    145  **                  phone when the AG is configured for AT command pass-through.
    146  **                  The implementation of this function must copy the data to
    147  **                  the phones memory.
    148  **
    149  ** Returns          void
    150  **
    151  *******************************************************************************/
    152 void bta_ag_co_tx_write(UINT16 handle, UNUSED_ATTR UINT8 * p_data, UINT16 len)
    153 {
    154     BTIF_TRACE_DEBUG( "bta_ag_co_tx_write: handle: %d, len: %d", handle, len );
    155 }
    156