#ifndef AVRCPCTRL_H #define AVRCPCTRL_H #include "RkBtSink.h" //play status #define AVRCP_PLAY_STATUS_STOPPED 0x00 // 停止 #define AVRCP_PLAY_STATUS_PLAYING 0x01 //正在播放 #define AVRCP_PLAY_STATUS_PAUSED 0x02 //暂停播放 #define AVRCP_PLAY_STATUS_FWD_SEEK 0x03 //快进 #define AVRCP_PLAY_STATUS_REV_SEEK 0x04 //重播 #define AVRCP_PLAY_STATUS_ERROR 0xFF //错误状态 /* Menu items */ enum AVK_CMD { APP_AVK_MENU_DISCOVERY = 1, APP_AVK_MENU_REGISTER, APP_AVK_MENU_DEREGISTER, APP_AVK_MENU_OPEN, APP_AVK_MENU_CLOSE, APP_AVK_MENU_PLAY_START, APP_AVK_MENU_PLAY_STOP, APP_AVK_MENU_PLAY_PAUSE, APP_AVK_MENU_PLAY_NEXT_TRACK, APP_AVK_MENU_PLAY_PREVIOUS_TRACK, APP_AVK_MENU_RC_OPEN, APP_AVK_MENU_RC_CLOSE, APP_AVK_MENU_RC_CMD, APP_AVK_MENU_GET_ELEMENT_ATTR, APP_AVK_MENU_GET_CAPABILITIES, APP_AVK_MENU_REGISTER_NOTIFICATION, APP_AVK_MENU_REGISTER_NOTIFICATION_RESPONSE, APP_AVK_MENU_SEND_DELAY_RPT, APP_AVK_MENU_SEND_ABORT_REQ, APP_AVK_MENU_GET_PLAY_STATUS, APP_AVK_MENU_GET_ELEMENT_ATTRIBUTES, APP_AVK_MENU_SET_BROWSED_PLAYER, APP_AVK_MENU_SET_ADDRESSED_PLAYER, APP_AVK_MENU_GET_FOLDER_ITEMS, APP_AVK_MENU_CHANGE_PATH, APP_AVK_MENU_GET_ITEM_ATTRIBUTES, APP_AVK_MENU_PLAY_ITEM, APP_AVK_MENU_ADD_TO_NOW_PLAYING, APP_AVK_MENU_LIST_PLAYER_APP_SET_ATTR, APP_AVK_MENU_LIST_PLAYER_APP_SET_VALUE, APP_AVK_MENU_SET_ABSOLUTE_VOLUME, APP_AVK_MENU_SELECT_STREAMING_DEVICE, APP_AVK_MENU_QUIT = 99 }; /** * 初始化 蓝牙音频反向控制模块 */ int init_avrcp_ctrl(); /** * 释放蓝牙音频反向控制相关资源 */ int release_avrcp_ctrl(); int release_avrcp_ctrl2(void); /** * 播放 */ int play_avrcp(); /** * 暂停播放 */ int pause_avrcp(); /** * 停止播放 */ int stop_avrcp(); /** * 下一首 */ int next_avrcp(); /** * 上一首 */ int previous_avrcp(); /** * 获取当前蓝牙音频状态 */ int getstatus_avrcp(); void volumeup_avrcp(); void volumedown_avrcp(); bool check_default_player(void); bool reconn_last(void); bool disconn_device(void); void a2dp_sink_open(void); void rkbt_inquiry_scan(bool scan); void a2dp_sink_register_cb(RK_BT_SINK_CALLBACK cb); void a2dp_sink_register_track_cb(RK_BT_AVRCP_TRACK_CHANGE_CB cb); void a2dp_sink_register_position_cb(RK_BT_AVRCP_PLAY_POSITION_CB cb); void a2dp_sink_register_volume_cb(RK_BT_SINK_VOLUME_CALLBACK cb); void a2dp_sink_clear_cb(); int a2dp_sink_status(RK_BT_SINK_STATE *pState); void bt_sink_state_send(RK_BT_SINK_STATE state); int get_play_status_avrcp(void); bool get_poschange_avrcp(void); #endif