Add to cancel engine when error-result callback is invoked 31/109831/1
authorsooyeon.kim <sooyeon.kim@samsung.com>
Mon, 26 Dec 2016 02:11:17 +0000 (11:11 +0900)
committerSooyeon Kim <sooyeon.kim@samsung.com>
Thu, 12 Jan 2017 02:18:02 +0000 (18:18 -0800)
Change-Id: Ic1d9e4fdfa41e7186a0c6ff6099c004883e552fb
Signed-off-by: sooyeon.kim <sooyeon.kim@samsung.com>
(cherry picked from commit ca2ebf94e8879bb4328d6a5d307a0c6d390a30dc)

server/sttd_server.c

index ed69892..037b4bf 100755 (executable)
@@ -87,12 +87,21 @@ static void __cancel_recognition_internal()
                g_recording_timer = NULL;
        }
 
+       int ret = 0;
        int uid = 0;
        uid = stt_client_get_current_recognition();
 
-       if (0 != uid) {
+       app_state_e state = 0;
+       ret = sttd_client_get_state(uid, &state);
+
+       if (0 != ret) {
+               SLOG(LOG_ERROR, TAG_STTD, "[Server ERROR] uid is NOT valid ");
+               return;
+       }
+
+       if (0 != uid && (APP_STATE_PROCESSING == state || APP_STATE_RECORDING == state)) {
                /* cancel engine recognition */
-               int ret = sttd_engine_agent_recognize_cancel();
+               ret = sttd_engine_agent_recognize_cancel();
                if (0 != ret) {
                        SLOG(LOG_ERROR, TAG_STTD, "[Server ERROR] Fail to cancel : result(%d)", ret);
                }
@@ -269,6 +278,14 @@ int __server_recognition_result_callback(stte_result_event_e event, const char*
                }
                sttd_config_time_reset();
 
+               int ret = 0;
+               if (APP_STATE_RECORDING == state) {
+                       ret = sttd_engine_agent_recognize_cancel();
+                       if (0 != ret) {
+                               SLOG(LOG_ERROR, TAG_STTD, "[Server ERROR] Fail to cancel: result(%d)", ret);
+                       }
+               }
+
                sttd_client_set_state(uid, APP_STATE_READY);
                stt_client_unset_current_recognition();