From: wn.jang Date: Fri, 24 Jun 2022 05:07:29 +0000 (+0900) Subject: Remove duplicated code for SAM score X-Git-Tag: submit/tizen/20220725.004613~15 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=c34e14fb05161d1b0c20e79bb57fc53e45a69204;p=platform%2Fcore%2Fuifw%2Fstt.git Remove duplicated code for SAM score Change-Id: I2ae51acc83aefb32a0eb579ab560c74080c3be41 --- diff --git a/client/stt_dbus.c b/client/stt_dbus.c index b5d157a..0474266 100644 --- a/client/stt_dbus.c +++ b/client/stt_dbus.c @@ -46,14 +46,14 @@ extern int __stt_cb_set_volume(unsigned int uid, float volume); extern int __stt_cb_speech_status(unsigned int uid, int status); //LCOV_EXCL_START -char* __stt_get_service_name(char* engine_id) +char* __stt_get_default_engine() { - char* service_name = NULL; - const char* engine_default = NULL; + const char* temp = NULL; + char* engine_default = NULL; - struct buxton_client * bux_cli; - struct buxton_layer * bux_layer; - struct buxton_value * bux_val; + struct buxton_client * bux_cli = NULL; + struct buxton_layer * bux_layer = NULL; + struct buxton_value * bux_val = NULL; int ret = buxton_open(&bux_cli, NULL, NULL); if (0 != ret) { @@ -64,295 +64,109 @@ char* __stt_get_service_name(char* engine_id) bux_layer = buxton_create_layer("system"); if (NULL == bux_layer) { SLOG(LOG_ERROR, TAG_STTC, "[DBUS-BUXTON2] buxton_create_layer FAIL"); - buxton_close(bux_cli); - bux_cli = NULL; - return NULL; + goto cleanup; } bux_val = buxton_value_create_string("stt-engine-default"); if (NULL == bux_val) { SLOG(LOG_ERROR, TAG_STTC, "[DBUS-BUXTON2] buxton_value_create_string FAIL"); - buxton_free_layer(bux_layer); - buxton_close(bux_cli); - bux_layer = NULL; - bux_cli = NULL; - return NULL; + goto cleanup; } ret = buxton_get_value_sync(bux_cli, bux_layer, STT_ENGINE_DB_DEFAULT, &bux_val); if (0 != ret) { SLOG(LOG_ERROR, TAG_STTC, "[DBUS-BUXTON2] Fail to get value sync, ret(%d)", ret); - buxton_value_free(bux_val); - buxton_free_layer(bux_layer); - buxton_close(bux_cli); - - bux_cli = NULL; - bux_layer = NULL; - bux_val = NULL; - return NULL; + goto cleanup; } - ret = buxton_value_get_string(bux_val, &engine_default); + ret = buxton_value_get_string(bux_val, &temp); if (0 != ret) { SLOG(LOG_ERROR, TAG_STTC, "[DBUS-BUXTON2] Fail to get value string, ret(%d)", ret); + temp = NULL; + goto cleanup; + } + SLOG(LOG_INFO, TAG_STTC, "[DBUS-BUXTON2] buxton_value_get_string: engine_default: %s", temp); + engine_default = strdup(temp); + +cleanup: + if (bux_val) buxton_value_free(bux_val); + if (bux_layer) buxton_free_layer(bux_layer); + if (bux_cli) buxton_close(bux_cli); - bux_cli = NULL; - bux_layer = NULL; - bux_val = NULL; - return NULL; - } - SLOG(LOG_DEBUG, TAG_STTC, "[DBUS-BUXTON2] buxton_value_get_string: engine_default: %s", engine_default); - - - if (NULL == engine_id || NULL == engine_default || 0 == strncmp(engine_id, engine_default, strlen(engine_id))) { - service_name = (char*)calloc(strlen(STT_SERVER_SERVICE_NAME) + 1, sizeof(char)); - if (NULL == service_name) { - SLOG(LOG_ERROR, TAG_STTC, "[ERROR] Memory allocation Failed!!"); - buxton_value_free(bux_val); - buxton_free_layer(bux_layer); - buxton_close(bux_cli); - - bux_cli = NULL; - bux_layer = NULL; - bux_val = NULL; - return NULL; - } - snprintf(service_name, strlen(STT_SERVER_SERVICE_NAME) + 1, "%s", STT_SERVER_SERVICE_NAME); - } else { - service_name = (char*)calloc(strlen(STT_SERVER_SERVICE_NAME) + strlen(engine_id) - 8, sizeof(char)); - if (NULL == service_name) { - SLOG(LOG_ERROR, TAG_STTC, "[ERROR] Memory allocation Failed!!"); - buxton_value_free(bux_val); - buxton_free_layer(bux_layer); - buxton_close(bux_cli); - - bux_cli = NULL; - bux_layer = NULL; - bux_val = NULL; - return NULL; - } - snprintf(service_name, strlen(STT_SERVER_SERVICE_NAME) + strlen(engine_id) - 8, "%s%s%s", STT_SERVER_SERVICE_NAME, ".", (engine_id + 10)); - } - - buxton_value_free(bux_val); - buxton_free_layer(bux_layer); - buxton_close(bux_cli); - bux_cli = NULL; bux_layer = NULL; bux_val = NULL; - SLOG(LOG_DEBUG, TAG_STTC, "[get_service_name] FINISH!! service name: %s", service_name); - - return service_name; + return engine_default; } -char* __stt_get_service_object(char* engine_id) +char* __stt_get_service_info(const char* stt_server_service_info, char* engine_id, const char* engine_default) { - char* service_object = NULL; - const char* engine_default = NULL; - - struct buxton_client * bux_cli; - struct buxton_layer * bux_layer; - struct buxton_value * bux_val; - - int ret = buxton_open(&bux_cli, NULL, NULL); - if (0 != ret) { - SLOG(LOG_ERROR, TAG_STTC, "[DBUS-BUXTON2] Fail to open buxton client, ret(%d)", ret); - return NULL; - } - bux_layer = buxton_create_layer("system"); - if (NULL == bux_layer) { - SLOG(LOG_DEBUG, TAG_STTC, "[DBUS-BUXTON2] buxton_create_layer FAIL"); - buxton_close(bux_cli); - bux_cli = NULL; - return NULL; - } - - bux_val = buxton_value_create_string("stt-engine-default"); - if (NULL == bux_val) { - SLOG(LOG_ERROR, TAG_STTC, "[DBUS-BUXTON2] buxton_value_create_string FAIL"); - buxton_free_layer(bux_layer); - buxton_close(bux_cli); - bux_layer = NULL; - bux_cli = NULL; - return NULL; - } - - ret = buxton_get_value_sync(bux_cli, bux_layer, STT_ENGINE_DB_DEFAULT, &bux_val); - if (0 != ret) { - SLOG(LOG_ERROR, TAG_STTC, "[DBUS-BUXTON2] Fail to get value sync, ret(%d)", ret); - buxton_value_free(bux_val); - buxton_free_layer(bux_layer); - buxton_close(bux_cli); - - bux_cli = NULL; - bux_layer = NULL; - bux_val = NULL; - return NULL; - } - ret = buxton_value_get_string(bux_val, &engine_default); - if (0 != ret) { - SLOG(LOG_ERROR, TAG_STTC, "[DBUS-BUXTON2] Fail to get string, ret(%d)", ret); - buxton_value_free(bux_val); - buxton_free_layer(bux_layer); - buxton_close(bux_cli); - - bux_cli = NULL; - bux_layer = NULL; - bux_val = NULL; - return NULL; - } - SLOG(LOG_DEBUG, TAG_STTC, "[DBUS-BUXTON2] buxton_value_get_string: engine_default: %s", engine_default); + char* service_info = NULL; + char splitter = '.'; + SLOG(LOG_INFO, TAG_STTC, "[get_service_info] service_info(%s), engine_id(%s), engine_default(%s)", stt_server_service_info, engine_id, engine_default); if (NULL == engine_id || NULL == engine_default || 0 == strncmp(engine_id, engine_default, strlen(engine_id))) { - service_object = (char*)calloc(strlen(STT_SERVER_SERVICE_OBJECT_PATH) + 1, sizeof(char)); - if (NULL == service_object) { + service_info = (char*)calloc(strlen(stt_server_service_info) + 1, sizeof(char)); + if (NULL == service_info) { SLOG(LOG_ERROR, TAG_STTC, "[ERROR] Memory allocation Failed!!"); - buxton_value_free(bux_val); - buxton_free_layer(bux_layer); - buxton_close(bux_cli); - - bux_cli = NULL; - bux_layer = NULL; - bux_val = NULL; return NULL; } - snprintf(service_object, strlen(STT_SERVER_SERVICE_OBJECT_PATH) + 1, "%s", STT_SERVER_SERVICE_OBJECT_PATH); + snprintf(service_info, strlen(stt_server_service_info) + 1, "%s", stt_server_service_info); } else { - service_object = (char*)calloc(strlen(STT_SERVER_SERVICE_OBJECT_PATH) + strlen(engine_id) - 8, sizeof(char)); - if (NULL == service_object) { + service_info = (char*)calloc(strlen(stt_server_service_info) + strlen(engine_id) - 8, sizeof(char)); + if (NULL == service_info) { SLOG(LOG_ERROR, TAG_STTC, "[ERROR] Memory allocation Failed!!"); - buxton_value_free(bux_val); - buxton_free_layer(bux_layer); - buxton_close(bux_cli); - - bux_cli = NULL; - bux_layer = NULL; - bux_val = NULL; return NULL; } - snprintf(service_object, strlen(STT_SERVER_SERVICE_OBJECT_PATH) + strlen(engine_id) - 8, "%s%s%s", STT_SERVER_SERVICE_OBJECT_PATH, "/", (engine_id + 10)); + if (0 == strncmp(service_info, STT_SERVER_SERVICE_OBJECT_PATH, strlen(service_info))) + splitter = '/'; + snprintf(service_info, strlen(stt_server_service_info) + strlen(engine_id) - 8, "%s%c%s", stt_server_service_info, splitter, (engine_id + 10)); } + SLOG(LOG_DEBUG, TAG_STTC, "[get_service_info] FINISH!! service info: %s", service_info); - buxton_value_free(bux_val); - buxton_free_layer(bux_layer); - buxton_close(bux_cli); - - bux_cli = NULL; - bux_layer = NULL; - bux_val = NULL; - - SLOG(LOG_DEBUG, TAG_STTC, "[get_service_object] FINISH!! service object: %s", service_object); - - return service_object; + return service_info; } -char* __stt_get_service_interface(char* engine_id) +char* __stt_get_service_name(char* engine_id) { - char* service_interface = NULL; - const char* engine_default = NULL; - - struct buxton_client * bux_cli; - struct buxton_layer * bux_layer; - struct buxton_value * bux_val; - - int ret = buxton_open(&bux_cli, NULL, NULL); - if (0 != ret) { - SLOG(LOG_ERROR, TAG_STTC, "[DBUS-BUXTON2] Fail to open buxton client, ret(%d)", ret); - return NULL; - } - bux_layer = buxton_create_layer("system"); - if (NULL == bux_layer) { - SLOG(LOG_ERROR, TAG_STTC, "[DBUS-BUXTON2] buxton_create_layer FAIL"); - buxton_close(bux_cli); - bux_cli = NULL; - return NULL; - } + char* engine_default = __stt_get_default_engine(); + char* service_name = __stt_get_service_info(STT_SERVER_SERVICE_NAME, engine_id, engine_default); - bux_val = buxton_value_create_string("stt-engine-default"); - if (NULL == bux_val) { - SLOG(LOG_ERROR, TAG_STTC, "[DBUS-BUXTON2] buxton_value_create_string FAIL"); - buxton_free_layer(bux_layer); - buxton_close(bux_cli); - bux_layer = NULL; - bux_cli = NULL; - return NULL; - } + SLOG(LOG_INFO, TAG_STTC, "[get_service_name] FINISH!! service name: %s", service_name); + free(engine_default); + engine_default = NULL; - ret = buxton_get_value_sync(bux_cli, bux_layer, STT_ENGINE_DB_DEFAULT, &bux_val); - if (0 != ret) { - SLOG(LOG_ERROR, TAG_STTC, "[DBUS-BUXTON2] Fail to get value sync, ret(%d)", ret); - buxton_value_free(bux_val); - buxton_free_layer(bux_layer); - buxton_close(bux_cli); - - bux_cli = NULL; - bux_layer = NULL; - bux_val = NULL; - return NULL; - } - ret = buxton_value_get_string(bux_val, &engine_default); - if (0 != ret) { - SLOG(LOG_ERROR, TAG_STTC, "[DBUS-BUXTON2] Fail to get string, ret(%d)", ret); - buxton_value_free(bux_val); - buxton_free_layer(bux_layer); - buxton_close(bux_cli); + return service_name; +} - bux_cli = NULL; - bux_layer = NULL; - bux_val = NULL; - return NULL; - } - SLOG(LOG_DEBUG, TAG_STTC, "[DBUS-BUXTON2] buxton_value_get_string: engine_default: %s", engine_default); +char* __stt_get_service_object(char* engine_id) +{ + char* engine_default = __stt_get_default_engine(); + char* service_object = __stt_get_service_info(STT_SERVER_SERVICE_OBJECT_PATH, engine_id, engine_default); - if (NULL == engine_id || NULL == engine_default || 0 == strncmp(engine_id, engine_default, strlen(engine_id))) { - service_interface = (char*)calloc(strlen(STT_SERVER_SERVICE_INTERFACE) + 1, sizeof(char)); - if (NULL == service_interface) { - SLOG(LOG_ERROR, TAG_STTC, "[ERROR] Memory allocation Failed!!"); - buxton_value_free(bux_val); - buxton_free_layer(bux_layer); - buxton_close(bux_cli); + SLOG(LOG_INFO, TAG_STTC, "[get_service_object] FINISH!! service object: %s", service_object); + free(engine_default); + engine_default = NULL; - bux_cli = NULL; - bux_layer = NULL; - bux_val = NULL; - return NULL; - } - snprintf(service_interface, strlen(STT_SERVER_SERVICE_INTERFACE) + 1, "%s", STT_SERVER_SERVICE_INTERFACE); - } else { - service_interface = (char*)calloc(strlen(STT_SERVER_SERVICE_INTERFACE) + strlen(engine_id) - 8, sizeof(char)); - if (NULL == service_interface) { - SLOG(LOG_ERROR, TAG_STTC, "[ERROR] Memory allocation Failed!!"); - buxton_value_free(bux_val); - buxton_free_layer(bux_layer); - buxton_close(bux_cli); + return service_object; +} - bux_cli = NULL; - bux_layer = NULL; - bux_val = NULL; - return NULL; - } - snprintf(service_interface, strlen(STT_SERVER_SERVICE_INTERFACE) + strlen(engine_id) - 8, "%s%s%s", STT_SERVER_SERVICE_INTERFACE, ".", (engine_id + 10)); - } +char* __stt_get_service_interface(char* engine_id) +{ + char* engine_default = __stt_get_default_engine(); + char* service_interface = __stt_get_service_info(STT_SERVER_SERVICE_INTERFACE, engine_id, engine_default); char* ret_char = strchr(service_interface, '-'); while (NULL != ret_char) { ret_char[0] = '_'; ret_char = strchr(service_interface, '-'); } - - buxton_value_free(bux_val); - buxton_free_layer(bux_layer); - ret = buxton_close(bux_cli); - - bux_cli = NULL; - bux_layer = NULL; - bux_val = NULL; - - SLOG(LOG_DEBUG, TAG_STTC, "[get_service_interface] FINISH!! service interface: %s", service_interface); + SLOG(LOG_INFO, TAG_STTC, "[get_service_interface] FINISH!! service interface: %s", service_interface); + free(engine_default); + engine_default = NULL; return service_interface; } @@ -1988,6 +1802,34 @@ int stt_dbus_request_unset_stop_sound(unsigned int uid) return result; } +static int __stt_dbus_send_message_without_reply(DBusMessage* msg, char* method) +{ + int ret = STT_ERROR_NONE; + if (g_conn_sender) { + dbus_message_set_no_reply(msg, TRUE); + + if (!dbus_connection_send(g_conn_sender, msg, NULL)) { + //LCOV_EXCL_START + SLOG(LOG_ERROR, TAG_STTC, "[Dbus ERROR] <<<< stt dbus %s message : Out Of Memory !", method); + ret = STT_ERROR_OUT_OF_MEMORY; + //LCOV_EXCL_STOP + } else { + dbus_connection_flush(g_conn_sender); + } + } else { + //LCOV_EXCL_START + SLOG(LOG_WARN, TAG_STTC, "[WARN] dbus connection handle is null (%p)", g_conn_sender); //LCOV_EXCL_LINE + ret = STT_ERROR_OPERATION_FAILED; + //LCOV_EXCL_STOP + } + + dbus_message_unref(msg); + msg = NULL; + SLOG(LOG_INFO, TAG_STTC, "[SUCCESS] Send dbus %s message, ret(%d)", method, ret); //LCOV_EXCL_LINE + + return ret; +} + int stt_dbus_request_start(unsigned int uid, const char* lang, const char* type, int silence, const char* appid, const char* credential) { if (NULL == lang || NULL == type || NULL == appid) { @@ -2027,43 +1869,12 @@ int stt_dbus_request_start(unsigned int uid, const char* lang, const char* type, DBUS_TYPE_STRING, &temp, DBUS_TYPE_INVALID); #if 1 - if (g_conn_sender) { - dbus_message_set_no_reply(msg, TRUE); + int ret = __stt_dbus_send_message_without_reply(msg, STT_METHOD_START); - if (!dbus_connection_send(g_conn_sender, msg, NULL)) { - //LCOV_EXCL_START - SLOG(LOG_ERROR, TAG_STTC, "[Dbus ERROR] <<<< stt start message : Out Of Memory !"); - if (NULL != temp) { - free(temp); - temp = NULL; - } - dbus_message_unref(msg); - msg = NULL; - return STT_ERROR_OUT_OF_MEMORY; - //LCOV_EXCL_STOP - } else { - dbus_connection_flush(g_conn_sender); - } + free(temp); + temp = NULL; - dbus_message_unref(msg); - msg = NULL; - - } else { - SLOG(LOG_WARN, TAG_STTC, "[WARN] dbus connection handle is null (%p)", g_conn_sender); //LCOV_EXCL_LINE - if (NULL != temp) { - free(temp); - temp = NULL; - } - dbus_message_unref(msg); - msg = NULL; - return STT_ERROR_OPERATION_FAILED; - } - - if (NULL != temp) { - free(temp); - temp = NULL; - } - return 0; + return ret; #else DBusError err; dbus_error_init(&err); @@ -2127,30 +1938,8 @@ int stt_dbus_request_stop(unsigned int uid) DBUS_TYPE_UINT32, &uid, DBUS_TYPE_INVALID); #if 1 - if (g_conn_sender) { - dbus_message_set_no_reply(msg, TRUE); - - if (!dbus_connection_send(g_conn_sender, msg, NULL)) { - //LCOV_EXCL_START - SLOG(LOG_ERROR, TAG_STTC, "[Dbus ERROR] <<<< stt stop message : Out Of Memory !"); - dbus_message_unref(msg); - msg = NULL; - return STT_ERROR_OUT_OF_MEMORY; - //LCOV_EXCL_STOP - } else { - dbus_connection_flush(g_conn_sender); - } - - dbus_message_unref(msg); - msg = NULL; - } else { - SLOG(LOG_WARN, TAG_STTC, "[WARN] dbus connection handle is null (%p)", g_conn_sender); - dbus_message_unref(msg); - msg = NULL; - return STT_ERROR_OPERATION_FAILED; - } - - return 0; + int ret = __stt_dbus_send_message_without_reply(msg, STT_METHOD_STOP); + return ret; #else DBusError err; dbus_error_init(&err); @@ -2214,30 +2003,8 @@ int stt_dbus_request_cancel(unsigned int uid) DBUS_TYPE_UINT32, &uid, DBUS_TYPE_INVALID); #if 1 - if (g_conn_sender) { - dbus_message_set_no_reply(msg, TRUE); - - if (!dbus_connection_send(g_conn_sender, msg, NULL)) { - //LCOV_EXCL_START - SLOG(LOG_ERROR, TAG_STTC, "[Dbus ERROR] <<<< stt stop message : Out Of Memory !"); - dbus_message_unref(msg); - msg = NULL; - return STT_ERROR_OUT_OF_MEMORY; - //LCOV_EXCL_STOP - } else { - dbus_connection_flush(g_conn_sender); - } - - dbus_message_unref(msg); - msg = NULL; - } else { - SLOG(LOG_WARN, TAG_STTC, "[WARN] dbus connection handle is null (%p)", g_conn_sender); - dbus_message_unref(msg); - msg = NULL; - return STT_ERROR_OPERATION_FAILED; - } - - return 0; + int ret = __stt_dbus_send_message_without_reply(msg, STT_METHOD_CANCEL); + return ret; #else DBusError err; dbus_error_init(&err); @@ -2321,40 +2088,12 @@ int stt_dbus_request_start_file(unsigned int uid, const char* lang, const char* DBUS_TYPE_INT32, &audio_type, DBUS_TYPE_INT32, &sample_rate, DBUS_TYPE_INVALID); - if (g_conn_sender) { - dbus_message_set_no_reply(msg, TRUE); - - if (!dbus_connection_send(g_conn_sender, msg, NULL)) { - SLOG(LOG_ERROR, TAG_STTC, "[Dbus ERROR] <<<< stt start message : Out Of Memory !"); - if (NULL != temp) { - free(temp); - temp = NULL; - } - dbus_message_unref(msg); - msg = NULL; - return STT_ERROR_OUT_OF_MEMORY; - } else { - dbus_connection_flush(g_conn_sender); - } - dbus_message_unref(msg); - msg = NULL; - } else { - SLOG(LOG_WARN, TAG_STTC, "[WARN] dbus connection handle is null (%p)", g_conn_sender); - if (NULL != temp) { - free(temp); - temp = NULL; - } - dbus_message_unref(msg); - msg = NULL; - return STT_ERROR_OPERATION_FAILED; - } + int ret = __stt_dbus_send_message_without_reply(msg, STT_METHOD_START_FILE); + free(temp); + temp = NULL; - if (NULL != temp) { - free(temp); - temp = NULL; - } - return 0; + return ret; } int stt_dbus_request_cancel_file(unsigned int uid) @@ -2379,27 +2118,7 @@ int stt_dbus_request_cancel_file(unsigned int uid) DBUS_TYPE_UINT32, &uid, DBUS_TYPE_INVALID); - if (g_conn_sender) { - dbus_message_set_no_reply(msg, TRUE); - - if (!dbus_connection_send(g_conn_sender, msg, NULL)) { - SLOG(LOG_ERROR, TAG_STTC, "[Dbus ERROR] <<<< stt stop message : Out Of Memory !"); - dbus_message_unref(msg); - msg = NULL; - return STT_ERROR_OUT_OF_MEMORY; - } else { - dbus_connection_flush(g_conn_sender); - } - - dbus_message_unref(msg); - msg = NULL; - } else { - SLOG(LOG_WARN, TAG_STTC, "[WARN] dbus connection handle is null (%p)", g_conn_sender); - dbus_message_unref(msg); - msg = NULL; - return STT_ERROR_OPERATION_FAILED; - } - - return 0; + int ret = __stt_dbus_send_message_without_reply(msg, STT_METHOD_CANCEL_FILE); + return ret; } //LCOV_EXCL_STOP