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);
{
if (NULL != g_w_conn_listener) {
dbus_connection_close(g_w_conn_listener);
+ dbus_connection_unref(g_w_conn_listener);
g_w_conn_listener = NULL;
}
if (NULL != g_w_conn_sender) {
dbus_connection_close(g_w_conn_sender);
+ dbus_connection_unref(g_w_conn_sender);
g_w_conn_sender = NULL;
}
}
return VC_ERROR_OPERATION_FAILED;
}
+ dbus_connection_set_exit_on_disconnect(g_w_conn_sender, false);
+
g_w_conn_listener = dbus_bus_get_private(DBUS_BUS_SESSION, &err);
if (dbus_error_is_set(&err)) {
return VC_ERROR_OPERATION_FAILED;
}
+ dbus_connection_set_exit_on_disconnect(g_w_conn_listener, false);
+
int pid = getpid();
char service_name[64];
g_w_fd_handler = NULL;
}
- int pid = getpid();
+ if (NULL != g_w_conn_listener) {
+ int pid = getpid();
- char service_name[64];
- memset(service_name, '\0', 64);
- snprintf(service_name, 64, "%s%d", VC_WIDGET_SERVICE_NAME, pid);
+ char service_name[64];
+ memset(service_name, '\0', 64);
+ snprintf(service_name, 64, "%s%d", VC_WIDGET_SERVICE_NAME, pid);
- dbus_bus_release_name(g_w_conn_listener, service_name, &err);
+ dbus_bus_release_name(g_w_conn_listener, service_name, &err);
- if (dbus_error_is_set(&err)) {
- SLOG(LOG_ERROR, TAG_VCW, "[ERROR] Dbus Error (%s)", err.message);
- dbus_error_free(&err);
+ if (dbus_error_is_set(&err)) {
+ SLOG(LOG_ERROR, TAG_VCW, "[ERROR] Dbus Error (%s)", err.message);
+ dbus_error_free(&err);
+ }
}
__vc_mgr_dbus_connection_free();