2 * Copyright (c) 2011-2015 Samsung Electronics Co., Ltd All Rights Reserved
4 * Licensed under the Apache License, Version 2.0 (the License);
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an AS IS BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
19 #include "vc_mgr_client.h"
20 #include "vc_mgr_dbus.h"
21 #include "vc_command.h"
24 static int g_m_waiting_time = 3000;
26 static Ecore_Fd_Handler* g_m_fd_handler = NULL;
28 static DBusConnection* g_m_conn_sender = NULL;
29 static DBusConnection* g_m_conn_listener = NULL;
32 extern void __vc_mgr_cb_all_result(vc_result_type_e type);
34 extern void __vc_mgr_cb_system_result();
36 extern void __vc_mgr_cb_speech_detected();
38 extern int __vc_mgr_cb_error(int pid, int reason);
40 extern int __vc_mgr_cb_set_volume(float volume);
42 extern int __vc_mgr_cb_service_state(int state);
45 extern int __vc_mgr_request_auth_enable(int pid);
47 extern int __vc_mgr_request_auth_disable(int pid);
49 extern int __vc_mgr_request_auth_start(int pid);
51 extern int __vc_mgr_request_auth_stop(int pid);
53 extern int __vc_mgr_request_auth_cancel(int pid);
55 static Eina_Bool vc_mgr_listener_event_callback(void* data, Ecore_Fd_Handler *fd_handler)
57 if (NULL == g_m_conn_listener) return ECORE_CALLBACK_RENEW;
59 dbus_connection_read_write_dispatch(g_m_conn_listener, 50);
62 DBusMessage* msg = NULL;
63 msg = dbus_connection_pop_message(g_m_conn_listener);
65 /* loop again if we haven't read a message */
70 SLOG(LOG_DEBUG, TAG_VCM, "[DEBUG] Message is arrived");
73 dbus_error_init(&err);
76 snprintf(if_name, 64, "%s", VC_MANAGER_SERVICE_INTERFACE);
78 if (dbus_message_is_method_call(msg, if_name, VCD_MANAGER_METHOD_HELLO)) {
79 SLOG(LOG_DEBUG, TAG_VCM, "===== Get Hello");
83 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &pid, DBUS_TYPE_INVALID);
84 if (dbus_error_is_set(&err)) {
85 SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Dbus Error (%s)", err.message);
86 dbus_error_free(&err);
90 SLOG(LOG_DEBUG, TAG_VCM, "<<<< vc mgr get hello : pid(%d) ", pid);
93 SLOG(LOG_ERROR, TAG_VCM, "<<<< vc mgr get hello : invalid pid ");
96 DBusMessage *reply = NULL;
97 reply = dbus_message_new_method_return(msg);
100 dbus_message_append_args(reply, DBUS_TYPE_INT32, &response, DBUS_TYPE_INVALID);
102 if (!dbus_connection_send(g_m_conn_listener, reply, NULL))
103 SLOG(LOG_ERROR, TAG_VCM, ">>>> vc get hello : fail to send reply");
105 SLOG(LOG_DEBUG, TAG_VCM, ">>>> vc get hello : result(%d)", response);
107 dbus_connection_flush(g_m_conn_listener);
108 dbus_message_unref(reply);
110 SLOG(LOG_ERROR, TAG_VCM, ">>>> vc mgr get hello : fail to create reply message");
113 SLOG(LOG_DEBUG, TAG_VCM, "=====");
114 SLOG(LOG_DEBUG, TAG_VCM, " ");
115 } /* VCD_METHOD_HELLO */
117 else if (dbus_message_is_signal(msg, if_name, VCD_MANAGER_METHOD_SET_VOLUME)) {
118 /* SLOG(LOG_DEBUG, TAG_VCM, "===== Set volume"); */
121 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &volume, DBUS_TYPE_INVALID);
123 if (dbus_error_is_set(&err)) {
124 SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Get arguments error (%s)", err.message);
125 dbus_error_free(&err);
128 SLOG(LOG_DEBUG, TAG_VCM, "<<<< vc mgr set volume : volume(%f)", volume);
129 __vc_mgr_cb_set_volume(volume);
131 /* SLOG(LOG_DEBUG, TAG_VCM, "====="); */
132 /* SLOG(LOG_DEBUG, TAG_VCM, " "); */
133 } /* VCD_MANAGER_METHOD_SET_VOLUME */
135 else if (dbus_message_is_signal(msg, if_name, VCD_MANAGER_METHOD_SET_SERVICE_STATE)) {
138 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &state, DBUS_TYPE_INVALID);
139 if (dbus_error_is_set(&err)) {
140 SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Get arguments error (%s)", err.message);
141 dbus_error_free(&err);
144 SLOG(LOG_DEBUG, TAG_VCM, "<<<< state changed : %d", state);
146 __vc_mgr_cb_service_state(state);
148 } /* VCD_MANAGER_METHOD_SET_SERVICE_STATE */
150 else if (dbus_message_is_signal(msg, if_name, VCD_MANAGER_METHOD_SPEECH_DETECTED)) {
151 SLOG(LOG_DEBUG, TAG_VCM, "===== Get Speech detected");
153 __vc_mgr_cb_speech_detected();
155 SLOG(LOG_DEBUG, TAG_VCM, "=====");
156 SLOG(LOG_DEBUG, TAG_VCM, " ");
158 } /* VCD_MANAGER_METHOD_SPEECH_DETECTED */
160 else if (dbus_message_is_signal(msg, if_name, VCD_MANAGER_METHOD_ALL_RESULT)) {
161 SLOG(LOG_DEBUG, TAG_VCM, "===== Get All Result");
164 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &result_type, DBUS_TYPE_INVALID);
166 __vc_mgr_cb_all_result((vc_result_type_e)result_type);
168 SLOG(LOG_DEBUG, TAG_VCM, "=====");
169 SLOG(LOG_DEBUG, TAG_VCM, " ");
171 } /* VCD_MANAGER_METHOD_ALL_RESULT */
173 else if (dbus_message_is_signal(msg, if_name, VCD_MANAGER_METHOD_RESULT)) {
174 SLOG(LOG_DEBUG, TAG_VCM, "===== Get System Result");
176 __vc_mgr_cb_system_result();
178 SLOG(LOG_DEBUG, TAG_VCM, "=====");
179 SLOG(LOG_DEBUG, TAG_VCM, " ");
181 } /* VCD_MANAGER_METHOD_RESULT */
183 else if (dbus_message_is_signal(msg, if_name, VCD_MANAGER_METHOD_ERROR)) {
184 SLOG(LOG_DEBUG, TAG_VCM, "===== Get Error");
189 dbus_message_get_args(msg, &err,
190 DBUS_TYPE_INT32, &pid,
191 DBUS_TYPE_INT32, &reason,
192 DBUS_TYPE_STRING, &err_msg,
195 if (dbus_error_is_set(&err)) {
196 SLOG(LOG_ERROR, TAG_VCM, "<<<< vc mgr Get Error message : Get arguments error (%s)", err.message);
197 dbus_error_free(&err);
199 SLOG(LOG_DEBUG, TAG_VCM, "<<<< vc mgr Get Error message : pid(%d), reason(%d), msg(%s)", pid, reason, err_msg);
200 __vc_mgr_cb_error(pid, reason);
203 SLOG(LOG_DEBUG, TAG_VCM, "=====");
204 SLOG(LOG_DEBUG, TAG_VCM, " ");
205 } /* VCD_MANAGER_METHOD_ERROR */
208 else if (dbus_message_is_method_call(msg, if_name, VC_METHOD_AUTH_ENABLE)) {
209 SLOG(LOG_DEBUG, TAG_VCM, "===== Get request auth enable");
213 dbus_message_get_args(msg, &err,
214 DBUS_TYPE_INT32, &pid,
217 if (dbus_error_is_set(&err)) {
218 SLOG(LOG_ERROR, TAG_VCM, "<<<< vc mgr request auth enable : Get arguments error (%s)", err.message);
219 dbus_error_free(&err);
221 SLOG(LOG_DEBUG, TAG_VCM, "<<<< vc mgr request auth enable : pid(%d)", pid);
222 ret = __vc_mgr_request_auth_enable(pid);
225 DBusMessage *reply = NULL;
226 reply = dbus_message_new_method_return(msg);
229 dbus_message_append_args(reply,
230 DBUS_TYPE_INT32, &ret,
232 if (!dbus_connection_send(g_m_conn_listener, reply, NULL))
233 SLOG(LOG_ERROR, TAG_VCM, ">>>> vc mgr request auth enable : fail to send reply");
235 SLOG(LOG_DEBUG, TAG_VCM, ">>>> vc mgr request auth enable : ret(%d)", ret);
236 dbus_connection_flush(g_m_conn_listener);
237 dbus_message_unref(reply);
239 SLOG(LOG_ERROR, TAG_VCM, ">>>> vc mgr request auth enable : fail to create reply message");
242 SLOG(LOG_DEBUG, TAG_VCM, "=====");
243 SLOG(LOG_DEBUG, TAG_VCM, " ");
244 } /* VC_METHOD_AUTH_ENABLE */
246 else if (dbus_message_is_method_call(msg, if_name, VC_METHOD_AUTH_DISABLE)) {
247 SLOG(LOG_DEBUG, TAG_VCM, "===== Get request auth disable");
251 dbus_message_get_args(msg, &err,
252 DBUS_TYPE_INT32, &pid,
255 if (dbus_error_is_set(&err)) {
256 SLOG(LOG_ERROR, TAG_VCM, "<<<< vc mgr request auth disable : Get arguments error (%s)", err.message);
257 dbus_error_free(&err);
259 SLOG(LOG_DEBUG, TAG_VCM, "<<<< vc mgr request auth disable : pid(%d)", pid);
260 ret = __vc_mgr_request_auth_disable(pid);
263 DBusMessage *reply = NULL;
264 reply = dbus_message_new_method_return(msg);
267 dbus_message_append_args(reply,
268 DBUS_TYPE_INT32, &ret,
270 if (!dbus_connection_send(g_m_conn_listener, reply, NULL))
271 SLOG(LOG_ERROR, TAG_VCM, ">>>> vc mgr request auth disable : fail to send reply");
273 SLOG(LOG_DEBUG, TAG_VCM, ">>>> vc mgr request auth disable : ret(%d)", ret);
274 dbus_connection_flush(g_m_conn_listener);
275 dbus_message_unref(reply);
277 SLOG(LOG_ERROR, TAG_VCM, ">>>> vc mgr request auth disable : fail to create reply message");
280 SLOG(LOG_DEBUG, TAG_VCM, "=====");
281 SLOG(LOG_DEBUG, TAG_VCM, " ");
282 } /* VC_METHOD_AUTH_DISABLE */
284 else if (dbus_message_is_method_call(msg, if_name, VC_METHOD_AUTH_START)) {
285 SLOG(LOG_DEBUG, TAG_VCM, "===== Get request auth start");
289 dbus_message_get_args(msg, &err,
290 DBUS_TYPE_INT32, &pid,
293 if (dbus_error_is_set(&err)) {
294 SLOG(LOG_ERROR, TAG_VCM, "<<<< vc mgr request auth start : Get arguments error (%s)", err.message);
295 dbus_error_free(&err);
297 SLOG(LOG_DEBUG, TAG_VCM, "<<<< vc mgr request auth start : pid(%d)", pid);
298 ret = __vc_mgr_request_auth_start(pid);
301 DBusMessage *reply = NULL;
302 reply = dbus_message_new_method_return(msg);
305 dbus_message_append_args(reply,
306 DBUS_TYPE_INT32, &ret,
308 if (!dbus_connection_send(g_m_conn_listener, reply, NULL))
309 SLOG(LOG_ERROR, TAG_VCM, ">>>> vc mgr request auth start : fail to send reply");
311 SLOG(LOG_DEBUG, TAG_VCM, ">>>> vc mgr request auth start : ret(%d)", ret);
312 dbus_connection_flush(g_m_conn_listener);
313 dbus_message_unref(reply);
315 SLOG(LOG_ERROR, TAG_VCM, ">>>> vc mgr request auth start : fail to create reply message");
318 SLOG(LOG_DEBUG, TAG_VCM, "=====");
319 SLOG(LOG_DEBUG, TAG_VCM, " ");
320 } /* VC_METHOD_AUTH_START */
322 else if (dbus_message_is_method_call(msg, if_name, VC_METHOD_AUTH_STOP)) {
323 SLOG(LOG_DEBUG, TAG_VCM, "===== Get request auth stop");
327 dbus_message_get_args(msg, &err,
328 DBUS_TYPE_INT32, &pid,
331 if (dbus_error_is_set(&err)) {
332 SLOG(LOG_ERROR, TAG_VCM, "<<<< vc mgr request auth stop : Get arguments error (%s)", err.message);
333 dbus_error_free(&err);
335 SLOG(LOG_DEBUG, TAG_VCM, "<<<< vc mgr request auth stop : pid(%d)", pid);
336 ret = __vc_mgr_request_auth_stop(pid);
339 DBusMessage *reply = NULL;
340 reply = dbus_message_new_method_return(msg);
343 dbus_message_append_args(reply,
344 DBUS_TYPE_INT32, &ret,
346 if (!dbus_connection_send(g_m_conn_listener, reply, NULL))
347 SLOG(LOG_ERROR, TAG_VCM, ">>>> vc mgr request auth stop : fail to send reply");
349 SLOG(LOG_DEBUG, TAG_VCM, ">>>> vc mgr request auth stop : ret(%d)", ret);
350 dbus_connection_flush(g_m_conn_listener);
351 dbus_message_unref(reply);
353 SLOG(LOG_ERROR, TAG_VCM, ">>>> vc mgr request auth stop : fail to create reply message");
356 SLOG(LOG_DEBUG, TAG_VCM, "=====");
357 SLOG(LOG_DEBUG, TAG_VCM, " ");
358 } /* VC_METHOD_AUTH_STOP */
360 else if (dbus_message_is_method_call(msg, if_name, VC_METHOD_AUTH_CANCEL)) {
361 SLOG(LOG_DEBUG, TAG_VCM, "===== Get request auth cancel");
365 dbus_message_get_args(msg, &err,
366 DBUS_TYPE_INT32, &pid,
369 if (dbus_error_is_set(&err)) {
370 SLOG(LOG_ERROR, TAG_VCM, "<<<< vc mgr request auth cancel : Get arguments error (%s)", err.message);
371 dbus_error_free(&err);
373 SLOG(LOG_DEBUG, TAG_VCM, "<<<< vc mgr request auth cancel : pid(%d)", pid);
374 ret = __vc_mgr_request_auth_cancel(pid);
377 DBusMessage *reply = NULL;
378 reply = dbus_message_new_method_return(msg);
381 dbus_message_append_args(reply,
382 DBUS_TYPE_INT32, &ret,
384 if (!dbus_connection_send(g_m_conn_listener, reply, NULL))
385 SLOG(LOG_ERROR, TAG_VCM, ">>>> vc request auth cancel : fail to send reply");
387 SLOG(LOG_DEBUG, TAG_VCM, ">>>> vc request auth cancel : ret(%d)", ret);
388 dbus_connection_flush(g_m_conn_listener);
389 dbus_message_unref(reply);
391 SLOG(LOG_ERROR, TAG_VCM, ">>>> vc mgr request auth cancel : fail to create reply message");
394 SLOG(LOG_DEBUG, TAG_VCM, "=====");
395 SLOG(LOG_DEBUG, TAG_VCM, " ");
396 } /* VC_METHOD_AUTH_CANCEL */
399 SLOG(LOG_DEBUG, TAG_VCM, "Message is NOT valid");
400 dbus_message_unref(msg);
404 /* free the message */
405 dbus_message_unref(msg);
408 return ECORE_CALLBACK_PASS_ON;
411 int vc_mgr_dbus_open_connection()
413 if (NULL != g_m_conn_sender && NULL != g_m_conn_listener) {
414 SLOG(LOG_WARN, TAG_VCM, "already existed connection ");
421 /* initialise the error value */
422 dbus_error_init(&err);
424 /* connect to the DBUS system bus, and check for errors */
425 g_m_conn_sender = dbus_bus_get(DBUS_BUS_SESSION, &err);
427 if (dbus_error_is_set(&err)) {
428 SLOG(LOG_ERROR, TAG_VCM, "Dbus Connection Error (%s)", err.message);
429 dbus_error_free(&err);
432 if (NULL == g_m_conn_sender) {
433 SLOG(LOG_ERROR, TAG_VCM, "Fail to get dbus connection ");
434 return VC_ERROR_OPERATION_FAILED;
437 /* connect to the DBUS system bus, and check for errors */
438 g_m_conn_listener = dbus_bus_get(DBUS_BUS_SESSION, &err);
440 if (dbus_error_is_set(&err)) {
441 SLOG(LOG_ERROR, TAG_VCM, "Dbus Connection Error (%s)", err.message);
442 dbus_error_free(&err);
445 if (NULL == g_m_conn_listener) {
446 SLOG(LOG_ERROR, TAG_VCM, "Fail to get dbus connection ");
447 return VC_ERROR_OPERATION_FAILED;
450 SLOG(LOG_DEBUG, TAG_VCM, "service name is %s", VC_MANAGER_SERVICE_NAME);
452 /* register our name on the bus, and check for errors */
453 ret = dbus_bus_request_name(g_m_conn_listener, VC_MANAGER_SERVICE_NAME, DBUS_NAME_FLAG_REPLACE_EXISTING, &err);
455 if (dbus_error_is_set(&err)) {
456 SLOG(LOG_ERROR, TAG_VCM, "Name Error (%s)", err.message);
457 dbus_error_free(&err);
460 if (DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER != ret) {
461 SLOG(LOG_ERROR, TAG_VCM, "fail dbus_bus_request_name()");
465 if (NULL != g_m_fd_handler) {
466 SLOG(LOG_WARN, TAG_VCM, "The handler already exists.");
470 char rule[128] = {0, };
471 snprintf(rule, 128, "type='signal',interface='%s'", VC_MANAGER_SERVICE_INTERFACE);
473 /* add a rule for which messages we want to see */
474 dbus_bus_add_match(g_m_conn_listener, rule, &err);
475 dbus_connection_flush(g_m_conn_listener);
477 if (dbus_error_is_set(&err)) {
478 SLOG(LOG_ERROR, TAG_VCM, "Match Error (%s)", err.message);
479 dbus_error_free(&err);
480 return VC_ERROR_OPERATION_FAILED;
484 if (1 != dbus_connection_get_unix_fd(g_m_conn_listener, &fd)) {
485 SLOG(LOG_ERROR, TAG_VCM, "fail to get fd from dbus ");
486 return VC_ERROR_OPERATION_FAILED;
488 SLOG(LOG_DEBUG, TAG_VCM, "Get fd from dbus : %d", fd);
491 g_m_fd_handler = ecore_main_fd_handler_add(fd, ECORE_FD_READ, (Ecore_Fd_Cb)vc_mgr_listener_event_callback, g_m_conn_listener, NULL, NULL);
493 if (NULL == g_m_fd_handler) {
494 SLOG(LOG_ERROR, TAG_VCM, "fail to get fd handler from ecore ");
495 return VC_ERROR_OPERATION_FAILED;
501 int vc_mgr_dbus_close_connection()
504 dbus_error_init(&err);
506 if (NULL != g_m_fd_handler) {
507 ecore_main_fd_handler_del(g_m_fd_handler);
508 g_m_fd_handler = NULL;
511 dbus_bus_release_name(g_m_conn_listener, VC_MANAGER_SERVICE_NAME, &err);
513 if (dbus_error_is_set(&err)) {
514 SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Dbus Error (%s)", err.message);
515 dbus_error_free(&err);
518 g_m_conn_sender = NULL;
519 g_m_conn_listener = NULL;
524 int vc_mgr_dbus_reconnect()
526 bool sender_connected = dbus_connection_get_is_connected(g_m_conn_sender);
527 bool listener_connected = dbus_connection_get_is_connected(g_m_conn_listener);
529 SLOG(LOG_DEBUG, TAG_VCM, "[DBUS] Sender(%s) Listener(%s)",
530 sender_connected ? "Connected" : "Not connected", listener_connected ? "Connected" : "Not connected");
532 if (false == sender_connected || false == listener_connected) {
533 vc_mgr_dbus_close_connection();
535 if (0 != vc_mgr_dbus_open_connection()) {
536 SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Fail to reconnect");
540 SLOG(LOG_DEBUG, TAG_VCM, "[DBUS] Reconnect");
546 int vc_mgr_dbus_request_hello()
550 msg = dbus_message_new_method_call(
551 VC_SERVER_SERVICE_NAME,
552 VC_SERVER_SERVICE_OBJECT_PATH,
553 VC_SERVER_SERVICE_INTERFACE,
557 SLOG(LOG_ERROR, TAG_VCM, ">>>> Request vc hello : Fail to make message");
558 return VC_ERROR_OPERATION_FAILED;
562 dbus_error_init(&err);
564 DBusMessage* result_msg = NULL;
567 result_msg = dbus_connection_send_with_reply_and_block(g_m_conn_sender, msg, 500, &err);
569 if (dbus_error_is_set(&err)) {
570 dbus_error_free(&err);
573 dbus_message_unref(msg);
575 if (NULL != result_msg) {
576 dbus_message_unref(result_msg);
579 result = VC_ERROR_TIMED_OUT;
586 int vc_mgr_dbus_request_initialize(int pid, int* service_state)
590 msg = dbus_message_new_method_call(
591 VC_SERVER_SERVICE_NAME,
592 VC_SERVER_SERVICE_OBJECT_PATH,
593 VC_SERVER_SERVICE_INTERFACE,
594 VC_MANAGER_METHOD_INITIALIZE);
597 SLOG(LOG_ERROR, TAG_VCM, ">>>> vc mgr initialize : Fail to make message ");
598 return VC_ERROR_OPERATION_FAILED;
600 SLOG(LOG_DEBUG, TAG_VCM, ">>>> vc mgr initialize : pid(%d)", pid);
603 dbus_message_append_args(msg,
604 DBUS_TYPE_INT32, &pid,
608 dbus_error_init(&err);
610 DBusMessage* result_msg;
611 int result = VC_ERROR_OPERATION_FAILED;
613 result_msg = dbus_connection_send_with_reply_and_block(g_m_conn_sender, msg, g_m_waiting_time, &err);
614 dbus_message_unref(msg);
616 if (dbus_error_is_set(&err)) {
617 SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Dbus Error (%s)", err.message);
618 dbus_error_free(&err);
621 if (NULL != result_msg) {
622 dbus_message_get_args(result_msg, &err,
623 DBUS_TYPE_INT32, &result,
624 DBUS_TYPE_INT32, service_state,
627 if (dbus_error_is_set(&err)) {
628 SLOG(LOG_ERROR, TAG_VCM, "<<<< Get arguments error (%s)", err.message);
629 dbus_error_free(&err);
630 result = VC_ERROR_OPERATION_FAILED;
633 dbus_message_unref(result_msg);
636 SLOG(LOG_DEBUG, TAG_VCM, "<<<< vc mgr initialize : result = %d, service state = %d", result, *service_state);
638 SLOG(LOG_ERROR, TAG_VCM, "<<<< vc mgr initialize : result = %d", result);
641 SLOG(LOG_ERROR, TAG_VCM, "<<<< Result message is NULL ");
642 vc_mgr_dbus_reconnect();
643 result = VC_ERROR_TIMED_OUT;
649 int vc_mgr_dbus_request_finalize(int pid)
653 msg = dbus_message_new_method_call(
654 VC_SERVER_SERVICE_NAME,
655 VC_SERVER_SERVICE_OBJECT_PATH,
656 VC_SERVER_SERVICE_INTERFACE,
657 VC_MANAGER_METHOD_FINALIZE);
660 SLOG(LOG_ERROR, TAG_VCM, ">>>> vc mgr finalize : Fail to make message ");
661 return VC_ERROR_OPERATION_FAILED;
663 SLOG(LOG_DEBUG, TAG_VCM, ">>>> vc mgr finalize : pid(%d)", pid);
666 dbus_message_append_args(msg, DBUS_TYPE_INT32, &pid, DBUS_TYPE_INVALID);
669 dbus_error_init(&err);
671 DBusMessage* result_msg;
672 int result = VC_ERROR_OPERATION_FAILED;
674 result_msg = dbus_connection_send_with_reply_and_block(g_m_conn_sender, msg, g_m_waiting_time, &err);
675 dbus_message_unref(msg);
677 if (dbus_error_is_set(&err)) {
678 SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Dbus Error (%s)", err.message);
679 dbus_error_free(&err);
682 if (NULL != result_msg) {
683 dbus_message_get_args(result_msg, &err,
684 DBUS_TYPE_INT32, &result,
687 if (dbus_error_is_set(&err)) {
688 SLOG(LOG_ERROR, TAG_VCM, "<<<< Get arguments error (%s)", err.message);
689 dbus_error_free(&err);
690 result = VC_ERROR_OPERATION_FAILED;
693 dbus_message_unref(result_msg);
696 SLOG(LOG_DEBUG, TAG_VCM, "<<<< vc mgr finalize : result = %d", result);
698 SLOG(LOG_ERROR, TAG_VCM, "<<<< vc mgr finalize : result = %d", result);
701 SLOG(LOG_ERROR, TAG_VCM, "<<<< Result message is NULL ");
702 vc_mgr_dbus_reconnect();
703 result = VC_ERROR_TIMED_OUT;
709 int vc_mgr_dbus_request_set_command(int pid)
713 msg = dbus_message_new_method_call(
714 VC_SERVER_SERVICE_NAME,
715 VC_SERVER_SERVICE_OBJECT_PATH,
716 VC_SERVER_SERVICE_INTERFACE,
717 VC_MANAGER_METHOD_SET_COMMAND);
720 SLOG(LOG_ERROR, TAG_VCM, ">>>> vc mgr set command : Fail to make message");
721 return VC_ERROR_OPERATION_FAILED;
723 SLOG(LOG_DEBUG, TAG_VCM, ">>>> vc mgr set command : pid(%d)", pid);
726 dbus_message_append_args(msg,
727 DBUS_TYPE_INT32, &pid,
731 dbus_error_init(&err);
733 DBusMessage* result_msg;
734 int result = VC_ERROR_OPERATION_FAILED;
736 result_msg = dbus_connection_send_with_reply_and_block(g_m_conn_sender, msg, g_m_waiting_time, &err);
737 dbus_message_unref(msg);
739 if (dbus_error_is_set(&err)) {
740 SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Dbus Error (%s)", err.message);
741 dbus_error_free(&err);
744 if (NULL != result_msg) {
745 dbus_message_get_args(result_msg, &err,
746 DBUS_TYPE_INT32, &result,
749 if (dbus_error_is_set(&err)) {
750 SLOG(LOG_ERROR, TAG_VCM, "<<<< Get arguments error (%s)", err.message);
751 dbus_error_free(&err);
752 result = VC_ERROR_OPERATION_FAILED;
754 dbus_message_unref(result_msg);
757 SLOG(LOG_DEBUG, TAG_VCM, "<<<< vc mgr set command : result = %d", result);
759 SLOG(LOG_ERROR, TAG_VCM, "<<<< vc mgr set command : result = %d", result);
762 SLOG(LOG_ERROR, TAG_VCM, "<<<< Result message is NULL");
763 vc_mgr_dbus_reconnect();
764 result = VC_ERROR_TIMED_OUT;
770 int vc_mgr_dbus_request_unset_command(int pid)
774 msg = dbus_message_new_method_call(
775 VC_SERVER_SERVICE_NAME,
776 VC_SERVER_SERVICE_OBJECT_PATH,
777 VC_SERVER_SERVICE_INTERFACE,
778 VC_MANAGER_METHOD_UNSET_COMMAND);
781 SLOG(LOG_ERROR, TAG_VCM, ">>>> vc mgr unset command : Fail to make message");
782 return VC_ERROR_OPERATION_FAILED;
784 SLOG(LOG_DEBUG, TAG_VCM, ">>>> vc mgr unset command : pid(%d)", pid);
787 dbus_message_append_args(msg,
788 DBUS_TYPE_INT32, &pid,
792 dbus_error_init(&err);
794 DBusMessage* result_msg;
795 int result = VC_ERROR_OPERATION_FAILED;
797 result_msg = dbus_connection_send_with_reply_and_block(g_m_conn_sender, msg, g_m_waiting_time, &err);
798 dbus_message_unref(msg);
800 if (dbus_error_is_set(&err)) {
801 SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Dbus Error (%s)", err.message);
802 dbus_error_free(&err);
805 if (NULL != result_msg) {
806 dbus_message_get_args(result_msg, &err,
807 DBUS_TYPE_INT32, &result,
810 if (dbus_error_is_set(&err)) {
811 SLOG(LOG_ERROR, TAG_VCM, "<<<< Get arguments error (%s)", err.message);
812 dbus_error_free(&err);
813 result = VC_ERROR_OPERATION_FAILED;
815 dbus_message_unref(result_msg);
818 SLOG(LOG_DEBUG, TAG_VCM, "<<<< vc mgr unset command : result = %d", result);
820 SLOG(LOG_ERROR, TAG_VCM, "<<<< vc mgr unset command : result = %d", result);
823 SLOG(LOG_ERROR, TAG_VCM, "<<<< Result message is NULL");
824 vc_mgr_dbus_reconnect();
825 result = VC_ERROR_TIMED_OUT;
831 int vc_mgr_dbus_request_demandable_client(int pid)
835 msg = dbus_message_new_method_call(
836 VC_SERVER_SERVICE_NAME,
837 VC_SERVER_SERVICE_OBJECT_PATH,
838 VC_SERVER_SERVICE_INTERFACE,
839 VC_MANAGER_METHOD_SET_DEMANDABLE);
842 SLOG(LOG_ERROR, TAG_VCM, ">>>> vc mgr set demandable client : Fail to make message");
843 return VC_ERROR_OPERATION_FAILED;
845 SLOG(LOG_DEBUG, TAG_VCM, ">>>> vc mgr set demandable client : pid(%d)", pid);
848 dbus_message_append_args(msg,
849 DBUS_TYPE_INT32, &pid,
853 dbus_error_init(&err);
855 DBusMessage* result_msg;
856 int result = VC_ERROR_OPERATION_FAILED;
858 result_msg = dbus_connection_send_with_reply_and_block(g_m_conn_sender, msg, g_m_waiting_time, &err);
859 dbus_message_unref(msg);
861 if (dbus_error_is_set(&err)) {
862 SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Dbus Error (%s)", err.message);
863 dbus_error_free(&err);
866 if (NULL != result_msg) {
867 dbus_message_get_args(result_msg, &err,
868 DBUS_TYPE_INT32, &result,
871 if (dbus_error_is_set(&err)) {
872 SLOG(LOG_ERROR, TAG_VCM, "<<<< Get arguments error (%s)", err.message);
873 dbus_error_free(&err);
874 result = VC_ERROR_OPERATION_FAILED;
876 dbus_message_unref(result_msg);
879 SLOG(LOG_DEBUG, TAG_VCM, "<<<< vc mgr set demandable client : result = %d", result);
881 SLOG(LOG_ERROR, TAG_VCM, "<<<< vc mgr set demandable client : result = %d", result);
884 SLOG(LOG_ERROR, TAG_VCM, "<<<< Result message is NULL");
885 vc_mgr_dbus_reconnect();
886 result = VC_ERROR_TIMED_OUT;
892 int vc_mgr_dbus_request_set_audio_type(int pid, const char* audio_type)
896 /* create a signal & check for errors */
897 msg = dbus_message_new_method_call(
898 VC_SERVER_SERVICE_NAME,
899 VC_SERVER_SERVICE_OBJECT_PATH,
900 VC_SERVER_SERVICE_INTERFACE,
901 VC_MANAGER_METHOD_SET_AUDIO_TYPE);
904 SLOG(LOG_ERROR, TAG_VCM, ">>>> vc mgr set audio type : Fail to make message ");
905 return VC_ERROR_OPERATION_FAILED;
907 SLOG(LOG_DEBUG, TAG_VCM, ">>>> vc mgr set audio type : pid(%d), audio type(%s)", pid, audio_type);
910 dbus_message_append_args(msg,
911 DBUS_TYPE_INT32, &pid,
912 DBUS_TYPE_STRING, &(audio_type),
916 dbus_error_init(&err);
918 DBusMessage* result_msg;
919 int result = VC_ERROR_OPERATION_FAILED;
921 result_msg = dbus_connection_send_with_reply_and_block(g_m_conn_sender, msg, g_m_waiting_time, &err);
922 dbus_message_unref(msg);
924 if (dbus_error_is_set(&err)) {
925 SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Dbus Error (%s)", err.message);
926 dbus_error_free(&err);
929 if (NULL != result_msg) {
930 dbus_message_get_args(result_msg, &err,
931 DBUS_TYPE_INT32, &result,
934 if (dbus_error_is_set(&err)) {
935 SLOG(LOG_ERROR, TAG_VCM, "<<<< Get arguments error (%s)", err.message);
936 dbus_error_free(&err);
937 result = VC_ERROR_OPERATION_FAILED;
939 dbus_message_unref(result_msg);
942 SLOG(LOG_DEBUG, TAG_VCM, "<<<< vc mgr set audio type : result = %d", result);
944 SLOG(LOG_ERROR, TAG_VCM, "<<<< vc mgr set audio type : result = %d", result);
947 SLOG(LOG_DEBUG, TAG_VCM, "<<<< Result Message is NULL");
948 vc_mgr_dbus_reconnect();
949 result = VC_ERROR_TIMED_OUT;
955 int vc_mgr_dbus_request_get_audio_type(int pid, char** audio_type)
959 /* create a signal & check for errors */
960 msg = dbus_message_new_method_call(
961 VC_SERVER_SERVICE_NAME,
962 VC_SERVER_SERVICE_OBJECT_PATH,
963 VC_SERVER_SERVICE_INTERFACE,
964 VC_MANAGER_METHOD_GET_AUDIO_TYPE);
967 SLOG(LOG_ERROR, TAG_VCM, ">>>> vc mgr get audio type : Fail to make message ");
968 return VC_ERROR_OPERATION_FAILED;
970 SLOG(LOG_DEBUG, TAG_VCM, ">>>> vc mgr get audio type : pid(%d)", pid);
973 dbus_message_append_args(msg,
974 DBUS_TYPE_INT32, &pid,
978 dbus_error_init(&err);
980 DBusMessage* result_msg;
981 int result = VC_ERROR_OPERATION_FAILED;
984 result_msg = dbus_connection_send_with_reply_and_block(g_m_conn_sender, msg, g_m_waiting_time, &err);
985 dbus_message_unref(msg);
987 if (dbus_error_is_set(&err)) {
988 SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Dbus Error (%s)", err.message);
989 dbus_error_free(&err);
992 if (NULL != result_msg) {
993 dbus_message_get_args(result_msg, &err,
994 DBUS_TYPE_INT32, &result,
995 DBUS_TYPE_STRING, &temp,
998 if (dbus_error_is_set(&err)) {
999 SLOG(LOG_ERROR, TAG_VCM, "<<<< Get arguments error (%s)", err.message);
1000 dbus_error_free(&err);
1001 result = VC_ERROR_OPERATION_FAILED;
1003 dbus_message_unref(result_msg);
1006 if (NULL != audio_type && NULL != temp) {
1007 *audio_type = strdup(temp);
1009 SLOG(LOG_DEBUG, TAG_VCM, "<<<< vc mgr get audio type : result = %d audio type = %s", result, temp);
1011 SLOG(LOG_ERROR, TAG_VCM, "<<<< vc mgr get audio type : result = %d", result);
1014 SLOG(LOG_DEBUG, TAG_VCM, "<<<< Result Message is NULL");
1015 vc_mgr_dbus_reconnect();
1016 result = VC_ERROR_TIMED_OUT;
1022 int vc_mgr_dbus_request_set_client_info(int pid)
1026 /* create a signal & check for errors */
1027 msg = dbus_message_new_method_call(
1028 VC_SERVER_SERVICE_NAME,
1029 VC_SERVER_SERVICE_OBJECT_PATH,
1030 VC_SERVER_SERVICE_INTERFACE,
1031 VC_MANAGER_METHOD_SET_CLIENT_INFO);
1034 SLOG(LOG_ERROR, TAG_VCM, ">>>> vc mgr set client info : Fail to make message ");
1035 return VC_ERROR_OPERATION_FAILED;
1037 SLOG(LOG_DEBUG, TAG_VCM, ">>>> vc mgr set client info : pid(%d)", pid);
1040 dbus_message_append_args(msg,
1041 DBUS_TYPE_INT32, &pid,
1045 dbus_error_init(&err);
1047 DBusMessage* result_msg;
1048 int result = VC_ERROR_OPERATION_FAILED;
1050 result_msg = dbus_connection_send_with_reply_and_block(g_m_conn_sender, msg, g_m_waiting_time, &err);
1051 dbus_message_unref(msg);
1053 if (dbus_error_is_set(&err)) {
1054 SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Dbus Error (%s)", err.message);
1055 dbus_error_free(&err);
1058 if (NULL != result_msg) {
1059 dbus_message_get_args(result_msg, &err,
1060 DBUS_TYPE_INT32, &result,
1063 if (dbus_error_is_set(&err)) {
1064 SLOG(LOG_ERROR, TAG_VCM, "<<<< Get arguments error (%s)", err.message);
1065 dbus_error_free(&err);
1066 result = VC_ERROR_OPERATION_FAILED;
1068 dbus_message_unref(result_msg);
1071 SLOG(LOG_DEBUG, TAG_VCM, "<<<< vc mgr set client info : result = %d", result);
1073 SLOG(LOG_ERROR, TAG_VCM, "<<<< vc mgr set client info : result = %d", result);
1076 SLOG(LOG_DEBUG, TAG_VCM, "<<<< Result Message is NULL");
1077 vc_mgr_dbus_reconnect();
1078 result = VC_ERROR_TIMED_OUT;
1084 int vc_mgr_dbus_request_start(int pid, int recognition_mode, bool exclusive_command_option, bool start_by_client)
1088 /* create a signal & check for errors */
1089 msg = dbus_message_new_method_call(
1090 VC_SERVER_SERVICE_NAME,
1091 VC_SERVER_SERVICE_OBJECT_PATH,
1092 VC_SERVER_SERVICE_INTERFACE,
1093 VC_MANAGER_METHOD_START);
1096 SLOG(LOG_ERROR, TAG_VCM, ">>>> vc mgr start : Fail to make message ");
1097 return VC_ERROR_OPERATION_FAILED;
1099 SLOG(LOG_DEBUG, TAG_VCM, ">>>> vc mgr start : pid(%d), recognition_mode(%d) exclusive(%d) start by client(%d)",
1100 pid, recognition_mode, exclusive_command_option, start_by_client);
1103 int exclusive = exclusive_command_option;
1104 int by = start_by_client;
1106 dbus_message_append_args(msg,
1107 DBUS_TYPE_INT32, &pid,
1108 DBUS_TYPE_INT32, &(recognition_mode),
1109 DBUS_TYPE_INT32, &(exclusive),
1110 DBUS_TYPE_INT32, &(by),
1114 dbus_error_init(&err);
1116 DBusMessage* result_msg;
1117 int result = VC_ERROR_OPERATION_FAILED;
1119 result_msg = dbus_connection_send_with_reply_and_block(g_m_conn_sender, msg, g_m_waiting_time, &err);
1120 dbus_message_unref(msg);
1122 if (dbus_error_is_set(&err)) {
1123 SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Dbus Error (%s)", err.message);
1124 dbus_error_free(&err);
1127 if (NULL != result_msg) {
1128 dbus_message_get_args(result_msg, &err,
1129 DBUS_TYPE_INT32, &result,
1132 if (dbus_error_is_set(&err)) {
1133 SLOG(LOG_ERROR, TAG_VCM, "<<<< Get arguments error (%s)", err.message);
1134 dbus_error_free(&err);
1135 result = VC_ERROR_OPERATION_FAILED;
1137 dbus_message_unref(result_msg);
1140 SLOG(LOG_DEBUG, TAG_VCM, "<<<< vc mgr start : result = %d", result);
1142 SLOG(LOG_ERROR, TAG_VCM, "<<<< vc mgr start : result = %d", result);
1145 SLOG(LOG_DEBUG, TAG_VCM, "<<<< Result Message is NULL");
1146 vc_mgr_dbus_reconnect();
1147 result = VC_ERROR_TIMED_OUT;
1153 int vc_mgr_dbus_request_stop(int pid)
1157 /* create a signal & check for errors */
1158 msg = dbus_message_new_method_call(
1159 VC_SERVER_SERVICE_NAME,
1160 VC_SERVER_SERVICE_OBJECT_PATH,
1161 VC_SERVER_SERVICE_INTERFACE,
1162 VC_MANAGER_METHOD_STOP);
1165 SLOG(LOG_ERROR, TAG_VCM, ">>>> vc mgr stop : Fail to make message ");
1166 return VC_ERROR_OPERATION_FAILED;
1168 SLOG(LOG_DEBUG, TAG_VCM, ">>>> vc mgr stop : pid(%d)", pid);
1171 dbus_message_append_args(msg,
1172 DBUS_TYPE_INT32, &pid,
1176 dbus_error_init(&err);
1178 DBusMessage* result_msg;
1179 int result = VC_ERROR_OPERATION_FAILED;
1181 result_msg = dbus_connection_send_with_reply_and_block(g_m_conn_sender, msg, g_m_waiting_time, &err);
1182 dbus_message_unref(msg);
1184 if (dbus_error_is_set(&err)) {
1185 SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Dbus Error (%s)", err.message);
1186 dbus_error_free(&err);
1189 if (NULL != result_msg) {
1190 dbus_message_get_args(result_msg, &err,
1191 DBUS_TYPE_INT32, &result,
1194 if (dbus_error_is_set(&err)) {
1195 SLOG(LOG_ERROR, TAG_VCM, "<<<< Get arguments error (%s)", err.message);
1196 dbus_error_free(&err);
1197 result = VC_ERROR_OPERATION_FAILED;
1199 dbus_message_unref(result_msg);
1202 SLOG(LOG_DEBUG, TAG_VCM, "<<<< vc mgr stop : result = %d", result);
1204 SLOG(LOG_ERROR, TAG_VCM, "<<<< vc mgr stop : result = %d", result);
1207 SLOG(LOG_DEBUG, TAG_VCM, "<<<< Result Message is NULL");
1208 vc_mgr_dbus_reconnect();
1209 result = VC_ERROR_TIMED_OUT;
1215 int vc_mgr_dbus_request_cancel(int pid)
1219 /* create a signal & check for errors */
1220 msg = dbus_message_new_method_call(
1221 VC_SERVER_SERVICE_NAME,
1222 VC_SERVER_SERVICE_OBJECT_PATH, /* object name of the signal */
1223 VC_SERVER_SERVICE_INTERFACE, /* interface name of the signal */
1224 VC_MANAGER_METHOD_CANCEL); /* name of the signal */
1227 SLOG(LOG_ERROR, TAG_VCM, ">>>> vc cancel : Fail to make message ");
1228 return VC_ERROR_OPERATION_FAILED;
1230 SLOG(LOG_DEBUG, TAG_VCM, ">>>> vc cancel : pid(%d)", pid);
1233 dbus_message_append_args(msg,
1234 DBUS_TYPE_INT32, &pid,
1238 dbus_error_init(&err);
1240 DBusMessage* result_msg;
1241 int result = VC_ERROR_OPERATION_FAILED;
1243 result_msg = dbus_connection_send_with_reply_and_block(g_m_conn_sender, msg, g_m_waiting_time, &err);
1244 dbus_message_unref(msg);
1246 if (dbus_error_is_set(&err)) {
1247 SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Dbus Error (%s)", err.message);
1248 dbus_error_free(&err);
1251 if (NULL != result_msg) {
1252 dbus_message_get_args(result_msg, &err,
1253 DBUS_TYPE_INT32, &result,
1256 if (dbus_error_is_set(&err)) {
1257 SLOG(LOG_ERROR, TAG_VCM, "<<<< Get arguments error (%s)", err.message);
1258 dbus_error_free(&err);
1259 result = VC_ERROR_OPERATION_FAILED;
1261 dbus_message_unref(result_msg);
1264 SLOG(LOG_DEBUG, TAG_VCM, "<<<< vc cancel : result = %d", result);
1266 SLOG(LOG_ERROR, TAG_VCM, "<<<< vc cancel : result = %d", result);
1269 SLOG(LOG_DEBUG, TAG_VCM, "<<<< Result Message is NULL");
1270 vc_mgr_dbus_reconnect();
1271 result = VC_ERROR_TIMED_OUT;
1277 static DBusMessage* __get_message(int pid, const char* method, int type)
1279 char service_name[64];
1280 char object_path[64];
1281 char target_if_name[128];
1283 memset(service_name, '\0', 64);
1284 memset(object_path, '\0', 64);
1285 memset(target_if_name, '\0', 128);
1287 if (VC_COMMAND_TYPE_FOREGROUND == type || VC_COMMAND_TYPE_BACKGROUND == type) {
1288 snprintf(service_name, 64, "%s", VC_CLIENT_SERVICE_NAME);
1289 snprintf(object_path, 64, "%s", VC_CLIENT_SERVICE_OBJECT_PATH);
1290 snprintf(target_if_name, 128, "%s", VC_CLIENT_SERVICE_NAME);
1292 } else if (VC_COMMAND_TYPE_WIDGET == type) {
1293 snprintf(service_name, 64, "%s", VC_WIDGET_SERVICE_NAME);
1294 snprintf(object_path, 64, "%s", VC_WIDGET_SERVICE_OBJECT_PATH);
1295 snprintf(target_if_name, 128, "%s", VC_WIDGET_SERVICE_INTERFACE);
1300 SLOG(LOG_DEBUG, TAG_VCM, "[Dbus] Service(%s) object(%s) if(%s)", service_name, object_path, target_if_name);
1302 return dbus_message_new_method_call(service_name, object_path, target_if_name, method);
1305 int vc_mgr_dbus_send_result(int pid, int cmd_type, int result_id)
1307 DBusMessage* msg = NULL;
1310 case VC_COMMAND_TYPE_FOREGROUND:
1311 case VC_COMMAND_TYPE_BACKGROUND:
1312 msg = __get_message(pid, VCD_METHOD_RESULT, cmd_type);
1314 case VC_COMMAND_TYPE_WIDGET:
1315 msg = __get_message(pid, VCD_WIDGET_METHOD_RESULT, cmd_type);
1318 SLOG(LOG_ERROR, TAG_VCM, "[Dbus ERROR] Command type is NOT valid(%d)", cmd_type);
1323 SLOG(LOG_ERROR, TAG_VCM, "[Dbus ERROR] Message is NULL");
1325 dbus_message_append_args(msg, DBUS_TYPE_INT32, &result_id, DBUS_TYPE_INVALID);
1327 dbus_message_set_no_reply(msg, TRUE);
1329 /* send the message and flush the connection */
1330 if (!dbus_connection_send(g_m_conn_sender, msg, NULL)) {
1331 SLOG(LOG_ERROR, TAG_VCM, "[Dbus ERROR] Fail to send result message");
1333 SLOG(LOG_DEBUG, TAG_VCM, "[Dbus] Success to send result");
1335 dbus_connection_flush(g_m_conn_sender);
1338 dbus_message_unref(msg);
1343 int vc_mgr_dbus_send_result_selection(int pid)
1347 /* create a signal & check for errors */
1348 msg = dbus_message_new_method_call(
1349 VC_SERVER_SERVICE_NAME,
1350 VC_SERVER_SERVICE_OBJECT_PATH, /* object name of the signal */
1351 VC_SERVER_SERVICE_INTERFACE, /* interface name of the signal */
1352 VC_MANAGER_METHOD_RESULT_SELECTION); /* name of the signal */
1355 SLOG(LOG_ERROR, TAG_VCM, ">>>> vc result selection : Fail to make message ");
1356 return VC_ERROR_OPERATION_FAILED;
1358 SLOG(LOG_DEBUG, TAG_VCM, ">>>> vc result selection : pid(%d)", pid);
1361 dbus_message_append_args(msg,
1362 DBUS_TYPE_INT32, &pid,
1365 dbus_message_set_no_reply(msg, TRUE);
1367 if (1 != dbus_connection_send(g_m_conn_sender, msg, NULL)) {
1368 SLOG(LOG_ERROR, TAG_VCM, "[Dbus ERROR] Fail to Send");
1371 SLOG(LOG_DEBUG, TAG_VCM, "[Dbus] SUCCESS Send");
1372 dbus_connection_flush(g_m_conn_sender);