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