111 lines
6.1 KiB
C++
111 lines
6.1 KiB
C++
/*******************************************************************************
|
|
* 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_MAIN_H__
|
|
#define __DUAL_AUDIO_MAIN_H__
|
|
|
|
#include <future>
|
|
#include <queue>
|
|
#include "bt_target.h"
|
|
#include "raw_address.h"
|
|
#include "bt_types.h"
|
|
#include "btif_a2dp_source.h"
|
|
#include "bta/av/bta_av_int.h"
|
|
#include "stack/avdt/avdt_int.h"
|
|
#include "stack/l2cap/l2c_int.h"
|
|
#include "stack/include/a2dp_codec_api.h"
|
|
#include "embdrv/sbc/encoder/include/sbc_encoder.h"
|
|
#include "osi/include/osi.h"
|
|
#include "osi/include/log.h"
|
|
#include "osi/include/fixed_queue.h"
|
|
#include "osi/include/properties.h"
|
|
#include "bta_sys_int.h"
|
|
#include "embdrv/sbc/encoder/include/sbc_encoder.h"
|
|
|
|
#if defined(MTK_DUAL_AUDIO) && (MTK_DUAL_AUDIO == TRUE)
|
|
bool dual_audio_library_load(void);
|
|
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);
|
|
#endif
|
|
|
|
#endif // __DUAL_AUDIO_MAIN_H__
|