Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -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:
+4 −0
Original line number Diff line number Diff line
@@ -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. */