40#define BTA_HH_DEBUG FALSE
43#ifndef BTA_HH_SSR_MAX_LATENCY_DEF
44#define BTA_HH_SSR_MAX_LATENCY_DEF 1600
47#ifndef BTA_HH_SSR_MIN_TOUT_DEF
48#define BTA_HH_SSR_MIN_TOUT_DEF 2
52#define BTA_HH_ENABLE_EVT 0
53#define BTA_HH_DISABLE_EVT 1
54#define BTA_HH_OPEN_EVT 2
55#define BTA_HH_CLOSE_EVT 3
56#define BTA_HH_GET_RPT_EVT 4
57#define BTA_HH_SET_RPT_EVT 5
58#define BTA_HH_GET_PROTO_EVT 6
59#define BTA_HH_SET_PROTO_EVT 7
60#define BTA_HH_GET_IDLE_EVT 8
61#define BTA_HH_SET_IDLE_EVT 9
62#define BTA_HH_GET_DSCP_EVT 10
63#define BTA_HH_ADD_DEV_EVT 11
64#define BTA_HH_RMV_DEV_EVT 12
65#define BTA_HH_VC_UNPLUG_EVT 13
66#define BTA_HH_UPDATE_UCD_EVT 14
67#define BTA_HH_API_ERR_EVT 15
69typedef UINT16 tBTA_HH_EVT;
72#define BTA_HH_MIN_OFFSET L2CAP_MIN_OFFSET+1
74#define BTA_HH_MAX_KNOWN HID_HOST_MAX_DEVICES
76#define BTA_HH_INVALID_HANDLE 0xff
79#define BTA_HH_PROTO_RPT_MODE (0x00)
80#define BTA_HH_PROTO_BOOT_MODE (0x01)
81#define BTA_HH_PROTO_UNKNOWN (0xff)
82typedef UINT8 tBTA_HH_PROTO_MODE;
86 BTA_HH_KEYBD_RPT_ID = 1,
89typedef UINT8 tBTA_HH_BOOT_RPT_ID;
92#define BTA_HH_DEVT_UNKNOWN 0x00
93#define BTA_HH_DEVT_JOS 0x01
94#define BTA_HH_DEVT_GPD 0x02
95#define BTA_HH_DEVT_RMC 0x03
96#define BTA_HH_DEVT_SED 0x04
97#define BTA_HH_DEVT_DGT 0x05
98#define BTA_HH_DEVT_CDR 0x06
99#define BTA_HH_DEVT_KBD 0x10
100#define BTA_HH_DEVT_MIC 0x20
101#define BTA_HH_DEVT_COM 0x30
102#define BTA_HH_DEVT_OTHER 0x80
103typedef UINT8 tBTA_HH_DEVT;
108 BTA_HH_HS_HID_NOT_READY,
109 BTA_HH_HS_INVALID_RPT_ID,
110 BTA_HH_HS_TRANS_NOT_SPT,
111 BTA_HH_HS_INVALID_PARAM,
119 BTA_HH_ERR_TOD_UNSPT,
121 BTA_HH_ERR_AUTH_FAILED,
124typedef UINT8 tBTA_HH_STATUS;
127#define BTA_HH_VIRTUAL_CABLE HID_VIRTUAL_CABLE
128#define BTA_HH_NORMALLY_CONNECTABLE HID_NORMALLY_CONNECTABLE
129#define BTA_HH_RECONN_INIT HID_RECONN_INIT
130#define BTA_HH_SDP_DISABLE HID_SDP_DISABLE
131#define BTA_HH_BATTERY_POWER HID_BATTERY_POWER
132#define BTA_HH_REMOTE_WAKE HID_REMOTE_WAKE
133#define BTA_HH_SUP_TOUT_AVLBL HID_SUP_TOUT_AVLBL
134#define BTA_HH_SEC_REQUIRED HID_SEC_REQUIRED
135typedef UINT16 tBTA_HH_ATTR_MASK;
160typedef UINT8 tBTA_HH_RPT_TYPE;
166 BTA_HH_CTRL_NOP = 0 + HID_PAR_CONTROL_NOP ,
167 BTA_HH_CTRL_HARD_RESET,
168 BTA_HH_CTRL_SOFT_RESET,
170 BTA_HH_CTRL_EXIT_SUSPEND,
171 BTA_HH_CTRL_VIRTUAL_CABLE_UNPLUG
173typedef UINT8 tBTA_HH_TRANS_CTRL_TYPE;
175typedef tHID_DEV_DSCP_INFO tBTA_HH_DEV_DESCR;
178#define BTA_HH_VENDOR_ID_INVALID 0xffff
187 UINT16 ssr_max_latency;
190 tBTA_HH_DEV_DESCR descriptor;
197 tBTA_HH_STATUS status;
206 tBTA_HH_STATUS status;
223 BOOLEAN mod_key[BTA_HH_MOD_MAX_KEY];
244 tBTA_HH_BOOT_RPT_ID dev_type;
255 tBTA_HH_STATUS status;
259 tBTA_HH_PROTO_MODE proto_mode;
269 tBTA_HH_DEV_INFO dev_info;
276 tBTA_HH_STATUS status;
285typedef void (tBTA_HH_CBACK) (tBTA_HH_EVT event,
tBTA_HH *p_data);
307BTA_API
extern void BTA_HhEnable(tBTA_SEC sec_mask, tBTA_HH_CBACK *p_cback);
309BTA_API
extern void BTA_HhEnable(tBTA_SEC sec_mask, BOOLEAN ucd_enabled, tBTA_HH_CBACK *p_cback);
321BTA_API
extern void BTA_HhDisable(
void);
334BTA_API
extern void BTA_HhOpen (BD_ADDR dev_bda, tBTA_HH_PROTO_MODE mode,
346BTA_API
extern void BTA_HhClose(UINT8 dev_handle);
357BTA_API
extern void BTA_HhSetProtoMode(UINT8 handle, tBTA_HH_PROTO_MODE t_type);
368BTA_API
extern void BTA_HhGetProtoMode(UINT8 dev_handle);
378BTA_API
extern void BTA_HhSetReport(UINT8 dev_handle, tBTA_HH_RPT_TYPE r_type,
390BTA_API
extern void BTA_HhGetReport(UINT8 dev_handle, tBTA_HH_RPT_TYPE r_type,
391 UINT8 rpt_id, UINT16 buf_size);
401BTA_API
extern void BTA_HhSendCtrl(UINT8 dev_handle,
402 tBTA_HH_TRANS_CTRL_TYPE c_type);
413BTA_API
extern void BTA_HhSetIdle(UINT8 dev_handle, UINT16 idle_rate);
425BTA_API
extern void BTA_HhGetIdle(UINT8 dev_handle);
437BTA_API
extern void BTA_HhSendData(UINT8 dev_handle,
BT_HDR *p_buf);
439BTA_API
extern void BTA_HhSendData(UINT8 dev_handle, BD_ADDR dev_bda,
BT_HDR *p_buf);
451BTA_API
extern void BTA_HhGetDscpInfo(UINT8 dev_handle);
466BTA_API
extern void BTA_HhAddDev(BD_ADDR bda, tBTA_HH_ATTR_MASK attr_mask,
467 UINT8 sub_class, UINT8 app_id,
468 tBTA_HH_DEV_DESCR dscp_info);
470BTA_API
extern void BTA_HhAddDev(BD_ADDR bda, tBTA_HH_ATTR_MASK attr_mask,
471 UINT8 sub_class, UINT8 app_id,
483BTA_API
extern void BTA_HhRemoveDev(UINT8 dev_handle );
498BTA_API
extern void BTA_HhParseBootRpt(
tBTA_HH_BOOT_RPT *p_data, UINT8 *p_report,