hc
2024-08-12 233ab1bd4c5697f5cdec94e60206e8c6ac609b4c
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
#ifndef __BLUETOOTH_SINK_H__
#define __BLUETOOTH_SINK_H__
 
#include <RkBtBase.h>
#include <bt_manager_1s2.h>
 
#ifdef __cplusplus
extern "C" {
#endif
 
typedef struct btmg_track_info_t BtTrackInfo;
 
typedef enum {
   RK_BT_SINK_STATE_IDLE = 0,
   RK_BT_SINK_STATE_CONNECT,
   RK_BT_SINK_STATE_DISCONNECT,
 
   //avrcp
   RK_BT_SINK_STATE_PLAY,
   RK_BT_SINK_STATE_PAUSE,
   RK_BT_SINK_STATE_STOP,
 
   //a2dp(avdtp)
   RK_BT_A2DP_SINK_STARTED,
   RK_BT_A2DP_SINK_SUSPENDED,
   RK_BT_A2DP_SINK_STOPPED,
} RK_BT_SINK_STATE;
 
typedef int (*RK_BT_SINK_CALLBACK)(RK_BT_SINK_STATE state);
typedef void (*RK_BT_SINK_VOLUME_CALLBACK)(int volume);
typedef void (*RK_BT_AVRCP_TRACK_CHANGE_CB)(const char *bd_addr, BtTrackInfo track_info);
typedef void (*RK_BT_AVRCP_PLAY_POSITION_CB)(const char *bd_addr, int song_len, int song_pos);
typedef void (*RK_BT_SINK_UNDERRUN_CB)(void);
 
int rk_bt_sink_register_callback(RK_BT_SINK_CALLBACK cb);
void rk_bt_sink_register_underurn_callback(RK_BT_SINK_UNDERRUN_CB cb);
int rk_bt_sink_register_volume_callback(RK_BT_SINK_VOLUME_CALLBACK cb);
int rk_bt_sink_register_track_callback(RK_BT_AVRCP_TRACK_CHANGE_CB cb);
int rk_bt_sink_register_position_callback(RK_BT_AVRCP_PLAY_POSITION_CB cb);
 
int rk_bt_sink_open();
int rk_bt_sink_close(void);
int rk_bt_sink_get_state(RK_BT_SINK_STATE *p_state);
int rk_bt_sink_play(void);
int rk_bt_sink_pause(void);
int rk_bt_sink_prev(void);
int rk_bt_sink_next(void);
int rk_bt_sink_stop(void);
int rk_bt_sink_volume_up(void);
int rk_bt_sink_volume_down(void);
int rk_bt_sink_set_volume(int volume);
int rk_bt_sink_disconnect();
int rk_bt_sink_connect_by_addr(char *addr);
int rk_bt_sink_disconnect_by_addr(char *addr);
int rk_bt_sink_get_default_dev_addr(char *addr, int len);
int rk_bt_sink_get_play_status();
bool rk_bt_sink_get_poschange();
void rk_bt_sink_set_alsa_device(char *alsa_dev);
 
#ifdef __cplusplus
}
#endif
 
#endif /* __BLUETOOTH_SINK_H__ */