Start enable timer when enabling adapter 59/233459/1 accepted/tizen_5.5_unified accepted/tizen_5.5_unified_wearable_hotfix tizen_5.5 tizen_5.5_wearable_hotfix accepted/tizen/5.5/unified/20200522.160129 accepted/tizen/5.5/unified/wearable/hotfix/20201027.114814 submit/tizen_5.5/20200520.040942 submit/tizen_5.5_wearable_hotfix/20201026.184303
authorWootak Jung <wootak.jung@samsung.com>
Fri, 15 May 2020 02:13:55 +0000 (11:13 +0900)
committerWootak Jung <wootak.jung@samsung.com>
Fri, 15 May 2020 02:14:33 +0000 (11:14 +0900)
Change-Id: Id6ed4665f57ec8b4578935de6b4f73b1956ee6c5
Signed-off-by: Deokhyun Kim <dukan.kim@samsung.com>
Signed-off-by: Wootak Jung <wootak.jung@samsung.com>
bt-service-adaptation/services/adapter/bt-service-core-adapter.c
bt-service-adaptation/services/bt-request-handler.c
bt-service-adaptation/services/include/bt-service-core-adapter.h

index a1b9e88..3228d89 100644 (file)
@@ -451,6 +451,30 @@ void _bt_service_unregister_vconf_handler(void)
                        (vconf_callback_fn)__bt_service_flight_ps_mode_cb);
 }
 
+static gboolean __bt_enable_timeout_cb(gpointer user_data)
+{
+       timer_id = 0;
+       adapter_disable();
+       _bt_set_disabled(BLUETOOTH_ERROR_TIMEOUT);
+#ifndef USB_BLUETOOTH
+       _bt_terminate_service(NULL);
+#endif
+       return FALSE;
+}
+
+void _bt_adapter_start_enable_timer(void)
+{
+       if (timer_id > 0) {
+               g_source_remove(timer_id);
+               timer_id = 0;
+       }
+
+       timer_id = g_timeout_add(BT_ENABLE_TIMEOUT,
+                       __bt_enable_timeout_cb, NULL);
+
+       return;
+}
+
 int _bt_get_local_address(void)
 {
        int result;
@@ -1663,7 +1687,7 @@ static int __bt_adapter_state_handle_request(gboolean enable)
                        }
                        result = adapter_disable();
                        if (result != OAL_STATUS_SUCCESS) {
-                               BT_ERR("adapter_enable failed: [%d]", result);
+                               BT_ERR("adapter_disable failed: [%d]", result);
                                result = BLUETOOTH_ERROR_INTERNAL;
                                /*TODO: perform if anything more needs to be done to handle failure */
                        } else {
index 8bb740e..15cb4d2 100644 (file)
@@ -479,6 +479,7 @@ int __bt_bluez_request(int function_name,
        switch (function_name) {
        case BT_ENABLE_ADAPTER: {
                result = _bt_enable_adapter();
+               _bt_adapter_start_enable_timer();
                break;
        }
        case BT_DISABLE_ADAPTER: {
index 77beddf..74d75d3 100644 (file)
@@ -114,6 +114,8 @@ int _bt_set_le_request_state(int enable);
 int _bt_get_energy_info(unsigned int *tx_time, unsigned int *rx_time,
                                        unsigned int *idle_time, unsigned int *energy_used);
 
+void _bt_adapter_start_enable_timer(void);
+
 #ifdef __cplusplus
 }
 #endif /* __cplusplus */