5656#define HIDP_CTRL_VC_UNPLUG 0x05
5757
5858/* HIDP data transaction headers */
59- #define HIDP_DATA_RTYPE_MASK 0x03
60- #define HIDP_DATA_RSRVD_MASK 0x0c
61- #define HIDP_DATA_RTYPE_OTHER 0x00
62- #define HIDP_DATA_RTYPE_INPUT 0x01
63- #define HIDP_DATA_RTYPE_OUPUT 0x02
64- #define HIDP_DATA_RTYPE_FEATURE 0x03
59+ #define HIDP_DATA_RTYPE_MASK 0x03
60+ #define HIDP_DATA_RSRVD_MASK 0x0c
61+ #define HIDP_DATA_RTYPE_OTHER 0x00
62+ #define HIDP_DATA_RTYPE_INPUT 0x01
63+ #define HIDP_DATA_RTYPE_OUPUT 0x02
64+ #define HIDP_DATA_RTYPE_FEATURE 0x03
6565
6666#define HIDP_PROTO_BOOT 0x00
6767#define HIDP_PROTO_REPORT 0x01
6868
69+ #define BD_LINK_KEY_LEN 16
70+ #define BD_NAME_LEN 248
71+ #define BD_MAX_INQUIRY_DEVS 255
72+
73+ enum pair_mode {
74+ PAIR_MODE_NORMAL ,
75+ PAIR_MODE_TEMPORARY
76+ };
77+
6978#ifdef __cplusplus
70- extern "C" {
79+ extern "C" {
7180#endif /* __cplusplus */
7281
7382struct l2cap_pcb ;
@@ -88,10 +97,22 @@ struct inquiry_info_ex
8897 u16 co ;
8998};
9099
100+ struct bte_inquiry_res
101+ {
102+ u8 count ;
103+ struct inquiry_info_ex * info ;
104+ };
105+
91106struct linkkey_info
92107{
93108 struct bd_addr bdaddr ;
94- u8 key [16 ];
109+ u8 key [BD_LINK_KEY_LEN ];
110+ };
111+
112+ struct pad_name_info
113+ {
114+ struct bd_addr bdaddr ;
115+ u8 name [BD_NAME_LEN ];
95116};
96117
97118struct bte_pcb
@@ -112,6 +133,7 @@ struct bte_pcb
112133
113134
114135 s32 (* recv )(void * arg ,void * buffer ,u16 len );
136+ s32 (* conn_req )(void * arg ,struct bte_pcb * pcb ,struct bd_addr * bdaddr ,u8 * cod ,u8 link_type ,u8 err );
115137 s32 (* conn_cfm )(void * arg ,struct bte_pcb * pcb ,u8 err );
116138 s32 (* disconn_cfm )(void * arg ,struct bte_pcb * pcb ,u8 err );
117139};
@@ -120,34 +142,47 @@ typedef s32 (*btecallback)(s32 result,void *userdata);
120142
121143void BTE_Init (void );
122144void BTE_Shutdown (void );
145+ void BTE_Close (void );
123146s32 BTE_InitCore (btecallback cb );
124147s32 BTE_ApplyPatch (btecallback cb );
125148s32 BTE_InitSub (btecallback cb );
126149s32 BTE_ReadStoredLinkKey (struct linkkey_info * keys ,u8 max_cnt ,btecallback cb );
127150s32 BTE_ReadBdAddr (struct bd_addr * bdaddr , btecallback cb );
151+ s32 BTE_SetEvtFilter (u8 filter_type ,u8 filter_cond_type ,u8 * cond , btecallback cb );
152+ s32 BTE_ReadRemoteName (struct pad_name_info * padinfo , btecallback cb );
153+ s32 BTE_Inquiry (u8 max_cnt ,u8 flush , btecallback cb );
154+ s32 BTE_PeriodicInquiry (u8 max_cnt ,u8 flush ,btecallback cb );
155+ s32 BTE_ExitPeriodicInquiry (void );
156+ s32 BTE_LinkKeyRequestReply (struct bd_addr * bdaddr ,u8 * key );
157+ s32 BTE_LinkKeyRequestNegativeReply (struct bd_addr * bdaddr );
128158void (* BTE_SetDisconnectCallback (void (* callback )(struct bd_addr * bdaddr ,u8 reason )))(struct bd_addr * bdaddr ,u8 reason );
159+ void BTE_SetHostSyncButtonCallback (void (* callback )(u32 held ));
160+ void BTE_SetConnectionRequestCallback (s8 (* callback )(void * arg ,struct bd_addr * bdaddr ,u8 * cod ,u8 link_type ));
161+ void BTE_SetLinkKeyRequestCallback (s8 (* callback )(void * arg ,struct bd_addr * bdaddr ));
162+ void BTE_SetLinkKeyNotificationCallback (s8 (* callback )(void * arg ,struct bd_addr * bdaddr ,u8 * key ));
163+ u8 BTE_GetPairMode (void );
164+ s32 BTE_WriteStoredLinkKey (struct bd_addr * bdaddr ,u8 * key );
165+ s32 BTE_ClearStoredLinkKeys (void );
166+ s32 BTE_DeleteStoredLinkKey (struct bd_addr * bdaddr );
129167
130168struct bte_pcb * bte_new (void );
169+ void bte_free (struct bte_pcb * pcb );
131170void bte_arg (struct bte_pcb * pcb ,void * arg );
132171void bte_received (struct bte_pcb * pcb , s32 (* recv )(void * arg ,void * buffer ,u16 len ));
133172void bte_disconnected (struct bte_pcb * pcb ,s32 (disconn_cfm )(void * arg ,struct bte_pcb * pcb ,u8 err ));
134173
135- s32 bte_registerdeviceasync (struct bte_pcb * pcb ,struct bd_addr * bdaddr ,s32 (* conn_cfm )(void * arg ,struct bte_pcb * pcb ,u8 err ));
136-
137174s32 bte_disconnect (struct bte_pcb * pcb );
138175
139- //s32 bte_listen(struct bte_pcb *pcb,struct bd_addr *bdaddr,u8 psm);
140- //s32 bte_accept(struct bte_pcb *pcb,s32 (*recv)(void *arg,void *buffer,u16 len));
141- s32 bte_inquiry (struct inquiry_info * info ,u8 max_cnt ,u8 flush );
142- s32 bte_inquiry_ex (struct inquiry_info_ex * info ,u8 max_cnt ,u8 flush );
143- //s32 bte_connect(struct bte_pcb *pcb,struct bd_addr *bdaddr,u8 psm,s32 (*recv)(void *arg,void *buffer,u16 len));
144- //s32 bte_connect_ex(struct bte_pcb *pcb,struct inquiry_info_ex *info,u8 psm,s32 (*recv)(void *arg,void *buffer,u16 len));
176+ s32 bte_listenasync (struct bte_pcb * pcb ,struct bd_addr * bdaddr ,s32 (* conn_cfm )(void * arg ,struct bte_pcb * pcb ,u8 err ));
177+ s32 bte_listenasync_step2 (struct bte_pcb * pcb ,s32 (* conn_cfm )(void * arg ,struct bte_pcb * pcb ,u8 err ));
178+ s32 bte_connectasync (struct bte_pcb * pcb ,struct bd_addr * bdaddr ,s32 (* conn_cfm )(void * arg ,struct bte_pcb * pcb ,u8 err ));
179+ s32 bte_connectasync_step2 (struct bte_pcb * pcb ,s32 (* conn_cfm )(void * arg ,struct bte_pcb * pcb ,u8 err ));
145180s32 bte_senddata (struct bte_pcb * pcb ,void * message ,u16 len );
146181s32 bte_sendmessage (struct bte_pcb * pcb ,void * message ,u16 len );
147182s32 bte_sendmessageasync (struct bte_pcb * pcb ,void * message ,u16 len ,s32 (* sent )(void * arg ,struct bte_pcb * pcb ,u8 err ));
148183
149184#ifdef __cplusplus
150- }
185+ }
151186#endif /* __cplusplus */
152187
153188#endif
0 commit comments