diff options
author | Jakub Pawlowski <jpawlowski@google.com> | 2018-03-02 02:22:33 -0800 |
---|---|---|
committer | Jakub Pawlowski <jpawlowski@google.com> | 2018-03-05 21:51:59 +0000 |
commit | 16a63404814c4b1bcf2de6e1a624b5bd8b6b1cf6 (patch) | |
tree | e4da40cdbe2c7b4a5263b6cbd24e04e75cd87771 | |
parent | d96facb53f0fa7a036af8c0aeb37f3df0505faf7 (diff) | |
download | bt-16a63404814c4b1bcf2de6e1a624b5bd8b6b1cf6.tar.gz |
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
-rw-r--r-- | bta/hearing_aid/hearing_aid_audio_source.cc | 9 | ||||
-rw-r--r-- | btif/src/btif_a2dp_control.cc | 11 | ||||
-rw-r--r-- | udrv/include/uipc.h | 4 | ||||
-rw-r--r-- | udrv/ulinux/uipc.cc | 13 |
4 files changed, 19 insertions, 18 deletions
diff --git a/bta/hearing_aid/hearing_aid_audio_source.cc b/bta/hearing_aid/hearing_aid_audio_source.cc index 276957bbe..1c2d2bca0 100644 --- a/bta/hearing_aid/hearing_aid_audio_source.cc +++ b/bta/hearing_aid/hearing_aid_audio_source.cc @@ -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() { diff --git a/btif/src/btif_a2dp_control.cc b/btif/src/btif_a2dp_control.cc index 714cbe284..c0b368354 100644 --- a/btif/src/btif_a2dp_control.cc +++ b/btif/src/btif_a2dp_control.cc @@ -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: diff --git a/udrv/include/uipc.h b/udrv/include/uipc.h index bd1c8bf67..78c6ed38a 100644 --- a/udrv/include/uipc.h +++ b/udrv/include/uipc.h @@ -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 diff --git a/udrv/ulinux/uipc.cc b/udrv/ulinux/uipc.cc index 73c7cb2e4..e2f295028 100644 --- a/udrv/ulinux/uipc.cc +++ b/udrv/ulinux/uipc.cc @@ -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; } |