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

Commit 3360f04e authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Use proper sockets for A2DP and Hearing Aid HAL" into pi-dev

parents 3310014a 51d73a97
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -115,7 +115,8 @@ void hearing_aid_recv_ctrl_data() {
    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 @@ void hearing_aid_ctrl_cb(tUIPC_CH_ID, tUIPC_EVENT event) {
    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::Stop() {

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() {
+7 −4
Original line number Diff line number Diff line
@@ -52,7 +52,7 @@ std::unique_ptr<tUIPC_STATE> a2dp_uipc;

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 @@ static void btif_a2dp_recv_ctrl_data(void) {

      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 @@ static void btif_a2dp_recv_ctrl_data(void) {
         * 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 @@ static void btif_a2dp_ctrl_cb(UNUSED_ATTR tUIPC_CH_ID ch_id,
    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:
+3 −1
Original line number Diff line number Diff line
@@ -90,9 +90,11 @@ std::unique_ptr<tUIPC_STATE> UIPC_Init();
 *
 * @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
+3 −10
Original line number Diff line number Diff line
@@ -539,7 +539,8 @@ std::unique_ptr<tUIPC_STATE> UIPC_Init() {
 ** 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 @@ bool UIPC_Open(tUIPC_STATE& uipc, tUIPC_CH_ID ch_id, tUIPC_RCV_CBACK* p_cback) {
    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;
}