1375 lines
53 KiB
C
1375 lines
53 KiB
C
/***************************************************************************
|
|
*
|
|
* Copyright 2015-2019 BES.
|
|
* All rights reserved. All unpublished rights reserved.
|
|
*
|
|
* No part of this work may be used or reproduced in any form or by any
|
|
* means, or stored in a database or retrieval system, without prior written
|
|
* permission of BES.
|
|
*
|
|
* Use of this work is governed by a license granted by BES.
|
|
* This work contains confidential and proprietary information of
|
|
* BES. which is protected by copyright, trade secret,
|
|
* trademark and other intellectual property rights.
|
|
*
|
|
****************************************************************************/
|
|
|
|
#ifndef __ME_API__H__
|
|
#define __ME_API__H__
|
|
|
|
#include "bluetooth.h"
|
|
|
|
typedef uint8_t btif_event_type_t;
|
|
|
|
#if defined(BTIF_HCI_HOST_FLOW_CONTROL) && defined (__IAG_BLE_INCLUDE__)
|
|
#define BTIF_BTEVENT_CONNECT_CPMPLETE 1
|
|
#endif /* */
|
|
|
|
#define BTIF_BTEVENT_INQUIRY_RESULT 1
|
|
|
|
#define BTIF_BTEVENT_INQUIRY_COMPLETE 2
|
|
|
|
#define BTIF_BTEVENT_INQUIRY_CANCELED 3
|
|
|
|
#define BTIF_BTEVENT_LINK_CONNECT_IND 4
|
|
|
|
#define BTIF_BTEVENT_SCO_CONNECT_IND 5
|
|
|
|
#define BTIF_BTEVENT_LINK_DISCONNECT 6
|
|
|
|
#define BTIF_BTEVENT_LINK_CONNECT_CNF 7
|
|
|
|
#define BTIF_BTEVENT_LINK_CON_RESTRICT 8
|
|
|
|
#define BTIF_BTEVENT_MODE_CHANGE 9
|
|
|
|
#define BTIF_BTEVENT_ACCESSIBLE_CHANGE 10
|
|
|
|
#define BTIF_BTEVENT_AUTHENTICATED 11
|
|
|
|
#define BTIF_BTEVENT_ENCRYPTION_CHANGE 12
|
|
|
|
#define BTIF_BTEVENT_SECURITY_CHANGE 13
|
|
|
|
#define BTIF_BTEVENT_ROLE_CHANGE 14
|
|
|
|
#define BTIF_BTEVENT_SCO_DISCONNECT 15
|
|
|
|
#define BTIF_BTEVENT_SCO_CONNECT_CNF 16
|
|
|
|
#define BTIF_BTEVENT_SIMPLE_PAIRING_COMPLETE 17
|
|
|
|
#define BTIF_BTEVENT_REMOTE_FEATURES 18
|
|
|
|
#define BTIF_BTEVENT_REM_HOST_FEATURES 19
|
|
|
|
#define BTIF_BTEVENT_LINK_SUPERV_TIMEOUT_CHANGED 20
|
|
|
|
#define BTIF_BTEVENT_SET_SNIFF_SUBRATING_PARMS_CNF 21
|
|
|
|
#define BTIF_BTEVENT_SNIFF_SUBRATE_INFO 22
|
|
|
|
#define BTIF_BTEVENT_SET_INQUIRY_MODE_CNF 23
|
|
|
|
#define BTIF_BTEVENT_SET_INQ_TX_PWR_LVL_CNF 24
|
|
|
|
#define BTIF_BTEVENT_SET_EXT_INQUIRY_RESP_CNF 25
|
|
|
|
#define BTIF_BTEVENT_SET_ERR_DATA_REPORTING_CNF 26
|
|
|
|
#define BTIF_BTEVENT_KEY_PRESSED 27
|
|
|
|
#define BTIF_BTEVENT_QOS_SETUP_COMPLETE 28
|
|
|
|
#ifdef __TWS_RECONNECT_USE_BLE__
|
|
#define BTIF_BTEVENT_TWS_BLE_ADV_REPORT_EVENT 29
|
|
#endif /* */
|
|
|
|
/** an ACL connection has received an internal data transmit
|
|
* request while it is in hold, park or sniff mode. The data will still be
|
|
* passed to the radio in park and sniff modes. However, hold mode will
|
|
* block data transmit. It may be necessary to return the ACL to active
|
|
* mode to restore normal data transfer.
|
|
*/
|
|
#define BTIF_BTEVENT_ACL_DATA_NOT_ACTIVE 99
|
|
|
|
/*
|
|
Indicate that an ACL connection is sending or receiving data
|
|
while it is in active mode. Then, keep resetting the sniff timer.
|
|
*/
|
|
#define BTIF_BTEVENT_ACL_DATA_ACTIVE 98
|
|
/** Indicates that the HCI failed to initialize.
|
|
*/
|
|
#define BTIF_BTEVENT_HCI_INIT_ERROR 100
|
|
|
|
#define BTIF_BTEVENT_HCI_INITIALIZED 101
|
|
/** Indicates that a fatal error has occurred in the radio or the HCI transport.
|
|
*/
|
|
#define BTIF_BTEVENT_HCI_FATAL_ERROR 102
|
|
|
|
/** Indicates that the HCI has been deinitialized.
|
|
*/
|
|
#define BTIF_BTEVENT_HCI_DEINITIALIZED 103
|
|
|
|
/** Indicates that the HCI cannot be initialized.
|
|
*/
|
|
#define BTIF_BTEVENT_HCI_FAILED 104
|
|
|
|
#define BTIF_BTEVENT_HCI_COMMAND_SENT 105
|
|
|
|
/** Indicates the name of a remote device or cancellation of a name request.
|
|
*/
|
|
#define BTIF_BTEVENT_NAME_RESULT 30
|
|
|
|
#define BTIF_BTEVENT_SCO_DATA_IND 31
|
|
|
|
/** Outgoing SCO data has been sent and the packet is free for re-use by
|
|
* the application.
|
|
*/
|
|
#define BTIF_BTEVENT_SCO_DATA_CNF 32
|
|
|
|
#define BTIF_BTEVENT_LINK_CONNECT_REQ 33
|
|
|
|
/** Incoming link accept complete. */
|
|
#define BTIF_BTEVENT_LINK_ACCEPT_RSP 34
|
|
|
|
/** Incoming link reject complete. . */
|
|
#define BTEVENT_LINK_REJECT_RSP 35
|
|
|
|
#define BTIF_BTEVENT_COMMAND_COMPLETE 36
|
|
|
|
#define BTIF_BTEVENT_SCO_CONNECT_REQ 37
|
|
|
|
/** Set Audio/Voice settings complete. */
|
|
#define BTIF_BTEVENT_SCO_VSET_COMPLETE 38
|
|
|
|
/** SCO link connection process started. */
|
|
#define BTIF_BTEVENT_SCO_STARTED 39
|
|
|
|
/** Select Device operation complete, "p.select" is valid. */
|
|
#define BTIF_BTEVENT_DEVICE_SELECTED 40
|
|
|
|
/** The eSCO connection has changed. "p.scoConnect" is valid.
|
|
*/
|
|
#define BTIF_BTEVENT_SCO_CONN_CHNG 41
|
|
|
|
/* Group: Security-related events. */
|
|
|
|
/** Indicates access request is successful. "p.secToken" is valid. */
|
|
#define BTIF_BTEVENT_ACCESS_APPROVED 50
|
|
|
|
/** Indicates access request failed. "p.secToken" is valid. */
|
|
#define BTIF_BTEVENT_ACCESS_DENIED 51
|
|
|
|
/** Request authorization when "errCode" is BEC_NO_ERROR.
|
|
* "p.remDev" is valid.
|
|
*/
|
|
#define BTIF_BTEVENT_AUTHORIZATION_REQ 52
|
|
|
|
/** Request a Pin for pairing when "errCode" is BEC_NO_ERROR.
|
|
* "p.pinReq" is valid. If p.pinReq.pinLen is > 0 then SEC_SetPin()
|
|
* must be called in response to this event with a pin length >=
|
|
* p.pinReq.pinLen.
|
|
*/
|
|
#define BTIF_BTEVENT_PIN_REQ 53
|
|
|
|
/** Pairing operation is complete.
|
|
*/
|
|
#define BTIF_BTEVENT_PAIRING_COMPLETE 54
|
|
|
|
/** Authentication operation complete. "p.remDev" is valid. */
|
|
#define BTIF_BTEVENT_AUTHENTICATE_CNF 55
|
|
|
|
/** Encryption operation complete. "p.remDev" is valid. */
|
|
#define BTIF_BTEVENT_ENCRYPT_COMPLETE 56
|
|
|
|
/** Security mode 3 operation complete. "p.secMode" is valid. */
|
|
#define BTIF_BTIF_BTEVENT_SECURITY3_COMPLETE 57
|
|
|
|
/** A link key is returned. "p.bdLinkKey" is valid. */
|
|
#define BTIF_BTEVENT_RETURN_LINK_KEYS 58
|
|
|
|
/** Out of Band data has been received from the host controller. */
|
|
#define BTIF_BTEVENT_LOCAL_OOB_DATA 59
|
|
|
|
/** Request a Pass Key for simple pairing when "errCode" is BEC_NO_ERROR. The
|
|
* application should call SEC_SetPassKey() to provide the passkey or reject
|
|
* the request, and optionally save the link key.
|
|
*/
|
|
#define BTIF_BTEVENT_PASS_KEY_REQ 60
|
|
|
|
/** Request a User Confirmation for simple pairing when "errCode" is
|
|
* BEC_NO_ERROR.
|
|
*/
|
|
#define BTIF_BTEVENT_CONFIRM_NUMERIC_REQ 61
|
|
|
|
#define BTIF_BTEVENT_DISPLAY_NUMERIC_IND 62
|
|
|
|
#define BTIF_BTEVENT_CONN_PACKET_TYPE_CHNG 63
|
|
|
|
#define BTIF_SDEVENT_QUERY_RSP 70
|
|
|
|
#define BTIF_SDEVENT_QUERY_ERR 71
|
|
|
|
#define BTIF_SDEVENT_QUERY_FAILED 72
|
|
|
|
#define BTIF_BTEVENT_SELECT_DEVICE_REQ 80
|
|
|
|
#define BTIF_BTEVENT_DEVICE_ADDED 81
|
|
|
|
#define BTIF_BTEVENT_DEVICE_DELETED 82
|
|
|
|
#define BTIF_BTEVENT_MAX_SLOT_CHANGED 83
|
|
|
|
#define BTIF_BTEVENT_SNIFFER_CONTROL_DONE 84
|
|
|
|
#define BTIF_BTEVENT_LINK_POLICY_CHANGED 85
|
|
|
|
#define BTIF_BTEVENT_DEFAULT_LINK_POLICY_CHANGED 86
|
|
|
|
#define BTIF_BTEVENT_BES_AUD_CONNECTED 200
|
|
|
|
#define BTIF_BTEVENT_BES_AUD_DISCONNECTED 201
|
|
|
|
#define BTIF_STACK_LINK_DISCONNECT_COMPLETE 220
|
|
|
|
typedef uint32_t btif_event_mask_t;
|
|
|
|
#define BTIF_BEM_NO_EVENTS 0x00000000
|
|
#define BTIF_BEM_INQUIRY_RESULT 0x00000001
|
|
#define BTIF_BEM_INQUIRY_COMPLETE 0x00000002
|
|
#define BTIF_BEM_INQUIRY_CANCELED 0x00000004
|
|
#define BTIF_BEM_LINK_CONNECT_IND 0x00000008
|
|
#define BTIF_BEM_SCO_CONNECT_IND 0x00000010
|
|
#define BTIF_BEM_LINK_DISCONNECT 0x00000020
|
|
#define BTIF_BEM_LINK_CONNECT_CNF 0x00000040
|
|
#define BTIF_BEM_LINK_CON_RESTRICT 0x00000080
|
|
#define BTIF_BEM_MODE_CHANGE 0x00000100
|
|
#define BTIF_BEM_ACCESSIBLE_CHANGE 0x00000200
|
|
#define BTIF_BEM_AUTHENTICATED 0x00000400
|
|
#define BTIF_BEM_ENCRYPTION_CHANGE 0x00000800
|
|
#define BTIF_BEM_SECURITY_CHANGE 0x00001000
|
|
#define BTIF_BEM_ROLE_CHANGE 0x00002000
|
|
#define BTIF_BEM_SCO_DISCONNECT 0x00004000
|
|
#define BTIF_BEM_SCO_CONNECT_CNF 0x00008000
|
|
#define BTIF_BEM_SIMPLE_PAIRING_COMPLETE 0x00010000
|
|
#define BTIF_BEM_REMOTE_FEATURES 0x00020000
|
|
#define BTIF_BEM_REM_HOST_FEATURES 0x00040000
|
|
#define BTIF_BEM_LINK_SUPERV_TIMEOUT_CHANGED 0x00080000
|
|
#define BTIF_BEM_SET_SNIFF_SUBR_PARMS 0x00100000
|
|
#define BTIF_BEM_SNIFF_SUBRATE_INFO 0x00200000
|
|
#define BTIF_BEM_SET_INQ_MODE 0x00400000
|
|
#define BTIF_BEM_SET_INQ_RSP_TX_PWR 0x00800000
|
|
#define BTIF_BEM_SET_EXT_INQ_RESP 0x01000000
|
|
#define BTIF_BEM_SET_ERR_DATA_REP 0x02000000
|
|
#define BTIF_BEM_KEY_PRESSED 0x04000000
|
|
#define BTIF_BEM_CONN_PACKET_TYPE_CHNG 0x08000000
|
|
#define BTIF_BEM_QOS_SETUP_COMPLETE 0x10000000
|
|
#define BTIF_BEM_MAX_SLOT_CHANGED 0x20000000
|
|
#define BTIF_BEM_SNIFFER_CONTROL_DONE 0x40000000
|
|
#define BTIF_BEM_LINK_POLICY_CHANGED 0x80000000
|
|
#define BTIF_BEM_ALL_EVENTS 0xffffffff
|
|
|
|
typedef uint8_t btif_error_code_t;
|
|
|
|
#define BTIF_BEC_NO_ERROR 0x00
|
|
#define BTIF_BEC_UNKNOWN_HCI_CMD 0x01
|
|
#define BTIF_BEC_NO_CONNECTION 0x02
|
|
#define BTIF_BEC_HARDWARE_FAILURE 0x03
|
|
#define BTIF_BEC_PAGE_TIMEOUT 0x04
|
|
#define BTIF_BEC_AUTHENTICATE_FAILURE 0x05
|
|
#define BTIF_BEC_MISSING_KEY 0x06
|
|
#define BTIF_BEC_MEMORY_FULL 0x07
|
|
#define BTIF_BEC_CONNECTION_TIMEOUT 0x08
|
|
#define BTIF_BEC_MAX_CONNECTIONS 0x09
|
|
#define BTIF_BEC_MAX_SCO_CONNECTIONS 0x0a
|
|
#define BTIF_BEC_ACL_ALREADY_EXISTS 0x0b
|
|
#define BTIF_BEC_COMMAND_DISALLOWED 0x0c
|
|
#define BTIF_BEC_LIMITED_RESOURCE 0x0d
|
|
#define BTIF_BEC_SECURITY_ERROR 0x0e
|
|
#define BTIF_BEC_PERSONAL_DEVICE 0x0f
|
|
#define BTIF_BEC_HOST_TIMEOUT 0x10
|
|
#define BTIF_BEC_UNSUPPORTED_FEATURE 0x11
|
|
#define BTIF_BEC_INVALID_HCI_PARM 0x12
|
|
#define BTIF_BEC_USER_TERMINATED 0x13
|
|
#define BTIF_BEC_LOW_RESOURCES 0x14
|
|
#define BTIF_BEC_POWER_OFF 0x15
|
|
#define BTIF_BEC_LOCAL_TERMINATED 0x16
|
|
#define BTIF_BEC_REPEATED_ATTEMPTS 0x17
|
|
#define BTIF_BEC_PAIRING_NOT_ALLOWED 0x18
|
|
#define BTIF_BEC_UNKNOWN_LMP_PDU 0x19
|
|
#define BTIF_BEC_UNSUPPORTED_REMOTE 0x1a
|
|
#define BTIF_BEC_SCO_OFFSET_REJECT 0x1b
|
|
#define BTIF_BEC_SCO_INTERVAL_REJECT 0x1c
|
|
#define BTIF_BEC_SCO_AIR_MODE_REJECT 0x1d
|
|
#define BTIF_BEC_INVALID_LMP_PARM 0x1e
|
|
#define BTIF_BEC_UNSPECIFIED_ERR 0x1f
|
|
#define BTIF_BEC_UNSUPPORTED_LMP_PARM 0x20
|
|
#define BTIF_BEC_ROLE_CHG_NOT_ALLOWED 0x21
|
|
#define BTIF_BEC_LMP_RESPONSE_TIMEOUT 0x22
|
|
#define BTIF_BEC_LMP_TRANS_COLLISION 0x23
|
|
#define BTIF_BEC_LMP_PDU_NOT_ALLOWED 0x24
|
|
#define BTIF_BEC_ENCRYP_MODE_NOT_ACC 0x25
|
|
#define BTIF_BEC_UNIT_KEY_USED 0x26
|
|
#define BTIF_BEC_QOS_NOT_SUPPORTED 0x27
|
|
#define BTIF_BEC_INSTANT_PASSED 0x28
|
|
#define BTIF_BEC_PAIR_UNITKEY_NO_SUPP 0x29
|
|
#define BTIF_BEC_NOT_FOUND 0xf1
|
|
#define BTIF_BEC_REQUEST_CANCELLED 0xf2
|
|
|
|
#define BTIF_BEC_INVALID_SDP_PDU 0xd1
|
|
#define BTIF_BEC_SDP_DISCONNECT 0xd2
|
|
#define BTIF_BEC_SDP_NO_RESOURCES 0xd3
|
|
#define BTIF_BEC_SDP_INTERNAL_ERR 0xd4
|
|
|
|
#define BTIF_BEC_STORE_LINK_KEY_ERR 0xe0
|
|
|
|
typedef uint32_t btif_iac_t;
|
|
|
|
#define BTIF_BT_IAC_GIAC 0x9E8B33 /* General/Unlimited Inquiry Access Code */
|
|
#define BTIF_BT_IAC_LIAC 0x9E8B00 /* Limited Dedicated Inquiry Access Code */
|
|
|
|
typedef uint8_t btif_link_type_t;
|
|
|
|
#define BTIF_BLT_SCO 0x00
|
|
#define BTIF_BLT_ACL 0x01
|
|
#define BTIF_BLT_ESCO 0x02
|
|
|
|
typedef U16 btif_acl_packet;
|
|
|
|
#define BTIF_BAPT_NO_2_DH1 0x0002
|
|
#define BTIF_BAPT_NO_3_DH1 0x0004
|
|
#define BTIF_BAPT_DM1 0x0008
|
|
#define BTIF_BAPT_DH1 0x0010
|
|
#define BTIF_BAPT_NO_2_DH3 0x0100
|
|
#define BTIF_BAPT_NO_3_DH3 0x0200
|
|
#define BTIF_BAPT_DM3 0x0400
|
|
#define BTIF_BAPT_DH3 0x0800
|
|
#define BTIF_BAPT_NO_2_DH5 0x1000
|
|
#define BTIF_BAPT_NO_3_DH5 0x2000
|
|
#define BTIF_BAPT_DM5 0x4000
|
|
#define BTIF_BAPT_DH5 0x8000
|
|
|
|
#define BTIF_2M_PACKET (BTIF_BAPT_DM1|BTIF_BAPT_DH1|BTIF_BAPT_NO_3_DH1|BTIF_BAPT_NO_3_DH3|BTIF_BAPT_DM3|BTIF_BAPT_DH3|BTIF_BAPT_NO_3_DH5)
|
|
#define BTIF_3M_PACKET (BTIF_BAPT_DM1|BTIF_BAPT_DH1|BTIF_BAPT_DM3|BTIF_BAPT_DH3|BTIF_BAPT_DM5|BTIF_BAPT_DH5)
|
|
#define BTIF_1_SLOT_PACKET (BTIF_BAPT_DM1|BTIF_BAPT_DH1|BTIF_BAPT_NO_3_DH1|BTIF_BAPT_NO_2_DH3|BTIF_BAPT_NO_3_DH3|BTIF_BAPT_NO_2_DH5|BTIF_BAPT_NO_3_DH5)
|
|
#define BTIF_3_SLOT_PACKET (BTIF_BAPT_DM1|BTIF_BAPT_NO_3_DH3|BTIF_BAPT_NO_2_DH5|BTIF_BAPT_NO_3_DH5)
|
|
|
|
typedef uint16_t btif_link_policy_t;
|
|
|
|
#define BTIF_BLP_DISABLE_ALL 0x0000
|
|
#define BTIF_BLP_MASTER_SLAVE_SWITCH 0x0001
|
|
#define BTIF_BLP_HOLD_MODE 0x0002
|
|
#define BTIF_BLP_SNIFF_MODE 0x0004
|
|
#define BTIF_BLP_PARK_MODE 0x0008
|
|
#define BTIF_BLP_SCATTER_MODE 0x0010
|
|
|
|
/* Mask must be updated if new policy values are added */
|
|
#define BLP_MASK 0xfff0 /* Disables ScatterNet bit */
|
|
#define BLP_SCATTER_MASK 0xffe0 /* Enables ScatterNet bit */
|
|
|
|
typedef uint8_t btif_accessible_mode_t;
|
|
|
|
#define BTIF_BAM_NOT_ACCESSIBLE 0x00 /* Non-discoverable or connectable */
|
|
#define BTIF_BAM_GENERAL_ACCESSIBLE 0x03 /* General discoverable and connectable */
|
|
#define BTIF_BAM_LIMITED_ACCESSIBLE 0x13 /* Limited discoverable and connectable */
|
|
#define BTIF_BAM_CONNECTABLE_ONLY 0x02 /* Connectable but not discoverable */
|
|
#define BTIF_BAM_DISCOVERABLE_ONLY 0x01 /* Discoverable but not connectable */
|
|
#define BTIF_BT_DEFAULT_ACCESS_MODE_PAIR BTIF_BAM_GENERAL_ACCESSIBLE
|
|
#define BTIF_BAM_INVALID_ACCESS_MODE 0xFF
|
|
|
|
/* End of BtAccessibleMode */
|
|
|
|
typedef uint8_t btif_oob_data_present_t;
|
|
|
|
#define BTIF_OOB_DATA_NOT_PRESENT 0 /* No Out of Band Data is present */
|
|
#define BTIF_OOB_DATA_PRESENT 1 /* Out of Band Data is present */
|
|
|
|
typedef uint8_t btif_auth_requirements_t;
|
|
|
|
#define BTIF_MITM_PROTECT_NOT_REQUIRED 0x00 /* No Man in the Middle protection */
|
|
#define BTIF_MITM_PROTECT_REQUIRED 0x01 /* Man in the Middle protection req */
|
|
|
|
typedef uint8_t btif_link_mode_t;
|
|
|
|
#define BTIF_BLM_ACTIVE_MODE 0x00
|
|
#define BTIF_BLM_HOLD_MODE 0x01
|
|
#define BTIF_BLM_SNIFF_MODE 0x02
|
|
#define BTIF_BLM_PARK_MODE 0x03
|
|
#define BTIF_BLM_SCATTER_MODE 0x04
|
|
|
|
typedef uint8_t btif_link_key_type_t;
|
|
|
|
#define BTIF_COMBINATION_KEY 0x00
|
|
#define BTIF_LOCAL_UNIT_KEY 0x01
|
|
#define BTIF_REMOTE_UNIT_KEY 0x02
|
|
#define BTIF_DEBUG_COMBINATION_KEY 0x03
|
|
#define BTIF_UNAUTH_COMBINATION_KEY 0x04
|
|
#define BTIF_AUTH_COMBINATION_KEY 0x05
|
|
#define BTIF_CHANGED_COMBINATION_KEY 0x06
|
|
#define BTIF_IBRT_STORE_ADDR_ONLY 0x07
|
|
|
|
typedef uint8_t btif_connection_role_t;
|
|
|
|
#define BTIF_BCR_MASTER 0x00
|
|
#define BTIF_BCR_SLAVE 0x01
|
|
#define BTIF_BCR_ANY 0x02
|
|
#define BTIF_BCR_UNKNOWN 0x03
|
|
#define BTIF_BCR_PSLAVE 0x04
|
|
#define BTIF_BCR_PMASTER 0x05
|
|
|
|
typedef uint8_t btif_stack_state_t;
|
|
|
|
typedef enum {
|
|
HCI_CMD_COMPLETE_USER_IBRT_CMD = 0,
|
|
HCI_CMD_COMPLETE_USER_BLE = 1,
|
|
HCI_CMD_COMPLETE_USER_RESEVER_1 = 2,
|
|
HCI_CMD_COMPLETE_USER_RESEVER_2 = 3,
|
|
HCI_CMD_COMPLETE_USER_RESEVER_3 = 4,
|
|
HCI_CMD_COMPLETE_USER_RESEVER_4 = 5,
|
|
|
|
HCI_CMD_COMPLETE_USER_NUM,
|
|
}HCI_CMD_COMPLETE_USER_E;
|
|
|
|
/* The stack has completed initialization of the radio hardware. */
|
|
#define BTIF_BTSS_NOT_INITIALIZED 0
|
|
|
|
/* The stack is initialized. */
|
|
#define BTIF_BTSS_INITIALIZED 1
|
|
|
|
/* The stack has encountered an error while initializing the radio hardware. */
|
|
#define BTIF_BTSS_INITIALIZE_ERR 2
|
|
|
|
/* The stack is deinitializing. */
|
|
#define BTIF_BTSS_DEINITIALIZE 3
|
|
|
|
/* End of BtStackState */
|
|
typedef void btif_remote_device_t;
|
|
|
|
|
|
typedef void btif_BtDeviceContext;
|
|
|
|
|
|
/* Forward declaration of the callback parameters */
|
|
typedef void btif_event_t;
|
|
|
|
typedef void (*btif_callback) (const void *);
|
|
typedef void (*ibrt_cmd_status_callback)(const uint8_t *para);
|
|
typedef void (*ibrt_cmd_complete_callback)(const uint8_t *para);
|
|
typedef uint8_t (*btif_callback_ext) (const void *);
|
|
typedef uint8_t (*btif_callback_ext2) (void);
|
|
typedef void (*btif_callback_ext3) (void);
|
|
|
|
typedef uint8_t btif_inquiry_mode_t;
|
|
|
|
#define BTIF_INQ_MODE_NORMAL 0 /* Normal Inquiry Response format */
|
|
#define BTIF_INQ_MODE_RSSI 1 /* RSSI Inquiry Response format */
|
|
#define BTIF_INQ_INVALID_RSSI 127 /* RSSI Inquiry Response format */
|
|
#define BTIF_INQ_MODE_EXTENDED 2 /* Extended or RSSI Inquiry Response format */
|
|
|
|
typedef uint8_t btif_rem_dev_state_t;
|
|
|
|
#define BTIF_BDS_DISCONNECTED 0x00
|
|
#define BTIF_BDS_OUT_CON 0x01 /* Starting an out going connection */
|
|
#define BTIF_BDS_IN_CON 0x02 /* In process of incoming connection */
|
|
#define BTIF_BDS_CONNECTED 0x03 /* Connected */
|
|
#define BTIF_BDS_OUT_DISC 0x04 /* Starting an out going disconnect */
|
|
#define BTIF_BDS_OUT_DISC2 0x05 /* Disconnect status received */
|
|
#define BTIF_BDS_OUT_CON2 0x06 /* In SCO, used when connection request has
|
|
been sent */
|
|
|
|
typedef uint8_t btif_eir_data_type_t;
|
|
|
|
#define BTIF_EIR_FLAGS 0x01
|
|
#define BTIF_EIR_SRV_CLASS_16_PART 0x02
|
|
#define BTIF_EIR_SRV_CLASS_16_WHOLE 0x03
|
|
#define BTIF_EIR_SRV_CLASS_32_PART 0x04
|
|
#define BTIF_EIR_SRV_CLASS_32_WHOLE 0x05
|
|
#define BTIF_EIR_SRV_CLASS_128_PART 0x06
|
|
#define BTIF_EIR_SRV_CLASS_128_WHOLE 0x07
|
|
#define BTIF_EIR_REM_NAME_PART 0x08
|
|
#define BTIF_EIR_REM_NAME_WHOLE 0x09
|
|
#define BTIF_EIR_TX_POWER 0x0A
|
|
#define BTIF_EIR_MAN_SPECIFIC 0xFF
|
|
|
|
#define BTIF_BR_USE_FEC (0<<0)
|
|
#define BTIF_BR_NOT_USE_FEC (1<<0)
|
|
#define BTIF_BR_NO_PKT_PRFER_AVALB (0<<1)
|
|
#define BTIF_BR_USE_1_SLOT_PKT (1<<1)
|
|
#define BTIF_BR_USE_3_SLOT_PKT (2<<1)
|
|
#define BTIF_BR_USE_5_SLOT_PKT (3<<1)
|
|
#define BTIF_EDR_USE_DM1_PKT (0<<3)
|
|
#define BTIF_EDR_USE_2MB_PKT (1<<3)
|
|
#define BTIF_EDR_USE_3MB_PKT (2<<3)
|
|
#define BTIF_EDR_NO_PKT_PRFER_AVALB (0<<5)
|
|
#define BTIF_EDR_USE_1_SLOT_PTK (1<<5)
|
|
#define BTIF_EDR_USE_3_SLOT_PTK (2<<5)
|
|
#define BTIF_EDR_USE_5_SLOT_PTK (3<<5)
|
|
|
|
#define CONN_AUTO_ACCEPT_DISABLE 0x01
|
|
|
|
#define CONN_AUTO_ACCEPT_ENABLE_WITH_MSS_DISABLE 0x02
|
|
|
|
#define CONN_AUTO_ACCEPT_ENABLE_WITH_MSS_ENABLE 0x03
|
|
/*---------------------------------------------------------------------------
|
|
* btif_class_of_device_t type
|
|
*
|
|
* Bit pattern representing the class of device along with the
|
|
* supported services. There can be more than one supported service.
|
|
* Service classes can be ORed together. The Device Class is composed
|
|
* of a major device class plus a minor device class. ORing together
|
|
* each service class plus one major device class plus one minor device
|
|
* class creates the class of device value. The minor device class is
|
|
* interpreted in the context of the major device class.
|
|
*/
|
|
|
|
typedef uint32_t btif_class_of_device_t;
|
|
|
|
/* Group: Major Service Classes. Can be ORed together */
|
|
#define BTIF_COD_LIMITED_DISCOVERABLE_MODE 0x00002000
|
|
#define BTIF_COD_POSITIONING 0x00010000
|
|
#define BTIF_COD_NETWORKING 0x00020000
|
|
#define BTIF_COD_RENDERING 0x00040000
|
|
#define BTIF_COD_CAPTURING 0x00080000
|
|
#define BTIF_COD_OBJECT_TRANSFER 0x00100000
|
|
#define BTIF_COD_AUDIO 0x00200000
|
|
#define BTIF_COD_TELEPHONY 0x00400000
|
|
#define BTIF_COD_INFORMATION 0x00800000
|
|
|
|
/* Group: Major Device Classes (Select one) */
|
|
#define BTIF_COD_MAJOR_MISCELLANEOUS 0x00000000
|
|
#define BTIF_COD_MAJOR_COMPUTER 0x00000100
|
|
#define BTIF_COD_MAJOR_PHONE 0x00000200
|
|
#define BTIF_COD_MAJOR_LAN_ACCESS_POINT 0x00000300
|
|
#define BTIF_COD_MAJOR_AUDIO 0x00000400
|
|
#define BTIF_COD_MAJOR_PERIPHERAL 0x00000500
|
|
#define BTIF_COD_MAJOR_IMAGING 0x00000600
|
|
#define BTIF_COD_MAJOR_UNCLASSIFIED 0x00001F00
|
|
|
|
/* Group: Minor Device Class - Computer Major class */
|
|
#define BTIF_COD_MINOR_COMP_UNCLASSIFIED 0x00000000
|
|
#define BTIF_COD_MINOR_COMP_DESKTOP 0x00000004
|
|
#define BTIF_COD_MINOR_COMP_SERVER 0x00000008
|
|
#define BTIF_COD_MINOR_COMP_LAPTOP 0x0000000C
|
|
#define BTIF_COD_MINOR_COMP_HANDHELD 0x00000010
|
|
#define BTIF_COD_MINOR_COMP_PALM 0x00000014
|
|
#define BTIF_COD_MINOR_COMP_WEARABLE 0x00000018
|
|
|
|
/* Group: Minor Device Class - Phone Major class */
|
|
#define BTIF_COD_MINOR_PHONE_UNCLASSIFIED 0x00000000
|
|
#define BTIF_COD_MINOR_PHONE_CELLULAR 0x00000004
|
|
#define BTIF_COD_MINOR_PHONE_CORDLESS 0x00000008
|
|
#define BTIF_COD_MINOR_PHONE_SMART 0x0000000C
|
|
#define BTIF_COD_MINOR_PHONE_MODEM 0x00000010
|
|
#define BTIF_COD_MINOR_PHONE_ISDN 0x00000014
|
|
|
|
/* Group: Minor Device Class - LAN Access Point Major class */
|
|
#define BTIF_COD_MINOR_LAN_0 0x00000000 /* fully available */
|
|
#define BTIF_COD_MINOR_LAN_17 0x00000020 /* 1-17% utilized */
|
|
#define BTIF_COD_MINOR_LAN_33 0x00000040 /* 17-33% utilized */
|
|
#define BTIF_COD_MINOR_LAN_50 0x00000060 /* 33-50% utilized */
|
|
#define BTIF_COD_MINOR_LAN_67 0x00000080 /* 50-67% utilized */
|
|
#define BTIF_COD_MINOR_LAN_83 0x000000A0 /* 67-83% utilized */
|
|
#define BTIF_COD_MINOR_LAN_99 0x000000C0 /* 83-99% utilized */
|
|
#define BTIF_COD_MINOR_LAN_NO_SERVICE 0x000000E0 /* 100% utilized */
|
|
|
|
/* Group: Minor Device Class - Audio Major class */
|
|
#define BTIF_COD_MINOR_AUDIO_UNCLASSIFIED 0x00000000
|
|
#define BTIF_COD_MINOR_AUDIO_HEADSET 0x00000004
|
|
#define BTIF_COD_MINOR_AUDIO_HANDSFREE 0x00000008
|
|
#define BTIF_COD_MINOR_AUDIO_MICROPHONE 0x00000010
|
|
#define BTIF_COD_MINOR_AUDIO_LOUDSPEAKER 0x00000014
|
|
#define BTIF_COD_MINOR_AUDIO_HEADPHONES 0x00000018
|
|
#define BTIF_COD_MINOR_AUDIO_PORTABLEAUDIO 0x0000001C
|
|
#define BTIF_COD_MINOR_AUDIO_CARAUDIO 0x00000020
|
|
#define BTIF_COD_MINOR_AUDIO_SETTOPBOX 0x00000024
|
|
#define BTIF_COD_MINOR_AUDIO_HIFIAUDIO 0x00000028
|
|
#define BTIF_COD_MINOR_AUDIO_VCR 0x0000002C
|
|
#define BTIF_COD_MINOR_AUDIO_VIDEOCAMERA 0x00000030
|
|
#define BTIF_COD_MINOR_AUDIO_CAMCORDER 0x00000034
|
|
#define BTIF_COD_MINOR_AUDIO_VIDEOMONITOR 0x00000038
|
|
#define BTIF_COD_MINOR_AUDIO_VIDEOSPEAKER 0x0000003C
|
|
#define BTIF_COD_MINOR_AUDIO_CONFERENCING 0x00000040
|
|
#define BTIF_COD_MINOR_AUDIO_GAMING 0x00000048
|
|
|
|
/* Group: Minor Device Class - Peripheral Major class */
|
|
#define BTIF_COD_MINOR_PERIPH_KEYBOARD 0x00000040
|
|
#define BTIF_COD_MINOR_PERIPH_POINTING 0x00000080
|
|
#define BTIF_COD_MINOR_PERIPH_COMBOKEY 0x000000C0
|
|
/* Group: Minor Device Class - ORed with Peripheral Minor Device class */
|
|
#define BTIF_COD_MINOR_PERIPH_UNCLASSIFIED 0x00000000
|
|
#define BTIF_COD_MINOR_PERIPH_JOYSTICK 0x00000004
|
|
#define BTIF_COD_MINOR_PERIPH_GAMEPAD 0x00000008
|
|
#define BTIF_COD_MINOR_PERIPH_REMOTECTRL 0x0000000C
|
|
#define BTIF_COD_MINOR_PERIPH_SENSING 0x00000010
|
|
#define BTIF_COD_MINOR_PERIPH_DIGITIZER 0x00000014
|
|
#define BTIF_COD_MINOR_PERIPH_CARD_RDR 0x00000018
|
|
|
|
/* Group: Minor Device Class - Imaging Major class */
|
|
#define BTIF_COD_MINOR_IMAGE_UNCLASSIFIED 0x00000000
|
|
#define BTIF_COD_MINOR_IMAGE_DISPLAY 0x00000010
|
|
#define BTIF_COD_MINOR_IMAGE_CAMERA 0x00000020
|
|
#define BTIF_COD_MINOR_IMAGE_SCANNER 0x00000040
|
|
#define BTIF_COD_MINOR_IMAGE_PRINTER 0x00000080
|
|
|
|
/* Group: Masks used to isolate the class of device components */
|
|
#define BTIF_COD_SERVICE_MASK 0x00ffC000 /* Less LIAC bit */
|
|
#define BTIF_COD_MAJOR_MASK 0x00001F00
|
|
#define BTIF_COD_MINOR_MASK 0x000000FC
|
|
#define BTIF_COD_LIMITED_DISC_MASK 0x00002000 /* LIAC bit */
|
|
|
|
/* End of btif_class_of_device_t */
|
|
|
|
//when report_format=0,data_format will set the interval(unit:slot)
|
|
//when report_format=1,data_format will set the packet total num
|
|
//when report_format=2,data_format has no meaning
|
|
#define FLAG_RESET_DATA 2
|
|
#define FLAG_START_DATA 1
|
|
#define FLAG_GET_DATA 0
|
|
|
|
#define REP_FORMAT_TIME 0
|
|
#define REP_FORMAT_PACKET 1
|
|
#define REP_FORMAT_STOP_GET 2
|
|
|
|
|
|
//Vendor defined error code
|
|
#define BTIF_EVT_ERROR_SCO_UNKNOWN (0xE8)
|
|
#define BTIF_EVT_ERROR_ACL_UNKNOWN (0xE9)
|
|
|
|
|
|
typedef struct {
|
|
list_entry_t node;
|
|
uint8_t opType;
|
|
} btif_operation_t;
|
|
|
|
typedef struct {
|
|
|
|
/* the mandatory sniff interval range for controllers is between 0x0006 and 0x0540.
|
|
* The value is expressed in 0.625 ms increments (0x0006 = 3.75 ms).
|
|
*
|
|
* The actual interval selected by the radio will be returned in
|
|
* a BTEVENT_MODE_CHANGE event.
|
|
*/
|
|
|
|
uint16_t maxInterval;
|
|
|
|
/* Minimum acceptable interval between each consecutive sniff period.
|
|
* Must be an even number between 0x0002 and 0xFFFE, and be less than
|
|
* "maxInterval". Like maxInterval this value is expressed in
|
|
* 0.625 ms increments.
|
|
*/
|
|
uint16_t minInterval;
|
|
|
|
/* The number of master-to-slave transmission slots during which
|
|
* a device should listen for traffic (sniff attempt).
|
|
* Expressed in 0.625 ms increments. May be between 0x0001 and 0x7FFF.
|
|
*/
|
|
uint16_t attempt;
|
|
|
|
/* The amount of time before a sniff timeout occurs. Expressed in
|
|
* 1.25 ms increments. May be between 0x0000 and 0x7FFF, but the mandatory
|
|
* range for controllers is 0x0000 to 0x0028.
|
|
*/
|
|
uint16_t timeout;
|
|
} btif_sniff_info_t;
|
|
|
|
typedef struct {
|
|
|
|
/* May be any number between 0x0000 and 0xFFFE. The value is expressed in 0.625 ms
|
|
* increments.
|
|
*/
|
|
uint16_t maxLatency;
|
|
|
|
/* any number between 0x0000 and 0xFFFE. The value is expressed in
|
|
* 0.625 ms increments.
|
|
*/
|
|
uint16_t minRemoteTimeout;
|
|
|
|
/* Minimum base sniff subrate timeout that the local device may use.
|
|
* May be any number between 0x0000 and 0xFFFE. The value is expressed in
|
|
* 0.625 ms increments.
|
|
*/
|
|
uint16_t minLocalTimeout;
|
|
} btif_sniff_subrate_parms_t;
|
|
|
|
typedef struct {
|
|
uint16_t inqInterval; /* Inquiry scan interval */
|
|
uint16_t inqWindow; /* Inquiry scan Window */
|
|
uint16_t pageInterval; /* Page scan interval */
|
|
uint16_t pageWindow; /* Page scan window */
|
|
} btif_access_mode_info_t;
|
|
|
|
typedef struct {
|
|
list_entry_t node; /* For internal stack use only. */
|
|
btif_callback callback; /* Pointer to callback function */
|
|
btif_event_mask_t emask; /* For internal stack use only. */
|
|
} btif_handler;
|
|
|
|
/* Internal types required for BtRemoteDevice structure */
|
|
typedef uint8_t btif_auth_state_t;
|
|
|
|
typedef uint8_t btif_encrypt_state_t;
|
|
|
|
typedef uint8_t btif_authorize_state_t;
|
|
|
|
typedef uint8_t btif_sec_access_state_t;
|
|
|
|
typedef uint8_t btif_link_rx_state_t;
|
|
|
|
typedef uint8_t btif_op_type_t;
|
|
|
|
typedef struct {
|
|
|
|
/* Reserved */
|
|
uint8_t flags;
|
|
|
|
/* Service Type: 0 = No Traffic, 1 = Best Effort, 2 Guaranteed */
|
|
uint8_t serviceType;
|
|
|
|
/* Token Rate in octets per second */
|
|
uint32_t tokenRate;
|
|
|
|
/* Peak Bandwidth in octets per second */
|
|
uint32_t peakBandwidth;
|
|
|
|
/* Latency in microseconds */
|
|
uint32_t latency;
|
|
|
|
/* Delay Variation in microseconds */
|
|
uint32_t delayVariation;
|
|
} btif_qos_info_t;
|
|
|
|
typedef struct {
|
|
bt_bdaddr_t bdAddr;
|
|
BOOL trusted;
|
|
uint8_t linkKey[16];
|
|
btif_link_key_type_t keyType;
|
|
|
|
uint8_t pinLen;
|
|
} btif_device_record_t;
|
|
|
|
typedef struct {
|
|
btif_operation_t op;
|
|
uint8_t len;
|
|
uint8_t data[31];
|
|
} btif_write_adv_data_op_t;
|
|
|
|
typedef struct {
|
|
uint16_t interval_min;
|
|
uint16_t interval_max;
|
|
uint8_t adv_type;
|
|
uint8_t own_addr_type;
|
|
uint8_t peer_addr_type;
|
|
bt_bdaddr_t bd_addr;
|
|
uint8_t adv_chanmap;
|
|
uint8_t adv_filter_policy;
|
|
} btif_adv_para_struct_t;
|
|
|
|
typedef struct {
|
|
btif_operation_t op;
|
|
btif_adv_para_struct_t adv_para;
|
|
} btif_write_adv_para_op_t;
|
|
|
|
typedef struct {
|
|
btif_operation_t op;
|
|
uint8_t en;
|
|
} btif_write_adv_en_op_t;
|
|
|
|
#define BLE_ADV_REPORT_MAX_LEN 31
|
|
|
|
typedef struct {
|
|
uint8_t type;
|
|
uint8_t addr_type;
|
|
bt_bdaddr_t addr;
|
|
uint8_t data_len;
|
|
uint8_t data[BLE_ADV_REPORT_MAX_LEN];
|
|
int8_t rssi;
|
|
} btif_ble_adv_report;
|
|
|
|
typedef struct {
|
|
uint8_t scan_type;
|
|
uint16_t scan_interval;
|
|
uint16_t scan_window;
|
|
uint8_t own_addr_type;
|
|
uint8_t scan_filter_policy;
|
|
} btif_scan_para_struct_t;
|
|
|
|
typedef struct {
|
|
btif_operation_t op;
|
|
btif_scan_para_struct_t scan_para;
|
|
} btif_write_scan_para_op_t;
|
|
|
|
typedef struct {
|
|
btif_operation_t op;
|
|
uint8_t scan_en;
|
|
uint32_t filter_duplicat;
|
|
} btif_write_scan_en_op_t;
|
|
|
|
typedef struct
|
|
{
|
|
bt_bdaddr_t bdAddr; /* Device Address */
|
|
uint8_t linkKey[16];
|
|
} btif_dev_linkkey;
|
|
|
|
typedef struct
|
|
{
|
|
U8 psRepMode;
|
|
U8 psMode;
|
|
U16 clockOffset;
|
|
} bt_page_scanInfo_t;
|
|
|
|
typedef struct
|
|
{
|
|
bt_bdaddr_t bdAddr; /* Device Address */
|
|
bt_page_scanInfo_t psi; /* Page scan info used for connecting */
|
|
U8 psPeriodMode;
|
|
U32 classOfDevice;
|
|
|
|
/* RSSI in dBm (-127 to +20). Only valid when controller reports RSSI with
|
|
* in inquiry results (also see ME_SetInquiryMode). Otherwise it will be
|
|
* set to BT_INVALID_RSSI.
|
|
*/
|
|
S8 rssi;
|
|
|
|
/* Extended Inquiry response. Only valid when controller reports an
|
|
* extended inquiry (also see ME_SetInquiryMode). Otherwise it will be
|
|
* set to all 0's.
|
|
*/
|
|
U8 extInqResp[240];
|
|
|
|
/* Describes the format of the current inquiry result */
|
|
U8 inqMode;
|
|
|
|
} bt_Inquiry_result_t;
|
|
|
|
typedef struct
|
|
{
|
|
/* Event causing callback. Always valid.*/
|
|
uint8_t eType;
|
|
|
|
/* Error code. See BtEventType for guidance on whether errCode is valid. */
|
|
uint8_t errCode;
|
|
|
|
/* Pointer to handler. Only valid for events directed to BtHandlers. */
|
|
btif_handler *handler;
|
|
|
|
/* Parameters */
|
|
union
|
|
{
|
|
btif_accessible_mode_t aMode; /* New access mode */
|
|
void *remDev; /* Pointer to remote device */
|
|
bt_bdaddr_t bdAddr; /* Device Address */
|
|
void *meToken; /* Me command token */
|
|
U8 pMode; /* Simple Pairing Mode */
|
|
|
|
#ifdef __TWS_RECONNECT_USE_BLE__
|
|
struct
|
|
{
|
|
U8 *data;
|
|
U16 len;
|
|
} twsBleReport;
|
|
#endif
|
|
bt_Inquiry_result_t inqResult;
|
|
|
|
void *secToken; /* Security Token */
|
|
void *token;
|
|
|
|
/* Information for BTEVENT_PAIRING_COMPLETE */
|
|
struct
|
|
{
|
|
void *remDev;
|
|
btif_link_key_type_t keyType;
|
|
} pairingInfo;
|
|
|
|
/* Information for BTEVENT_PIN_REQ */
|
|
struct
|
|
{
|
|
void *remDev;
|
|
|
|
/* If > 0 then the pin length returned in SEC_SetPin must be >= pinLen */
|
|
U8 pinLen;
|
|
} pinReq;
|
|
|
|
/* Information for BTEVENT_SET_INQUIRY_MODE_CNF */
|
|
btif_inquiry_mode_t inqMode;
|
|
|
|
/* Information for BTEVENT_SET_INQ_TX_PWR_LVL_CNF */
|
|
S8 inqTxPwr;
|
|
|
|
/* Information for BTEVENT_REMOTE_FEATURES */
|
|
struct
|
|
{
|
|
bt_bdaddr_t bdAddr;
|
|
U8 features[8];
|
|
} remoteFeatures;
|
|
|
|
/* Information for BTEVENT_REM_HOST_FEATURES */
|
|
struct
|
|
{
|
|
bt_bdaddr_t bdAddr;
|
|
U8 features[8];
|
|
} remHostFeatures;
|
|
|
|
/* Information for BTEVENT_LINK_SUPERV_TIMEOUT_CHANGED */
|
|
struct
|
|
{
|
|
void *remDev;
|
|
U16 timeout;
|
|
} linkSupervision;
|
|
|
|
/* Information for BTEVENT_MAX_SLOT_CHANGED */
|
|
struct
|
|
{
|
|
U16 connHandle;
|
|
U8 maxSlot;
|
|
} maxSlotChanged;
|
|
|
|
/* Information for BTEVENT_QOS_SETUP_COMPLETE */
|
|
struct
|
|
{
|
|
|
|
/* Reserved */
|
|
U8 flags;
|
|
|
|
/* Service Type: 0 = No Traffic, 1 = Best Effort, 2 Guaranteed */
|
|
U8 serviceType;
|
|
|
|
/* Token Rate in octets per second */
|
|
U32 tokenRate;
|
|
|
|
/* Peak Bandwidth in octets per second */
|
|
U32 peakBandwidth;
|
|
|
|
/* Latency in microseconds */
|
|
U32 latency;
|
|
|
|
/* Delay Variation in microseconds */
|
|
U32 delayVariation;
|
|
} qos;
|
|
|
|
/* Result for BTEVENT_SET_SNIFF_SUBRATING_PARMS_CNF */
|
|
btif_sniff_subrate_parms_t *sniffSubrateParms;
|
|
|
|
/* Information for BTEVENT_SNIFF_SUBRATE_INFO */
|
|
struct
|
|
{
|
|
/* Pointer to the remote device */
|
|
void *remDev;
|
|
|
|
/* Maximum latency for data being transmitted from the local
|
|
* device to the remote device.
|
|
*/
|
|
U16 maxTxLatency;
|
|
|
|
/* Maximum latency for data being received by the local
|
|
* device from the remote device.
|
|
*/
|
|
U16 maxRxLatency;
|
|
|
|
/* The base sniff subrate timeout in baseband slots that the
|
|
* remote device shall use.
|
|
*/
|
|
U16 minRemoteTimeout;
|
|
|
|
/* The base sniff subrate timeout in baseband slots that the
|
|
* local device will use.
|
|
*/
|
|
U16 minLocalTimeout;
|
|
} sniffSubrateInfo;
|
|
|
|
/* Result for BTEVENT_LOCAL_OOB_DATA */
|
|
struct
|
|
{
|
|
/* Simple Pairing Hash C from the local device */
|
|
U8 hashC[16];
|
|
|
|
/* Simple Pairing Randomizer R the local device */
|
|
U8 randR[16];
|
|
} oobData;
|
|
|
|
/* Information for BTEVENT_CONFIRM_NUMERIC_REQ, BTEVENT_PASS_KEY_REQ,
|
|
* and BTEVENT_DISPLAY_NUMERIC_IND
|
|
*/
|
|
struct
|
|
{
|
|
void *remDev; /* Pointer to the remote device */
|
|
U32 numeric; /* Numeric value received from Secure
|
|
* Simple Pairing (not valid for
|
|
* BTEVENT_PASS_KEY_REQ
|
|
*/
|
|
|
|
U8 bondingMode; /* Bonding has been requested */
|
|
} userIoReq;
|
|
|
|
/* Result for BTEVENT_ENCRYPTION_CHANGE event. */
|
|
struct
|
|
{
|
|
void *remDev;
|
|
U8 mode; /* New encryption mode (uses the
|
|
* BtEncryptMode type) */
|
|
} encrypt;
|
|
|
|
/* Result for BTEVENT_KEY_PRESSED */
|
|
struct
|
|
{
|
|
bt_bdaddr_t bdAddr; /* Address of the device sending the keypress */
|
|
U8 parm; /* The value of the keypress parameter */
|
|
} keyPress;
|
|
|
|
struct
|
|
{
|
|
void *remDev;
|
|
|
|
/* If disconnection was successful, contains BEC_NO_ERROR.
|
|
* errCode will contain the disconnect reason.
|
|
*
|
|
* Unsuccessful disconnections will contain an error code
|
|
* as generated by the radio. In this case, errCode can be
|
|
* ignored.
|
|
*/
|
|
btif_error_code_t status;
|
|
} disconnect;
|
|
|
|
/* Result for the BTEVENT_SCO_DATA_CNF event */
|
|
struct
|
|
{
|
|
void *remDev; /* Pointer to remote device */
|
|
void *scoCon; /* SCO connection */
|
|
void *scoPacket; /* SCO Packet Handled */
|
|
} scoPacketHandled;
|
|
|
|
/* Result for the BTEVENT_SCO_CONNECT_CNF && BTEVENT_SCO_CONNECT_IND
|
|
events.
|
|
*/
|
|
struct
|
|
{
|
|
void *remDev; /* Pointer to remote device */
|
|
U16 scoHandle; /* SCO Connection handle for HCI */
|
|
void *scoCon; /* SCO connection */
|
|
U8 scoLinkType;/* SCO link type */
|
|
void *scoTxParms; /* Pointer to eSCO TX parameters */
|
|
void *scoRxParms; /* Pointer to eSCO RX parameters */
|
|
} scoConnect;
|
|
|
|
/* Result for the BTEVENT_SCO_DATA_IND event */
|
|
struct
|
|
{
|
|
void *remDev; /* Pointer to remote device */
|
|
U16 scoHandle; /* SCO Connection handle for HCI */
|
|
void *scoCon; /* SCO connection. */
|
|
U8 len; /* SCO data len */
|
|
U8 *ptr; /* SCO data ptr */
|
|
U8 errFlags; /* Erroneous Data Reporting */
|
|
} scoDataInd;
|
|
|
|
/* Result for the BTEVENT_SECURITY_CHANGE and
|
|
* BTEVENT_SECURITY3_COMPLETE events
|
|
*/
|
|
struct
|
|
{
|
|
U8 mode; /* New security mode (uses the BtSecurityMode
|
|
* type). */
|
|
BOOL encrypt; /* Indicate if encryption set or not */
|
|
} secMode;
|
|
|
|
/* Results for the BTEVENT_MODE_CHANGE event */
|
|
struct
|
|
{
|
|
void *remDev;
|
|
uint8_t curMode;
|
|
U16 interval;
|
|
} modeChange;
|
|
|
|
/* Results for BTEVENT_ROLE_CHANGE */
|
|
struct
|
|
{
|
|
void *remDev;
|
|
uint8_t newRole; /* New role */
|
|
} roleChange;
|
|
|
|
/* Results for BTEVENT_ACL_DATA_ACTIVE */
|
|
struct
|
|
{
|
|
void *remDev;
|
|
uint16_t dataLen; /* ACL data length */
|
|
} aclDataActive;
|
|
|
|
/* Results for BTEVENT_ACL_DATA_NOT_ACTIVE */
|
|
struct
|
|
{
|
|
void *remDev;
|
|
uint16_t dataLen; /* ACL data length */
|
|
} aclDataNotActive;
|
|
struct
|
|
{
|
|
uint8_t status;
|
|
bt_bdaddr_t bdAddr; /* Address of the device sending the keypress */
|
|
}name_rsp;
|
|
struct
|
|
{
|
|
btif_remote_device_t *conn;
|
|
}conn_req;
|
|
} edata;
|
|
} event_t;
|
|
|
|
typedef struct
|
|
{
|
|
event_t *evt;
|
|
btif_event_mask_t mask;
|
|
} me_event_t;
|
|
typedef bool (*ibrt_io_capbility_callback)(void *bdaddr);
|
|
typedef void (*ibrt_disconnect_callback)(const void *event);
|
|
typedef void (*btif_cmgr_callback) (void *handler, uint8_t event, bt_status_t status);
|
|
typedef void (*btif_global_handle)(const btif_event_t *Event);
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif /* */
|
|
bt_status_t btif_me_get_tws_slave_mobile_rssi(uint16_t ConnHandle);
|
|
|
|
void btif_me_set_sniffer_env(uint8_t sniffer_acitve, uint8_t sniffer_role,
|
|
uint8_t * monitored_addr, uint8_t * sniffer_addr);
|
|
BOOL btif_me_get_remote_device_initiator(btif_remote_device_t * rdev);
|
|
uint16_t btif_me_get_remote_device_hci_handle(btif_remote_device_t * rdev);
|
|
btif_remote_device_t* btif_me_get_remote_device_by_handle(uint16_t hci_handle);
|
|
uint16_t btif_me_get_hci_handle_by_remote_dev(btif_remote_device_t *p_remote_dev);
|
|
btif_remote_device_t* btif_me_get_remote_device_by_bdaddr(bt_bdaddr_t *bdaddr);
|
|
uint8_t btif_me_get_remote_device_op_optype(btif_remote_device_t * rdev);
|
|
btif_connection_role_t btif_me_get_remote_device_role(btif_remote_device_t * rdev);
|
|
void btif_me_set_remote_device_role(btif_remote_device_t * rdev, uint8_t role);
|
|
BOOL *btif_me_get_remote_device_new_link_key(btif_remote_device_t * rdev);
|
|
void *btif_me_get_remote_device_parms(btif_remote_device_t * rdev);
|
|
bt_status_t btif_me_exchange_bt_addr(uint16_t connHandle);
|
|
bool btif_me_role_switch_pending(uint16_t handle);
|
|
bool btif_me_is_tws_role_switch_pending();
|
|
bool btif_me_is_exechange_bt_addr_pending();
|
|
bool is_btif_me_current_role_bcr_master(btif_remote_device_t * device);
|
|
bt_status_t btif_me_inquiry(uint32_t lap, uint8_t len, uint8_t maxResp);
|
|
bt_status_t btif_me_ble_add_dev_to_whitelist(uint8_t addr_type, bt_bdaddr_t * addr);
|
|
bt_status_t btif_me_ble_clear_whitelist(void);
|
|
bt_status_t btif_me_ble_set_private_address(bt_bdaddr_t * addr);
|
|
bt_status_t btif_me_ble_set_adv_data(uint8_t len, uint8_t * data);
|
|
bt_status_t btif_me_ble_set_scan_rsp_data(U8 len, U8 * data);
|
|
bt_status_t btif_me_ble_set_adv_parameters(btif_adv_para_struct_t * para);
|
|
bt_status_t btif_me_ble_set_adv_en(uint8_t en);
|
|
bt_status_t btif_me_ble_set_scan_parameter(btif_scan_para_struct_t * para);
|
|
bt_status_t btif_me_ble_set_scan_en(uint8_t scan_en, uint8_t filter_duplicate);
|
|
bt_status_t btif_me_ble_receive_adv_report(void (*cb)(const btif_ble_adv_report* report));
|
|
bt_status_t btif_sec_find_device_record(const bt_bdaddr_t * bdAddr,
|
|
btif_device_record_t * record);
|
|
|
|
uint8_t btif_sec_set_io_capabilities(uint8_t ioCap);
|
|
uint8_t btif_sec_set_authrequirements(uint8_t authRequirements);
|
|
uint8_t btif_me_get_callback_event_type(const btif_event_t * event);
|
|
uint8_t btif_me_get_callback_event_rem_dev_role(const btif_event_t * event);
|
|
bt_bdaddr_t *btif_me_get_callback_event_rem_dev_bd_addr(const btif_event_t * event);
|
|
bt_bdaddr_t *btif_me_get_callback_event_disconnect_rem_dev_bd_addr(const btif_event_t *
|
|
event);
|
|
btif_remote_device_t *btif_me_get_callback_event_disconnect_rem_dev(const btif_event_t *
|
|
event);
|
|
btif_remote_device_t *btif_me_get_callback_event_role_change_rem_dev(const btif_event_t *event);
|
|
uint8_t btif_me_get_callback_event_disconnect_rem_dev_disc_reason_saved(const btif_event_t *
|
|
event);
|
|
uint8_t btif_me_get_callback_event_disconnect_rem_dev_disc_reason(const btif_event_t *
|
|
event);
|
|
|
|
uint8_t btif_me_get_pendCons(void);
|
|
|
|
uint8_t btif_me_get_activeCons(void);
|
|
|
|
void btif_me_set_pendCons(uint8_t pendCons);
|
|
|
|
void btif_me_set_activeCons(uint8_t activeCons );
|
|
|
|
btif_remote_device_t *btif_me_get_callback_event_rem_dev(const btif_event_t * event);
|
|
|
|
btif_BtDeviceContext* btif_me_get_bt_device_context(const btif_event_t * event);
|
|
|
|
uint16_t btif_me_get_scohdl_by_connhdl(uint16_t conn_handle);
|
|
btif_remote_device_t *btif_me_get_callback_event_sco_connect_rem_dev(const btif_event_t *
|
|
event);
|
|
uint8_t btif_me_get_callback_event_role_change_new_role(const btif_event_t * event);
|
|
bt_bdaddr_t *btif_me_get_callback_event_inq_result_bd_addr(const btif_event_t * event);
|
|
uint8_t *btif_me_get_callback_event_inq_result_bd_addr_addr(const btif_event_t * event);
|
|
uint8_t btif_me_get_callback_event_inq_result_inq_mode(const btif_event_t * event);
|
|
uint8_t btif_me_get_callback_event_rssi(const btif_event_t *event);
|
|
uint8_t *btif_me_get_callback_event_inq_result_ext_inq_resp(const btif_event_t * event);
|
|
uint32_t btif_me_get_callback_event_inq_result_classofdevice(const btif_event_t *event);
|
|
uint8_t btif_me_get_callback_event_err_code(const btif_event_t * event);
|
|
uint8_t btif_me_get_callback_event_a_mode(const btif_event_t * event);
|
|
uint16_t btif_me_get_callback_event_max_slot_changed_connHandle(const btif_event_t * event);
|
|
uint8_t btif_me_get_callback_event_max_slot_changed_max_slot(const btif_event_t * event);
|
|
uint8_t btif_me_get_callback_event_mode_change_curMode(const btif_event_t * event);
|
|
uint16_t btif_me_get_callback_event_mode_change_interval(const btif_event_t * event);
|
|
|
|
uint16_t btif_me_get_callback_event_remote_dev_name(const btif_event_t * event, uint8_t** ppName);
|
|
|
|
bt_status_t btif_me_get_remote_device_name(const bt_bdaddr_t * bdAddr, btif_global_handle handler);
|
|
|
|
uint8_t btif_me_get_ext_inq_data(uint8_t * eir, btif_eir_data_type_t type,
|
|
uint8_t * outBuffer, uint8_t Length);
|
|
bt_status_t btif_me_cancel_inquiry(void);
|
|
bt_status_t btif_sec_delete_device_record(const bt_bdaddr_t * bdAddr);
|
|
bt_status_t btif_me_cancel_create_link(btif_handler * handler,
|
|
btif_remote_device_t * rdev);
|
|
void btif_me_set_handler(void *handler, btif_callback cb);
|
|
uint8_t btif_me_set_connection_role(uint8_t role);
|
|
bt_status_t btif_me_disconnect_link(btif_handler * handler,
|
|
btif_remote_device_t * rdev);
|
|
bt_status_t btif_me_set_link_policy(btif_remote_device_t * rdev,
|
|
btif_link_policy_t policy);
|
|
bt_status_t btif_me_set_link_lowlayer_monitor(btif_remote_device_t * rdev, uint8_t control_flag,uint8_t report_format,
|
|
uint32_t data_format,uint8_t report_unit);
|
|
bt_status_t btif_me_set_connection_qos_info(btif_remote_device_t * rdev,
|
|
btif_qos_info_t * qosInfo);
|
|
void btif_me_fake_tws_disconnect(uint16_t hci_handle, uint8_t reason);
|
|
void btif_me_fake_mobile_disconnect(uint16_t hci_handle, uint8_t reason);
|
|
void btif_me_fake_tws_connect(uint8_t status, uint16_t hci_handle, bt_bdaddr_t * bdAddr);
|
|
void btif_me_reset_bt_controller(void);
|
|
void btif_me_fake_mobile_connect(uint8_t status, uint16_t hci_handle, bt_bdaddr_t *bdAddr);
|
|
|
|
bt_status_t btif_me_set_lbrt_enable(uint16_t connHandle, uint8_t enable);
|
|
bt_status_t btif_me_set_accessible_mode(btif_accessible_mode_t mode,
|
|
const btif_access_mode_info_t * info);
|
|
bt_status_t btif_me_write_page_timeout(uint16_t timeout);
|
|
bool btif_me_is_op_in_progress(btif_remote_device_t * rdev);
|
|
bt_status_t btif_me_switch_role(btif_remote_device_t * rdev);
|
|
bt_status_t btif_me_register_global_handler(void *handler);
|
|
void *btif_me_register_accept_handler(void *handler);
|
|
bt_status_t btif_me_set_event_mask(void *handler, btif_event_mask_t mask);
|
|
void *btif_me_get_bt_handler(void);
|
|
bt_status_t btif_me_set_bt_address(uint8_t * btAddr);
|
|
bt_status_t btif_me_set_local_device_name(const U8 *name, U8 length);
|
|
bt_status_t btif_me_set_ble_bd_address(uint8_t * btAddr);
|
|
bt_status_t btif_sec_add_device_record(btif_device_record_t * record);
|
|
bt_status_t btif_enum_device_record(U16 dev_id, btif_device_record_t *record);
|
|
bt_bdaddr_t *btif_me_get_remote_device_bdaddr(btif_remote_device_t * rdev);
|
|
btif_rem_dev_state_t btif_me_get_remote_device_state(btif_remote_device_t * rdev);
|
|
btif_link_mode_t btif_me_get_remote_device_mode(btif_remote_device_t * rdev);
|
|
btif_authorize_state_t btif_me_get_remote_device_auth_state(btif_remote_device_t * rdev);
|
|
bt_status_t btif_me_write_link_superv_timeout(uint16_t handle, uint16_t slots);
|
|
btif_link_mode_t btif_me_get_current_mode(btif_remote_device_t * rdev);
|
|
btif_connection_role_t btif_me_get_current_role(btif_remote_device_t * rdev);
|
|
|
|
bt_status_t btif_me_start_sniff(btif_remote_device_t * rdev, btif_sniff_info_t* info);
|
|
|
|
bt_status_t btif_me_stop_sniff(btif_remote_device_t * rdev);
|
|
|
|
bt_status_t btif_me_accept_incoming_link(const btif_event_t *event,btif_remote_device_t * rdev, btif_connection_role_t role);
|
|
|
|
bt_status_t btif_me_reject_incoming_link(btif_remote_device_t * rdev, btif_error_code_t reason);
|
|
|
|
bt_status_t btif_me_start_tws_role_switch(uint16_t slaveConnHandle, uint16_t mobileConnHandle);
|
|
bt_status_t btif_me_set_sco_tx_silence(uint16_t connHandle, uint8_t silence_on);
|
|
void btif_me_increase_active_counts(void);
|
|
bool btif_me_is_sending_data_to_peer_dev_pending(void);
|
|
btif_handler *btif_me_get_me_handler(void);
|
|
bt_status_t btif_me_force_disconnect_link_with_reason(btif_handler * handler,
|
|
btif_remote_device_t * rdev,
|
|
uint8_t reason, BOOL forceDisconnect);
|
|
|
|
void btif_me_sec_set_io_cap_rsp_reject_ext(BOOL(*ext_fn) (void *));
|
|
void btif_me_write_bt_sleep_enable(uint8_t sleep_en);
|
|
void btif_me_write_bt_page_scan_type(uint8_t scan_type);
|
|
void btif_me_write_bt_inquiry_scan_type(uint8_t scan_type);
|
|
|
|
#if IS_USE_INTERNAL_ACL_DATA_PATH
|
|
bt_status_t btif_me_send_data_to_peer_dev(uint16_t connHandle, uint8_t dataLen, uint8_t * data);
|
|
#endif /* */
|
|
void btif_bt_call_back(const btif_event_t * event);
|
|
void btif_me_init_handler(btif_handler * handler);
|
|
bt_status_t btif_me_dbg_sniffer_interface(uint16_t connHandle, uint8_t subCode);
|
|
bt_status_t btif_me_switch_sco(uint16_t scohandle);
|
|
uint8_t *btif_me_get_remote_device_version(btif_remote_device_t * rdev);
|
|
void *btif_me_get_cmgr_handler();
|
|
bt_status_t btif_bind_cmgr_handler(void *cmgr_handler, bt_bdaddr_t * bdAddr,btif_cmgr_callback Callback);
|
|
bt_status_t btif_create_acl_to_slave(void *cmgr_handler, bt_bdaddr_t * bdAddr,btif_cmgr_callback Callback);
|
|
bt_status_t btif_register_cmgr_handle(void *cmgr_handler,btif_cmgr_callback Callback);
|
|
void btif_me_update_cmgr_info(void *cmgr_handler,btif_BtDeviceContext* bt_device_context,btif_remote_device_t * rdev);
|
|
void btif_me_unregister_globa_handler(btif_handler * handler);
|
|
void btif_me_set_inquiry_mode(uint8_t mode);
|
|
void btif_me_inquiry_result_setup(uint8_t *inquiry_buff, bool rssi,
|
|
bool extended_mode);
|
|
btif_remote_device_t *btif_me_enumerate_remote_devices(uint32_t devid);
|
|
|
|
uint8_t btif_me_get_remote_sevice_encrypt_state(btif_remote_device_t* rdev);
|
|
|
|
uint8_t btif_me_get_remote_device_disc_reason_saved(btif_remote_device_t * device);
|
|
|
|
|
|
uint8_t btif_me_get_remote_device_disc_reason(btif_remote_device_t * device);
|
|
|
|
void btif_me_event_report(me_event_t *event);
|
|
void btif_me_init_peer_headset_addr(uint8_t *p_remote_addr);
|
|
bt_bdaddr_t * btif_me_get_peer_headset_addr(void);
|
|
uint8_t btif_me_get_remote_device_link_mode(btif_remote_device_t* rdev);
|
|
uint8_t btif_me_get_remote_device_bt_role(btif_remote_device_t* rdev);
|
|
bt_status_t btif_me_change_packet_type(btif_remote_device_t *rdev, btif_acl_packet packetTypes);
|
|
void btif_me_cobuf_state_dump(void);
|
|
void btif_me_hcibuff_state_dump(void);
|
|
bt_status_t btif_me_read_controller_memory(uint32_t addr, uint32_t len,uint8_t type);
|
|
bt_status_t btif_me_write_controller_memory(uint32_t addr,uint32_t val,uint8_t type);
|
|
bt_status_t btif_me_qos_set_up(uint16_t conn_handle);
|
|
void btif_set_sco_max_number(uint8_t num);
|
|
uint8_t btif_get_sco_max_number();
|
|
#if defined(IBRT)
|
|
// ibrt fast ack toggle
|
|
#define IBRT_FAST_ACK_OFF (0)
|
|
#define IBRT_FAST_ACK_ON (1)
|
|
// ibrt fast direction
|
|
#define IBRT_FAST_ACK_TX 0
|
|
#define IBRT_FAST_ACK_RX 1
|
|
// ibrt slave flow control
|
|
#define IBRT_SLAVE_FLOW_CTRL_ON IBRT_FAST_ACK_OFF
|
|
#define IBRT_SLAVE_FLOW_CTRL_OFF IBRT_FAST_ACK_ON
|
|
|
|
bt_status_t btif_me_enable_fastack(uint16_t conhdl, uint8_t direction, uint8_t enable);
|
|
bt_status_t btif_me_start_ibrt(U16 slaveConnHandle, U16 mobileConnHandle);
|
|
bt_status_t btif_me_stop_ibrt(uint8_t enable,uint8_t reason);
|
|
bt_status_t btif_me_suspend_ibrt(void);
|
|
bt_status_t btif_me_ibrt_mode_init(bool enable);
|
|
bt_status_t btif_me_ibrt_role_switch(uint8_t switch_op);
|
|
|
|
void btif_me_set_ibrt_mobile_hci_handle(uint16_t hci_handle);
|
|
uint16_t btif_me_get_ibrt_mobile_hci_handle(void);
|
|
|
|
void btif_me_set_devctx_state(uint8_t ctx_idx, uint16_t state);
|
|
void btif_me_set_devctx_link(uint8_t ctx_idx, btif_remote_device_t * rm_dev);
|
|
bt_bdaddr_t* btif_me_get_devctx_btaddr(uint8_t ctx_idx);
|
|
btif_remote_device_t* btif_me_get_remote_device(uint8_t dev_index);
|
|
void btif_me_free_tws_outgoing_dev(uint8_t *peer_tws_addr);
|
|
btif_remote_device_t* btif_me_get_devctx_remote_device(uint8_t ctx_idx);
|
|
btif_remote_device_t * btif_me_avdev_ctx_get_conn_remote_device(uint8_t dev_idx);
|
|
|
|
uint32_t btif_me_save_record_ctx(uint8_t *ctx_buffer, uint8_t *addr);
|
|
uint32_t btif_me_set_record_ctx(uint8_t *ctx_buffer, uint8_t *addr);
|
|
uint32_t btif_me_save_me_ctx(uint8_t *ctx_buffer, uint16_t dev_id);
|
|
uint32_t btif_me_set_me_ctx(uint8_t *ctx_buffer, uint16_t dev_id);
|
|
uint8_t btif_me_get_mobile_avdev_index(uint16_t mobile_handle);
|
|
uint8_t btif_me_get_free_avdev_index(void);
|
|
uint32_t btif_me_save_avdev_ctx(uint8_t* ctx_buffer, uint16_t dev_id);
|
|
uint32_t btif_me_set_avdev_ctx(uint8_t *ctx_buffer, uint16_t dev_id, uint8_t rm_devtbl_idx);
|
|
void btif_me_conn_auto_accept_enable(uint8_t *condition);
|
|
uint8_t btif_me_get_callback_event_encty_mode(const btif_event_t * event);
|
|
btif_dev_linkkey *btif_me_get_callback_link_key(const btif_event_t *event);
|
|
void btif_me_register_ibrt_disconnect_callback(btif_callback cb);
|
|
bt_status_t btif_me_set_tws_poll_interval(uint16_t conn_handle, uint16_t poll_interval);
|
|
bt_status_t btif_me_resume_ibrt(uint8_t enable);
|
|
void btif_me_write_scan_activity_specific(uint16_t opcode, uint16_t scan_interval, uint16_t scan_window);
|
|
void btif_me_write_dbg_sniffer(const uint8_t subcode, const uint16_t connhandle);
|
|
void btif_me_ibrt_simu_hci_event_disallow(uint8_t opcode1, uint8_t opcode2);
|
|
void btif_me_register_conn_req_pre_treatment_callback(btif_callback cb);
|
|
void btif_me_register_cmd_status_callback(btif_callback cb);
|
|
void btif_me_register_cmd_complete_callback(HCI_CMD_COMPLETE_USER_E index,btif_callback cb);
|
|
bt_status_t btif_me_ibrt_conn_connected(bt_bdaddr_t *bt_addr, uint16_t conhdl);
|
|
bt_status_t btif_me_ibrt_conn_disconnected(bt_bdaddr_t *bt_addr, uint16_t conhdl, uint8_t status, uint8_t reason);
|
|
void btif_me_register_ibrt_io_capbility_callback(ibrt_io_capbility_callback cb);
|
|
bt_status_t btif_me_auth_req(uint16_t conn_handle);
|
|
void btif_me_set_ecc_ibrt_data_test(uint8_t ecc_data_test_en, uint8_t ecc_data_len, uint16_t ecc_count, uint32_t data_pattern);
|
|
void btif_me_send_prefer_rate(uint16_t connhdl, uint8_t rate);
|
|
#endif
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif /* */
|
|
#endif /* __ME_H */
|