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;
}
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;
}
}
- /* Release result */
- if (NULL != temp_text) free(temp_text);
-
- vc_cmd_list_destroy(vc_cmd_list, true);
-
return consumed;
}
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);
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;
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);
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;
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);
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);
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);