Change retry logic to match TIDL 82/275282/3
authorulgal-park <ulgal.park@samsung.com>
Thu, 19 May 2022 10:39:58 +0000 (19:39 +0900)
committersooyeon <sooyeon.kim@samsung.com>
Fri, 29 Jul 2022 01:25:58 +0000 (10:25 +0900)
Change-Id: I50b7ca2aa38904ebbc92bcdf6ba2b3390995ea69

client/vc_mgr.c
client/vc_mgr_tidl.c
client/vc_widget.c
client/vc_widget_tidl.c
common/vc_defs.h

index 9fd786278155966ffa76052527c281121968ec77..6769fa19b81f8d5b7fb10f409a2bd7934146ea8b 100755 (executable)
@@ -534,31 +534,31 @@ static Eina_Bool __request_initialize(void *data)
 static Eina_Bool __send_hello_message(void *data)
 {
        /* Send hello */
-       // TODO: remove dbus after migrate from dbus to tidl done
-       if (0 != vc_mgr_dbus_request_hello()) {
-               if (g_dbus_send_hello_count == 20) {
-                       g_dbus_send_hello_count = 0;
+       if (0 != vc_mgr_tidl_request_hello()) {
+               if (g_tidl_send_hello_count == VC_TIDL_RETRY_COUNT) {
+                       g_tidl_send_hello_count = 0;
                        SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Fail to request hello !! send error to manager");
                        __vc_mgr_cb_error(VC_ERROR_TIMED_OUT, -1, "voice_framework.error.vcfw.connect_engine_fail");
                        g_send_hello_timer = NULL;
                        return EINA_FALSE;
                } else {
-                       g_dbus_send_hello_count++;
+                       // TODO: discuss when updating connect/reconnect
+                       g_tidl_send_hello_count++;
+                       usleep(200000);
                        return EINA_TRUE;
                }
        }
 
-       /* Send hello */
-       if (0 != vc_mgr_tidl_request_hello()) {
-               if (g_tidl_send_hello_count == 20) {
-                       g_tidl_send_hello_count = 0;
+       // TODO: remove dbus after migrate from dbus to tidl done
+       if (0 != vc_mgr_dbus_request_hello()) {
+               if (g_dbus_send_hello_count == 20) {
+                       g_dbus_send_hello_count = 0;
                        SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Fail to request hello !! send error to manager");
                        __vc_mgr_cb_error(VC_ERROR_TIMED_OUT, -1, "voice_framework.error.vcfw.connect_engine_fail");
                        g_send_hello_timer = NULL;
                        return EINA_FALSE;
                } else {
-                       // TODO: discuss when updating connect/reconnect
-                       g_tidl_send_hello_count++;
+                       g_dbus_send_hello_count++;
                        return EINA_TRUE;
                }
        }
@@ -881,26 +881,12 @@ int vc_mgr_unset_demandable_client_rule(void)
 
        vc_info_parser_set_demandable_client(NULL);
 
-       int count = 0;
-       int ret = -1;
-       while (0 != ret) {
-               ret = vc_mgr_tidl_request_demandable_client(g_vc_m->handle);
-               if (0 != ret) {
-                       if (VC_ERROR_TIMED_OUT != ret) {
-                               SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Fail to request unset client rule to daemon : %s", __vc_mgr_get_error_code(ret));
-                               break;
-                       } else {
-                               SLOG(LOG_WARN, TAG_VCM, "[WARNING] retry request unset client rule : %s", __vc_mgr_get_error_code(ret));
-                               usleep(10000);
-                               count++;
-                               if (VC_RETRY_COUNT == count) {
-                                       SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Fail to request");
-                                       break;
-                               }
-                       }
-               }
+       int ret = vc_mgr_tidl_request_demandable_client(g_vc_m->handle);
+       if (0 != ret) {
+               SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Fail to request unset client rule to daemon : %s", __vc_mgr_get_error_code(ret));
        }
 
+       // TODO: check return value correct or not
        return 0;
 }
 
@@ -1132,24 +1118,10 @@ int vc_mgr_set_command_list(vc_cmd_list_h vc_cmd_list)
                ret = VC_ERROR_INVALID_PARAMETER;
                SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Fail to save command group : %s", __vc_mgr_get_error_code(ret));
        } else {
-               int count = 0;
-               do {
-                       ret = vc_mgr_tidl_request_set_command(g_vc_m->handle);
-                       if (0 != ret) {
-                               if (VC_ERROR_TIMED_OUT != ret) {
-                                       SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Fail to request set command to daemon : %s", __vc_mgr_get_error_code(ret));
-                                       break;
-                               } else {
-                                       SLOG(LOG_WARN, TAG_VCM, "[WARNING] retry request set command : %s", __vc_mgr_get_error_code(ret));
-                                       usleep(10000);
-                                       count++;
-                                       if (VC_RETRY_COUNT == count) {
-                                               SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Fail to request");
-                                               break;
-                                       }
-                               }
-                       }
-               } while (0 != ret);
+               ret = vc_mgr_tidl_request_set_command(g_vc_m->handle);
+               if (0 != ret) {
+                       SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Fail to request set command to daemon : %s", __vc_mgr_get_error_code(ret));
+               }
        }
 
        SLOG(LOG_ERROR, TAG_VCM, "@@@, ret(%d)", ret);
@@ -1182,24 +1154,11 @@ int vc_mgr_unset_command_list(void)
                return VC_ERROR_INVALID_STATE;
        }
 
-       int count = 0;
+
        int ret = -1;
-       while (0 != ret) {
-               ret = vc_mgr_tidl_request_unset_command(g_vc_m->handle);
-               if (0 != ret) {
-                       if (VC_ERROR_TIMED_OUT != ret) {
-                               SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Fail to request unset command to daemon : %s", __vc_mgr_get_error_code(ret));
-                               break;
-                       } else {
-                               SLOG(LOG_WARN, TAG_VCM, "[WARNING] retry request unset command : %s", __vc_mgr_get_error_code(ret));
-                               usleep(10000);
-                               count++;
-                               if (VC_RETRY_COUNT == count) {
-                                       SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Fail to request");
-                                       break;
-                               }
-                       }
-               }
+       ret = vc_mgr_tidl_request_unset_command(g_vc_m->handle);
+       if (0 != ret) {
+               SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Fail to request unset command to daemon : %s", __vc_mgr_get_error_code(ret));
        }
 
        int i;
@@ -1211,6 +1170,7 @@ int vc_mgr_unset_command_list(void)
 
        SLOG(LOG_ERROR, TAG_VCM, "@@@");
 
+       // TODO: check return value correct or not
        return 0;
 }
 
@@ -1269,24 +1229,10 @@ int vc_mgr_set_command_list_from_file(const char* file_path, int type)
                ret = VC_ERROR_INVALID_PARAMETER;
                SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Fail to save command list (%d)", ret);
        } else {
-               int count = 0;
-               do {
-                       ret = vc_mgr_tidl_request_set_command(g_vc_m->handle);
-                       if (0 != ret) {
-                               if (VC_ERROR_TIMED_OUT != ret) {
-                                       SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Fail to request set command to daemon : %s", __vc_mgr_get_error_code(ret));
-                                       break;
-                               } else {
-                                       SLOG(LOG_WARN, TAG_VCM, "[WARNING] retry request set command : %s", __vc_mgr_get_error_code(ret));
-                                       usleep(10000);
-                                       count++;
-                                       if (VC_RETRY_COUNT == count) {
-                                               SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Fail to request");
-                                               break;
-                                       }
-                               }
-                       }
-               } while (0 != ret);
+               ret = vc_mgr_tidl_request_set_command(g_vc_m->handle);
+               if (0 != ret) {
+                       SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Fail to request set command to daemon : %s", __vc_mgr_get_error_code(ret));
+               }
        }
 
        SLOG(LOG_ERROR, TAG_VCM, "@@@, ret(%d)", ret);
@@ -1385,29 +1331,14 @@ int vc_mgr_set_audio_type(const char* audio_id)
        }
 
        int ret = -1;
-       int count = 0;
-
        /* Request */
-       while (0 != ret) {
-               ret = vc_mgr_tidl_request_set_audio_type(g_vc_m->handle, audio_id);
-               if (0 != ret) {
-                       if (VC_ERROR_TIMED_OUT != ret) {
-                               SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Fail to set audio type : %s", __vc_mgr_get_error_code(ret));
-                               break;
-                       } else {
-                               SLOG(LOG_WARN, TAG_VCM, "[WARNING] retry to set audio type : %s", __vc_mgr_get_error_code(ret));
-                               usleep(10000);
-                               count++;
-                               if (VC_RETRY_COUNT == count) {
-                                       SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Fail to request");
-                                       break;
-                               }
-                       }
-               } else {
-                       SLOG(LOG_INFO, TAG_VCM, "[SUCCESS] Set audio type");
-                       /* Save */
-                       vc_mgr_client_set_audio_type(g_vc_m, audio_id);
-               }
+       ret = vc_mgr_tidl_request_set_audio_type(g_vc_m->handle, audio_id);
+       if (0 != ret) {
+               SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Fail to set audio type : %s", __vc_mgr_get_error_code(ret));
+       } else {
+               SLOG(LOG_INFO, TAG_VCM, "[SUCCESS] Set audio type");
+               /* Save */
+               vc_mgr_client_set_audio_type(g_vc_m, audio_id);
        }
 
        SLOG(LOG_ERROR, TAG_VCM, "@@@, ret(%d)", ret);
@@ -1463,22 +1394,10 @@ int vc_mgr_get_audio_type(char** audio_id)
        if (NULL == temp) {
                /* Not initiallized */
                int ret = -1;
-               int count = 0;
                while (0 != ret) {
                        ret = vc_mgr_tidl_request_get_audio_type(g_vc_m->handle, &temp);
                        if (0 != ret) {
-                               if (VC_ERROR_TIMED_OUT != ret) {
-                                       SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Fail to get audio type : %s", __vc_mgr_get_error_code(ret));
-                                       break;
-                               } else {
-                                       SLOG(LOG_WARN, TAG_VCM, "[WARNING] retry to get audio type : %s", __vc_mgr_get_error_code(ret));
-                                       usleep(10000);
-                                       count++;
-                                       if (VC_RETRY_COUNT == count) {
-                                               SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Fail to request");
-                                               break;
-                                       }
-                               }
+                               SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Fail to get audio type : %s", __vc_mgr_get_error_code(ret));
                        } else {
                                SLOG(LOG_ERROR, TAG_VCM, "[SUCCESS] Get audio type : %s", temp);
                                /* Save */
@@ -1493,6 +1412,7 @@ int vc_mgr_get_audio_type(char** audio_id)
                temp = NULL;
        }
 
+       // TODO: check return value correct or not
        return 0;
 }
 
@@ -1548,7 +1468,6 @@ int vc_mgr_get_current_commands(vc_cmd_list_h* vc_cmd_list)
 
        int fg_pid = 0;
        int mgr_pid = 0;
-       int count = 0;
        int ret = -1;
 
        /* Get foreground pid */
@@ -1573,26 +1492,11 @@ int vc_mgr_get_current_commands(vc_cmd_list_h* vc_cmd_list)
        }
 
        /* Request */
-       ret = -1;
-       count = 0;
-       while (0 != ret) {
-               ret = vc_mgr_tidl_request_set_client_info(g_vc_m->handle);
-               if (0 != ret) {
-                       if (VC_ERROR_TIMED_OUT != ret) {
-                               SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Fail to set client info : %s", __vc_mgr_get_error_code(ret));
-                               break;
-                       } else {
-                               SLOG(LOG_WARN, TAG_VCM, "[WARNING] retry to set client info : %s", __vc_mgr_get_error_code(ret));
-                               usleep(10000);
-                               count++;
-                               if (VC_RETRY_COUNT == count) {
-                                       SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Fail to request");
-                                       break;
-                               }
-                       }
-               } else {
-                       SLOG(LOG_INFO, TAG_VCM, "[SUCCESS] Set client info");
-               }
+       ret = vc_mgr_tidl_request_set_client_info(g_vc_m->handle);
+       if (0 != ret) {
+               SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Fail to set client info : %s", __vc_mgr_get_error_code(ret));
+       } else {
+               SLOG(LOG_INFO, TAG_VCM, "[SUCCESS] Set client info");
        }
 
        GSList *iter = NULL;
@@ -1695,6 +1599,7 @@ int vc_mgr_get_current_commands(vc_cmd_list_h* vc_cmd_list)
 
        SLOG(LOG_ERROR, TAG_VCM, "@@@");
 
+       // TODO: check return value correct or not
        return 0;
 }
 
@@ -1876,29 +1781,17 @@ int vc_mgr_get_private_data(const char* key, char** data)
        }
 
        int ret = -1;
-       int count = 0;
        char* temp = NULL;
 
-       while (0 != ret) {
-               ret = vc_mgr_tidl_request_get_private_data(g_vc_m->handle, key, &temp);
-               if (0 != ret) {
-                       if (VC_ERROR_TIMED_OUT != ret) {
-                               SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Fail to get private data request : %s", __vc_mgr_get_error_code(ret));
-                               break;
-                       } else {
-                               SLOG(LOG_WARN, TAG_VCM, "[WARNING] retry get private data request : %s", __vc_mgr_get_error_code(ret));
-                               usleep(10000);
-                               count++;
-                               if (VC_RETRY_COUNT == count) {
-                                       SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Fail to request");
-                                       break;
-                               }
-                       }
-               } else {
-                       SLOG(LOG_INFO, TAG_VCM, "[SUCCESS] Get private data, key(%s), data(%s)", key, temp);
-               }
+
+       ret = vc_mgr_tidl_request_get_private_data(g_vc_m->handle, key, &temp);
+       if (0 != ret) {
+               SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Fail to get private data request : %s", __vc_mgr_get_error_code(ret));
+       } else {
+               SLOG(LOG_INFO, TAG_VCM, "[SUCCESS] Get private data, key(%s), data(%s)", key, temp);
        }
 
+
        if (NULL != temp) {
                *data = strdup(temp);
                free(temp);
@@ -1907,6 +1800,7 @@ int vc_mgr_get_private_data(const char* key, char** data)
 
        SLOG(LOG_DEBUG, TAG_VCM, "@@@");
 
+       // TODO: check return value correct or not
        return 0;
 }
 
@@ -1952,26 +1846,14 @@ int vc_mgr_set_domain(const char* domain)
        }
 
        int ret = -1;
-       int count = 0;
-       while (0 != ret) {
-               ret = vc_mgr_tidl_request_set_domain(g_vc_m->handle, domain);
-               if (0 != ret) {
-                       if (VC_ERROR_TIMED_OUT != ret) {
-                               SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Fail to set domain request : %s", __vc_mgr_get_error_code(ret));
-                               break;
-                       } else {
-                               SLOG(LOG_WARN, TAG_VCM, "[WARNING] retry set domain request : %s", __vc_mgr_get_error_code(ret));
-                               usleep(10000);
-                               count++;
-                               if (VC_RETRY_COUNT == count) {
-                                       SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Fail to request");
-                                       break;
-                               }
-                       }
-               } else {
-                       SLOG(LOG_INFO, TAG_VCM, "[SUCCESS] Set domain");
-               }
+
+       ret = vc_mgr_tidl_request_set_domain(g_vc_m->handle, domain);
+       if (0 != ret) {
+               SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Fail to set domain request : %s", __vc_mgr_get_error_code(ret));
+       } else {
+               SLOG(LOG_INFO, TAG_VCM, "[SUCCESS] Set domain");
        }
+
        SLOG(LOG_DEBUG, TAG_VCM, "@@@");
 
        return 0;
@@ -2153,7 +2035,6 @@ int vc_mgr_start(bool exclusive_command_option)
        }
 
        int ret;
-       int count = 0;
        vc_recognition_mode_e recognition_mode = VC_RECOGNITION_MODE_STOP_BY_SILENCE;
        if (0 != vc_mgr_get_recognition_mode(&recognition_mode)) {
                SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Fail to get recognition mode");
@@ -2161,29 +2042,13 @@ int vc_mgr_start(bool exclusive_command_option)
 
        /* Request */
        ret = -1;
-       count = 0;
-       while (0 != ret) {
-               vc_mgr_client_set_internal_state(g_vc_m, VC_INTERNAL_STATE_STARTING);
-               ret = vc_mgr_tidl_request_start(g_vc_m->handle, (int)recognition_mode, exclusive_command_option, start_by_client, disabled_cmd_type);
-               if (0 != ret) {
-                       if (VC_ERROR_TIMED_OUT != ret) {
-                               SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Fail to start request start : %s", __vc_mgr_get_error_code(ret));
-                               vc_mgr_client_set_internal_state(g_vc_m, VC_INTERNAL_STATE_NONE);
-                               break;
-                       } else {
-                               SLOG(LOG_WARN, TAG_VCM, "[WARNING] retry start request start : %s", __vc_mgr_get_error_code(ret));
-                               usleep(10000);
-                               count++;
-                               if (VC_RETRY_COUNT == count) {
-                                       SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Fail to request");
-                                       vc_mgr_client_set_exclusive_command(g_vc_m, false);
-                                       vc_mgr_client_set_internal_state(g_vc_m, VC_INTERNAL_STATE_NONE);
-                                       break;
-                               }
-                       }
-               } else {
-                       SLOG(LOG_INFO, TAG_VCM, "[SUCCESS] start recognition");
-               }
+       vc_mgr_client_set_internal_state(g_vc_m, VC_INTERNAL_STATE_STARTING);
+       ret = vc_mgr_tidl_request_start(g_vc_m->handle, (int)recognition_mode, exclusive_command_option, start_by_client, disabled_cmd_type);
+       if (0 != ret) {
+               SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Fail to start request start : %s", __vc_mgr_get_error_code(ret));
+               vc_mgr_client_set_internal_state(g_vc_m, VC_INTERNAL_STATE_NONE);
+       } else {
+               SLOG(LOG_INFO, TAG_VCM, "[SUCCESS] start recognition");
        }
 
        g_volume_db = 0;
@@ -2246,29 +2111,14 @@ int vc_mgr_stop(void)
        }
 
        int ret = -1;
-       int count = 0;
        /* do request */
-       while (0 != ret) {
-               vc_mgr_client_set_internal_state(g_vc_m, VC_INTERNAL_STATE_STOPPING);
-               ret = vc_mgr_tidl_request_stop(g_vc_m->handle);
-               if (0 != ret) {
-                       if (VC_ERROR_TIMED_OUT != ret) {
-                               SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Fail to stop request : %s", __vc_mgr_get_error_code(ret));
-                               vc_mgr_client_set_internal_state(g_vc_m, VC_INTERNAL_STATE_NONE);
-                               break;
-                       } else {
-                               SLOG(LOG_WARN, TAG_VCM, "[WARNING] retry stop request : %s", __vc_mgr_get_error_code(ret));
-                               usleep(10000);
-                               count++;
-                               if (VC_RETRY_COUNT == count) {
-                                       SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Fail to request");
-                                       vc_mgr_client_set_internal_state(g_vc_m, VC_INTERNAL_STATE_NONE);
-                                       break;
-                               }
-                       }
-               } else {
-                       SLOG(LOG_INFO, TAG_VCM, "[SUCCESS] Stop recognition");
-               }
+       vc_mgr_client_set_internal_state(g_vc_m, VC_INTERNAL_STATE_STOPPING);
+       ret = vc_mgr_tidl_request_stop(g_vc_m->handle);
+       if (0 != ret) {
+               SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Fail to stop request : %s", __vc_mgr_get_error_code(ret));
+               vc_mgr_client_set_internal_state(g_vc_m, VC_INTERNAL_STATE_NONE);
+       } else {
+               SLOG(LOG_INFO, TAG_VCM, "[SUCCESS] Stop recognition");
        }
 
        SLOG(LOG_DEBUG, TAG_VCM, "@@@");
@@ -2326,28 +2176,13 @@ int vc_mgr_cancel(void)
        }
 
        int ret = -1;
-       int count = 0;
-       while (0 != ret) {
-               vc_mgr_client_set_internal_state(g_vc_m, VC_INTERNAL_STATE_CANCELING);
-               ret = vc_mgr_tidl_request_cancel(g_vc_m->handle);
-               if (0 != ret) {
-                       if (VC_ERROR_TIMED_OUT != ret) {
-                               SLOG(LOG_DEBUG, TAG_VCM, "[ERROR] Fail to cancel request : %s", __vc_mgr_get_error_code(ret));
-                               vc_mgr_client_set_internal_state(g_vc_m, VC_INTERNAL_STATE_NONE);
-                               break;
-                       } else {
-                               SLOG(LOG_WARN, TAG_VCM, "[WARNING] retry cancel request : %s", __vc_mgr_get_error_code(ret));
-                               usleep(10000);
-                               count++;
-                               if (VC_RETRY_COUNT == count) {
-                                       SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Fail to request");
-                                       vc_mgr_client_set_internal_state(g_vc_m, VC_INTERNAL_STATE_NONE);
-                                       break;
-                               }
-                       }
-               } else {
-                       SLOG(LOG_INFO, TAG_VCM, "[SUCCESS] Cancel recognition");
-               }
+       vc_mgr_client_set_internal_state(g_vc_m, VC_INTERNAL_STATE_CANCELING);
+       ret = vc_mgr_tidl_request_cancel(g_vc_m->handle);
+       if (0 != ret) {
+               SLOG(LOG_DEBUG, TAG_VCM, "[ERROR] Fail to cancel request : %s", __vc_mgr_get_error_code(ret));
+               vc_mgr_client_set_internal_state(g_vc_m, VC_INTERNAL_STATE_NONE);
+       } else {
+               SLOG(LOG_INFO, TAG_VCM, "[SUCCESS] Cancel recognition");
        }
 
        vc_mgr_client_set_exclusive_command(g_vc_m, false);
index a351965190e1acf854793835dad806738135159e..daf53a18ff94c4b307a80d286fbe4b494da812d7 100755 (executable)
@@ -348,6 +348,9 @@ static void __on_disconnected(rpc_port_proxy_vc_mgr_h h, void *user_data)
        g_proxy_tidl_info->register_callback_invoked = false;
 
        SLOG(LOG_INFO, TAG_VCM, "Disonnected to server");
+
+       SLOG(LOG_INFO, TAG_VCM, "Re-connection start");
+       __vc_mgr_cb_error(VC_ERROR_SERVICE_RESET, -1, "Server Disconnected, re-launch");
 }
 
 static void __on_rejected(rpc_port_proxy_vc_mgr_h h, void *user_data)
index c0d1b1ef0b7aca026056fa5242b45ffbb1065053..f0e3b012bad156e703c5efd154c1da0a94304c25 100644 (file)
@@ -527,7 +527,7 @@ static void __start_prepare_thread(void *data, Ecore_Thread *thread)
                        return;
                }
 
-               if (retry_count == 30) {
+               if (retry_count == VC_TIDL_RETRY_COUNT) {
                        SLOG(LOG_ERROR, TAG_VCW, "[ERROR] Fail to request hello !!");
                        ecore_main_loop_thread_safe_call_async(__vc_widget_delete_focus_event_handler, NULL);
                        g_w_prepare_thread = NULL;
@@ -701,26 +701,13 @@ int vc_widget_enable_asr_result(vc_h vc_w, bool enable)
                return VC_ERROR_INVALID_STATE;
        }
 
-       int count = 0;
        int ret = -1;
 
-       do {
-               ret = vc_widget_tidl_request_enable_asr_result(getpid(), enable);
-               if (0 != ret) {
-                       if (VC_ERROR_TIMED_OUT != ret) {
-                               SLOG(LOG_ERROR, TAG_VCW, "[ERROR] Fail to enable asr result : %s", __vc_widget_get_error_code(ret));
-                               break;
-                       } else {
-                               SLOG(LOG_WARN, TAG_VCW, "[WARNING] retry to enable asr result : %s", __vc_widget_get_error_code(ret));
-                               usleep(10000);
-                               count++;
-                               if (VC_RETRY_COUNT == count) {
-                                       SLOG(LOG_ERROR, TAG_VCW, "[ERROR] Fail to request");
-                                       break;
-                               }
-                       }
-               }
-       } while (0 != ret);
+       ret = vc_widget_tidl_request_enable_asr_result(getpid(), enable);
+       if (0 != ret) {
+               SLOG(LOG_ERROR, TAG_VCW, "[ERROR] Fail to enable asr result : %s", __vc_widget_get_error_code(ret));
+               return ret;
+       }
 
        vc_widget_client_set_asr_result_enabled(vc_w, enable);
 
@@ -1150,29 +1137,16 @@ int vc_widget_cancel(vc_h vc_w)
                return VC_ERROR_INVALID_STATE;
        }
 
-       int count = 0;
        int ret = -1;
 
-       do {
-               ret = vc_widget_tidl_request_cancel(getpid());
-               if (0 != ret) {
-                       if (VC_ERROR_TIMED_OUT != ret) {
-                               SLOG(LOG_ERROR, TAG_VCW, "[ERROR] Fail to request cancel : %s", __vc_widget_get_error_code(ret));
-                               break;
-                       } else {
-                               SLOG(LOG_WARN, TAG_VCW, "[WARNING] retry request cancel : %s", __vc_widget_get_error_code(ret));
-                               usleep(10000);
-                               count++;
-                               if (VC_RETRY_COUNT == count) {
-                                       SLOG(LOG_ERROR, TAG_VCW, "[ERROR] Fail to request");
-                                       break;
-                               }
-                       }
-               }
-       } while (0 != ret);
+       ret = vc_widget_tidl_request_cancel(getpid());
+       if (0 != ret) {
+               SLOG(LOG_ERROR, TAG_VCW, "[ERROR] Fail to request cancel : %s", __vc_widget_get_error_code(ret));
+       }
 
        SLOG(LOG_DEBUG, TAG_VCW, "@@@");
 
+       // TODO: check return value correct or not
        return 0;
 }
 
@@ -1311,23 +1285,9 @@ static Eina_Bool __vc_widget_start_recording(void *data)
        }
 
        ret = -1;
-       count = 0;
-       while (0 != ret) {
-               ret = vc_widget_tidl_request_start_recording(getpid(), widget_command);
-               if (0 != ret) {
-                       if (VC_ERROR_TIMED_OUT != ret) {
-                               SLOG(LOG_ERROR, TAG_VCW, "[ERROR] Fail to request start recording to daemon : %s", __vc_widget_get_error_code(ret));
-                               return EINA_FALSE;
-                       } else {
-                               SLOG(LOG_WARN, TAG_VCW, "[WARNING] retry start recording : %s", __vc_widget_get_error_code(ret));
-                               usleep(10000);
-                               count++;
-                               if (VC_RETRY_COUNT == count) {
-                                       SLOG(LOG_ERROR, TAG_VCW, "[ERROR] Fail to request");
-                                       return EINA_FALSE;
-                               }
-                       }
-               }
+       ret = vc_widget_tidl_request_start_recording(getpid(), widget_command);
+       if (0 != ret) {
+               SLOG(LOG_ERROR, TAG_VCW, "[ERROR] Fail to request start recording to daemon : %s", __vc_widget_get_error_code(ret));
        }
 
        return EINA_FALSE;
index da50b61cc95f69e5bdef55f5141293b05e5db4d2..1210668d9f48d6cba3f861889686c3374ed7c327 100644 (file)
@@ -162,6 +162,9 @@ static void __on_disconnected(rpc_port_proxy_vc_widget_h h, void *user_data)
        g_proxy_tidl_info->register_callback_invoked = false;
 
        SLOG(LOG_INFO, TAG_VCW, "Disonnected to server");
+
+       SLOG(LOG_INFO, TAG_VCW, "Re-connection start");
+       __vc_widget_cb_error(VC_ERROR_SERVICE_RESET, -1, "Server Disconnected, re-launch");
 }
 
 static void __on_rejected(rpc_port_proxy_vc_widget_h h, void *user_data)
index 3ba15c5f6d8e1ab2753b020bbc2e945e5c7e7ea0..81226cac09ff0ef0ff8c704940b36a3c02d8f279 100644 (file)
@@ -266,6 +266,7 @@ extern "C" {
 #define VC_RUNTIME_INFO_NO_FOREGROUND  -1
 #define VC_CONNECTION_RETRY_COUNT      10
 #define VC_INVALID_TTS_UID     0
+#define VC_TIDL_RETRY_COUNT            100
 
 #define VC_FEATURE_PATH                        "tizen.org/feature/speech.control"
 #define VC_MGR_FEATURE_PATH            "tizen.org/feature/speech.control_manager"