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