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