OSDN Git Service

AVRCP_CT: Support Available Player Changed in bt stack
authorSong Gao <quic_songg@quicinc.com>
Fri, 20 Dec 2019 08:25:24 +0000 (16:25 +0800)
committerMyles Watson <mylesgw@google.com>
Thu, 6 Feb 2020 19:50:29 +0000 (19:50 +0000)
Add necessary registering for available player changed
notification in system/bt. Also passing notification
up for further processing.

Bug: 146844863
Change-Id: I3d000b6f707fa80c6adb911a74b3de04b573d445

btif/src/btif_rc.cc [changed mode: 0644->0755]
include/hardware/bt_rc.h [changed mode: 0644->0755]

old mode 100644 (file)
new mode 100755 (executable)
index b61bf4f..b668444
@@ -3056,7 +3056,8 @@ static void handle_get_capability_response(tBTA_AV_META_MSG* pmeta_msg,
           (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_rsp->param.event_id[xx] == AVRC_EVT_UIDS_CHANGE) ||
+          (p_rsp->param.event_id[xx] == AVRC_EVT_AVAL_PLAYERS_CHANGE)) {
         p_event = (btif_rc_supported_event_t*)osi_malloc(
             sizeof(btif_rc_supported_event_t));
         p_event->event_id = p_rsp->param.event_id[xx];
@@ -3171,6 +3172,11 @@ static void handle_notification_response(tBTA_AV_META_MSG* pmeta_msg,
         break;
 
       case AVRC_EVT_AVAL_PLAYERS_CHANGE:
+        BTIF_TRACE_DEBUG("%s: AVRC_EVT_AVAL_PLAYERS_CHANGE", __func__);
+        do_in_jni_thread(
+            FROM_HERE,
+            base::Bind(bt_rc_ctrl_callbacks->available_player_changed_cb,
+                       p_dev->rc_addr));
         break;
 
       case AVRC_EVT_ADDR_PLAYER_CHANGE:
old mode 100644 (file)
new mode 100755 (executable)
index dc46eca..66c1103
@@ -617,6 +617,8 @@ 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);
+typedef void (*btrc_ctrl_available_player_changed_callback)(
+    const RawAddress& bd_addr);
 
 /** BT-RC Controller callback structure. */
 typedef struct {
@@ -643,6 +645,7 @@ typedef struct {
   btrc_ctrl_addressed_player_changed_callback addressed_player_changed_cb;
   btrc_ctrl_now_playing_contents_changed_callback
       now_playing_contents_changed_cb;
+  btrc_ctrl_available_player_changed_callback available_player_changed_cb;
 } btrc_ctrl_callbacks_t;
 
 /** Represents the standard BT-RC AVRCP Controller interface. */