Add function to check precondition 86/277386/1
authorwn.jang <wn.jang@samsung.com>
Wed, 6 Jul 2022 05:11:33 +0000 (14:11 +0900)
committerwn.jang <wn.jang@samsung.com>
Wed, 6 Jul 2022 05:11:33 +0000 (14:11 +0900)
Change-Id: If458a13a8f6b937fa3c7c3caab28213e6eadfa71

client/stt.c

index e6f487b..fe2b444 100644 (file)
@@ -376,6 +376,14 @@ static int __stt_check_handle(stt_h stt, stt_client_s** client)
        return STT_ERROR_NONE;
 }
 
+static int __stt_check_precondition(stt_h stt, stt_client_s* client)
+{
+       RETV_IF(0 != __stt_get_feature_enabled(), STT_ERROR_NOT_SUPPORTED);
+       RETV_IF(0 != __stt_check_privilege(), STT_ERROR_PERMISSION_DENIED);
+       RETV_IF(0 != __stt_check_handle(stt, client), STT_ERROR_INVALID_PARAMETER);
+       return STT_ERROR_NONE;
+}
+
 int stt_create(stt_h* stt)
 {
        RETV_IF(0 != __stt_get_feature_enabled(), STT_ERROR_NOT_SUPPORTED);
@@ -434,10 +442,10 @@ int stt_create(stt_h* stt)
 int stt_destroy(stt_h stt)
 {
        stt_client_s* client = NULL;
-       RETV_IF(0 != __stt_get_feature_enabled(), STT_ERROR_NOT_SUPPORTED);
-       RETV_IF(0 != __stt_check_privilege(), STT_ERROR_PERMISSION_DENIED);
-       RETV_IF(0 != __stt_check_handle(stt, &client), STT_ERROR_INVALID_PARAMETER);
-
+       int temp = __stt_check_precondition(stt, client);
+       if (STT_ERROR_NONE != temp)) {
+               return temp;
+       }
        SLOG(LOG_INFO, TAG_STTC, "===== Destroy STT");
 
        /* check used callback */
@@ -513,9 +521,10 @@ static bool __stt_config_supported_engine_cb(const char* engine_id, const char*
 int stt_foreach_supported_engines(stt_h stt, stt_supported_engine_cb callback, void* user_data)
 {
        stt_client_s* client = NULL;
-       RETV_IF(0 != __stt_get_feature_enabled(), STT_ERROR_NOT_SUPPORTED);
-       RETV_IF(0 != __stt_check_privilege(), STT_ERROR_PERMISSION_DENIED);
-       RETV_IF(0 != __stt_check_handle(stt, &client), STT_ERROR_INVALID_PARAMETER);
+       int temp = __stt_check_precondition(stt, client);
+       if (STT_ERROR_NONE != temp)) {
+               return temp;
+       }
 
        SLOG(LOG_INFO, TAG_STTC, "===== Foreach Supported engine");
 
@@ -551,9 +560,10 @@ int stt_foreach_supported_engines(stt_h stt, stt_supported_engine_cb callback, v
 int stt_get_engine(stt_h stt, char** engine_id)
 {
        stt_client_s* client = NULL;
-       RETV_IF(0 != __stt_get_feature_enabled(), STT_ERROR_NOT_SUPPORTED);
-       RETV_IF(0 != __stt_check_privilege(), STT_ERROR_PERMISSION_DENIED);
-       RETV_IF(0 != __stt_check_handle(stt, &client), STT_ERROR_INVALID_PARAMETER);
+       int temp = __stt_check_precondition(stt, client);
+       if (STT_ERROR_NONE != temp)) {
+               return temp;
+       }
 
        SLOG(LOG_INFO, TAG_STTC, "===== Get current engine");
 
@@ -704,9 +714,10 @@ int stt_set_engine(stt_h stt, const char* engine_id)
 int stt_set_credential(stt_h stt, const char* credential)
 {
        stt_client_s* client = NULL;
-       RETV_IF(0 != __stt_get_feature_enabled(), STT_ERROR_NOT_SUPPORTED);
-       RETV_IF(0 != __stt_check_privilege(), STT_ERROR_PERMISSION_DENIED);
-       RETV_IF(0 != __stt_check_handle(stt, &client), STT_ERROR_INVALID_PARAMETER);
+       int temp = __stt_check_precondition(stt, client);
+       if (STT_ERROR_NONE != temp)) {
+               return temp;
+       }
 
        SLOG(LOG_INFO, TAG_STTC, "===== Set credential");
 
@@ -736,9 +747,10 @@ int stt_set_credential(stt_h stt, const char* credential)
 int stt_set_private_data(stt_h stt, const char* key, const char* data)
 {
        stt_client_s* client = NULL;
-       RETV_IF(0 != __stt_get_feature_enabled(), STT_ERROR_NOT_SUPPORTED);
-       RETV_IF(0 != __stt_check_privilege(), STT_ERROR_PERMISSION_DENIED);
-       RETV_IF(0 != __stt_check_handle(stt, &client), STT_ERROR_INVALID_PARAMETER);
+       int temp = __stt_check_precondition(stt, client);
+       if (STT_ERROR_NONE != temp)) {
+               return temp;
+       }
 
        SLOG(LOG_INFO, TAG_STTC, "===== Set private data");
 
@@ -789,9 +801,10 @@ int stt_set_private_data(stt_h stt, const char* key, const char* data)
 int stt_get_private_data(stt_h stt, const char* key, char** data)
 {
        stt_client_s* client = NULL;
-       RETV_IF(0 != __stt_get_feature_enabled(), STT_ERROR_NOT_SUPPORTED);
-       RETV_IF(0 != __stt_check_privilege(), STT_ERROR_PERMISSION_DENIED);
-       RETV_IF(0 != __stt_check_handle(stt, &client), STT_ERROR_INVALID_PARAMETER);
+       int temp = __stt_check_precondition(stt, client);
+       if (STT_ERROR_NONE != temp)) {
+               return temp;
+       }
 
        SLOG(LOG_INFO, TAG_STTC, "===== Get private data");
 
@@ -845,9 +858,10 @@ int stt_set_server_stt(stt_h stt, const char* key, char* user_data)
        int ret = -1;
        stt_client_s* client = NULL;
 
-       RETV_IF(0 != __stt_get_feature_enabled(), STT_ERROR_NOT_SUPPORTED);
-       RETV_IF(0 != __stt_check_privilege(), STT_ERROR_PERMISSION_DENIED);
-       RETV_IF(0 != __stt_check_handle(stt, &client), STT_ERROR_INVALID_PARAMETER);
+       int temp = __stt_check_precondition(stt, client);
+       if (STT_ERROR_NONE != temp)) {
+               return temp;
+       }
 
        SLOG(LOG_INFO, TAG_STTC, "===== Set STT server");
 
@@ -1018,9 +1032,10 @@ static Eina_Bool __stt_connect_daemon(void *data)
 int stt_prepare(stt_h stt)
 {
        stt_client_s* client = NULL;
-       RETV_IF(0 != __stt_get_feature_enabled(), STT_ERROR_NOT_SUPPORTED);
-       RETV_IF(0 != __stt_check_privilege(), STT_ERROR_PERMISSION_DENIED);
-       RETV_IF(0 != __stt_check_handle(stt, &client), STT_ERROR_INVALID_PARAMETER);
+       int temp = __stt_check_precondition(stt, client);
+       if (STT_ERROR_NONE != temp)) {
+               return temp;
+       }
 
        SLOG(LOG_INFO, TAG_STTC, "===== Prepare STT");
 
@@ -1043,9 +1058,10 @@ int stt_prepare(stt_h stt)
 int stt_unprepare(stt_h stt)
 {
        stt_client_s* client = NULL;
-       RETV_IF(0 != __stt_get_feature_enabled(), STT_ERROR_NOT_SUPPORTED);
-       RETV_IF(0 != __stt_check_privilege(), STT_ERROR_PERMISSION_DENIED);
-       RETV_IF(0 != __stt_check_handle(stt, &client), STT_ERROR_INVALID_PARAMETER);
+       int temp = __stt_check_precondition(stt, client);
+       if (STT_ERROR_NONE != temp)) {
+               return temp;
+       }
 
        SLOG(LOG_INFO, TAG_STTC, "===== Unprepare STT");
 
@@ -1127,9 +1143,10 @@ static bool __stt_config_supported_language_cb(const char* engine_id, const char
 int stt_foreach_supported_languages(stt_h stt, stt_supported_language_cb callback, void* user_data)
 {
        stt_client_s* client = NULL;
-       RETV_IF(0 != __stt_get_feature_enabled(), STT_ERROR_NOT_SUPPORTED);
-       RETV_IF(0 != __stt_check_privilege(), STT_ERROR_PERMISSION_DENIED);
-       RETV_IF(0 != __stt_check_handle(stt, &client), STT_ERROR_INVALID_PARAMETER);
+       int temp = __stt_check_precondition(stt, client);
+       if (STT_ERROR_NONE != temp)) {
+               return temp;
+       }
 
        SLOG(LOG_INFO, TAG_STTC, "===== Foreach Supported Language");
 
@@ -1190,9 +1207,10 @@ int stt_foreach_supported_languages(stt_h stt, stt_supported_language_cb callbac
 int stt_get_default_language(stt_h stt, char** language)
 {
        stt_client_s* client = NULL;
-       RETV_IF(0 != __stt_get_feature_enabled(), STT_ERROR_NOT_SUPPORTED);
-       RETV_IF(0 != __stt_check_privilege(), STT_ERROR_PERMISSION_DENIED);
-       RETV_IF(0 != __stt_check_handle(stt, &client), STT_ERROR_INVALID_PARAMETER);
+       int temp = __stt_check_precondition(stt, client);
+       if (STT_ERROR_NONE != temp)) {
+               return temp;
+       }
 
        SLOG(LOG_INFO, TAG_STTC, "===== Get Default Language");
 
@@ -1219,9 +1237,10 @@ int stt_get_default_language(stt_h stt, char** language)
 int stt_get_state(stt_h stt, stt_state_e* state)
 {
        stt_client_s* client = NULL;
-       RETV_IF(0 != __stt_get_feature_enabled(), STT_ERROR_NOT_SUPPORTED);
-       RETV_IF(0 != __stt_check_privilege(), STT_ERROR_PERMISSION_DENIED);
-       RETV_IF(0 != __stt_check_handle(stt, &client), STT_ERROR_INVALID_PARAMETER);
+       int temp = __stt_check_precondition(stt, client);
+       if (STT_ERROR_NONE != temp)) {
+               return temp;
+       }
 
        if (NULL == state) {
                SLOG(LOG_ERROR, TAG_STTC, "[ERROR] Input parameter is NULL"); //LCOV_EXCL_LINE
@@ -1246,9 +1265,10 @@ int stt_get_state(stt_h stt, stt_state_e* state)
 int stt_get_error_message(stt_h stt, char** err_msg)
 {
        stt_client_s* client = NULL;
-       RETV_IF(0 != __stt_get_feature_enabled(), STT_ERROR_NOT_SUPPORTED);
-       RETV_IF(0 != __stt_check_privilege(), STT_ERROR_PERMISSION_DENIED);
-       RETV_IF(0 != __stt_check_handle(stt, &client), STT_ERROR_INVALID_PARAMETER);
+       int temp = __stt_check_precondition(stt, client);
+       if (STT_ERROR_NONE != temp)) {
+               return temp;
+       }
 
        if (NULL == err_msg) {
                SLOG(LOG_ERROR, TAG_STTC, "[ERROR] Input parameter is NULL");
@@ -1276,9 +1296,10 @@ int stt_get_error_message(stt_h stt, char** err_msg)
 int stt_is_recognition_type_supported(stt_h stt, const char* type, bool* support)
 {
        stt_client_s* client = NULL;
-       RETV_IF(0 != __stt_get_feature_enabled(), STT_ERROR_NOT_SUPPORTED);
-       RETV_IF(0 != __stt_check_privilege(), STT_ERROR_PERMISSION_DENIED);
-       RETV_IF(0 != __stt_check_handle(stt, &client), STT_ERROR_INVALID_PARAMETER);
+       int temp = __stt_check_precondition(stt, client);
+       if (STT_ERROR_NONE != temp)) {
+               return temp;
+       }
 
        if (NULL == type || NULL == support) {
                SLOG(LOG_ERROR, TAG_STTC, "[ERROR] Input parameter is NULL"); //LCOV_EXCL_LINE
@@ -1322,9 +1343,10 @@ int stt_is_recognition_type_supported(stt_h stt, const char* type, bool* support
 int stt_set_silence_detection(stt_h stt, stt_option_silence_detection_e type)
 {
        stt_client_s* client = NULL;
-       RETV_IF(0 != __stt_get_feature_enabled(), STT_ERROR_NOT_SUPPORTED);
-       RETV_IF(0 != __stt_check_privilege(), STT_ERROR_PERMISSION_DENIED);
-       RETV_IF(0 != __stt_check_handle(stt, &client), STT_ERROR_INVALID_PARAMETER);
+       int temp = __stt_check_precondition(stt, client);
+       if (STT_ERROR_NONE != temp)) {
+               return temp;
+       }
 
        /* check state */
        if (client->current_state != STT_STATE_READY) {
@@ -1351,9 +1373,10 @@ int stt_set_silence_detection(stt_h stt, stt_option_silence_detection_e type)
 int stt_set_start_sound(stt_h stt, const char* filename)
 {
        stt_client_s* client = NULL;
-       RETV_IF(0 != __stt_get_feature_enabled(), STT_ERROR_NOT_SUPPORTED);
-       RETV_IF(0 != __stt_check_privilege(), STT_ERROR_PERMISSION_DENIED);
-       RETV_IF(0 != __stt_check_handle(stt, &client), STT_ERROR_INVALID_PARAMETER);
+       int temp = __stt_check_precondition(stt, client);
+       if (STT_ERROR_NONE != temp)) {
+               return temp;
+       }
 
        SLOG(LOG_INFO, TAG_STTC, "===== STT SET START SOUND");
 
@@ -1404,9 +1427,10 @@ int stt_set_start_sound(stt_h stt, const char* filename)
 int stt_unset_start_sound(stt_h stt)
 {
        stt_client_s* client = NULL;
-       RETV_IF(0 != __stt_get_feature_enabled(), STT_ERROR_NOT_SUPPORTED);
-       RETV_IF(0 != __stt_check_privilege(), STT_ERROR_PERMISSION_DENIED);
-       RETV_IF(0 != __stt_check_handle(stt, &client), STT_ERROR_INVALID_PARAMETER);
+       int temp = __stt_check_precondition(stt, client);
+       if (STT_ERROR_NONE != temp)) {
+               return temp;
+       }
 
        SLOG(LOG_INFO, TAG_STTC, "===== STT UNSET START SOUND");
 
@@ -1447,9 +1471,10 @@ int stt_unset_start_sound(stt_h stt)
 int stt_set_stop_sound(stt_h stt, const char* filename)
 {
        stt_client_s* client = NULL;
-       RETV_IF(0 != __stt_get_feature_enabled(), STT_ERROR_NOT_SUPPORTED);
-       RETV_IF(0 != __stt_check_privilege(), STT_ERROR_PERMISSION_DENIED);
-       RETV_IF(0 != __stt_check_handle(stt, &client), STT_ERROR_INVALID_PARAMETER);
+       int temp = __stt_check_precondition(stt, client);
+       if (STT_ERROR_NONE != temp)) {
+               return temp;
+       }
 
        SLOG(LOG_INFO, TAG_STTC, "===== STT SET STOP SOUND");
 
@@ -1500,9 +1525,10 @@ int stt_set_stop_sound(stt_h stt, const char* filename)
 int stt_unset_stop_sound(stt_h stt)
 {
        stt_client_s* client = NULL;
-       RETV_IF(0 != __stt_get_feature_enabled(), STT_ERROR_NOT_SUPPORTED);
-       RETV_IF(0 != __stt_check_privilege(), STT_ERROR_PERMISSION_DENIED);
-       RETV_IF(0 != __stt_check_handle(stt, &client), STT_ERROR_INVALID_PARAMETER);
+       int temp = __stt_check_precondition(stt, client);
+       if (STT_ERROR_NONE != temp)) {
+               return temp;
+       }
 
        SLOG(LOG_INFO, TAG_STTC, "===== STT UNSET STOP SOUND");
 
@@ -1543,9 +1569,10 @@ int stt_unset_stop_sound(stt_h stt)
 int stt_start(stt_h stt, const char* language, const char* type)
 {
        stt_client_s* client = NULL;
-       RETV_IF(0 != __stt_get_feature_enabled(), STT_ERROR_NOT_SUPPORTED);
-       RETV_IF(0 != __stt_check_privilege(), STT_ERROR_PERMISSION_DENIED);
-       RETV_IF(0 != __stt_check_handle(stt, &client), STT_ERROR_INVALID_PARAMETER);
+       int temp = __stt_check_precondition(stt, client);
+       if (STT_ERROR_NONE != temp)) {
+               return temp;
+       }
 
        SLOG(LOG_INFO, TAG_STTC, "===== STT START");
 
@@ -1610,9 +1637,10 @@ int stt_start(stt_h stt, const char* language, const char* type)
 int stt_stop(stt_h stt)
 {
        stt_client_s* client = NULL;
-       RETV_IF(0 != __stt_get_feature_enabled(), STT_ERROR_NOT_SUPPORTED);
-       RETV_IF(0 != __stt_check_privilege(), STT_ERROR_PERMISSION_DENIED);
-       RETV_IF(0 != __stt_check_handle(stt, &client), STT_ERROR_INVALID_PARAMETER);
+       int temp = __stt_check_precondition(stt, client);
+       if (STT_ERROR_NONE != temp)) {
+               return temp;
+       }
 
        SLOG(LOG_INFO, TAG_STTC, "===== STT STOP");
 
@@ -1652,9 +1680,10 @@ int stt_stop(stt_h stt)
 int stt_cancel(stt_h stt)
 {
        stt_client_s* client = NULL;
-       RETV_IF(0 != __stt_get_feature_enabled(), STT_ERROR_NOT_SUPPORTED);
-       RETV_IF(0 != __stt_check_privilege(), STT_ERROR_PERMISSION_DENIED);
-       RETV_IF(0 != __stt_check_handle(stt, &client), STT_ERROR_INVALID_PARAMETER);
+       int temp = __stt_check_precondition(stt, client);
+       if (STT_ERROR_NONE != temp)) {
+               return temp;
+       }
 
        SLOG(LOG_INFO, TAG_STTC, "===== STT CANCEL");
 
@@ -1718,9 +1747,10 @@ int __stt_cb_set_volume(unsigned int uid, float volume)
 int stt_get_recording_volume(stt_h stt, float* volume)
 {
        stt_client_s* client = NULL;
-       RETV_IF(0 != __stt_get_feature_enabled(), STT_ERROR_NOT_SUPPORTED);
-       RETV_IF(0 != __stt_check_privilege(), STT_ERROR_PERMISSION_DENIED);
-       RETV_IF(0 != __stt_check_handle(stt, &client), STT_ERROR_INVALID_PARAMETER);
+       int temp = __stt_check_precondition(stt, client);
+       if (STT_ERROR_NONE != temp)) {
+               return temp;
+       }
 
        if (NULL == volume) {
                SLOG(LOG_ERROR, TAG_STTC, "[ERROR] Input parameter is NULL"); //LCOV_EXCL_LINE
@@ -1767,9 +1797,10 @@ bool __stt_result_time_cb(int index, int event, const char* text, long start_tim
 int stt_foreach_detailed_result(stt_h stt, stt_result_time_cb callback, void* user_data)
 {
        stt_client_s* client = NULL;
-       RETV_IF(0 != __stt_get_feature_enabled(), STT_ERROR_NOT_SUPPORTED);
-       RETV_IF(0 != __stt_check_privilege(), STT_ERROR_PERMISSION_DENIED);
-       RETV_IF(0 != __stt_check_handle(stt, &client), STT_ERROR_INVALID_PARAMETER);
+       int temp = __stt_check_precondition(stt, client);
+       if (STT_ERROR_NONE != temp)) {
+               return temp;
+       }
 
        SLOG(LOG_INFO, TAG_STTC, "===== STT FOREACH DETAILED RESULT");
 
@@ -2056,9 +2087,10 @@ int __stt_cb_speech_status(unsigned int uid, int status)
 int stt_set_recognition_result_cb(stt_h stt, stt_recognition_result_cb callback, void* user_data)
 {
        stt_client_s* client = NULL;
-       RETV_IF(0 != __stt_get_feature_enabled(), STT_ERROR_NOT_SUPPORTED);
-       RETV_IF(0 != __stt_check_privilege(), STT_ERROR_PERMISSION_DENIED);
-       RETV_IF(0 != __stt_check_handle(stt, &client), STT_ERROR_INVALID_PARAMETER);
+       int temp = __stt_check_precondition(stt, client);
+       if (STT_ERROR_NONE != temp)) {
+               return temp;
+       }
 
        if (callback == NULL)
                return STT_ERROR_INVALID_PARAMETER;
@@ -2079,9 +2111,10 @@ int stt_set_recognition_result_cb(stt_h stt, stt_recognition_result_cb callback,
 int stt_unset_recognition_result_cb(stt_h stt)
 {
        stt_client_s* client = NULL;
-       RETV_IF(0 != __stt_get_feature_enabled(), STT_ERROR_NOT_SUPPORTED);
-       RETV_IF(0 != __stt_check_privilege(), STT_ERROR_PERMISSION_DENIED);
-       RETV_IF(0 != __stt_check_handle(stt, &client), STT_ERROR_INVALID_PARAMETER);
+       int temp = __stt_check_precondition(stt, client);
+       if (STT_ERROR_NONE != temp)) {
+               return temp;
+       }
 
        if (STT_STATE_CREATED != client->current_state) {
                SLOG(LOG_ERROR, TAG_STTC, "[ERROR] Current state(%d) is not 'Created'", client->current_state);
@@ -2099,9 +2132,10 @@ int stt_unset_recognition_result_cb(stt_h stt)
 int stt_set_state_changed_cb(stt_h stt, stt_state_changed_cb callback, void* user_data)
 {
        stt_client_s* client = NULL;
-       RETV_IF(0 != __stt_get_feature_enabled(), STT_ERROR_NOT_SUPPORTED);
-       RETV_IF(0 != __stt_check_privilege(), STT_ERROR_PERMISSION_DENIED);
-       RETV_IF(0 != __stt_check_handle(stt, &client), STT_ERROR_INVALID_PARAMETER);
+       int temp = __stt_check_precondition(stt, client);
+       if (STT_ERROR_NONE != temp)) {
+               return temp;
+       }
 
        if (NULL == callback)
                return STT_ERROR_INVALID_PARAMETER;
@@ -2122,9 +2156,10 @@ int stt_set_state_changed_cb(stt_h stt, stt_state_changed_cb callback, void* use
 int stt_unset_state_changed_cb(stt_h stt)
 {
        stt_client_s* client = NULL;
-       RETV_IF(0 != __stt_get_feature_enabled(), STT_ERROR_NOT_SUPPORTED);
-       RETV_IF(0 != __stt_check_privilege(), STT_ERROR_PERMISSION_DENIED);
-       RETV_IF(0 != __stt_check_handle(stt, &client), STT_ERROR_INVALID_PARAMETER);
+       int temp = __stt_check_precondition(stt, client);
+       if (STT_ERROR_NONE != temp)) {
+               return temp;
+       }
 
        if (STT_STATE_CREATED != client->current_state) {
                SLOG(LOG_ERROR, TAG_STTC, "[ERROR] Current state(%d) is not 'Created'", client->current_state);
@@ -2142,9 +2177,10 @@ int stt_unset_state_changed_cb(stt_h stt)
 int stt_set_error_cb(stt_h stt, stt_error_cb callback, void* user_data)
 {
        stt_client_s* client = NULL;
-       RETV_IF(0 != __stt_get_feature_enabled(), STT_ERROR_NOT_SUPPORTED);
-       RETV_IF(0 != __stt_check_privilege(), STT_ERROR_PERMISSION_DENIED);
-       RETV_IF(0 != __stt_check_handle(stt, &client), STT_ERROR_INVALID_PARAMETER);
+       int temp = __stt_check_precondition(stt, client);
+       if (STT_ERROR_NONE != temp)) {
+               return temp;
+       }
 
        if (NULL == callback)
                return STT_ERROR_INVALID_PARAMETER;
@@ -2165,9 +2201,10 @@ int stt_set_error_cb(stt_h stt, stt_error_cb callback, void* user_data)
 int stt_unset_error_cb(stt_h stt)
 {
        stt_client_s* client = NULL;
-       RETV_IF(0 != __stt_get_feature_enabled(), STT_ERROR_NOT_SUPPORTED);
-       RETV_IF(0 != __stt_check_privilege(), STT_ERROR_PERMISSION_DENIED);
-       RETV_IF(0 != __stt_check_handle(stt, &client), STT_ERROR_INVALID_PARAMETER);
+       int temp = __stt_check_precondition(stt, client);
+       if (STT_ERROR_NONE != temp)) {
+               return temp;
+       }
 
        if (STT_STATE_CREATED != client->current_state) {
                SLOG(LOG_ERROR, TAG_STTC, "[ERROR] Current state(%d) is not 'Created'", client->current_state);
@@ -2185,9 +2222,10 @@ int stt_unset_error_cb(stt_h stt)
 int stt_set_default_language_changed_cb(stt_h stt, stt_default_language_changed_cb callback, void* user_data)
 {
        stt_client_s* client = NULL;
-       RETV_IF(0 != __stt_get_feature_enabled(), STT_ERROR_NOT_SUPPORTED);
-       RETV_IF(0 != __stt_check_privilege(), STT_ERROR_PERMISSION_DENIED);
-       RETV_IF(0 != __stt_check_handle(stt, &client), STT_ERROR_INVALID_PARAMETER);
+       int temp = __stt_check_precondition(stt, client);
+       if (STT_ERROR_NONE != temp)) {
+               return temp;
+       }
 
        if (NULL == callback)
                return STT_ERROR_INVALID_PARAMETER;
@@ -2208,9 +2246,10 @@ int stt_set_default_language_changed_cb(stt_h stt, stt_default_language_changed_
 int stt_unset_default_language_changed_cb(stt_h stt)
 {
        stt_client_s* client = NULL;
-       RETV_IF(0 != __stt_get_feature_enabled(), STT_ERROR_NOT_SUPPORTED);
-       RETV_IF(0 != __stt_check_privilege(), STT_ERROR_PERMISSION_DENIED);
-       RETV_IF(0 != __stt_check_handle(stt, &client), STT_ERROR_INVALID_PARAMETER);
+       int temp = __stt_check_precondition(stt, client);
+       if (STT_ERROR_NONE != temp)) {
+               return temp;
+       }
 
        if (STT_STATE_CREATED != client->current_state) {
                SLOG(LOG_ERROR, TAG_STTC, "[ERROR] Current state(%d) is not 'Created'", client->current_state);
@@ -2228,9 +2267,10 @@ int stt_unset_default_language_changed_cb(stt_h stt)
 int stt_set_engine_changed_cb(stt_h stt, stt_engine_changed_cb callback, void* user_data)
 {
        stt_client_s* client = NULL;
-       RETV_IF(0 != __stt_get_feature_enabled(), STT_ERROR_NOT_SUPPORTED);
-       RETV_IF(0 != __stt_check_privilege(), STT_ERROR_PERMISSION_DENIED);
-       RETV_IF(0 != __stt_check_handle(stt, &client), STT_ERROR_INVALID_PARAMETER);
+       int temp = __stt_check_precondition(stt, client);
+       if (STT_ERROR_NONE != temp)) {
+               return temp;
+       }
 
        if (NULL == callback)
                return STT_ERROR_INVALID_PARAMETER;
@@ -2251,9 +2291,10 @@ int stt_set_engine_changed_cb(stt_h stt, stt_engine_changed_cb callback, void* u
 int stt_unset_engine_changed_cb(stt_h stt)
 {
        stt_client_s* client = NULL;
-       RETV_IF(0 != __stt_get_feature_enabled(), STT_ERROR_NOT_SUPPORTED);
-       RETV_IF(0 != __stt_check_privilege(), STT_ERROR_PERMISSION_DENIED);
-       RETV_IF(0 != __stt_check_handle(stt, &client), STT_ERROR_INVALID_PARAMETER);
+       int temp = __stt_check_precondition(stt, client);
+       if (STT_ERROR_NONE != temp)) {
+               return temp;
+       }
 
        if (STT_STATE_CREATED != client->current_state) {
                SLOG(LOG_ERROR, TAG_STTC, "[ERROR] Current state(%d) is not 'Created'", client->current_state);
@@ -2272,9 +2313,10 @@ int stt_unset_engine_changed_cb(stt_h stt)
 int stt_set_speech_status_cb(stt_h stt, stt_speech_status_cb callback, void* user_data)
 {
        stt_client_s* client = NULL;
-       RETV_IF(0 != __stt_get_feature_enabled(), STT_ERROR_NOT_SUPPORTED);
-       RETV_IF(0 != __stt_check_privilege(), STT_ERROR_PERMISSION_DENIED);
-       RETV_IF(0 != __stt_check_handle(stt, &client), STT_ERROR_INVALID_PARAMETER);
+       int temp = __stt_check_precondition(stt, client);
+       if (STT_ERROR_NONE != temp)) {
+               return temp;
+       }
 
        if (NULL == callback)
                return STT_ERROR_INVALID_PARAMETER;
@@ -2295,9 +2337,10 @@ int stt_set_speech_status_cb(stt_h stt, stt_speech_status_cb callback, void* use
 int stt_unset_speech_status_cb(stt_h stt)
 {
        stt_client_s* client = NULL;
-       RETV_IF(0 != __stt_get_feature_enabled(), STT_ERROR_NOT_SUPPORTED);
-       RETV_IF(0 != __stt_check_privilege(), STT_ERROR_PERMISSION_DENIED);
-       RETV_IF(0 != __stt_check_handle(stt, &client), STT_ERROR_INVALID_PARAMETER);
+       int temp = __stt_check_precondition(stt, client);
+       if (STT_ERROR_NONE != temp)) {
+               return temp;
+       }
 
        if (STT_STATE_CREATED != client->current_state) {
                SLOG(LOG_ERROR, TAG_STTC, "[ERROR] Current state(%d) is not 'Created'", client->current_state);
@@ -2315,9 +2358,10 @@ int stt_unset_speech_status_cb(stt_h stt)
 int stt_start_file(stt_h stt, const char* language, const char* type, const char* filepath, stt_audio_type_e audio_type, int sample_rate)
 {
        stt_client_s* client = NULL;
-       RETV_IF(0 != __stt_get_feature_enabled(), STT_ERROR_NOT_SUPPORTED);
-       RETV_IF(0 != __stt_check_privilege(), STT_ERROR_PERMISSION_DENIED);
-       RETV_IF(0 != __stt_check_handle(stt, &client), STT_ERROR_INVALID_PARAMETER);
+       int temp = __stt_check_precondition(stt, client);
+       if (STT_ERROR_NONE != temp)) {
+               return temp;
+       }
        if (NULL == filepath) {
                SLOG(LOG_ERROR, TAG_STTC, "[ERROR] Input parameter is NULL");
                return STT_ERROR_INVALID_PARAMETER;
@@ -2386,9 +2430,10 @@ int stt_start_file(stt_h stt, const char* language, const char* type, const char
 int stt_cancel_file(stt_h stt)
 {
        stt_client_s* client = NULL;
-       RETV_IF(0 != __stt_get_feature_enabled(), STT_ERROR_NOT_SUPPORTED);
-       RETV_IF(0 != __stt_check_privilege(), STT_ERROR_PERMISSION_DENIED);
-       RETV_IF(0 != __stt_check_handle(stt, &client), STT_ERROR_INVALID_PARAMETER);
+       int temp = __stt_check_precondition(stt, client);
+       if (STT_ERROR_NONE != temp)) {
+               return temp;
+       }
 
        SLOG(LOG_INFO, TAG_STTC, "===== STT CANCEL FILE");
 
@@ -2553,9 +2598,10 @@ int stt_change_system_volume(stt_h stt, stt_system_volume_event_e volume_event)
        SLOG(LOG_DEBUG, TAG_STTC, "[STT] Change system volume, volume_event(%d)", volume_event);
 
        stt_client_s* client = NULL;
-       RETV_IF(0 != __stt_get_feature_enabled(), STT_ERROR_NOT_SUPPORTED);
-       RETV_IF(0 != __stt_check_privilege(), STT_ERROR_PERMISSION_DENIED);
-       RETV_IF(0 != __stt_check_handle(stt, &client), STT_ERROR_INVALID_PARAMETER);
+       int temp = __stt_check_precondition(stt, client);
+       if (STT_ERROR_NONE != temp)) {
+               return temp;
+       }
 
        /* check state */
        if (client->current_state != STT_STATE_READY && client->current_state != STT_STATE_CREATED) {
@@ -2621,9 +2667,10 @@ int stt_recover_system_volume(stt_h stt)
        SLOG(LOG_DEBUG, TAG_STTC, "[STT] recover system volume");
 
        stt_client_s* client = NULL;
-       RETV_IF(0 != __stt_get_feature_enabled(), STT_ERROR_NOT_SUPPORTED);
-       RETV_IF(0 != __stt_check_privilege(), STT_ERROR_PERMISSION_DENIED);
-       RETV_IF(0 != __stt_check_handle(stt, &client), STT_ERROR_INVALID_PARAMETER);
+       int temp = __stt_check_precondition(stt, client);
+       if (STT_ERROR_NONE != temp)) {
+               return temp;
+       }
 
        /* check state */
        if (client->current_state != STT_STATE_READY && client->current_state != STT_STATE_CREATED) {