215 lines
6.7 KiB
C
215 lines
6.7 KiB
C
/* 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 <stdbool.h>
|
|
# 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
|
|
/** @} */
|
|
|