From e54b64b2ba144a759921c5e12247c3850f196eb4 Mon Sep 17 00:00:00 2001 From: Sohyeon Choi Date: Thu, 31 Aug 2023 18:52:09 +0900 Subject: [PATCH] handling a2dp/avrcp auth request according to A2DP role Change-Id: I2ded461a380514756fa1cf570a7f9a908a2b2b4c --- .../services/audio/a2dp_src/bt-service-a2dp-src.c | 13 ++++------ bt-service/services/audio/bt-service-audio.c | 30 ++++++++++++---------- .../services/device/bt-service-core-device.c | 12 +++------ 3 files changed, 25 insertions(+), 30 deletions(-) diff --git a/bt-service/services/audio/a2dp_src/bt-service-a2dp-src.c b/bt-service/services/audio/a2dp_src/bt-service-a2dp-src.c index 3bc7f63..2a2a42f 100644 --- a/bt-service/services/audio/a2dp_src/bt-service-a2dp-src.c +++ b/bt-service/services/audio/a2dp_src/bt-service-a2dp-src.c @@ -359,15 +359,12 @@ void _bt_a2dp_src_handle_incoming_authorization(char *address, int service_id) case A2DP_SERVICE_ID: if (TIZEN_FEATURE_FHUB_REFERENCE) { if (_bt_audio_get_current_role() == BLUETOOTH_A2DP_SOURCE) { - BT_INFO("Current local A2DP role is Source.. reject [%s] device authorization request with [%d]", - address, service_id); - res = device_reply_auth_request((bt_address_t*)&device_address, service_id, FALSE, FALSE); - if (res != OAL_STATUS_SUCCESS) - BT_ERR("authorize_response: %d", res); - return; + BT_INFO("Current local A2DP role is Source.. Check current connected A2DP sink remote device"); + connected = _bt_is_headset_type_connected(BT_AUDIO_A2DP, connected_address); + } else { + BT_INFO("Current local A2DP role is Sink.. Check current connected A2DP source remote device"); + connected = _bt_is_headset_type_connected(BT_AUDIO_A2DP_SOURCE, connected_address); } - - connected = _bt_is_headset_type_connected(BT_AUDIO_A2DP_SOURCE, connected_address); } else connected = _bt_is_headset_type_connected(BT_AUDIO_A2DP, connected_address); diff --git a/bt-service/services/audio/bt-service-audio.c b/bt-service/services/audio/bt-service-audio.c index 58ea05c..a03227e 100644 --- a/bt-service/services/audio/bt-service-audio.c +++ b/bt-service/services/audio/bt-service-audio.c @@ -1388,25 +1388,29 @@ void _bt_audio_handle_incoming_authorization(char *address, int service_id) BT_DBG("Connected [0x%x]", connected); break; case AVRCP_SERVICE_ID: - if (TIZEN_FEATURE_FHUB_REFERENCE) { - connected = _bt_is_headset_type_connected(BT_AVRCP, connected_address); - break; - } + break; default: BT_ERR("Invalid HFP device ID.. [%d]", service_id); return; } if (TIZEN_FEATURE_FHUB_REFERENCE) { - if (service_id == HFP_HS_SERVICE_ID || service_id == AVRCP_SERVICE_ID) { - if (curr_audio_role != BLUETOOTH_A2DP_SINK) { - BT_INFO("Current local A2DP role is Source.. reject [%s] device authorization request with [%d]", - address, service_id); - res = device_reply_auth_request((bt_address_t*)&device_address, service_id, FALSE, FALSE); - if (res != OAL_STATUS_SUCCESS) - BT_ERR("authorize_response: %d", res); - return; - } + if (service_id == HFP_HS_SERVICE_ID && curr_audio_role == BLUETOOTH_A2DP_SOURCE) { + BT_INFO("Current local A2DP role is Source.. reject [%s] device authorization request with [%d]", + address, service_id); + res = device_reply_auth_request((bt_address_t*)&device_address, service_id, FALSE, FALSE); + if (res != OAL_STATUS_SUCCESS) + BT_ERR("authorize_response: %d", res); + return; + } + + if (service_id == AVRCP_SERVICE_ID && curr_audio_role == BLUETOOTH_A2DP_SINK) { + BT_INFO("Current local A2DP role is Sink.. reject [%s] device authorization request with [%d]", + address, service_id); + res = device_reply_auth_request((bt_address_t*)&device_address, service_id, FALSE, FALSE); + if (res != OAL_STATUS_SUCCESS) + BT_ERR("authorize_response: %d", res); + return; } } diff --git a/bt-service/services/device/bt-service-core-device.c b/bt-service/services/device/bt-service-core-device.c index 586175b..061639c 100644 --- a/bt-service/services/device/bt-service-core-device.c +++ b/bt-service/services/device/bt-service-core-device.c @@ -610,22 +610,16 @@ static void __bt_device_authorization_request_callback(event_dev_authorize_req_t BT_DBG("Incoming HID Profile conn Req from device addr [%s]", address); break; case A2DP_SERVICE_ID: - if (TIZEN_FEATURE_FHUB_REFERENCE) - BT_DBG("Incoming A2DP(Remote: Source) profile conn Req from device addr [%s]", address); - else - BT_DBG("Incoming A2DP(Remote Sink) profile conn Req from device addr [%s]", address); + BT_DBG("Incoming A2DP(Remote Sink) profile conn Req from device addr [%s]", address); _bt_a2dp_src_handle_incoming_authorization(address, service_id); return; case A2DP_SRC_SERVICE_ID: - if (TIZEN_FEATURE_FHUB_REFERENCE) - BT_DBG("Incoming A2DP(Remote: Sink) profile conn Req from device addr [%s]", address); - else - BT_DBG("Incoming A2DP(Remote Source) Profile conn Req from device addr [%s]", address); + BT_DBG("Incoming A2DP(Remote Source) Profile conn Req from device addr [%s]", address); _bt_a2dp_sink_handle_incoming_authorization(address, service_id); break; case AVRCP_SERVICE_ID: if (TIZEN_FEATURE_FHUB_REFERENCE) { - BT_DBG("Incoming AVRCP (Remote: Target) Profile conn Req from device addr [%s]", address); + BT_DBG("Incoming AVRCP Profile conn Req from device addr [%s]", address); _bt_audio_handle_incoming_authorization(address, service_id); return; } else { -- 2.7.4