xref: /OK3568_Linux_fs/external/rkwifibt-app/include/RkBle.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun #ifndef __BLUETOOTH_BLE_H__
2*4882a593Smuzhiyun #define __BLUETOOTH_BLE_H__
3*4882a593Smuzhiyun 
4*4882a593Smuzhiyun #include <RkBtBase.h>
5*4882a593Smuzhiyun 
6*4882a593Smuzhiyun #ifdef __cplusplus
7*4882a593Smuzhiyun extern "C" {
8*4882a593Smuzhiyun #endif
9*4882a593Smuzhiyun 
10*4882a593Smuzhiyun typedef enum {
11*4882a593Smuzhiyun 	RK_BLE_STATE_IDLE = 0,
12*4882a593Smuzhiyun 	RK_BLE_STATE_CONNECT,
13*4882a593Smuzhiyun 	RK_BLE_STATE_DISCONNECT
14*4882a593Smuzhiyun } RK_BLE_STATE;
15*4882a593Smuzhiyun 
16*4882a593Smuzhiyun typedef struct {
17*4882a593Smuzhiyun 	char uuid[38];
18*4882a593Smuzhiyun 	char data[BT_ATT_MAX_VALUE_LEN];
19*4882a593Smuzhiyun 	int len;
20*4882a593Smuzhiyun } RkBleConfig;
21*4882a593Smuzhiyun 
22*4882a593Smuzhiyun typedef void (*RK_BLE_STATE_CALLBACK)(const char *bd_addr, const char *name, RK_BLE_STATE state);
23*4882a593Smuzhiyun typedef void (*RK_BLE_RECV_CALLBACK)(const char *uuid, char *data, int len);
24*4882a593Smuzhiyun typedef void (*RK_BLE_REQUEST_DATA)(const char *uuid);
25*4882a593Smuzhiyun 
26*4882a593Smuzhiyun int rk_ble_register_status_callback(RK_BLE_STATE_CALLBACK cb);
27*4882a593Smuzhiyun int rk_ble_register_recv_callback(RK_BLE_RECV_CALLBACK cb);
28*4882a593Smuzhiyun void rk_ble_register_mtu_callback(RK_BT_MTU_CALLBACK cb);
29*4882a593Smuzhiyun void rk_ble_register_request_data_callback(RK_BLE_REQUEST_DATA cb);
30*4882a593Smuzhiyun int rk_ble_start(RkBleContent *ble_content);
31*4882a593Smuzhiyun int rk_ble_stop(void);
32*4882a593Smuzhiyun int rk_ble_get_state(RK_BLE_STATE *p_state);
33*4882a593Smuzhiyun int rk_ble_write(const char *uuid, char *data, int len);
34*4882a593Smuzhiyun int rk_ble_disconnect(void);
35*4882a593Smuzhiyun int rk_bt_ble_set_visibility(const int visiable, const int connect);
36*4882a593Smuzhiyun void rk_ble_set_local_privacy(bool local_privacy);
37*4882a593Smuzhiyun int rk_ble_set_address(char *address);
38*4882a593Smuzhiyun 
39*4882a593Smuzhiyun /*smallest value: 32(32 * 0.625ms = 20ms)*/
40*4882a593Smuzhiyun int rk_ble_set_adv_interval(unsigned short adv_int_min, unsigned short adv_int_max);
41*4882a593Smuzhiyun 
42*4882a593Smuzhiyun #ifdef __cplusplus
43*4882a593Smuzhiyun }
44*4882a593Smuzhiyun #endif
45*4882a593Smuzhiyun 
46*4882a593Smuzhiyun #endif /* __BLUETOOTH_BLE_H__ */
47