Skip to content
Snippets Groups Projects
Commit bf361630 authored by Joseph Pirozzo's avatar Joseph Pirozzo
Browse files

AVRCP Controller media session queue

Add support for the Now Playing Content available through AVRCP to
receive proper notifications when it changes and expose it via media
session rather than a node in the browse tree.

Bug: 78598689
Test: Stream Music, change songs and playlist, verify media session
queue.

Change-Id: I46c32d05c5a674388c9e59830ec0596432cd78ef
parent 315dcd4f
No related branches found
No related tags found
No related merge requests found
......@@ -3051,6 +3051,7 @@ static void handle_get_capability_response(tBTA_AV_META_MSG* pmeta_msg,
if ((p_rsp->param.event_id[xx] == AVRC_EVT_PLAY_STATUS_CHANGE) ||
(p_rsp->param.event_id[xx] == AVRC_EVT_TRACK_CHANGE) ||
(p_rsp->param.event_id[xx] == AVRC_EVT_APP_SETTING_CHANGE) ||
(p_rsp->param.event_id[xx] == AVRC_EVT_NOW_PLAYING_CHANGE) ||
(p_rsp->param.event_id[xx] == AVRC_EVT_ADDR_PLAYER_CHANGE) ||
(p_rsp->param.event_id[xx] == AVRC_EVT_UIDS_CHANGE)) {
p_event = (btif_rc_supported_event_t*)osi_malloc(
......@@ -3161,6 +3162,10 @@ static void handle_notification_response(tBTA_AV_META_MSG* pmeta_msg,
break;
case AVRC_EVT_NOW_PLAYING_CHANGE:
do_in_jni_thread(
FROM_HERE,
base::Bind(bt_rc_ctrl_callbacks->now_playing_contents_changed_cb,
p_dev->rc_addr));
break;
case AVRC_EVT_AVAL_PLAYERS_CHANGE:
......
......@@ -615,6 +615,8 @@ typedef void (*btrc_ctrl_set_addressed_player_callback)(
const RawAddress& bd_addr, uint8_t status);
typedef void (*btrc_ctrl_addressed_player_changed_callback)(
const RawAddress& bd_addr, uint16_t id);
typedef void (*btrc_ctrl_now_playing_contents_changed_callback)(
const RawAddress& bd_addr);
/** BT-RC Controller callback structure. */
typedef struct {
......@@ -639,6 +641,8 @@ typedef struct {
btrc_ctrl_set_browsed_player_callback set_browsed_player_cb;
btrc_ctrl_set_addressed_player_callback set_addressed_player_cb;
btrc_ctrl_addressed_player_changed_callback addressed_player_changed_cb;
btrc_ctrl_now_playing_contents_changed_callback
now_playing_contents_changed_cb;
} btrc_ctrl_callbacks_t;
/** Represents the standard BT-RC AVRCP Controller interface. */
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment