Fixed logic for stt unprepare 93/168093/2
authorsungrae jo <seongrae.jo@samsung.com>
Wed, 24 Jan 2018 06:08:53 +0000 (15:08 +0900)
committersungrae jo <seongrae.jo@samsung.com>
Mon, 29 Jan 2018 10:57:07 +0000 (19:57 +0900)
Change-Id: Icd0b56cda3d049fea008e72dec7127332fd3002e
Signed-off-by: sungrae jo <seongrae.jo@samsung.com>
server/vcd_engine_agent.c
server/vcd_recorder.c
server/vcd_server.c
server/vcd_server.h

index 1f4c585..28748fd 100644 (file)
@@ -120,7 +120,10 @@ int vcd_engine_agent_release()
        }
 
        /* unload current engine */
-       vcd_engine_agent_unload_current_engine();
+       if (0 != vcd_engine_agent_unload_current_engine()) {
+               SLOG(LOG_ERROR, TAG_VCD, "[Engine Agent ERROR] Fail to deinitialize");
+               return VCD_ERROR_OPERATION_FAILED;
+       }
 
        /* release current engine data */
        if (NULL != g_dynamic_engine.callbacks) {
@@ -298,12 +301,13 @@ int vcd_engine_agent_unload_current_engine()
        ret = g_dynamic_engine.callbacks->deinitialize();
        if (0 != ret) {
                SLOG(LOG_ERROR, TAG_VCD, "[Engine Agent ERROR] Fail to deinitialize");
+               return VCD_ERROR_OPERATION_FAILED;
        }
 
        /* reset current engine data */
        g_dynamic_engine.is_loaded = false;
 
-       return 0;
+       return VCD_ERROR_NONE;
 }
 
 
index f3194d4..eea8f50 100644 (file)
@@ -483,7 +483,9 @@ int vcd_recorder_destroy()
        if (0 != ret)
                SLOG(LOG_ERROR, TAG_VCD, "[Recorder ERROR] Fail to destroy stream info, ret(%d)", ret);
 
-       audio_in_destroy(g_audio_h);
+       ret = audio_in_destroy(g_audio_h);
+       if (0 != ret)
+               SLOG(LOG_ERROR, TAG_VCD, "[Recorder ERROR] Fail to audio in destroy, ret(%d)", ret);
 
 #ifdef TV_BT_MODE
        bt_hid_unset_audio_data_receive_cb();
index 6cbc2b9..9c28722 100755 (executable)
@@ -1029,7 +1029,7 @@ int vcd_initialize(vce_request_callback_s *callback)
        return 0;
 }
 
-void vcd_finalize()
+bool vcd_finalize()
 {
        GList *iter = NULL;
        if (0 < g_list_length(g_proc_list)) {
@@ -1054,12 +1054,14 @@ void vcd_finalize()
        }
        if (0 != vcd_recorder_destroy()) {
                SLOG(LOG_ERROR, TAG_VCD, "[Server ERROR] Fail to destroy recorder");
+               return false;
        } else {
                SLOG(LOG_DEBUG, TAG_VCD, "[Server] destroy recorder");
        }
 
        if (0 != vcd_engine_agent_release()) {
                SLOG(LOG_ERROR, TAG_VCD, "[Server ERROR] Fail to release engine");
+               return false;
        } else {
                SLOG(LOG_DEBUG, TAG_VCD, "[Server] release engine");
        }
@@ -1071,14 +1073,18 @@ void vcd_finalize()
 
        SLOG(LOG_DEBUG, TAG_VCD, "[Server] mode finalize");
 
-       return;
+       return true;
 }
 
 static Eina_Bool __finalize_quit_ecore_loop(void *data)
 {
-       SLOG(LOG_ERROR, TAG_VCD, "[Server] quit ecore main loop");
-       ecore_main_loop_quit();
-       return EINA_FALSE;
+       bool ret = vcd_finalize();
+       if (false == ret) {
+               return EINA_TRUE;
+       } else {
+               ecore_main_loop_quit();
+               return EINA_FALSE;
+       }
 }
 
 static void __read_proc()
@@ -1351,7 +1357,7 @@ int vcd_server_mgr_finalize(int pid)
 
        if (0 == vcd_client_get_ref_count()) {
                SLOG(LOG_DEBUG, TAG_VCD, "[Server] Connected client list is empty");
-               ecore_timer_add(0, __finalize_quit_ecore_loop, NULL);
+               ecore_timer_add(0.5, __finalize_quit_ecore_loop, NULL);
        }
 
        SLOG(LOG_DEBUG, TAG_VCD, "[Server Success] Manager Finalize : pid(%d)", pid);
@@ -1905,7 +1911,7 @@ int vcd_server_finalize(int pid)
 
        if (0 == vcd_client_get_ref_count()) {
                SLOG(LOG_DEBUG, TAG_VCD, "[Server] Connected client list is empty");
-               ecore_timer_add(0, __finalize_quit_ecore_loop, NULL);
+               ecore_timer_add(0.5, __finalize_quit_ecore_loop, NULL);
        }
 
        SLOG(LOG_DEBUG, TAG_VCD, "[Server Success] Client Finalize : pid(%d)", pid);
@@ -2218,7 +2224,7 @@ int vcd_server_widget_finalize(int pid)
 
        if (0 == vcd_client_get_ref_count()) {
                SLOG(LOG_ERROR, TAG_VCD, "[Server] connected client list is empty");
-               ecore_timer_add(0, __finalize_quit_ecore_loop, NULL);
+               ecore_timer_add(0.5, __finalize_quit_ecore_loop, NULL);
                return 0;
        }
 
index b328a7e..6df0154 100644 (file)
@@ -32,7 +32,7 @@ extern "C" {
 */
 int vcd_initialize(vce_request_callback_s *callback);
 
-void vcd_finalize();
+bool vcd_finalize();
 
 Eina_Bool vcd_cleanup_client_all(void *data);