handling a2dp/avrcp auth request according to A2DP role 33/298133/1 accepted/tizen/7.0/unified/20230908.190411
authorSohyeon Choi <shss.choi@samsung.com>
Thu, 31 Aug 2023 09:52:09 +0000 (18:52 +0900)
committerWootak Jung <wootak.jung@samsung.com>
Fri, 1 Sep 2023 06:42:20 +0000 (15:42 +0900)
Change-Id: I40f5451e4b7c4b7205ebf7f33d747a4ea2c6dc39

bt-service/services/audio/a2dp_src/bt-service-a2dp-src.c
bt-service/services/audio/bt-service-audio.c
bt-service/services/device/bt-service-core-device.c

index 3bc7f63..2a2a42f 100644 (file)
@@ -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);
 
index 58ea05c..a03227e 100644 (file)
@@ -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;
                }
        }
 
index 644d8b7..414c09a 100644 (file)
@@ -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 {