1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
77
78
79
80
81
83
84
85
86
87
88
89
90
91
92
93
94
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
130
131
132
133
134
136
137
138
139
140
141
142
143
144
/* ... */
/* ... */
#ifndef HID_INT_H
#define HID_INT_H
#include "hid_conn.h"
#include "stack/l2c_api.h"
#if (BT_HID_INCLUDED == TRUE)
#if (HID_HOST_INCLUDED == TRUE)
#include "stack/hidh_api.h"
enum { HID_DEV_NO_CONN, HID_DEV_CONNECTED };
typedef struct per_device_ctb {
BOOLEAN in_use;
BOOLEAN delay_remove;
BD_ADDR addr;
UINT16 attr_mask;
/* ... */
UINT8 state;
UINT8 conn_tries;
tHID_CONN conn;
}{...} tHID_HOST_DEV_CTB;
typedef struct host_ctb {
tHID_HOST_DEV_CTB devices[HID_HOST_MAX_DEVICES];
tHID_HOST_DEV_CALLBACK *callback;
tL2CAP_CFG_INFO l2cap_cfg;
#define MAX_SERVICE_DB_SIZE 4000
BOOLEAN sdp_busy;
tHID_HOST_SDP_CALLBACK *sdp_cback;
tSDP_DISCOVERY_DB *p_sdp_db;
tHID_DEV_SDP_INFO sdp_rec;
BOOLEAN reg_flag;
UINT8 trace_level;
}{...} tHID_HOST_CTB;
extern tHID_STATUS hidh_conn_snd_data(UINT8 dhandle, UINT8 trans_type, UINT8 param, \
UINT16 data, UINT8 rpt_id, BT_HDR *buf);
extern tHID_STATUS hidh_conn_reg (void);
extern void hidh_conn_dereg( void );
extern tHID_STATUS hidh_conn_disconnect (UINT8 dhandle);
extern tHID_STATUS hidh_conn_initiate (UINT8 dhandle);
extern BOOLEAN hidh_conn_is_orig(UINT8 dhandle);
extern void hidh_proc_repage_timeout (TIMER_LIST_ENT *p_tle);
#ifdef __cplusplus
extern "C" {
#endif
/* ... */
#if HID_DYNAMIC_MEMORY == FALSE
extern tHID_HOST_CTB hh_cb;
#else
extern tHID_HOST_CTB *hidh_cb_ptr;
#define hh_cb (*hidh_cb_ptr)/* ... */
#endif
#ifdef __cplusplus
}{...}
#endif/* ... */
#endif
#if (HID_DEV_INCLUDED == TRUE)
#include "stack/hidd_api.h"
enum { HIDD_DEV_NO_CONN, HIDD_DEV_CONNECTED };
typedef struct device_ctb {
bool in_use;
BD_ADDR addr;
uint8_t state;
tHID_CONN conn;
bool boot_mode;
uint8_t idle_time;
}{...} tHID_DEV_DEV_CTB;
typedef struct dev_ctb {
tHID_DEV_DEV_CTB device;
tHID_DEV_HOST_CALLBACK *callback;
tL2CAP_CFG_INFO l2cap_cfg;
tL2CAP_CFG_INFO l2cap_intr_cfg;
bool use_in_qos;
FLOW_SPEC in_qos;
bool reg_flag;
uint8_t trace_level;
bool allow_incoming;
BT_HDR *pending_data;
bool pending_vc_unplug;
}{...} tHID_DEV_CTB;
extern tHID_STATUS hidd_conn_reg(void);
extern void hidd_conn_dereg(void);
extern tHID_STATUS hidd_conn_initiate(void);
extern tHID_STATUS hidd_conn_disconnect(void);
extern tHID_STATUS hidd_conn_send_data(uint8_t channel, uint8_t msg_type, uint8_t param, uint8_t data, uint16_t len,
uint8_t *p_data);
#ifdef __cplusplus
extern "C" {
#endif
/* ... */
#if HID_DYNAMIC_MEMORY == FALSE
extern tHID_DEV_CTB hd_cb;
#else
extern tHID_DEV_CTB *hidd_cb_ptr;
#define hd_cb (*hidd_cb_ptr)/* ... */
#endif
#ifdef __cplusplus
}{...}
#endif/* ... */
#endif
/* ... */
#endif /* ... */
#endif