Use proper sockets for A2DP and Hearing Aid HAL

Test: bond both Hearing Aid and Headset, try to stream to devices separately
Bug: 69623109
Change-Id: I81c9baa65d2ef114d4e964db29beb85def2629ae
diff --git a/bta/hearing_aid/hearing_aid_audio_source.cc b/bta/hearing_aid/hearing_aid_audio_source.cc
index 276957b..1c2d2bc 100644
--- a/bta/hearing_aid/hearing_aid_audio_source.cc
+++ b/bta/hearing_aid/hearing_aid_audio_source.cc
@@ -115,7 +115,8 @@
     case HEARING_AID_CTRL_CMD_START:
       localAudioReceiver->OnAudioResume();
       // timer is restarted in UIPC_Open
-      UIPC_Open(*uipc_hearing_aid, UIPC_CH_ID_AV_AUDIO, hearing_aid_data_cb);
+      UIPC_Open(*uipc_hearing_aid, UIPC_CH_ID_AV_AUDIO, hearing_aid_data_cb,
+                HEARING_AID_DATA_PATH);
       hearing_aid_send_ack(HEARING_AID_CTRL_ACK_SUCCESS);
       break;
 
@@ -229,7 +230,8 @@
     case UIPC_OPEN_EVT:
       break;
     case UIPC_CLOSE_EVT:
-      UIPC_Open(*uipc_hearing_aid, UIPC_CH_ID_AV_CTRL, hearing_aid_ctrl_cb);
+      UIPC_Open(*uipc_hearing_aid, UIPC_CH_ID_AV_CTRL, hearing_aid_ctrl_cb,
+                HEARING_AID_CTRL_PATH);
       break;
     case UIPC_RX_DATA_READY_EVT:
       hearing_aid_recv_ctrl_data();
@@ -254,7 +256,8 @@
 
 void HearingAidAudioSource::Initialize() {
   uipc_hearing_aid = UIPC_Init();
-  UIPC_Open(*uipc_hearing_aid, UIPC_CH_ID_AV_CTRL, hearing_aid_ctrl_cb);
+  UIPC_Open(*uipc_hearing_aid, UIPC_CH_ID_AV_CTRL, hearing_aid_ctrl_cb,
+            HEARING_AID_CTRL_PATH);
 }
 
 void HearingAidAudioSource::CleanUp() {
diff --git a/btif/src/btif_a2dp_control.cc b/btif/src/btif_a2dp_control.cc
index 714cbe2..c0b3683 100644
--- a/btif/src/btif_a2dp_control.cc
+++ b/btif/src/btif_a2dp_control.cc
@@ -52,7 +52,7 @@
 
 void btif_a2dp_control_init(void) {
   a2dp_uipc = UIPC_Init();
-  UIPC_Open(*a2dp_uipc, UIPC_CH_ID_AV_CTRL, btif_a2dp_ctrl_cb);
+  UIPC_Open(*a2dp_uipc, UIPC_CH_ID_AV_CTRL, btif_a2dp_ctrl_cb, A2DP_CTRL_PATH);
 }
 
 void btif_a2dp_control_cleanup(void) {
@@ -118,7 +118,8 @@
 
       if (btif_av_stream_ready()) {
         /* Setup audio data channel listener */
-        UIPC_Open(*a2dp_uipc, UIPC_CH_ID_AV_AUDIO, btif_a2dp_data_cb);
+        UIPC_Open(*a2dp_uipc, UIPC_CH_ID_AV_AUDIO, btif_a2dp_data_cb,
+                  A2DP_DATA_PATH);
 
         /*
          * Post start event and wait for audio path to open.
@@ -136,7 +137,8 @@
          * Already started, setup audio data channel listener and ACK
          * back immediately.
          */
-        UIPC_Open(*a2dp_uipc, UIPC_CH_ID_AV_AUDIO, btif_a2dp_data_cb);
+        UIPC_Open(*a2dp_uipc, UIPC_CH_ID_AV_AUDIO, btif_a2dp_data_cb,
+                  A2DP_DATA_PATH);
         btif_a2dp_command_ack(A2DP_CTRL_ACK_SUCCESS);
         break;
       }
@@ -310,7 +312,8 @@
     case UIPC_CLOSE_EVT:
       /* restart ctrl server unless we are shutting down */
       if (btif_a2dp_source_media_task_is_running())
-        UIPC_Open(*a2dp_uipc, UIPC_CH_ID_AV_CTRL, btif_a2dp_ctrl_cb);
+        UIPC_Open(*a2dp_uipc, UIPC_CH_ID_AV_CTRL, btif_a2dp_ctrl_cb,
+                  A2DP_CTRL_PATH);
       break;
 
     case UIPC_RX_DATA_READY_EVT:
diff --git a/udrv/include/uipc.h b/udrv/include/uipc.h
index bd1c8bf..78c6ed3 100644
--- a/udrv/include/uipc.h
+++ b/udrv/include/uipc.h
@@ -90,9 +90,11 @@
  *
  * @param ch_id Channel ID
  * @param p_cback Callback handler
+ * @param socket_path Path to the socket
  * @return true on success, otherwise false
  */
-bool UIPC_Open(tUIPC_STATE& uipc, tUIPC_CH_ID ch_id, tUIPC_RCV_CBACK* p_cback);
+bool UIPC_Open(tUIPC_STATE& uipc, tUIPC_CH_ID ch_id, tUIPC_RCV_CBACK* p_cback,
+               const char* socket_path);
 
 /**
  * Closes a channel in UIPC or the entire UIPC module
diff --git a/udrv/ulinux/uipc.cc b/udrv/ulinux/uipc.cc
index 73c7cb2..e2f2950 100644
--- a/udrv/ulinux/uipc.cc
+++ b/udrv/ulinux/uipc.cc
@@ -539,7 +539,8 @@
  ** Returns          true in case of success, false in case of failure.
  **
  ******************************************************************************/
-bool UIPC_Open(tUIPC_STATE& uipc, tUIPC_CH_ID ch_id, tUIPC_RCV_CBACK* p_cback) {
+bool UIPC_Open(tUIPC_STATE& uipc, tUIPC_CH_ID ch_id, tUIPC_RCV_CBACK* p_cback,
+               const char* socket_path) {
   BTIF_TRACE_DEBUG("UIPC_Open : ch_id %d, p_cback %x", ch_id, p_cback);
 
   std::lock_guard<std::recursive_mutex> lock(uipc.mutex);
@@ -553,15 +554,7 @@
     return 0;
   }
 
-  switch (ch_id) {
-    case UIPC_CH_ID_AV_CTRL:
-      uipc_setup_server_locked(uipc, ch_id, A2DP_CTRL_PATH, p_cback);
-      break;
-
-    case UIPC_CH_ID_AV_AUDIO:
-      uipc_setup_server_locked(uipc, ch_id, A2DP_DATA_PATH, p_cback);
-      break;
-  }
+  uipc_setup_server_locked(uipc, ch_id, socket_path, p_cback);
 
   return true;
 }