/* Copyright Statement: * * * * This software/firmware and related documentation ("MediaTek Software") are * * protected under relevant copyright laws. The information contained herein * * is confidential and proprietary to MediaTek Inc. and/or its licensors. * * Without the prior written permission of MediaTek inc. and/or its licensors, * * any reproduction, modification, use or disclosure of MediaTek Software, * * and information contained herein, in whole or in part, shall be strictly prohibited. * * * * MediaTek Inc. (C) 2017. All rights reserved. * * * * BY OPENING THIS FILE, RECEIVER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES * * THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE") * * RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO RECEIVER 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 RECEIVER AGREES TO LOOK ONLY TO SUCH * * THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. RECEIVER EXPRESSLY ACKNOWLEDGES * * THAT IT IS RECEIVER'S SOLE RESPONSIBILITY TO OBTAIN FROM ANY THIRD PARTY ALL PROPER LICENSES * * CONTAINED IN MEDIATEK SOFTWARE. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE FOR ANY MEDIATEK * * SOFTWARE RELEASES MADE TO RECEIVER'S SPECIFICATION OR TO CONFORM TO A PARTICULAR * * STANDARD OR OPEN FORUM. RECEIVER'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 RECEIVER TO * * MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE. * * * * The following software/firmware and/or related documentation ("MediaTek Software") * * have been modified by MediaTek Inc. All revisions are subject to any receiver's * * applicable license agreements with MediaTek Inc. * */ #pragma once #if __STDC_VERSION__ < 199901L # ifndef FALSE # define FALSE 0 # endif # ifndef TRUE # define TRUE (!FALSE) # endif #else # include # ifndef FALSE # define FALSE false # endif # ifndef TRUE # define TRUE true # endif #endif /****************************************************************************** * ** * ** for FW multiple links 7br + 32ble * ** * ******************************************************************************/ #ifndef MAX_ACL_CONNECTIONS #define MAX_ACL_CONNECTIONS 39 #endif #ifndef GATT_MAX_PHY_CHANNEL #define GATT_MAX_PHY_CHANNEL MAX_ACL_CONNECTIONS #endif #ifndef BTA_GATTC_KNOWN_SR_MAX #define BTA_GATTC_KNOWN_SR_MAX GATT_MAX_PHY_CHANNEL #endif #ifndef BTA_GATTC_CL_MAX #define BTA_GATTC_CL_MAX 64 #endif #ifndef GATT_MAX_SR_PROFILES #define GATT_MAX_SR_PROFILES 64 #endif #ifndef GATT_MAX_APPS #define GATT_MAX_APPS 64 #endif #ifndef GATT_CL_MAX_LCB #define GATT_CL_MAX_LCB 64 #endif #ifndef BTM_BLE_MAX_BG_CONN_DEV_NUM #define BTM_BLE_MAX_BG_CONN_DEV_NUM 64 #endif #ifndef GATT_MAX_BG_CONN_DEV #define GATT_MAX_BG_CONN_DEV BTM_BLE_MAX_BG_CONN_DEV_NUM #endif /****************************************************************************** * ** * ** define MTK comp id and MTK controller * ** * ******************************************************************************/ #define LMP_COMPID_MEDIATEK 70 #define BTM_IS_MTK_CONTROLLER() \ (controller_get_interface()->get_bt_version()->manufacturer == \ LMP_COMPID_MEDIATEK) /****************************************************************************** * ** * ** define max number of l2cap clients, reconfig to 20 * ** * ******************************************************************************/ #ifndef MAX_L2CAP_CLIENTS #define MAX_L2CAP_CLIENTS 20 #endif // For HDP PTS case. // In 64bit project. It occur SDP DB full error by smaller size. #ifndef BTA_HL_DISC_SIZE #define BTA_HL_DISC_SIZE 3200 #endif #ifndef MTK_PTS_HF_TEST #define MTK_PTS_HF_TEST TRUE //added for hfp(hf role) pts test #endif #ifndef MTK_PTS_AV_TEST #define MTK_PTS_AV_TEST TRUE// added for av pts test #endif #define MTK_PTS_TEST_IS_ENABLE \ char values[PROPERTY_VALUE_MAX] = {0}; \ if ((osi_property_get("persist.bluetooth.pts.enable", values, "off")) && (!strcmp(values, "on"))) /****************************************************************************** * ** * ** Disable connection down timer (in milliseconds) * ** * ******************************************************************************/ #ifndef BTA_DM_DISABLE_CONN_DOWN_TIMER_MS #define BTA_DM_DISABLE_CONN_DOWN_TIMER_MS 500 #endif /** M: Bug fix for IOT device a2dp signal response too slowly @{ */ #ifndef BTA_AV_SIG_TOUT #define BTA_AV_SIG_TOUT 7 #endif /** @} */ #ifndef MTK_A2DP_SRC_SINK_BOTH #define MTK_A2DP_SRC_SINK_BOTH TRUE #endif #define BTA_AV_SINK_INCLUDED TRUE #ifndef BT_TUNNEL_SUPPORT #define BT_TUNNEL_SUPPORT TRUE #endif #if defined(MTK_A2DP_SRC_SINK_BOTH) && (MTK_A2DP_SRC_SINK_BOTH == TRUE) extern bool isSupportMtkA2DPSrcSinkBoth(void); #endif extern bool isMtkBtConsumerFeature(void); extern bool isFwLogSwitchEnable(void); #if defined(BT_TUNNEL_SUPPORT) && (BT_TUNNEL_SUPPORT == TRUE) extern bool isEnableMtkA2DPTunnel(void); #endif /*dual A2DP feature main switch*/ #ifndef MTK_DUAL_AUDIO #define MTK_DUAL_AUDIO FALSE #endif #if defined(MTK_DUAL_AUDIO) && (MTK_DUAL_AUDIO == TRUE) //#include "dual_audio_main.h" #define A2DP_SBC_MAX_FRAME_NUM 40 #define MTK_DUAL_AUDIO_QUEUE_NUM 2 #define DUMP_LEFT_RIGHT_CHANNEL_DATA FALSE //switch for dump parse left right channel data typedef enum { /*AOSP flow(only one active)*/ BT_A2DP_DUAL_MODE_NORMAL_TYPE = 0, /*two sink play same audio*/ BT_A2DP_DUAL_MODE_SAME_AUDIO_TYPE, /*two sink play Left Right channel audio*/ BT_A2DP_DUAL_MODE_LR_CHANNEL_TYPE, } bt_a2dp_dual_mode_type_t; typedef enum { /*AOSP flow(only one active can controller play/pause)*/ BT_AVRCP_ACTIVE_CONTROL_TYPE = 0, /*two sink all can control audio play/pause*/ BT_AVRCP_MULTI_CONTROL_TYPE, } bt_avrcp_control_mode_type_t; #ifdef __cplusplus extern "C" { #endif extern bool btif_a2dp_support_dual_mode(void); extern bool btif_a2dp_audio_state_start(void); extern bool isEnableMtkDualAudio(void); #ifdef __cplusplus } #endif bt_avrcp_control_mode_type_t getAvrcpControlType(void); #endif //MTK_DUAL_AUDIO /** M: Bug fix for EIR being flushed by too much adv @{ */ #ifndef BTM_INQ_DB_SIZE #define BTM_INQ_DB_SIZE 80 #endif /** @} */