/****************************************************************************** * * 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 #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 */