Implement stt default engine setting and Fix directories in stt engine parser
[platform/core/uifw/stt.git] / server / sttd_server.c
index ed69892..5b4e046 100755 (executable)
@@ -87,23 +87,23 @@ static void __cancel_recognition_internal()
                g_recording_timer = NULL;
        }
 
+       int ret = 0;
        int uid = 0;
        uid = stt_client_get_current_recognition();
 
-       if (0 != uid) {
-               /* cancel engine recognition */
-               int ret = sttd_engine_agent_recognize_cancel();
-               if (0 != ret) {
-                       SLOG(LOG_ERROR, TAG_STTD, "[Server ERROR] Fail to cancel : result(%d)", ret);
-               }
+       app_state_e state = 0;
+       ret = sttd_client_get_state(uid, &state);
 
-               /* change uid state */
-               sttd_client_set_state(uid, APP_STATE_READY);
-               stt_client_unset_current_recognition();
+       if (0 != ret) {
+               SLOG(LOG_ERROR, TAG_STTD, "[Server ERROR] uid is NOT valid ");
+               return;
+       }
 
-               ret = sttdc_send_set_state(uid, (int)APP_STATE_READY);
+       if (0 != uid && (APP_STATE_PROCESSING == state || APP_STATE_RECORDING == state)) {
+               /* cancel engine recognition */
+               ret = sttd_server_cancel(uid);
                if (0 != ret) {
-                       SLOG(LOG_ERROR, TAG_STTD, "[Server ERROR] Fail to send state change : result(%d)", ret);
+                       SLOG(LOG_ERROR, TAG_STTD, "[Server ERROR] Fail to cancel : result(%d)", ret);
                }
        } else {
                SLOG(LOG_WARN, TAG_STTD, "[Server WARNING] uid is NOT valid");
@@ -269,6 +269,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();
 
@@ -367,6 +375,7 @@ void __sttd_server_engine_changed_cb(const char* engine_id, const char* language
                SLOG(LOG_DEBUG, TAG_STTD, "[Server] New default engine : %s", engine_id);
        }
 
+#if 0
        /* need to change state of app to ready */
        int uid;
        uid = stt_client_get_current_recognition();
@@ -394,6 +403,7 @@ void __sttd_server_engine_changed_cb(const char* engine_id, const char* language
        ret = sttd_engine_agent_set_silence_detection(support_silence);
        if (0 != ret)
                SLOG(LOG_ERROR, TAG_STTD, "[Server ERROR] Fail to Result(%d)", ret);
+#endif
 
        return;
 }
@@ -641,6 +651,7 @@ static Eina_Bool __quit_ecore_loop(void *data)
 
        stt_network_finalize();
        sttd_finalize();
+       sttd_dbus_close_connection();
        ecore_main_loop_quit();
 
        SLOG(LOG_DEBUG, TAG_STTD, "");