xref: /OK3568_Linux_fs/external/rkwifibt-app/test/rkbtsource_common.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1 #ifndef __RK_BT_SOURCE_COMMON__
2 #define __RK_BT_SOURCE_COMMON__
3 
4 #ifndef msleep
5 #define msleep(x) usleep(x * 1000)
6 #endif
7 
8 #define PRINT_FLAG_RKBTSOURCE "[RK_BT_RKBTSOURCE]"
9 #define PRINT_FLAG_SCAN "[RK_BT_SCAN]"
10 #define PRINT_FLAG_ERR "[RK_BT_ERROR]"
11 #define PRINT_FLAG_SUCESS "[RK_BT_SUCESS]"
12 
13 #define RKBTSOURCE_SERVER_SOCKET_PATH "/tmp/rockchip_btsource_server"
14 #define RKBTSOURCE_CLIENT_SOCKET_PATH "/tmp/rockchip_btsource_client"
15 
16 /* The order must correspond to bt_command_table */
17 enum rk_bt_source_cmd {
18 	RK_BT_INIT = 1,
19 	RK_BT_DEINIT,
20 	RK_BT_SCAN_ON,
21 	RK_BT_SCAN_OFF,
22 	RK_BT_SOURCE_OPEN,
23 	RK_BT_SOURCE_CLOSE,
24 	RK_BT_SOURCE_CONNECT,
25 	RK_BT_SOURCE_DISCONNECT,
26 	RK_BT_SOURCE_REMOVE,
27 	RK_BT_GET_PAIRED_DEVICES,
28 	RK_BT_SPP_LISTEN,
29 	RK_BT_SPP_CONNECT,
30 	RK_BT_SPP_WRITE,
31 	RK_BT_SPP_CLOSE,
32 	RK_BT_PING,
33 };
34 
35 enum rk_bt_evt {
36 	RK_BT_EVT_INIT_OK = 1,
37 	RK_BT_EVT_DEINIT_OK,
38 	RK_BT_EVT_SCAN_ON,
39 	RK_BT_EVT_SCANNING,
40 	RK_BT_EVT_SCAN_OFF,
41 	RK_BT_EVT_SCAN_ADD_DEV,
42 	RK_BT_EVT_SCAN_CHANGE_DEV,
43 	RK_BT_EVT_SCAN_REMOVE_DEV,
44 	RK_BT_EVT_SOURCE_OPEN,
45 	RK_BT_EVT_SOURCE_CLOSE,
46 	RK_BT_EVT_SOURCE_CONNECTED,
47 	RK_BT_EVT_SOURCE_DISCONNECTED,
48 	RK_BT_EVT_SOURCE_CONNECT_FAILED,
49 	RK_BT_EVT_SOURCE_REMOVED,
50 	RK_BT_EVT_SPP_CONNECTED,
51 	RK_BT_EVT_SPP_DISCONNECTED,
52 	RK_BT_EVT_SPP_CONNECT_FAILED,
53 	RK_BT_EVT_SPP_CLIENT_FD,
54 	RK_BT_EVT_PAIRED_DEV,
55 	RK_BT_EVT_PONG,
56 };
57 
58 typedef struct {
59 	enum rk_bt_evt evt_id;
60 	const char *desc;
61 } bt_evt_str_t;
62 
63 static bt_evt_str_t bt_evt_str_table[] = {
64 	{0, "rkbt null"},
65 	{RK_BT_EVT_INIT_OK, "rkbt init ok"},
66 	{RK_BT_EVT_DEINIT_OK, "rkbt deinit ok"},
67 	{RK_BT_EVT_SCAN_ON, "rkbt scan on ok"},
68 	{RK_BT_EVT_SCANNING, "rkbt scaning"},
69 	{RK_BT_EVT_SCAN_OFF, "rkbt scan off"},
70 	{RK_BT_EVT_SCAN_ADD_DEV, "rkbt scan found dev"},
71 	{RK_BT_EVT_SCAN_REMOVE_DEV, "rkbt scan disapper dev"},
72 	{RK_BT_EVT_SOURCE_OPEN, "rkbt a2dp source open"},
73 	{RK_BT_EVT_SOURCE_CONNECTED, "rkbt connect ok"},
74 	{RK_BT_EVT_SOURCE_DISCONNECTED, "rkbt disconnect ok"},
75 	{RK_BT_EVT_SOURCE_REMOVED, "rkbt remove ok"},
76 };
77 
78 #define RKBTSOURCE_MSG_INIT_OK "rkbt init ok"
79 #define RKBTSOURCE_MSG_DEINIT_OK "rkbt deinit ok"
80 #define RKBTSOURCE_MSG_SCAN_OFF "rkbt scan off"
81 #define RKBTSOURCE_MSG_CONNECT_OK "rkbt connect ok"
82 #define RKBTSOURCE_MSG_CONNECT_ERR "rkbt connect err"
83 #define RKBTSOURCE_MSG_DISCONNECT_OK "rkbt disconnect ok"
84 #define RKBTSOURCE_MSG_REMOVE_OK "rkbt remove ok"
85 #define RKBTSOURCE_MSG_ERR "rkbt exec err"
86 
87 typedef struct {
88 	char name[128];
89 	char addr[18];
90 	char role;
91 	char change;
92 	int rssi;
93 	int is_connected;
94 } scan_device_t;
95 
96 enum rk_bt_msg_type {
97 	RK_BT_CMD = 1,
98 	RK_BT_EVT,
99 };
100 
101 typedef struct {
102 	enum rk_bt_msg_type type;
103 	char id;
104 	char addr[24];
105 	char data[24];
106 	scan_device_t dev;
107 } bt_msg_t;
108 
109 typedef struct {
110 	const char *cmd;
111 	int cmd_id;
112 } bt_commands_t;
113 
114 static bt_commands_t bt_command_tbs[] = {
115 	{"", NULL},
116 	{"init bluetooth", RK_BT_INIT},
117 	{"deinit bluetooth", RK_BT_DEINIT},
118 	{"open a2dp source", RK_BT_SOURCE_OPEN},
119 	{"close a2dp source", RK_BT_SOURCE_OPEN},
120 	{"scan on", RK_BT_SCAN_ON},
121 	{"scan off", RK_BT_SCAN_OFF},
122 	{"connect [address]", RK_BT_SOURCE_CONNECT},
123 	{"disconnect [address]", RK_BT_SOURCE_DISCONNECT},
124 	{"remove [address]", RK_BT_SOURCE_REMOVE},
125 	{"get paired devices", RK_BT_GET_PAIRED_DEVICES},
126 	{"spp listen", RK_BT_SPP_LISTEN},
127 	{"spp connect", RK_BT_SPP_CONNECT},
128 	{"spp write", RK_BT_SPP_WRITE},
129 	{"spp close", RK_BT_SPP_CLOSE},
130 	{"ping", RK_BT_PING},
131 };
132 
133 #define BT_SHARE_MSG_MAGIC 0x42544D41
134 #define BT_CMD_CONNECT 1
135 #define BT_CMD_DISCONNECT 2
136 #define BT_CMD_SCAN_DEV 3
137 #define BT_CMD_SCAN_START 4
138 #define BT_CMD_SCAN_STOP 5
139 
140 typedef struct{
141 	char dev_name[128];
142 	char addr[18];
143 	int signal_qua;
144 	char online;
145 	char connect;
146 } bluetooch_dev_t;
147 
148 #endif
149