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.
18 #include "vcd_client_data.h"
20 #include "vcd_dbus_server.h"
22 #include "vcd_server.h"
25 int __dbus_error_return(DBusConnection* conn, DBusMessage* msg, int ret)
28 reply = dbus_message_new_method_return(msg);
31 dbus_message_append_args(reply,
32 DBUS_TYPE_INT32, &ret,
36 SLOG(LOG_DEBUG, TAG_VCD, "[OUT SUCCESS] Result(%d)", ret);
38 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Result(%d)", ret);
41 if (!dbus_connection_send(conn, reply, NULL)) {
42 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Out Of Memory!");
45 dbus_connection_flush(conn);
46 dbus_message_unref(reply);
48 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Fail to create reply message!!");
51 SLOG(LOG_DEBUG, TAG_VCD, "@@@");
56 int vcd_dbus_server_hello(DBusConnection* conn, DBusMessage* msg)
58 SLOG(LOG_DEBUG, TAG_VCD, "@@@ VCD Hello");
61 reply = dbus_message_new_method_return(msg);
64 if (!dbus_connection_send(conn, reply, NULL)) {
65 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Out Of Memory!");
68 dbus_connection_flush(conn);
69 dbus_message_unref(reply);
71 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Fail to create reply message!!");
74 SLOG(LOG_DEBUG, TAG_VCD, "@@@");
80 * Dbus Server functions for manager
83 int vcd_dbus_server_mgr_initialize(DBusConnection* conn, DBusMessage* msg)
86 dbus_error_init(&err);
92 int ret = VCD_ERROR_OPERATION_FAILED;
94 dbus_message_get_args(msg, &err,
95 DBUS_TYPE_INT32, &pid,
98 SLOG(LOG_DEBUG, TAG_VCD, "@@@ VCD Manager Initialize");
100 if (dbus_error_is_set(&err)) {
101 SLOG(LOG_ERROR, TAG_VCD, "[IN ERROR] vcd mgr initialize : get arguments error (%s)", err.message);
102 dbus_error_free(&err);
103 ret = VCD_ERROR_OPERATION_FAILED;
105 ret = vcd_server_mgr_initialize(pid);
106 service_state = vcd_server_get_service_state();
107 foreground = vcd_server_get_foreground();
108 daemon_pid = getpid();
110 SLOG(LOG_DEBUG, TAG_VCD, "[IN] vcd mgr initialize : pid(%d) service state(%d) foreground(%d) daemon_pid(%d)", pid, service_state, foreground, daemon_pid);
114 reply = dbus_message_new_method_return(msg);
117 dbus_message_append_args(reply,
118 DBUS_TYPE_INT32, &ret,
119 DBUS_TYPE_INT32, &service_state,
120 DBUS_TYPE_INT32, &foreground,
121 DBUS_TYPE_INT32, &daemon_pid,
125 SLOG(LOG_DEBUG, TAG_VCD, "[OUT SUCCESS] Result(%d)", ret);
127 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Result(%d)", ret);
130 if (!dbus_connection_send(conn, reply, NULL)) {
131 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Out Of Memory!");
134 dbus_connection_flush(conn);
135 dbus_message_unref(reply);
137 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Fail to create reply message!!");
140 SLOG(LOG_DEBUG, TAG_VCD, "@@@");
145 int vcd_dbus_server_mgr_finalize(DBusConnection* conn, DBusMessage* msg)
148 dbus_error_init(&err);
151 int ret = VCD_ERROR_OPERATION_FAILED;
152 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &pid, DBUS_TYPE_INVALID);
154 SLOG(LOG_DEBUG, TAG_VCD, "@@@ VCD Manager Finalize");
156 if (dbus_error_is_set(&err)) {
157 SLOG(LOG_ERROR, TAG_VCD, "[IN ERROR] vcd mgr finalize : get arguments error (%s)", err.message);
158 dbus_error_free(&err);
159 ret = VCD_ERROR_OPERATION_FAILED;
161 SLOG(LOG_DEBUG, TAG_VCD, "[IN] vcd mgr finalize : pid(%d)", pid);
162 ret = vcd_server_mgr_finalize(pid);
167 reply = dbus_message_new_method_return(msg);
170 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
173 SLOG(LOG_DEBUG, TAG_VCD, "[OUT SUCCESS] Result(%d)", ret);
175 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Result(%d)", ret);
178 if (!dbus_connection_send(conn, reply, NULL)) {
179 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Out Of Memory!");
182 dbus_connection_flush(conn);
183 dbus_message_unref(reply);
185 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Fail to create reply message!!");
188 SLOG(LOG_DEBUG, TAG_VCD, "@@@");
193 int vcd_dbus_server_mgr_set_command(DBusConnection* conn, DBusMessage* msg)
196 dbus_error_init(&err);
199 int ret = VCD_ERROR_OPERATION_FAILED;
201 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &pid, DBUS_TYPE_INVALID);
203 SLOG(LOG_DEBUG, TAG_VCD, "@@@ VCD Manager Set command");
205 if (dbus_error_is_set(&err)) {
206 SLOG(LOG_ERROR, TAG_VCD, "[IN ERROR] vcd mgr set command : get arguments error (%s)", err.message);
207 dbus_error_free(&err);
208 ret = VCD_ERROR_OPERATION_FAILED;
210 SLOG(LOG_DEBUG, TAG_VCD, "[IN] vcd mgr set command : pid(%d)", pid);
211 ret = vcd_server_mgr_set_command(pid);
215 reply = dbus_message_new_method_return(msg);
219 /* Append result and language */
220 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
222 SLOG(LOG_DEBUG, TAG_VCD, "[OUT SUCCESS] Result(%d)", ret);
224 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
226 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Result(%d)", ret);
229 if (!dbus_connection_send(conn, reply, NULL)) {
230 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Out Of Memory!");
233 dbus_connection_flush(conn);
234 dbus_message_unref(reply);
236 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Fail to create reply message!!");
239 SLOG(LOG_DEBUG, TAG_VCD, "@@@");
244 int vcd_dbus_server_mgr_unset_command(DBusConnection* conn, DBusMessage* msg)
247 dbus_error_init(&err);
250 int ret = VCD_ERROR_OPERATION_FAILED;
252 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &pid, DBUS_TYPE_INVALID);
254 SLOG(LOG_DEBUG, TAG_VCD, "@@@ VCD manager unset command");
256 if (dbus_error_is_set(&err)) {
257 SLOG(LOG_ERROR, TAG_VCD, "[IN ERROR] vcd mgr unset command : get arguments error (%s)", err.message);
258 dbus_error_free(&err);
259 ret = VCD_ERROR_OPERATION_FAILED;
261 SLOG(LOG_DEBUG, TAG_VCD, "[IN] vcd mgr unset command : pid(%d)", pid);
262 ret = vcd_server_mgr_unset_command(pid);
266 reply = dbus_message_new_method_return(msg);
270 /* Append result and language */
271 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
273 SLOG(LOG_DEBUG, TAG_VCD, "[OUT SUCCESS] Result(%d)", ret);
275 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
277 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Result(%d)", ret);
280 if (!dbus_connection_send(conn, reply, NULL)) {
281 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Out Of Memory!");
284 dbus_connection_flush(conn);
285 dbus_message_unref(reply);
287 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Fail to create reply message!!");
290 SLOG(LOG_DEBUG, TAG_VCD, "@@@");
295 int vcd_dbus_server_mgr_set_demandable_client(DBusConnection* conn, DBusMessage* msg)
298 dbus_error_init(&err);
301 int ret = VCD_ERROR_OPERATION_FAILED;
303 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &pid, DBUS_TYPE_INVALID);
305 SLOG(LOG_DEBUG, TAG_VCD, "@@@ VCD Manager Set demandable client");
307 if (dbus_error_is_set(&err)) {
308 SLOG(LOG_ERROR, TAG_VCD, "[IN ERROR] vcd mgr set demandable client : get arguments error (%s)", err.message);
309 dbus_error_free(&err);
310 ret = VCD_ERROR_OPERATION_FAILED;
312 SLOG(LOG_DEBUG, TAG_VCD, "[IN] vcd mgr set demandable client : pid(%d)", pid);
313 ret = vcd_server_mgr_set_demandable_client(pid);
317 reply = dbus_message_new_method_return(msg);
321 /* Append result and language */
322 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
324 SLOG(LOG_DEBUG, TAG_VCD, "[OUT SUCCESS] Result(%d)", ret);
326 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
328 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Result(%d)", ret);
331 if (!dbus_connection_send(conn, reply, NULL)) {
332 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Out Of Memory!");
335 dbus_connection_flush(conn);
336 dbus_message_unref(reply);
338 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Fail to create reply message!!");
341 SLOG(LOG_DEBUG, TAG_VCD, "@@@");
346 int vcd_dbus_server_mgr_set_audio_type(DBusConnection* conn, DBusMessage* msg)
349 dbus_error_init(&err);
352 char* audio_type = NULL;
354 int ret = VCD_ERROR_OPERATION_FAILED;
356 SLOG(LOG_DEBUG, TAG_VCD, "@@@ VCD Manager set audio type");
358 dbus_message_get_args(msg, &err,
359 DBUS_TYPE_INT32, &pid,
360 DBUS_TYPE_STRING, &audio_type,
363 if (dbus_error_is_set(&err)) {
364 SLOG(LOG_ERROR, TAG_VCD, "[IN ERROR] vcd mgr set audio type : get arguments error (%s)", err.message);
365 dbus_error_free(&err);
366 ret = VCD_ERROR_OPERATION_FAILED;
368 SLOG(LOG_DEBUG, TAG_VCD, "[IN] vcd mgr set audio type : pid(%d), audio type(%s)", pid, audio_type);
369 ret = vcd_server_mgr_set_audio_type(pid, audio_type);
373 reply = dbus_message_new_method_return(msg);
376 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
379 SLOG(LOG_DEBUG, TAG_VCD, "[OUT SUCCESS] Result(%d)", ret);
381 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Result(%d)", ret);
384 if (!dbus_connection_send(conn, reply, NULL)) {
385 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Out Of Memory!");
388 dbus_connection_flush(conn);
389 dbus_message_unref(reply);
391 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Fail to create reply message!!");
394 SLOG(LOG_DEBUG, TAG_VCD, "@@@");
399 int vcd_dbus_server_mgr_get_audio_type(DBusConnection* conn, DBusMessage* msg)
402 dbus_error_init(&err);
405 char* audio_type = NULL;
407 int ret = VCD_ERROR_OPERATION_FAILED;
409 SLOG(LOG_DEBUG, TAG_VCD, "@@@ VCD Manager get audio type");
411 dbus_message_get_args(msg, &err,
412 DBUS_TYPE_INT32, &pid,
415 if (dbus_error_is_set(&err)) {
416 SLOG(LOG_ERROR, TAG_VCD, "[IN ERROR] vcd mgr set audio type : get arguments error (%s)", err.message);
417 dbus_error_free(&err);
418 ret = VCD_ERROR_OPERATION_FAILED;
420 SLOG(LOG_DEBUG, TAG_VCD, "[IN] vcd mgr set audio type : pid(%d)", pid);
421 ret = vcd_server_mgr_get_audio_type(pid, &audio_type);
425 reply = dbus_message_new_method_return(msg);
428 dbus_message_append_args(reply,
429 DBUS_TYPE_INT32, &ret,
430 DBUS_TYPE_STRING, &audio_type,
434 SLOG(LOG_DEBUG, TAG_VCD, "[OUT SUCCESS] Result(%d), audio type(%s)", ret, audio_type);
436 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Result(%d)", ret);
439 if (!dbus_connection_send(conn, reply, NULL)) {
440 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Out Of Memory!");
443 dbus_connection_flush(conn);
444 dbus_message_unref(reply);
446 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Fail to create reply message!!");
449 SLOG(LOG_DEBUG, TAG_VCD, "@@@");
451 if (NULL != audio_type) free(audio_type);
456 int vcd_dbus_server_mgr_set_client_info(DBusConnection* conn, DBusMessage* msg)
459 dbus_error_init(&err);
463 int ret = VCD_ERROR_OPERATION_FAILED;
465 SLOG(LOG_DEBUG, TAG_VCD, "@@@ VCD Manager set client info");
467 dbus_message_get_args(msg, &err,
468 DBUS_TYPE_INT32, &pid,
471 if (dbus_error_is_set(&err)) {
472 SLOG(LOG_ERROR, TAG_VCD, "[IN ERROR] vcd mgr set client info : get arguments error (%s)", err.message);
473 dbus_error_free(&err);
474 ret = VCD_ERROR_OPERATION_FAILED;
476 SLOG(LOG_DEBUG, TAG_VCD, "[IN] vcd mgr set client info : pid(%d)", pid);
477 ret = vcd_server_mgr_set_client_info(pid);
481 reply = dbus_message_new_method_return(msg);
484 dbus_message_append_args(reply,
485 DBUS_TYPE_INT32, &ret,
489 SLOG(LOG_DEBUG, TAG_VCD, "[OUT SUCCESS] Result(%d)", ret);
491 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Result(%d)", ret);
494 if (!dbus_connection_send(conn, reply, NULL)) {
495 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Out Of Memory!");
498 dbus_connection_flush(conn);
499 dbus_message_unref(reply);
501 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Fail to create reply message!!");
504 SLOG(LOG_DEBUG, TAG_VCD, "@@@");
509 int vcd_dbus_server_mgr_set_private_data(DBusConnection* conn, DBusMessage* msg)
512 dbus_error_init(&err);
518 int ret = VCD_ERROR_OPERATION_FAILED;
520 SLOG(LOG_DEBUG, TAG_VCD, "@@@ VCD Manager set private data");
522 dbus_message_get_args(msg, &err,
523 DBUS_TYPE_INT32, &pid,
524 DBUS_TYPE_STRING, &key,
525 DBUS_TYPE_STRING, &data,
528 if (dbus_error_is_set(&err)) {
529 SLOG(LOG_ERROR, TAG_VCD, "[IN ERROR] vcd mgr set private data : get arguments error (%s)", err.message);
530 dbus_error_free(&err);
531 ret = VCD_ERROR_OPERATION_FAILED;
533 SLOG(LOG_DEBUG, TAG_VCD, "[IN] vcd mgr set domain : pid(%d), key(%s), data(%s)", pid, key, data);
534 ret = vcd_server_mgr_set_private_data(pid, key, data);
538 reply = dbus_message_new_method_return(msg);
541 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
544 SLOG(LOG_DEBUG, TAG_VCD, "[OUT SUCCESS] Result(%d)", ret);
546 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Result(%d)", ret);
549 if (!dbus_connection_send(conn, reply, NULL)) {
550 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Out Of Memory!");
553 dbus_connection_flush(conn);
554 dbus_message_unref(reply);
556 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Fail to create reply message!!");
559 SLOG(LOG_DEBUG, TAG_VCD, "@@@");
564 int vcd_dbus_server_mgr_get_private_data(DBusConnection* conn, DBusMessage* msg)
567 dbus_error_init(&err);
573 int ret = VCD_ERROR_OPERATION_FAILED;
575 SLOG(LOG_DEBUG, TAG_VCD, "@@@ VCD Manager get private data");
577 dbus_message_get_args(msg, &err,
578 DBUS_TYPE_INT32, &pid,
579 DBUS_TYPE_STRING, &key,
582 if (dbus_error_is_set(&err)) {
583 SLOG(LOG_ERROR, TAG_VCD, "[IN ERROR] vcd mgr set audio type : get arguments error (%s)", err.message);
584 dbus_error_free(&err);
585 ret = VCD_ERROR_OPERATION_FAILED;
587 SLOG(LOG_DEBUG, TAG_VCD, "[IN] vcd mgr get private data : pid(%d), key(%s)", pid, key);
588 ret = vcd_server_mgr_get_private_data(pid, key, &data);
592 reply = dbus_message_new_method_return(msg);
595 dbus_message_append_args(reply,
596 DBUS_TYPE_INT32, &ret,
597 DBUS_TYPE_STRING, &data,
601 SLOG(LOG_DEBUG, TAG_VCD, "[OUT SUCCESS] Result(%d), private data(%s)", ret, data);
603 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Result(%d)", ret);
606 if (!dbus_connection_send(conn, reply, NULL)) {
607 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Out Of Memory!");
610 dbus_connection_flush(conn);
611 dbus_message_unref(reply);
613 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Fail to create reply message!!");
616 SLOG(LOG_DEBUG, TAG_VCD, "@@@");
618 if (NULL != data) free(data);
623 int vcd_dbus_server_mgr_set_domain(DBusConnection* conn, DBusMessage* msg)
626 dbus_error_init(&err);
631 int ret = VCD_ERROR_OPERATION_FAILED;
633 SLOG(LOG_DEBUG, TAG_VCD, "@@@ VCD Manager set audio type");
635 dbus_message_get_args(msg, &err,
636 DBUS_TYPE_INT32, &pid,
637 DBUS_TYPE_STRING, &domain,
640 if (dbus_error_is_set(&err)) {
641 SLOG(LOG_ERROR, TAG_VCD, "[IN ERROR] vcd mgr set domain : get arguments error (%s)", err.message);
642 dbus_error_free(&err);
643 ret = VCD_ERROR_OPERATION_FAILED;
645 SLOG(LOG_DEBUG, TAG_VCD, "[IN] vcd mgr set domain : pid(%d), domain(%s)", pid, domain);
646 ret = vcd_server_mgr_set_domain(pid, domain);
650 reply = dbus_message_new_method_return(msg);
653 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
656 SLOG(LOG_DEBUG, TAG_VCD, "[OUT SUCCESS] Result(%d)", ret);
658 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Result(%d)", ret);
661 if (!dbus_connection_send(conn, reply, NULL)) {
662 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Out Of Memory!");
665 dbus_connection_flush(conn);
666 dbus_message_unref(reply);
668 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Fail to create reply message!!");
671 SLOG(LOG_DEBUG, TAG_VCD, "@@@");
676 int vcd_dbus_server_mgr_do_action(DBusConnection* conn, DBusMessage* msg)
679 dbus_error_init(&err);
683 char* send_event = NULL;
685 int ret = VCD_ERROR_OPERATION_FAILED;
687 SLOG(LOG_DEBUG, TAG_VCD, "@@@ VCD Manager request to do action");
689 dbus_message_get_args(msg, &err,
690 DBUS_TYPE_INT32, &pid,
691 DBUS_TYPE_INT32, &type,
692 DBUS_TYPE_STRING, &send_event,
695 if (dbus_error_is_set(&err)) {
696 SLOG(LOG_ERROR, TAG_VCD, "[IN ERROR] vcd mgr request to do action : get arguments error (%s)", err.message);
697 dbus_error_free(&err);
698 ret = VCD_ERROR_OPERATION_FAILED;
700 SLOG(LOG_DEBUG, TAG_VCD, "[IN] vcd mgr request to do action : pid(%d), type(%d) send_event(%s)", pid, type, send_event);
701 ret = vcd_server_mgr_do_action(pid, type, send_event);
705 reply = dbus_message_new_method_return(msg);
708 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
711 SLOG(LOG_DEBUG, TAG_VCD, "[OUT SUCCESS] Result(%d)", ret);
713 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Result(%d)", ret);
716 if (!dbus_connection_send(conn, reply, NULL)) {
717 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Out Of Memory!");
720 dbus_connection_flush(conn);
721 dbus_message_unref(reply);
723 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Fail to create reply message!!");
726 SLOG(LOG_DEBUG, TAG_VCD, "@@@");
731 int vcd_dbus_server_mgr_enable_command_type(DBusConnection* conn, DBusMessage* msg)
734 dbus_error_init(&err);
739 int ret = VCD_ERROR_OPERATION_FAILED;
741 SLOG(LOG_DEBUG, TAG_VCD, "@@@ VCD Manager enable command type");
743 dbus_message_get_args(msg, &err,
744 DBUS_TYPE_INT32, &pid,
745 DBUS_TYPE_INT32, &cmd_type,
748 if (dbus_error_is_set(&err)) {
749 SLOG(LOG_ERROR, TAG_VCD, "[IN ERROR] vcd mgr enable command type : get arguments error (%s)", err.message);
750 dbus_error_free(&err);
751 ret = VCD_ERROR_OPERATION_FAILED;
753 SLOG(LOG_DEBUG, TAG_VCD, "[IN] vcd mgr enable command type : pid(%d), cmd_type(%d)", pid, cmd_type);
754 ret = vcd_server_mgr_enable_command_type(pid, cmd_type);
758 reply = dbus_message_new_method_return(msg);
761 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
764 SLOG(LOG_DEBUG, TAG_VCD, "[OUT SUCCESS] Result(%d)", ret);
766 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Result(%d)", ret);
769 if (!dbus_connection_send(conn, reply, NULL)) {
770 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Out Of Memory!");
773 dbus_connection_flush(conn);
774 dbus_message_unref(reply);
776 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Fail to create reply message!!");
779 SLOG(LOG_DEBUG, TAG_VCD, "@@@");
784 int vcd_dbus_server_mgr_disable_command_type(DBusConnection* conn, DBusMessage* msg)
787 dbus_error_init(&err);
792 int ret = VCD_ERROR_OPERATION_FAILED;
794 SLOG(LOG_DEBUG, TAG_VCD, "@@@ VCD Manager disable command type");
796 dbus_message_get_args(msg, &err,
797 DBUS_TYPE_INT32, &pid,
798 DBUS_TYPE_INT32, &cmd_type,
801 if (dbus_error_is_set(&err)) {
802 SLOG(LOG_ERROR, TAG_VCD, "[IN ERROR] vcd mgr disable command type : get arguments error (%s)", err.message);
803 dbus_error_free(&err);
804 ret = VCD_ERROR_OPERATION_FAILED;
806 SLOG(LOG_DEBUG, TAG_VCD, "[IN] vcd mgr disable command type : pid(%d), cmd_type(%d)", pid, cmd_type);
807 ret = vcd_server_mgr_disable_command_type(pid, cmd_type);
811 reply = dbus_message_new_method_return(msg);
814 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
817 SLOG(LOG_DEBUG, TAG_VCD, "[OUT SUCCESS] Result(%d)", ret);
819 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Result(%d)", ret);
822 if (!dbus_connection_send(conn, reply, NULL)) {
823 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Out Of Memory!");
826 dbus_connection_flush(conn);
827 dbus_message_unref(reply);
829 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Fail to create reply message!!");
832 SLOG(LOG_DEBUG, TAG_VCD, "@@@");
837 int vcd_dbus_server_mgr_start(DBusConnection* conn, DBusMessage* msg)
840 dbus_error_init(&err);
843 int recognition_mode = 0;
845 int start_by_client = 0;
847 int ret = VCD_ERROR_OPERATION_FAILED;
849 SLOG(LOG_DEBUG, TAG_VCD, "@@@ VCD Manager start");
851 dbus_message_get_args(msg, &err,
852 DBUS_TYPE_INT32, &pid,
853 DBUS_TYPE_INT32, &recognition_mode,
854 DBUS_TYPE_INT32, &exclusive,
855 DBUS_TYPE_INT32, &start_by_client,
858 if (dbus_error_is_set(&err)) {
859 SLOG(LOG_ERROR, TAG_VCD, "[IN ERROR] vcd mgr start : get arguments error (%s)", err.message);
860 dbus_error_free(&err);
861 ret = VCD_ERROR_OPERATION_FAILED;
863 SLOG(LOG_DEBUG, TAG_VCD, "[IN] vcd mgr start : pid(%d) recognition_mode(%d) exclusive(%d) start by client(%d)", pid, recognition_mode, exclusive, start_by_client);
864 ret = vcd_server_mgr_start((vcd_recognition_mode_e)recognition_mode, (bool)exclusive, (bool)start_by_client);
868 reply = dbus_message_new_method_return(msg);
871 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
874 SLOG(LOG_DEBUG, TAG_VCD, "[OUT SUCCESS] Result(%d)", ret);
876 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Result(%d)", ret);
879 if (!dbus_connection_send(conn, reply, NULL)) {
880 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Out Of Memory!");
883 dbus_connection_flush(conn);
884 dbus_message_unref(reply);
886 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Fail to create reply message!!");
889 SLOG(LOG_DEBUG, TAG_VCD, "@@@");
894 int vcd_dbus_server_mgr_stop(DBusConnection* conn, DBusMessage* msg)
897 dbus_error_init(&err);
900 int ret = VCD_ERROR_OPERATION_FAILED;
901 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &pid, DBUS_TYPE_INVALID);
903 SLOG(LOG_DEBUG, TAG_VCD, "@@@ VCD Manager stop");
905 if (dbus_error_is_set(&err)) {
906 SLOG(LOG_ERROR, TAG_VCD, "[IN ERROR] vcd mgr stop : get arguments error (%s)", err.message);
907 dbus_error_free(&err);
908 ret = VCD_ERROR_OPERATION_FAILED;
910 SLOG(LOG_DEBUG, TAG_VCD, "[IN] vcd mgr stop : pid(%d)", pid);
911 ret = vcd_server_mgr_stop();
915 reply = dbus_message_new_method_return(msg);
918 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
921 SLOG(LOG_DEBUG, TAG_VCD, "[OUT SUCCESS] Result(%d)", ret);
923 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Result(%d)", ret);
926 if (!dbus_connection_send(conn, reply, NULL)) {
927 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Out Of Memory!");
930 dbus_connection_flush(conn);
931 dbus_message_unref(reply);
933 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Fail to create reply message!!");
936 SLOG(LOG_DEBUG, TAG_VCD, "@@@");
941 int vcd_dbus_server_mgr_cancel(DBusConnection* conn, DBusMessage* msg)
944 dbus_error_init(&err);
947 int ret = VCD_ERROR_OPERATION_FAILED;
948 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &pid, DBUS_TYPE_INVALID);
950 SLOG(LOG_DEBUG, TAG_VCD, "@@@ VCD Manager cancel");
952 if (dbus_error_is_set(&err)) {
953 SLOG(LOG_ERROR, TAG_VCD, "[IN ERROR] vcd mgr cancel : get arguments error (%s)", err.message);
954 dbus_error_free(&err);
955 ret = VCD_ERROR_OPERATION_FAILED;
957 SLOG(LOG_DEBUG, TAG_VCD, "[IN] vcd mgr cancel : pid(%d)", pid);
958 ret = vcd_server_mgr_cancel();
962 reply = dbus_message_new_method_return(msg);
965 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
968 SLOG(LOG_DEBUG, TAG_VCD, "[OUT SUCCESS] Result(%d)", ret);
970 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Result(%d)", ret);
973 if (!dbus_connection_send(conn, reply, NULL)) {
974 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Out Of Memory!");
977 dbus_connection_flush(conn);
978 dbus_message_unref(reply);
980 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Fail to create reply message!!");
983 SLOG(LOG_DEBUG, TAG_VCD, "@@@");
988 int vcd_dbus_server_mgr_result_selection(DBusConnection* conn, DBusMessage* msg)
991 dbus_error_init(&err);
994 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &pid, DBUS_TYPE_INVALID);
996 SLOG(LOG_DEBUG, TAG_VCD, "@@@ VCD Manager result selection");
998 if (dbus_error_is_set(&err)) {
999 SLOG(LOG_ERROR, TAG_VCD, "[IN ERROR] vcd mgr result selection : get arguments error (%s)", err.message);
1000 dbus_error_free(&err);
1002 SLOG(LOG_DEBUG, TAG_VCD, "[IN] vcd mgr result selection : pid(%d)", pid);
1003 vcd_server_mgr_result_select();
1009 reply = dbus_message_new_method_return(msg);
1011 if (NULL != reply) {
1012 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
1015 SLOG(LOG_DEBUG, TAG_VCD, "[OUT SUCCESS] Result(%d)", ret);
1017 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Result(%d)", ret);
1020 if (!dbus_connection_send(conn, reply, NULL)) {
1021 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Out Of Memory!");
1024 dbus_connection_flush(conn);
1025 dbus_message_unref(reply);
1027 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Fail to create reply message!!");
1030 SLOG(LOG_DEBUG, TAG_VCD, "@@@");
1037 * Dbus Server functions for client
1039 int vcd_dbus_server_initialize(DBusConnection* conn, DBusMessage* msg)
1042 dbus_error_init(&err);
1045 int service_state = 0;
1047 int ret = VCD_ERROR_OPERATION_FAILED;
1049 dbus_message_get_args(msg, &err,
1050 DBUS_TYPE_INT32, &pid,
1053 SLOG(LOG_DEBUG, TAG_VCD, "@@@ VCD Initialize");
1055 if (dbus_error_is_set(&err)) {
1056 SLOG(LOG_ERROR, TAG_VCD, "[IN ERROR] vcd initialize : get arguments error (%s)", err.message);
1057 dbus_error_free(&err);
1058 ret = VCD_ERROR_OPERATION_FAILED;
1060 ret = vcd_server_initialize(pid);
1061 service_state = vcd_server_get_service_state();
1062 daemon_pid = getpid();
1063 SLOG(LOG_DEBUG, TAG_VCD, "[IN] vcd initialize : pid(%d) daemon_pid(%d)", pid, daemon_pid);
1066 int mgr_pid = vcd_client_manager_get_pid();
1069 reply = dbus_message_new_method_return(msg);
1071 if (NULL != reply) {
1072 dbus_message_append_args(reply,
1073 DBUS_TYPE_INT32, &ret,
1074 DBUS_TYPE_INT32, &mgr_pid,
1075 DBUS_TYPE_INT32, &service_state,
1076 DBUS_TYPE_INT32, &daemon_pid,
1080 SLOG(LOG_DEBUG, TAG_VCD, "[OUT SUCCESS] Result(%d)", ret);
1082 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Result(%d)", ret);
1085 if (!dbus_connection_send(conn, reply, NULL)) {
1086 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Out Of Memory!");
1089 dbus_connection_flush(conn);
1090 dbus_message_unref(reply);
1092 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Fail to create reply message!!");
1095 SLOG(LOG_DEBUG, TAG_VCD, "@@@");
1100 int vcd_dbus_server_finalize(DBusConnection* conn, DBusMessage* msg)
1103 dbus_error_init(&err);
1106 int ret = VCD_ERROR_OPERATION_FAILED;
1107 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &pid, DBUS_TYPE_INVALID);
1109 SLOG(LOG_DEBUG, TAG_VCD, "@@@ VCD Finalize");
1111 if (dbus_error_is_set(&err)) {
1112 SLOG(LOG_ERROR, TAG_VCD, "[IN ERROR] vcd finalize : get arguments error (%s)", err.message);
1113 dbus_error_free(&err);
1114 ret = VCD_ERROR_OPERATION_FAILED;
1116 SLOG(LOG_DEBUG, TAG_VCD, "[IN] vcd finalize : pid(%d)", pid);
1117 ret = vcd_server_finalize(pid);
1122 reply = dbus_message_new_method_return(msg);
1124 if (NULL != reply) {
1125 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
1128 SLOG(LOG_DEBUG, TAG_VCD, "[OUT SUCCESS] Result(%d)", ret);
1130 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Result(%d)", ret);
1133 if (!dbus_connection_send(conn, reply, NULL)) {
1134 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Out Of Memory!");
1137 dbus_connection_flush(conn);
1138 dbus_message_unref(reply);
1140 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Fail to create reply message!!");
1143 SLOG(LOG_DEBUG, TAG_VCD, "@@@");
1149 int vcd_dbus_server_set_exclusive_command(DBusConnection* conn, DBusMessage* msg)
1152 dbus_error_init(&err);
1156 int ret = VCD_ERROR_OPERATION_FAILED;
1158 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &pid, DBUS_TYPE_INT32, &value, DBUS_TYPE_INVALID);
1160 SLOG(LOG_DEBUG, TAG_VCD, "@@@ VCD set exclusive command");
1162 if (dbus_error_is_set(&err)) {
1163 SLOG(LOG_ERROR, TAG_VCD, "[IN ERROR] vcd unset command : get arguments error (%s)", err.message);
1164 dbus_error_free(&err);
1165 ret = VCD_ERROR_OPERATION_FAILED;
1167 SLOG(LOG_DEBUG, TAG_VCD, "[IN] vcd unset command : pid(%d) value(%d)", pid, value);
1168 ret = vcd_server_set_exclusive_command(pid, (bool)value);
1172 reply = dbus_message_new_method_return(msg);
1174 if (NULL != reply) {
1176 /* Append result and language */
1177 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
1179 SLOG(LOG_DEBUG, TAG_VCD, "[OUT SUCCESS] Result(%d)", ret);
1181 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
1183 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Result(%d)", ret);
1186 if (!dbus_connection_send(conn, reply, NULL)) {
1187 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Out Of Memory!");
1190 dbus_connection_flush(conn);
1191 dbus_message_unref(reply);
1193 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Fail to create reply message!!");
1196 SLOG(LOG_DEBUG, TAG_VCD, "@@@");
1202 int vcd_dbus_server_set_command(DBusConnection* conn, DBusMessage* msg)
1205 dbus_error_init(&err);
1209 int ret = VCD_ERROR_OPERATION_FAILED;
1211 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &pid, DBUS_TYPE_INT32, &cmd_type, DBUS_TYPE_INVALID);
1213 SLOG(LOG_DEBUG, TAG_VCD, "@@@ VCD set command");
1215 if (dbus_error_is_set(&err)) {
1216 SLOG(LOG_ERROR, TAG_VCD, "[IN ERROR] vcd set command : get arguments error (%s)", err.message);
1217 dbus_error_free(&err);
1218 ret = VCD_ERROR_OPERATION_FAILED;
1220 SLOG(LOG_DEBUG, TAG_VCD, "[IN] vcd set command : pid(%d), cmd_type(%d)", pid, cmd_type);
1221 ret = vcd_server_set_command(pid, (vc_cmd_type_e)cmd_type);
1225 reply = dbus_message_new_method_return(msg);
1227 if (NULL != reply) {
1229 /* Append result and language */
1230 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
1232 SLOG(LOG_DEBUG, TAG_VCD, "[OUT SUCCESS] Result(%d)", ret);
1234 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
1236 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Result(%d)", ret);
1239 if (!dbus_connection_send(conn, reply, NULL)) {
1240 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Out Of Memory!");
1243 dbus_connection_flush(conn);
1244 dbus_message_unref(reply);
1246 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Fail to create reply message!!");
1249 SLOG(LOG_DEBUG, TAG_VCD, "@@@");
1254 int vcd_dbus_server_unset_command(DBusConnection* conn, DBusMessage* msg)
1257 dbus_error_init(&err);
1261 int ret = VCD_ERROR_OPERATION_FAILED;
1263 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &pid, DBUS_TYPE_INT32, &cmd_type, DBUS_TYPE_INVALID);
1265 SLOG(LOG_DEBUG, TAG_VCD, "@@@ VCD unset command");
1267 if (dbus_error_is_set(&err)) {
1268 SLOG(LOG_ERROR, TAG_VCD, "[IN ERROR] vcd unset command : get arguments error (%s)", err.message);
1269 dbus_error_free(&err);
1270 ret = VCD_ERROR_OPERATION_FAILED;
1272 SLOG(LOG_DEBUG, TAG_VCD, "[IN] vcd unset command : pid(%d), cmd_type(%d)", pid, cmd_type);
1273 ret = vcd_server_unset_command(pid, (vc_cmd_type_e)cmd_type);
1277 reply = dbus_message_new_method_return(msg);
1279 if (NULL != reply) {
1281 /* Append result and language */
1282 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
1284 SLOG(LOG_DEBUG, TAG_VCD, "[OUT SUCCESS] Result(%d)", ret);
1286 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
1288 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Result(%d)", ret);
1291 if (!dbus_connection_send(conn, reply, NULL)) {
1292 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Out Of Memory!");
1295 dbus_connection_flush(conn);
1296 dbus_message_unref(reply);
1298 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Fail to create reply message!!");
1301 SLOG(LOG_DEBUG, TAG_VCD, "@@@");
1306 int vcd_dbus_server_set_foreground(DBusConnection* conn, DBusMessage* msg)
1309 dbus_error_init(&err);
1314 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &pid, DBUS_TYPE_INT32, &value, DBUS_TYPE_INVALID);
1316 SLOG(LOG_DEBUG, TAG_VCD, "@@@ VCD set foreground");
1318 if (dbus_error_is_set(&err)) {
1319 SLOG(LOG_ERROR, TAG_VCD, "[IN ERROR] vcd set foreground : get arguments error (%s)", err.message);
1320 dbus_error_free(&err);
1323 tmp_value = (bool)value;
1324 SLOG(LOG_DEBUG, TAG_VCD, "[IN] vcd set foreground : pid(%d), value(%s)", pid, value ? "true" : "false");
1325 vcd_server_set_foreground(pid, tmp_value);
1328 SLOG(LOG_DEBUG, TAG_VCD, "@@@");
1333 int vcd_dbus_server_dialog(DBusConnection* conn, DBusMessage* msg)
1336 dbus_error_init(&err);
1339 char* disp_text = NULL;
1340 char* utt_text = NULL;
1342 int ret = VCD_ERROR_OPERATION_FAILED;
1344 dbus_message_get_args(msg, &err,
1345 DBUS_TYPE_INT32, &pid,
1346 DBUS_TYPE_STRING, &disp_text,
1347 DBUS_TYPE_STRING, &utt_text,
1348 DBUS_TYPE_INT32, &continuous,
1351 SLOG(LOG_DEBUG, TAG_VCD, "@@@ VCD request dialog");
1353 if (dbus_error_is_set(&err)) {
1354 SLOG(LOG_ERROR, TAG_VCD, "[IN ERROR] vcd request dialog : get arguments error (%s)", err.message);
1355 dbus_error_free(&err);
1357 SLOG(LOG_DEBUG, TAG_VCD, "[IN] vcd dialog : pid(%d), disp_text(%s), utt_text(%s), continuous(%d)", pid, disp_text, utt_text, continuous);
1358 ret = vcd_server_dialog(pid, disp_text, utt_text, continuous);
1362 reply = dbus_message_new_method_return(msg);
1364 if (NULL != reply) {
1366 /* Append result and language */
1367 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
1369 SLOG(LOG_DEBUG, TAG_VCD, "[OUT SUCCESS] Result(%d)", ret);
1371 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
1373 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Result(%d)", ret);
1376 if (!dbus_connection_send(conn, reply, NULL)) {
1377 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Out Of Memory!");
1380 dbus_connection_flush(conn);
1381 dbus_message_unref(reply);
1383 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Fail to create reply message!!");
1387 SLOG(LOG_DEBUG, TAG_VCD, "@@@");
1392 int vcd_dbus_server_is_system_command_valid(DBusConnection* conn, DBusMessage* msg)
1395 dbus_error_init(&err);
1398 int is_sys_cmd_valid;
1400 int ret = VCD_ERROR_OPERATION_FAILED;
1402 dbus_message_get_args(msg, &err,
1403 DBUS_TYPE_INT32, &pid,
1406 SLOG(LOG_DEBUG, TAG_VCD, "@@@ VCD request to check system command is valid");
1408 if (dbus_error_is_set(&err)) {
1409 SLOG(LOG_ERROR, TAG_VCD, "[IN ERROR] vcd request to check system command is valid : get arguments error (%s)", err.message);
1410 dbus_error_free(&err);
1412 SLOG(LOG_DEBUG, TAG_VCD, "[IN] vcd dialog : pid(%d)", pid);
1413 ret = vcd_server_is_system_command_valid(pid, &is_sys_cmd_valid);
1417 reply = dbus_message_new_method_return(msg);
1419 if (NULL != reply) {
1420 dbus_message_append_args(reply,
1421 DBUS_TYPE_INT32, &ret,
1422 DBUS_TYPE_INT32, &is_sys_cmd_valid,
1426 SLOG(LOG_DEBUG, TAG_VCD, "[OUT SUCCESS] Result(%d), is_sys_cmd_valid (%d)", ret, is_sys_cmd_valid);
1428 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Result(%d)", ret);
1431 if (!dbus_connection_send(conn, reply, NULL)) {
1432 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Out Of Memory!");
1435 dbus_connection_flush(conn);
1436 dbus_message_unref(reply);
1438 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Fail to create reply message!!");
1441 SLOG(LOG_DEBUG, TAG_VCD, "@@@");
1447 int vcd_dbus_server_start_request(DBusConnection* conn, DBusMessage* msg)
1450 dbus_error_init(&err);
1455 int ret = VCD_ERROR_OPERATION_FAILED;
1457 SLOG(LOG_DEBUG, TAG_VCD, "@@@ VCD Request Start");
1459 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &pid, DBUS_TYPE_INT32, &silence, DBUS_TYPE_INVALID);
1461 if (dbus_error_is_set(&err)) {
1462 SLOG(LOG_ERROR, TAG_VCD, "[IN ERROR] vcd start : get arguments error (%s)", err.message);
1463 dbus_error_free(&err);
1464 ret = VCD_ERROR_OPERATION_FAILED;
1466 SLOG(LOG_DEBUG, TAG_VCD, "[IN] vcd request start : pid(%d), silence(%d)", pid, silence);
1467 ret = vcd_server_request_start(pid, (bool)silence);
1471 reply = dbus_message_new_method_return(msg);
1473 if (NULL != reply) {
1474 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
1477 SLOG(LOG_DEBUG, TAG_VCD, "[OUT SUCCESS] Result(%d)", ret);
1479 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Result(%d)", ret);
1482 if (!dbus_connection_send(conn, reply, NULL)) {
1483 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Out Of Memory!");
1486 dbus_connection_flush(conn);
1487 dbus_message_unref(reply);
1489 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Fail to create reply message!!");
1492 SLOG(LOG_DEBUG, TAG_VCD, "@@@");
1497 int vcd_dbus_server_stop_request(DBusConnection* conn, DBusMessage* msg)
1500 dbus_error_init(&err);
1503 int ret = VCD_ERROR_OPERATION_FAILED;
1504 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &pid, DBUS_TYPE_INVALID);
1506 SLOG(LOG_DEBUG, TAG_VCD, "@@@ VCD Request Stop");
1508 if (dbus_error_is_set(&err)) {
1509 SLOG(LOG_ERROR, TAG_VCD, "[IN ERROR] vcd stop : get arguments error (%s)", err.message);
1510 dbus_error_free(&err);
1511 ret = VCD_ERROR_OPERATION_FAILED;
1513 SLOG(LOG_DEBUG, TAG_VCD, "[IN] vcd request stop : pid(%d)", pid);
1514 ret = vcd_server_request_stop(pid);
1518 reply = dbus_message_new_method_return(msg);
1520 if (NULL != reply) {
1521 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
1524 SLOG(LOG_DEBUG, TAG_VCD, "[OUT SUCCESS] Result(%d)", ret);
1526 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Result(%d)", ret);
1529 if (!dbus_connection_send(conn, reply, NULL)) {
1530 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Out Of Memory!");
1533 dbus_connection_flush(conn);
1534 dbus_message_unref(reply);
1536 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Fail to create reply message!!");
1539 SLOG(LOG_DEBUG, TAG_VCD, "@@@");
1544 int vcd_dbus_server_cancel_request(DBusConnection* conn, DBusMessage* msg)
1547 dbus_error_init(&err);
1550 int ret = VCD_ERROR_OPERATION_FAILED;
1551 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &pid, DBUS_TYPE_INVALID);
1553 SLOG(LOG_DEBUG, TAG_VCD, "@@@ VCD Request Cancel");
1555 if (dbus_error_is_set(&err)) {
1556 SLOG(LOG_ERROR, TAG_VCD, "[IN ERROR] vcd cancel : get arguments error (%s)", err.message);
1557 dbus_error_free(&err);
1558 ret = VCD_ERROR_OPERATION_FAILED;
1560 SLOG(LOG_DEBUG, TAG_VCD, "[IN] vcd request cancel : pid(%d)", pid);
1561 ret = vcd_server_request_cancel(pid);
1565 reply = dbus_message_new_method_return(msg);
1567 if (NULL != reply) {
1568 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
1571 SLOG(LOG_DEBUG, TAG_VCD, "[OUT SUCCESS] Result(%d)", ret);
1573 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Result(%d)", ret);
1576 if (!dbus_connection_send(conn, reply, NULL)) {
1577 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Out Of Memory!");
1580 dbus_connection_flush(conn);
1581 dbus_message_unref(reply);
1583 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Fail to create reply message!!");
1586 SLOG(LOG_DEBUG, TAG_VCD, "@@@");
1593 * Dbus Widget-Daemon Server
1595 int vcd_dbus_server_widget_initialize(DBusConnection* conn, DBusMessage* msg)
1598 dbus_error_init(&err);
1601 int service_state = 0;
1603 int ret = VCD_ERROR_OPERATION_FAILED;
1605 dbus_message_get_args(msg, &err,
1606 DBUS_TYPE_INT32, &pid,
1609 SLOG(LOG_DEBUG, TAG_VCD, "@@@ VCD Widget Initialize");
1611 if (dbus_error_is_set(&err)) {
1612 SLOG(LOG_ERROR, TAG_VCD, "[IN ERROR] vcd widget initialize : get arguments error (%s)", err.message);
1613 dbus_error_free(&err);
1614 ret = VCD_ERROR_OPERATION_FAILED;
1616 ret = vcd_server_widget_initialize(pid);
1617 service_state = vcd_server_get_service_state();
1618 daemon_pid = getpid();
1619 SLOG(LOG_DEBUG, TAG_VCD, "[IN] vcd widget initialize : pid(%d) daemon_pid(%d)", pid, daemon_pid);
1623 reply = dbus_message_new_method_return(msg);
1625 if (NULL != reply) {
1626 dbus_message_append_args(reply,
1627 DBUS_TYPE_INT32, &ret,
1628 DBUS_TYPE_INT32, &service_state,
1629 DBUS_TYPE_INT32, &daemon_pid,
1633 SLOG(LOG_DEBUG, TAG_VCD, "[OUT SUCCESS] Result(%d)", ret);
1635 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Result(%d)", ret);
1638 if (!dbus_connection_send(conn, reply, NULL)) {
1639 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Out Of Memory!");
1642 dbus_connection_flush(conn);
1643 dbus_message_unref(reply);
1645 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Fail to create reply message!!");
1648 SLOG(LOG_DEBUG, TAG_VCD, "@@@");
1653 int vcd_dbus_server_widget_finalize(DBusConnection* conn, DBusMessage* msg)
1656 dbus_error_init(&err);
1659 int ret = VCD_ERROR_OPERATION_FAILED;
1660 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &pid, DBUS_TYPE_INVALID);
1662 SLOG(LOG_DEBUG, TAG_VCD, "@@@ VCD Widget Finalize");
1664 if (dbus_error_is_set(&err)) {
1665 SLOG(LOG_ERROR, TAG_VCD, "[IN ERROR] vcd widget finalize : get arguments error (%s)", err.message);
1666 dbus_error_free(&err);
1667 ret = VCD_ERROR_OPERATION_FAILED;
1669 SLOG(LOG_DEBUG, TAG_VCD, "[IN] vcd widget finalize : pid(%d)", pid);
1670 ret = vcd_server_widget_finalize(pid);
1675 reply = dbus_message_new_method_return(msg);
1677 if (NULL != reply) {
1678 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
1681 SLOG(LOG_DEBUG, TAG_VCD, "[OUT SUCCESS] Result(%d)", ret);
1683 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Result(%d)", ret);
1686 if (!dbus_connection_send(conn, reply, NULL)) {
1687 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Out Of Memory!");
1690 dbus_connection_flush(conn);
1691 dbus_message_unref(reply);
1693 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Fail to create reply message!!");
1696 SLOG(LOG_DEBUG, TAG_VCD, "@@@");
1701 int vcd_dbus_server_widget_start_recording(DBusConnection* conn, DBusMessage* msg)
1704 dbus_error_init(&err);
1707 int ret = VCD_ERROR_OPERATION_FAILED;
1710 dbus_message_get_args(msg, &err,
1711 DBUS_TYPE_INT32, &pid,
1712 DBUS_TYPE_INT32, &widget_command,
1715 SLOG(LOG_DEBUG, TAG_VCD, "@@@ VCD widget start recording");
1717 if (dbus_error_is_set(&err)) {
1718 SLOG(LOG_ERROR, TAG_VCD, "[IN ERROR] vcd widget start recording : get arguments error (%s)", err.message);
1719 dbus_error_free(&err);
1720 ret = VCD_ERROR_OPERATION_FAILED;
1722 SLOG(LOG_DEBUG, TAG_VCD, "[IN] vcd widget start recording : pid(%d)", pid);
1723 ret = vcd_server_widget_start_recording(pid, widget_command);
1727 reply = dbus_message_new_method_return(msg);
1729 if (NULL != reply) {
1731 /* Append result and language */
1732 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
1734 SLOG(LOG_DEBUG, TAG_VCD, "[OUT SUCCESS] Result(%d)", ret);
1736 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
1738 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Result(%d)", ret);
1741 if (!dbus_connection_send(conn, reply, NULL)) {
1742 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Out Of Memory!");
1745 dbus_connection_flush(conn);
1746 dbus_message_unref(reply);
1748 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Fail to create reply message!!");
1751 SLOG(LOG_DEBUG, TAG_VCD, "@@@");
1756 int vcd_dbus_server_widget_start(DBusConnection* conn, DBusMessage* msg)
1759 dbus_error_init(&err);
1764 int ret = VCD_ERROR_OPERATION_FAILED;
1766 SLOG(LOG_DEBUG, TAG_VCD, "@@@ VCD widget start");
1768 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &pid, DBUS_TYPE_INT32, &silence, DBUS_TYPE_INVALID);
1770 if (dbus_error_is_set(&err)) {
1771 SLOG(LOG_ERROR, TAG_VCD, "[IN ERROR] vcd start : get arguments error (%s)", err.message);
1772 dbus_error_free(&err);
1773 ret = VCD_ERROR_OPERATION_FAILED;
1775 SLOG(LOG_DEBUG, TAG_VCD, "[IN] vcd widget start : pid(%d), silence(%d)", pid, silence);
1776 ret = vcd_server_widget_start(pid, (bool)silence);
1780 reply = dbus_message_new_method_return(msg);
1782 if (NULL != reply) {
1783 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
1786 SLOG(LOG_DEBUG, TAG_VCD, "[OUT SUCCESS] Result(%d)", ret);
1788 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Result(%d)", ret);
1791 if (!dbus_connection_send(conn, reply, NULL)) {
1792 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Out Of Memory!");
1795 dbus_connection_flush(conn);
1796 dbus_message_unref(reply);
1798 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Fail to create reply message!!");
1801 SLOG(LOG_DEBUG, TAG_VCD, "@@@");
1806 int vcd_dbus_server_widget_stop(DBusConnection* conn, DBusMessage* msg)
1809 dbus_error_init(&err);
1812 int ret = VCD_ERROR_OPERATION_FAILED;
1813 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &pid, DBUS_TYPE_INVALID);
1815 SLOG(LOG_DEBUG, TAG_VCD, "@@@ VCD widget stop");
1817 if (dbus_error_is_set(&err)) {
1818 SLOG(LOG_ERROR, TAG_VCD, "[IN ERROR] vcd widget stop : get arguments error (%s)", err.message);
1819 dbus_error_free(&err);
1820 ret = VCD_ERROR_OPERATION_FAILED;
1822 SLOG(LOG_DEBUG, TAG_VCD, "[IN] vcd widget stop : pid(%d)", pid);
1823 ret = vcd_server_widget_stop(pid);
1827 reply = dbus_message_new_method_return(msg);
1829 if (NULL != reply) {
1830 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
1833 SLOG(LOG_DEBUG, TAG_VCD, "[OUT SUCCESS] Result(%d)", ret);
1835 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Result(%d)", ret);
1838 if (!dbus_connection_send(conn, reply, NULL)) {
1839 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Out Of Memory!");
1842 dbus_connection_flush(conn);
1843 dbus_message_unref(reply);
1845 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Fail to create reply message!!");
1848 SLOG(LOG_DEBUG, TAG_VCD, "@@@");
1853 int vcd_dbus_server_widget_cancel(DBusConnection* conn, DBusMessage* msg)
1856 dbus_error_init(&err);
1859 int ret = VCD_ERROR_OPERATION_FAILED;
1860 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &pid, DBUS_TYPE_INVALID);
1862 SLOG(LOG_DEBUG, TAG_VCD, "@@@ VCD widget cancel");
1864 if (dbus_error_is_set(&err)) {
1865 SLOG(LOG_ERROR, TAG_VCD, "[IN ERROR] vcd widget cancel : get arguments error (%s)", err.message);
1866 dbus_error_free(&err);
1867 ret = VCD_ERROR_OPERATION_FAILED;
1869 SLOG(LOG_DEBUG, TAG_VCD, "[IN] vcd widget cancel : pid(%d)", pid);
1870 ret = vcd_server_widget_cancel(pid);
1874 reply = dbus_message_new_method_return(msg);
1876 if (NULL != reply) {
1877 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
1880 SLOG(LOG_DEBUG, TAG_VCD, "[OUT SUCCESS] Result(%d)", ret);
1882 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Result(%d)", ret);
1885 if (!dbus_connection_send(conn, reply, NULL)) {
1886 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Out Of Memory!");
1889 dbus_connection_flush(conn);
1890 dbus_message_unref(reply);
1892 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Fail to create reply message!!");
1895 SLOG(LOG_DEBUG, TAG_VCD, "@@@");
1900 int vcd_dbus_server_widget_enable_asr_result(DBusConnection* conn, DBusMessage* msg)
1903 dbus_error_init(&err);
1907 int ret = VCD_ERROR_OPERATION_FAILED;
1908 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &pid, DBUS_TYPE_INT32, &enable, DBUS_TYPE_INVALID);
1910 SLOG(LOG_DEBUG, TAG_VCD, "@@@ VCD widget enable asr result");
1912 if (dbus_error_is_set(&err)) {
1913 SLOG(LOG_ERROR, TAG_VCD, "[IN ERROR] vcd widget enable asr result : get arguments error (%s)", err.message);
1914 dbus_error_free(&err);
1915 ret = VCD_ERROR_OPERATION_FAILED;
1917 SLOG(LOG_DEBUG, TAG_VCD, "[IN] vcd widget enable asr result : pid(%d) enable(%d)", pid, enable);
1918 ret = vcd_server_widget_enable_asr_result(pid, enable);
1922 reply = dbus_message_new_method_return(msg);
1924 if (NULL != reply) {
1925 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
1928 SLOG(LOG_DEBUG, TAG_VCD, "[OUT SUCCESS] Result(%d)", ret);
1930 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Result(%d)", ret);
1933 if (!dbus_connection_send(conn, reply, NULL)) {
1934 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Out Of Memory!");
1937 dbus_connection_flush(conn);
1938 dbus_message_unref(reply);
1940 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Fail to create reply message!!");
1943 SLOG(LOG_DEBUG, TAG_VCD, "@@@");
1948 int vcd_dbus_server_set_language(DBusConnection* conn, DBusMessage* msg)
1951 dbus_error_init(&err);
1955 int ret = VCD_ERROR_OPERATION_FAILED;
1956 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &pid, DBUS_TYPE_STRING, &language, DBUS_TYPE_INVALID);
1958 SLOG(LOG_DEBUG, TAG_VCD, "@@@ VCD server set language");
1960 if (dbus_error_is_set(&err)) {
1961 SLOG(LOG_ERROR, TAG_VCD, "[IN ERROR] vcd server set language : get arguments error (%s)", err.message);
1962 dbus_error_free(&err);
1963 ret = VCD_ERROR_OPERATION_FAILED;
1965 SLOG(LOG_DEBUG, TAG_VCD, "[IN] vcd server set language : language(%s)", language);
1966 ret = vcd_server_set_language(language);
1970 reply = dbus_message_new_method_return(msg);
1972 if (NULL != reply) {
1973 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
1976 SLOG(LOG_DEBUG, TAG_VCD, "[OUT SUCCESS] Result(%d)", ret);
1978 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Result(%d)", ret);
1981 if (!dbus_connection_send(conn, reply, NULL)) {
1982 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Out Of Memory!");
1985 dbus_connection_flush(conn);
1986 dbus_message_unref(reply);
1988 SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Fail to create reply message!!");
1991 SLOG(LOG_DEBUG, TAG_VCD, "@@@");