unplugged-vendor/system/bt/mediatek/include/dual_audio_api.h

102 lines
6.2 KiB
C
Raw Normal View History

/*******************************************************************************
* Copyright Statement:
* --------------------
* This software is protected by Copyright and the information contained
* herein is confidential. The software may not be copied and the information
* contained herein may not be used or disclosed except with the written
* permission of MediaTek Inc. (C) 2013
*
* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
*
* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
*
* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
*
*******************************************************************************/
#ifndef __DUAL_AUDIO_API_H__
#define __DUAL_AUDIO_API_H__
#include "dual_audio_main.h"
/** Represents the Bluetooth dual audio interface. */
#if defined(MTK_DUAL_AUDIO) && (MTK_DUAL_AUDIO == TRUE)
typedef struct {
/** set to sizeof(dualaudio_interface_t) */
size_t size;
void (*a2dp_get_user_ajust_LR_channel)(void);
void (*dump_left_right_channel_data_file_init)(void);
void (*dump_left_right_channel_data_file_deinit)(void);
void (*a2dp_get_user_want_delay_time)(void);
void (*a2dp_suspend_drop_data_queue)(void);
void (*btif_a2dp_source_dual_audio_enqueue_data)(BT_HDR* p_buf, BT_HDR* p_buf2);
void (*a2dp_lr_channel_handle_data_for_dual_audio)(BT_HDR* p_buf2, int16_t* input, int num_bytes, uint16_t &output_len, uint8_t* output);
void (*a2dp_sameaudio_handle_data_for_dual_audio)(BT_HDR* p_buf2, int16_t* input, int num_bytes, uint16_t &output_len, uint8_t* output);
void (*bta_av_data_to_l2cap)(tBTA_AV_SCB* p_scb, int i);
void (*bta_av_link_distribution)(uint8_t *bta_av_queue_num);
void (*bta_av_old_data_handle)(tBTA_AV_SCB* p_scb, BT_HDR* p_pkt);
void (*bta_av_dup_audio_handle_for_dual_audio)(tBTA_AV_SCB* p_scb, BT_HDR* p_buf);
bool (*l2cu_check_condition_for_dual_audio)(uint8_t* dc);
bool (*l2cu_can_allocate_lcb_for_dual_audio)(tL2C_CB &l2cb);
void (*avdt_ccb_ajust_SBC_codec)(tAVDT_CCB_EVT* p_data);
void (*a2dp_sbc_encoder_update_for_dual_audio)(SBC_ENC_PARAMS* p_encoder_params);
void (*a2dp_sbc_encoder_update_for_LR_channel_mode)(void);
void (*SBC_Encoder_Init_for_dual_audio)(void);
void (*btif_a2dp_get_audio_config_for_dual_audio)(btav_a2dp_codec_config_t &codec_config, btav_a2dp_codec_config_t &codec_capability);
void (*bta_av_str_opened_for_dual_audio)(tBTA_AV_SCB* p_scb);
void (*bta_av_str_opend_handle_for_dual_audio)(void);
void (*bta_av_str_stopped_for_dual_audio)(tBTA_AV_SCB* p_scb);
void (*bta_av_start_ok_for_dual_audio)(tBTA_AV_SCB* p_scb);
void (*bta_av_start_ok_for_dual_audio2)(tBTA_AV_SCB* p_scb);
void (*bta_av_str_closed_for_dual_audio)(tBTA_AV_SCB* p_scb);
void (*bta_av_suspend_cfm_for_dual_audio)(tBTA_AV_SCB* p_scb);
void (*bta_av_api_enable_for_dual_audio)(void);
void (*a2dp_sbc_buffer_handle_for_dual_audio)(SBC_ENC_PARAMS* p_encoder_params);
void (*avdt_ccb_hdl_discover_cmd_for_dual_audio)(AvdtpScb* p_scb, tAVDT_SEP_INFO *sep_info, tAVDT_CCB_EVT* p_data);
void (*btif_a2dp_set_audio_config_for_dual_audio)(btav_a2dp_codec_config_t &codec_config);
void (*updateEffectiveMtu_for_dual_audio)(int mtu);
bool (*btif_a2dp_source_setup_codec_delayed_for_dual_audio)(A2dpCodecConfig* a2dp_codec_config, const RawAddress& peer_address);
bool (*SetActivePeer_for_audio_audio)(RawAddress& active_peer_, const RawAddress& peer_address, std::promise<void> peer_ready_promise);
void (*btif_closing_state_process_stop_event)(uint32_t event);
void (*btif_closing_state_onenter)(void);
void (*btif_started_state_process_close_event)(void);
void (*btif_opened_state_process_close_event)(void);
void (*btif_opened_state_process_start_event)(const RawAddress& peer_address);
bool (*btif_idle_state_onenter)(void);
bool (*btif_idle_state_onenter2)(void);
bool (*btif_av_stream_started_ready_for_dual_audio)(void);
bool (*btif_av_stream_ready_for_dual_audio)(void);
void (*btif_started_state_process_stop_event)(tBTA_AV_SUSPEND* p_av_suspend, const RawAddress& peer_address);
void (*btif_started_state_process_stop_suspend_event)(uint32_t event);
void (*updateEncoderUserConfig_for_dual_audio)(const tA2DP_ENCODER_INIT_PEER_PARAMS* p_peer_params);
void (*a2dp_sbc_get_num_frame_iteration_for_dual_audio)(void);
void (*a2dp_sbc_get_num_frame_iteration_for_dual_audio2)(void);
void (*dual_audio_init)(void);
void (*dual_audio_deinit)(void);
bt_a2dp_dual_mode_type_t (*getDualModeType)(void);
//void (*setDualModeType)(bt_a2dp_dual_mode_type_t mode_type);
//void (*a2dp_set_LR_channel)(const RawAddress& addr, int lr_chl);
//int (*a2dp_get_exist_LR_channel)(void);
//int (*a2dp_get_exist_LR_channel_by_addr)(const RawAddress& addr);
} dualaudio_interface_t;
#endif
#endif // __DUAL_AUDIO_API_H__