Removed A2DP sink disconnect event on A2DP connect fail 62/202162/1 accepted/tizen/unified/20190326.073456 submit/tizen/20190326.003144
authorAmit Purwar <amit.purwar@samsung.com>
Mon, 25 Mar 2019 09:50:42 +0000 (15:20 +0530)
committerAmit Purwar <amit.purwar@samsung.com>
Mon, 25 Mar 2019 09:54:32 +0000 (15:24 +0530)
Change-Id: Ia6f95d03c3bb0f17c7b8a7539ff41e4feed93a23
Signed-off-by: Amit Purwar <amit.purwar@samsung.com>
bt-service-adaptation/services/audio/a2dp_sink/bt-service-a2dp-sink.c

index 48d9434..6a8370b 100644 (file)
@@ -125,9 +125,6 @@ static void __bt_handle_av_source_disconnected_state(bluetooth_device_address_t
        /* Set VCONF status for A2DP Disconnection */
        _bt_set_device_values(FALSE, VCONFKEY_BT_DEVICE_A2DP_HEADSET_CONNECTED);
 
-       /* Send A2DP(SRC Role) disconnected event to Application */
-       param = g_variant_new("(is)", result, addr);
-       _bt_send_event(BT_HEADSET_EVENT, BLUETOOTH_EVENT_AV_SOURCE_DISCONNECTED, param);
 
        /* Remove data from the connected list */
        _bt_remove_headset_from_list(BT_AUDIO_A2DP_SOURCE, addr);
@@ -141,6 +138,11 @@ static void __bt_handle_av_source_disconnected_state(bluetooth_device_address_t
                        /* This means, AV Disconnect request has successfully passed, and real disconnect is completed */
                        BT_INFO("Neither AV Connect or AV Disconnect request is found..means, AV Profile is disconnected");
 
+                       /* Send A2DP(SRC Role) disconnected event to Application */
+                       result = BLUETOOTH_ERROR_NONE;
+                       param = g_variant_new("(is)", result, addr);
+                       _bt_send_event(BT_HEADSET_EVENT, BLUETOOTH_EVENT_AV_SOURCE_DISCONNECTED, param);
+
                        /*
                         * TODO: Below logic is not required for BT_AUDIO_CONNECT/BT_AUDIO_DISCONNECT.
                         * But if Tizen supports a device with A2DP Sink and HFP both profiles (BT_AUDIO_HFP_SOURCE)
@@ -185,6 +187,12 @@ static void __bt_handle_av_source_disconnected_state(bluetooth_device_address_t
                }
        } else {
                BT_ERR("AV Disconnect request found for [%s], means disconnect request is successful", addr); /* DBUS return needed */
+
+               /* Send A2DP(SRC Role) disconnected event to Application */
+               result = BLUETOOTH_ERROR_NONE;
+               param = g_variant_new("(is)", result, addr);
+               _bt_send_event(BT_HEADSET_EVENT, BLUETOOTH_EVENT_AV_SOURCE_DISCONNECTED, param);
+
                goto check_wait_device;
        }
 check_wait_device: