From: Wonnam Jang Date: Thu, 27 Apr 2017 05:52:11 +0000 (+0900) Subject: Fix internal state error when api is called in thread X-Git-Tag: accepted/tizen/unified/20170429.024458~2 X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fstt.git;a=commitdiff_plain;h=9dc76cf6cba8317e49f1a8228d59daca7bcc90c4 Fix internal state error when api is called in thread Change-Id: I9801d00d4c56246eaa686e0f40497b2c7a639657 Signed-off-by: Wonnam Jang --- diff --git a/client/stt.c b/client/stt.c index 149ac44..b082568 100644 --- a/client/stt.c +++ b/client/stt.c @@ -1592,12 +1592,13 @@ int stt_start(stt_h stt, const char* language, const char* type) return STT_ERROR_PERMISSION_DENIED; } + client->internal_state = STT_INTERNAL_STATE_STARTING; ret = stt_dbus_request_start(client->uid, temp, type, client->silence, appid, client->credential); if (0 != ret) { SLOG(LOG_ERROR, TAG_STTC, "[ERROR] Fail to start : %s", __stt_get_error_code(ret)); + client->internal_state = STT_INTERNAL_STATE_NONE; } else { SLOG(LOG_DEBUG, TAG_STTC, "[SUCCESS] Start is successful but not done"); - client->internal_state = STT_INTERNAL_STATE_STARTING; } if (NULL != temp) free(temp); @@ -1640,13 +1641,13 @@ int stt_stop(stt_h stt) return STT_ERROR_IN_PROGRESS_TO_PROCESSING; } + client->internal_state = STT_INTERNAL_STATE_STOPPING; int ret = stt_dbus_request_stop(client->uid); - if (0 != ret) { SLOG(LOG_ERROR, TAG_STTC, "[ERROR] Fail to stop : %s", __stt_get_error_code(ret)); + client->internal_state = STT_INTERNAL_STATE_NONE; } else { SLOG(LOG_DEBUG, TAG_STTC, "[SUCCESS] Stop is successful but not done"); - client->internal_state = STT_INTERNAL_STATE_STOPPING; } SLOG(LOG_DEBUG, TAG_STTC, "====="); @@ -1688,12 +1689,13 @@ int stt_cancel(stt_h stt) return STT_ERROR_IN_PROGRESS_TO_READY; } + client->internal_state = STT_INTERNAL_STATE_CANCELING; int ret = stt_dbus_request_cancel(client->uid); if (0 != ret) { SLOG(LOG_ERROR, TAG_STTC, "[ERROR] Fail to cancel : %s", __stt_get_error_code(ret)); + client->internal_state = STT_INTERNAL_STATE_NONE; } else { SLOG(LOG_DEBUG, TAG_STTC, "[SUCCESS] Cancel is successful but not done"); - client->internal_state = STT_INTERNAL_STATE_CANCELING; } SLOG(LOG_DEBUG, TAG_STTC, "=====");