From 0ac5da7b4acc098c2fa8fc68fd34dd07d9738478 Mon Sep 17 00:00:00 2001 From: ulgal-park Date: Thu, 19 May 2022 19:39:58 +0900 Subject: [PATCH] Change retry logic to match TIDL Change-Id: I50b7ca2aa38904ebbc92bcdf6ba2b3390995ea69 --- client/vc_mgr.c | 323 ++++++++++------------------------------ client/vc_mgr_tidl.c | 3 + client/vc_widget.c | 68 ++------- client/vc_widget_tidl.c | 3 + common/vc_defs.h | 1 + 5 files changed, 100 insertions(+), 298 deletions(-) diff --git a/client/vc_mgr.c b/client/vc_mgr.c index 9fd7862..6769fa1 100755 --- a/client/vc_mgr.c +++ b/client/vc_mgr.c @@ -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); diff --git a/client/vc_mgr_tidl.c b/client/vc_mgr_tidl.c index a351965..daf53a1 100755 --- a/client/vc_mgr_tidl.c +++ b/client/vc_mgr_tidl.c @@ -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) diff --git a/client/vc_widget.c b/client/vc_widget.c index c0d1b1e..f0e3b01 100644 --- a/client/vc_widget.c +++ b/client/vc_widget.c @@ -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; diff --git a/client/vc_widget_tidl.c b/client/vc_widget_tidl.c index da50b61..1210668 100644 --- a/client/vc_widget_tidl.c +++ b/client/vc_widget_tidl.c @@ -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) diff --git a/common/vc_defs.h b/common/vc_defs.h index 3ba15c5..81226ca 100644 --- a/common/vc_defs.h +++ b/common/vc_defs.h @@ -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" -- 2.34.1