From: Sohyeon Choi Date: Thu, 31 Aug 2023 09:52:09 +0000 (+0900) Subject: handling a2dp/avrcp auth request according to A2DP role X-Git-Tag: accepted/tizen/unified/20230911.091133~1^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F35%2F298135%2F1;p=platform%2Fcore%2Fconnectivity%2Fbluetooth-frwk.git handling a2dp/avrcp auth request according to A2DP role Change-Id: I2ded461a380514756fa1cf570a7f9a908a2b2b4c --- 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 {