From 908696a4e3c87da49edb98d17f7253a09d5000a4 Mon Sep 17 00:00:00 2001 From: Wonnam Jang Date: Thu, 23 Nov 2017 09:26:52 +0900 Subject: [PATCH] Remove unnecessary DB access Change-Id: Ie5080b25a9a7c5d2c9e950b958f95e322d3bdd16 Signed-off-by: Wonnam Jang --- client/vc_widget.c | 20 +++----------------- client/vc_widget_dbus.c | 14 +++++++++++--- server/vcd_dbus.c | 4 +++- server/vcd_dbus.h | 2 +- server/vcd_server.c | 3 +-- 5 files changed, 19 insertions(+), 24 deletions(-) diff --git a/client/vc_widget.c b/client/vc_widget.c index 178f360..257478f 100644 --- a/client/vc_widget.c +++ b/client/vc_widget.c @@ -1128,18 +1128,9 @@ void __vc_widget_cb_result() return; } -bool __vc_widget_cb_asr_result() +bool __vc_widget_cb_asr_result(int event, const char* asr_result) { - char* temp_text; - int event; - vc_cmd_list_h vc_cmd_list = NULL; - if (0 != vc_cmd_list_create(&vc_cmd_list)) { - SLOG(LOG_ERROR, TAG_VCW, "[ERROR] Fail to create command list"); - return false; - } - - vc_info_parser_get_result(&temp_text, &event, NULL, -1, vc_cmd_list, false); - SLOG(LOG_DEBUG, TAG_VCW, "Result info : result text(%s) event(%d)", temp_text, event); + SLOG(LOG_DEBUG, TAG_VCW, "Result info : result text(%s) event(%d)", asr_result, event); vc_asr_result_cb callback = NULL; void* user_data = NULL; @@ -1168,7 +1159,7 @@ bool __vc_widget_cb_asr_result() } vc_widget_client_use_callback(vc_w); - consumed = callback(event, temp_text, user_data); + consumed = callback(event, asr_result, user_data); vc_widget_client_not_use_callback(vc_w); if (true == consumed) break; @@ -1177,11 +1168,6 @@ bool __vc_widget_cb_asr_result() } } - /* Release result */ - if (NULL != temp_text) free(temp_text); - - vc_cmd_list_destroy(vc_cmd_list, true); - return consumed; } diff --git a/client/vc_widget_dbus.c b/client/vc_widget_dbus.c index a40fd93..9d5dbc0 100644 --- a/client/vc_widget_dbus.c +++ b/client/vc_widget_dbus.c @@ -33,7 +33,7 @@ extern void __vc_widget_cb_show_tooltip(int pid, bool show); extern void __vc_widget_cb_result(); -extern bool __vc_widget_cb_asr_result(); +extern bool __vc_widget_cb_asr_result(int event, const char* asr_result); extern int __vc_widget_cb_service_state(int state); @@ -168,7 +168,15 @@ static Eina_Bool widget_listener_event_callback(void* data, Ecore_Fd_Handler *fd else if (dbus_message_is_method_call(msg, if_name, VCD_WIDGET_METHOD_ASR_RESULT)) { SLOG(LOG_DEBUG, TAG_VCW, "@@@ Get widget asr result"); int ret = 0; - if (false == __vc_widget_cb_asr_result()) + int event = -1; + char* asr_result = NULL; + + dbus_message_get_args(msg, &err, + DBUS_TYPE_INT32, &event, + DBUS_TYPE_STRING, &asr_result, + DBUS_TYPE_INVALID); + + if (false == __vc_widget_cb_asr_result(event, asr_result)) ret = 0; else ret = 1; @@ -179,7 +187,7 @@ static Eina_Bool widget_listener_event_callback(void* data, Ecore_Fd_Handler *fd if (!dbus_connection_send(g_w_conn_listener, reply, NULL)) SLOG(LOG_ERROR, TAG_VCW, "@@ vc widget get asr result : fail to send reply"); else - SLOG(LOG_DEBUG, TAG_VCW, "@@ vc widget get asr result"); + SLOG(LOG_DEBUG, TAG_VCW, "@@ vc widget get asr result, event(%d), asr_result(%s), consumed(%d)", event, asr_result, ret); dbus_connection_flush(g_w_conn_listener); dbus_message_unref(reply); diff --git a/server/vcd_dbus.c b/server/vcd_dbus.c index f2486e4..72cad70 100755 --- a/server/vcd_dbus.c +++ b/server/vcd_dbus.c @@ -311,7 +311,7 @@ int vcdc_send_result(int pid, int manager_pid, int cmd_type) return 0; } -int vcdc_send_asr_result(int pid, int cmd_type, bool* is_consumed) +int vcdc_send_asr_result(int pid, int event, const char* asr_result, int cmd_type, bool* is_consumed) { if (0 != __dbus_check()) { return VCD_ERROR_OPERATION_FAILED; @@ -335,6 +335,8 @@ int vcdc_send_asr_result(int pid, int cmd_type, bool* is_consumed) return VCD_ERROR_OUT_OF_MEMORY; } + dbus_message_append_args(msg, DBUS_TYPE_INT32, &event, DBUS_TYPE_STRING, &asr_result, DBUS_TYPE_INVALID); + DBusError err; dbus_error_init(&err); diff --git a/server/vcd_dbus.h b/server/vcd_dbus.h index ad6ebb8..d4674ec 100644 --- a/server/vcd_dbus.h +++ b/server/vcd_dbus.h @@ -44,7 +44,7 @@ int vcdc_send_set_volume(int manger_pid, float volume); int vcdc_send_result(int pid, int manager_pid, int cmd_type); -int vcdc_send_asr_result(int pid, int cmd_type, bool* is_consumed); +int vcdc_send_asr_result(int pid, int event, const char* asr_result, int cmd_type, bool* is_consumed); int vcdc_send_pre_result_to_manager(int manager_pid, int event, const char* pre_result); diff --git a/server/vcd_server.c b/server/vcd_server.c index 10cb388..58b2f37 100755 --- a/server/vcd_server.c +++ b/server/vcd_server.c @@ -506,13 +506,12 @@ int vcd_send_result(vce_result_event_e event, int* result_id, int count, const c int pid = vcd_client_widget_get_foreground_pid(); if (-1 != pid) { if (NULL != all_result) { - vc_info_parser_set_result(all_result, event, msg, NULL, false); bool enable = false; vcd_client_widget_get_asr_result_enabled(pid, &enable); if (true == enable) { SLOG(LOG_DEBUG, TAG_VCD, "[Server] Send ASR result to Widget client"); bool is_consumed = false; - if (0 != vcdc_send_asr_result(pid, VC_COMMAND_TYPE_WIDGET, &is_consumed)) { + if (0 != vcdc_send_asr_result(pid, event, all_result, VC_COMMAND_TYPE_WIDGET, &is_consumed)) { SLOG(LOG_ERROR, TAG_VCD, "[Server ERROR] Fail to send asr result"); } else { SLOG(LOG_DEBUG, TAG_VCD, "[Server] ASR result is consumed(%d)", is_consumed); -- 2.7.4