You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
247 lines
9.8 KiB
247 lines
9.8 KiB
4 months ago
|
/******************************************************************************
|
||
|
*
|
||
|
* Copyright 2003-2012 Broadcom Corporation
|
||
|
*
|
||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||
|
* you may not use this file except in compliance with the License.
|
||
|
* You may obtain a copy of the License at:
|
||
|
*
|
||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||
|
*
|
||
|
* Unless required by applicable law or agreed to in writing, software
|
||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||
|
* See the License for the specific language governing permissions and
|
||
|
* limitations under the License.
|
||
|
*
|
||
|
******************************************************************************/
|
||
|
|
||
|
/******************************************************************************
|
||
|
*
|
||
|
* This is the interface file for advanced audio call-out functions.
|
||
|
*
|
||
|
******************************************************************************/
|
||
|
#ifndef BTA_AV_CO_H
|
||
|
#define BTA_AV_CO_H
|
||
|
|
||
|
#include <cstdint>
|
||
|
|
||
|
#include "bta/include/bta_av_api.h"
|
||
|
#include "include/hardware/bt_av.h"
|
||
|
#include "stack/include/a2dp_error_codes.h"
|
||
|
#include "stack/include/avdt_api.h"
|
||
|
#include "types/raw_address.h"
|
||
|
|
||
|
/*****************************************************************************
|
||
|
* Constants and data types
|
||
|
****************************************************************************/
|
||
|
|
||
|
/*******************************************************************************
|
||
|
*
|
||
|
* Function bta_av_co_audio_init
|
||
|
*
|
||
|
* Description This callout function is executed by AV when it is
|
||
|
* started by calling BTA_AvEnable(). This function can be
|
||
|
* used by the phone to initialize audio paths or for other
|
||
|
* initialization purposes.
|
||
|
*
|
||
|
*
|
||
|
* Returns Stream codec and content protection capabilities info.
|
||
|
*
|
||
|
******************************************************************************/
|
||
|
bool bta_av_co_audio_init(btav_a2dp_codec_index_t codec_index,
|
||
|
AvdtpSepConfig* p_cfg);
|
||
|
|
||
|
/*******************************************************************************
|
||
|
*
|
||
|
* Function bta_av_co_audio_disc_res
|
||
|
*
|
||
|
* Description This callout function is executed by AV to report the
|
||
|
* number of stream end points (SEP) were found during the
|
||
|
* AVDT stream discovery process.
|
||
|
*
|
||
|
*
|
||
|
* Returns void.
|
||
|
*
|
||
|
******************************************************************************/
|
||
|
void bta_av_co_audio_disc_res(tBTA_AV_HNDL bta_av_handle,
|
||
|
const RawAddress& peer_address, uint8_t num_seps,
|
||
|
uint8_t num_sinks, uint8_t num_sources,
|
||
|
uint16_t uuid_local);
|
||
|
|
||
|
/*******************************************************************************
|
||
|
*
|
||
|
* Function bta_av_co_audio_getconfig
|
||
|
*
|
||
|
* Description This callout function is executed by AV to retrieve the
|
||
|
* desired codec and content protection configuration for the
|
||
|
* audio stream.
|
||
|
*
|
||
|
*
|
||
|
* Returns Stream codec and content protection configuration info.
|
||
|
*
|
||
|
******************************************************************************/
|
||
|
tA2DP_STATUS bta_av_co_audio_getconfig(tBTA_AV_HNDL bta_av_handle,
|
||
|
const RawAddress& peer_address,
|
||
|
uint8_t* p_codec_info,
|
||
|
uint8_t* p_sep_info_idx, uint8_t seid,
|
||
|
uint8_t* p_num_protect,
|
||
|
uint8_t* p_protect_info);
|
||
|
|
||
|
/*******************************************************************************
|
||
|
*
|
||
|
* Function bta_av_co_audio_setconfig
|
||
|
*
|
||
|
* Description This callout function is executed by AV to set the
|
||
|
* codec and content protection configuration of the audio
|
||
|
* stream.
|
||
|
*
|
||
|
*
|
||
|
* Returns void
|
||
|
*
|
||
|
******************************************************************************/
|
||
|
void bta_av_co_audio_setconfig(tBTA_AV_HNDL bta_av_handle,
|
||
|
const RawAddress& peer_address,
|
||
|
const uint8_t* p_codec_info, uint8_t seid,
|
||
|
uint8_t num_protect,
|
||
|
const uint8_t* p_protect_info,
|
||
|
uint8_t t_local_sep, uint8_t avdt_handle);
|
||
|
|
||
|
/*******************************************************************************
|
||
|
*
|
||
|
* Function bta_av_co_audio_open
|
||
|
*
|
||
|
* Description This function is called by AV when the audio stream
|
||
|
* connection is opened.
|
||
|
* BTA-AV maintains the MTU of A2DP streams.
|
||
|
* If this is the 2nd audio stream, mtu is the smaller of the 2
|
||
|
* streams.
|
||
|
*
|
||
|
* Returns void
|
||
|
*
|
||
|
******************************************************************************/
|
||
|
void bta_av_co_audio_open(tBTA_AV_HNDL bta_av_handle,
|
||
|
const RawAddress& peer_address, uint16_t mtu);
|
||
|
|
||
|
/*******************************************************************************
|
||
|
*
|
||
|
* Function bta_av_co_audio_close
|
||
|
*
|
||
|
* Description This function is called by AV when the audio stream
|
||
|
* connection is closed.
|
||
|
* BTA-AV maintains the MTU of A2DP streams.
|
||
|
* When one stream is closed and no other audio stream is open,
|
||
|
* mtu is reported as 0.
|
||
|
* Otherwise, the MTU remains open is reported.
|
||
|
*
|
||
|
* Returns void
|
||
|
*
|
||
|
******************************************************************************/
|
||
|
void bta_av_co_audio_close(tBTA_AV_HNDL bta_av_handle,
|
||
|
const RawAddress& peer_address);
|
||
|
|
||
|
/*******************************************************************************
|
||
|
*
|
||
|
* Function bta_av_co_audio_start
|
||
|
*
|
||
|
* Description This function is called by AV when the audio streaming data
|
||
|
* transfer is started.
|
||
|
*
|
||
|
*
|
||
|
* Returns void
|
||
|
*
|
||
|
******************************************************************************/
|
||
|
void bta_av_co_audio_start(tBTA_AV_HNDL bta_av_handle,
|
||
|
const RawAddress& peer_address,
|
||
|
const uint8_t* p_codec_info, bool* p_no_rtp_header);
|
||
|
|
||
|
/*******************************************************************************
|
||
|
*
|
||
|
* Function bta_av_co_audio_stop
|
||
|
*
|
||
|
* Description This function is called by AV when the audio streaming data
|
||
|
* transfer is stopped.
|
||
|
*
|
||
|
*
|
||
|
* Returns void
|
||
|
*
|
||
|
******************************************************************************/
|
||
|
void bta_av_co_audio_stop(tBTA_AV_HNDL bta_av_handle,
|
||
|
const RawAddress& peer_address);
|
||
|
|
||
|
/*******************************************************************************
|
||
|
*
|
||
|
* Function bta_av_co_audio_source_data_path
|
||
|
*
|
||
|
* Description This function is called to get the next data buffer from
|
||
|
* the audio codec
|
||
|
*
|
||
|
* Returns NULL if data is not ready.
|
||
|
* Otherwise, a buffer (BT_HDR*) containing the audio data.
|
||
|
*
|
||
|
******************************************************************************/
|
||
|
BT_HDR* bta_av_co_audio_source_data_path(const uint8_t* p_codec_info,
|
||
|
uint32_t* p_timestamp);
|
||
|
|
||
|
/*******************************************************************************
|
||
|
*
|
||
|
* Function bta_av_co_audio_drop
|
||
|
*
|
||
|
* Description An Audio packet is dropped.
|
||
|
* It's very likely that the connected headset with this handle
|
||
|
* is moved far away. The implementation may want to reduce
|
||
|
* the encoder bit rate setting to reduce the packet size.
|
||
|
*
|
||
|
* Returns void
|
||
|
*
|
||
|
******************************************************************************/
|
||
|
void bta_av_co_audio_drop(tBTA_AV_HNDL bta_av_handle,
|
||
|
const RawAddress& peer_address);
|
||
|
|
||
|
/*******************************************************************************
|
||
|
*
|
||
|
* Function bta_av_co_audio_delay
|
||
|
*
|
||
|
* Description This function is called by AV when the audio stream
|
||
|
* connection needs to send the initial delay report to the
|
||
|
* connected SRC.
|
||
|
*
|
||
|
*
|
||
|
* Returns void
|
||
|
*
|
||
|
******************************************************************************/
|
||
|
void bta_av_co_audio_delay(tBTA_AV_HNDL bta_av_handle,
|
||
|
const RawAddress& peer_address, uint16_t delay);
|
||
|
|
||
|
/*******************************************************************************
|
||
|
*
|
||
|
* Function bta_av_co_audio_update_mtu
|
||
|
*
|
||
|
* Description This function is called by AV when the audio stream
|
||
|
* connection MTU needs to be updated.
|
||
|
* BTA-AV maintains the MTU of A2DP streams.
|
||
|
* If this is the 2nd audio stream, mtu is the smaller of the 2
|
||
|
* streams.
|
||
|
*
|
||
|
* Returns void
|
||
|
*
|
||
|
******************************************************************************/
|
||
|
void bta_av_co_audio_update_mtu(tBTA_AV_HNDL bta_av_handle,
|
||
|
const RawAddress& peer_address, uint16_t mtu);
|
||
|
|
||
|
/*******************************************************************************
|
||
|
**
|
||
|
** Function bta_av_co_get_scmst_info
|
||
|
**
|
||
|
** Description Get the SCMS-T information for the specific peer
|
||
|
**
|
||
|
** Returns btav_a2dp_scmst_info_t.
|
||
|
** It contains the information of SCMS-T which are the SCMS-T
|
||
|
** enable status for the specific peer and the SCMS-T header
|
||
|
** if SCMS-T is enabled.
|
||
|
**
|
||
|
******************************************************************************/
|
||
|
btav_a2dp_scmst_info_t bta_av_co_get_scmst_info(const RawAddress& peer_address);
|
||
|
|
||
|
#endif /* BTA_AV_CO_H */
|