xref: /OK3568_Linux_fs/external/rkwifibt-app/include/RkBtSource.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1 #ifndef __BLUETOOTH_SOURCE_H__
2 #define __BLUETOOTH_SOURCE_H__
3 
4 #include <RkBtBase.h>
5 
6 #ifdef __cplusplus
7 extern "C" {
8 #endif
9 
10 #define BT_SOURCE_SCAN_DEVICES_CNT	30
11 typedef struct _bt_device_info {
12     char name[128]; // bt name
13     char address[17]; // bt address
14     bool rssi_valid;
15     int rssi;
16     /* Audio Sink? Audio Source? Unknown? Audio Sink | Audio Source(Some devices have sink and source attributes) */
17     char playrole[25];
18 } BtDeviceInfo;
19 
20 /*
21  * Specify Bluetooth scan parameters.
22  * mseconds: How long is the scan, in milliseconds.
23  * item_cnt: Number of devices that have been scanned.
24  * device_list: Save scan results.
25  */
26 typedef struct _bt_scan_parameter {
27     unsigned int mseconds;
28     unsigned char item_cnt;
29     BtDeviceInfo devices[BT_SOURCE_SCAN_DEVICES_CNT];
30 } BtScanParam;
31 
32 typedef enum {
33 	BT_SOURCE_EVENT_CONNECT_FAILED,
34 	BT_SOURCE_EVENT_CONNECTED,
35 	BT_SOURCE_EVENT_DISCONNECT_FAILED,
36 	BT_SOURCE_EVENT_DISCONNECTED,
37 	BT_SOURCE_EVENT_REMOVE_FAILED,
38 	BT_SOURCE_EVENT_REMOVED,
39 	BT_SOURCE_EVENT_RC_PLAY,    /* remote control command */
40 	BT_SOURCE_EVENT_RC_STOP,
41 	BT_SOURCE_EVENT_RC_PAUSE,
42 	BT_SOURCE_EVENT_RC_FORWARD,
43 	BT_SOURCE_EVENT_RC_BACKWARD,
44 	BT_SOURCE_EVENT_RC_VOL_UP,
45 	BT_SOURCE_EVENT_RC_VOL_DOWN,
46 	BT_SOURCE_EVENT_AUTO_RECONNECTING,
47 	BT_SOURCE_EVENT_CONNECTTING,
48 } RK_BT_SOURCE_EVENT;
49 
50 typedef enum {
51 	BT_SOURCE_STATUS_DISCONNECTED = 0,
52 	BT_SOURCE_STATUS_CONNECTED,
53 } RK_BT_SOURCE_STATUS;
54 
55 typedef void (*RK_BT_SOURCE_CALLBACK)(void *userdata, const char *bd_addr, const char *name, const RK_BT_SOURCE_EVENT event);
56 
57 int rk_bt_source_register_status_cb(void *userdata, RK_BT_SOURCE_CALLBACK cb);
58 int rk_bt_source_auto_connect_start(void *userdata, RK_BT_SOURCE_CALLBACK cb);
59 int rk_bt_source_auto_connect_stop(void);
60 int rk_bt_source_open(void);
61 int rk_bt_source_close(void);
62 int rk_bt_source_get_device_name(char *name, int len);
63 int rk_bt_source_get_device_addr(char *addr, int len);
64 int rk_bt_source_get_status(RK_BT_SOURCE_STATUS *pstatus, char *name, int name_len, char *addr, int addr_len);
65 int rk_bt_source_scan(BtScanParam *data);
66 int rk_bt_source_connect_by_addr(char *address);
67 int rk_bt_source_disconnect_by_addr(char *address);
68 int rk_bt_source_disconnect();
69 int rk_bt_source_remove(char *address);
70 int rk_bt_source_resume(void);
71 int rk_bt_source_stop(void);
72 int rk_bt_source_pause(void);
73 int rk_bt_source_vol_up(void);
74 int rk_bt_source_vol_down(void);
75 int rk_bt_source_set_vol(int vol);
76 
77 #ifdef __cplusplus
78 }
79 #endif
80 
81 #endif /* __BLUETOOTH_SOURCE_H__ */
82