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

Commit 33978cf1 authored by Joseph Pirozzo's avatar Joseph Pirozzo
Browse files

Add support for AVRCP addressed player changed.

When the addressed player notification comes in decode it and provide
the status up to the java layer correctly.

Bug: 72495707
Test: change media player on paired phone and observe callback.
Change-Id: Iebaae524c06f5c4b7bc962d1f55d539910510e1f
parent f35943c8
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -3246,8 +3246,9 @@ static void handle_notification_response(tBTA_AV_META_MSG* pmeta_msg,

      case AVRC_EVT_ADDR_PLAYER_CHANGE:
        do_in_jni_thread(
            FROM_HERE, base::Bind(bt_rc_ctrl_callbacks->set_addressed_player_cb,
                                  p_dev->rc_addr, BTRC_STS_ADDR_PLAY_CHGD));
            FROM_HERE,
            base::Bind(bt_rc_ctrl_callbacks->addressed_player_changed_cb,
                       p_dev->rc_addr, p_rsp->param.addr_player.player_id));
        break;

      case AVRC_EVT_UIDS_CHANGE:
+4 −0
Original line number Diff line number Diff line
@@ -613,6 +613,9 @@ typedef void (*btrc_ctrl_set_browsed_player_callback)(const RawAddress& bd_addr,
                                                      uint8_t depth);
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);

/** BT-RC Controller callback structure. */
typedef struct {
  /** set to sizeof(BtRcCallbacks) */
@@ -635,6 +638,7 @@ typedef struct {
  btrc_ctrl_change_path_callback change_folder_path_cb;
  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_callbacks_t;

/** Represents the standard BT-RC AVRCP Controller interface. */
+3 −0
Original line number Diff line number Diff line
@@ -132,6 +132,9 @@ void avrc_parse_notification_rsp(uint8_t* p_stream,
      break;

    case AVRC_EVT_ADDR_PLAYER_CHANGE:
      BE_STREAM_TO_UINT16(p_rsp->param.addr_player.player_id, p_stream);
      BE_STREAM_TO_UINT16(p_rsp->param.addr_player.uid_counter, p_stream);

      break;

    case AVRC_EVT_UIDS_CHANGE: