Update IPC 68/43368/1 accepted/tizen/mobile/20150709.054553 accepted/tizen/tv/20150709.054603 accepted/tizen/wearable/20150709.054615 submit/tizen/20150709.050200
authorky85.kim <ky85.kim@samsung.com>
Wed, 8 Jul 2015 11:31:54 +0000 (20:31 +0900)
committerky85.kim <ky85.kim@samsung.com>
Wed, 8 Jul 2015 11:31:54 +0000 (20:31 +0900)
Add dbus config
Add daemon activation by dbus

Change-Id: I043bf1750e3bc2860f97a26ea0bee5de72186fcb

26 files changed:
CMakeLists.txt
changelog
client/vc.c
client/vc_dbus.c
client/vc_mgr.c
client/vc_mgr_dbus.c
client/vc_mgr_dbus.h
client/vc_setting.c
client/vc_widget.c
client/vc_widget_dbus.c
common/vc_command.c
common/vc_defs.h
doc/uix_vc_doc.h
include/voice-control-manager.pc.in
include/voice-control-setting.pc.in
include/voice-control-widget.pc.in
include/voice-control.pc.in
include/voice_control_command.h
include/voice_control_common.h
org.tizen.voice.vcserver.service [new file with mode: 0644]
packaging/voice-control.spec
server/vcd_client_data.c
server/vcd_client_data.h
server/vcd_dbus.c
server/vcd_dbus_server.c
vc-server.conf [new file with mode: 0644]

index ae46760..1cbe38c 100644 (file)
@@ -26,7 +26,7 @@ PROJECT(vc)
 
 SET(PREFIX ${CMAKE_INSTALL_PREFIX})
 SET(EXEC_PREFIX "${PREFIX}")
-SET(VERSION 0.2.7)
+SET(VERSION 0.2.8)
 
 # pkg config tool
 INCLUDE(FindPkgConfig)
@@ -53,3 +53,7 @@ ADD_SUBDIRECTORY(server)
 
 ## config ##
 INSTALL(FILES ${CMAKE_SOURCE_DIR}/vc-config.xml DESTINATION /usr/lib/voice/vc/1.0)
+
+INSTALL(FILES ${CMAKE_SOURCE_DIR}/vc-server.conf DESTINATION /etc/dbus-1/system.d)
+
+INSTALL(FILES ${CMAKE_SOURCE_DIR}/org.tizen.voice.vcserver.service DESTINATION /usr/share/dbus-1/system-services)
index fa7af77..62b7c06 100644 (file)
--- a/changelog
+++ b/changelog
@@ -1,8 +1,14 @@
+voice-control (0.2.8) -- Thu, 18 Jun 2015
+
+  * Update IPC and remove volume file (Dongyeol Lee <dy3.lee@samsung.com>)
+  * Add daemon activation by dbus (Kwangyoun Kim <ky85.kim@samsung.com>)
+
 vc (0.2.7) -- Wed, 21 Jan 2015
 
   * Add result message from engine (Wonnam Jang <wn.jang@samsung.com>)
   * Change sequence for engine and recorder stop (Kwangyoun Kim <ky85.kim@samsung.com>)
   * Add authority feature (Kwangyoun Kim <ky85.kim@samsung.com>)
+  * Remove unused smack label (Kwangyoun Kim <ky85.kim@samsung.com>)
 
 vc (0.2.6) -- Mon, 08 Dec 2014
   
index a1a2f73..e517c9e 100644 (file)
@@ -27,7 +27,6 @@
 #include "voice_control_command_expand.h"
 
 
-static bool g_is_daemon_started = false;
 
 static Ecore_Timer* g_connect_timer = NULL;
 
@@ -206,7 +205,6 @@ static void __vc_internal_unprepare()
                SLOG(LOG_ERROR, TAG_VCC, "[ERROR] Fail to request finalize : %s", __vc_get_error_code(ret));
        }
 
-       g_is_daemon_started = false;
 
 #if 0
        ecore_event_handler_del(g_focus_in_hander);
@@ -368,36 +366,10 @@ static Eina_Bool __vc_x_event_window_focus_out(void *data, int type, void *event
 }
 #endif
 
-static void __vc_fork_vc_daemon()
-{
-       int pid, i;
-       pid = fork();
-
-       switch(pid) {
-       case -1:
-               SLOG(LOG_ERROR, TAG_VCC, "Fail to create daemon");
-               break;
-       case 0:
-               setsid();
-               for (i = 0;i < _NSIG;i++)
-                       signal(i, SIG_DFL);
-
-               execl(VC_DAEMON_PATH, VC_DAEMON_PATH, NULL);
-               break;
-       default:
-               break;
-       }
-       return;
-}
-       
 static Eina_Bool __vc_connect_daemon(void *data)
 {
        /* Send hello */
        if (0 != vc_dbus_request_hello()) {
-               if (false == g_is_daemon_started) {
-                       g_is_daemon_started = true;
-                       __vc_fork_vc_daemon();
-               }
                return EINA_TRUE;
        }
 
@@ -468,7 +440,6 @@ int vc_prepare()
                return VC_ERROR_INVALID_STATE;
        }
 
-       g_is_daemon_started = false;
 
        g_connect_timer = ecore_timer_add(0, __vc_connect_daemon, NULL);
 
@@ -819,7 +790,7 @@ int vc_set_command_list(vc_cmd_list_h vc_cmd_list, int type)
                SLOG(LOG_ERROR, TAG_VCC, "[ERROR] Invalid command type: input type is %d", type);
                SLOG(LOG_DEBUG, TAG_VCC, "=====");
                SLOG(LOG_DEBUG, TAG_VCC, " ");
-               return VC_ERROR_INVALID_STATE;
+               return VC_ERROR_INVALID_PARAMETER;
        }
 
        vc_cmd_list_s* list = NULL;
index d88e0cd..8441f66 100644 (file)
@@ -24,8 +24,8 @@ static int g_waiting_time = 3000;
 
 static Ecore_Fd_Handler* g_fd_handler = NULL;
 
-static DBusConnection* g_conn = NULL;
-
+static DBusConnection* g_conn_sender = NULL;
+static DBusConnection* g_conn_listener = NULL;
 
 extern int __vc_cb_error(int pid, int reason);
 
@@ -34,16 +34,12 @@ extern void __vc_cb_result();
 
 static Eina_Bool listener_event_callback(void* data, Ecore_Fd_Handler *fd_handler)
 {
-       DBusConnection* conn = (DBusConnection*)data;
-       DBusMessage* msg = NULL;
-       DBusMessage *reply = NULL;
-
-       if (NULL == conn)
-               return ECORE_CALLBACK_RENEW;
+       if (NULL == g_conn_listener)    return ECORE_CALLBACK_RENEW;
 
-       dbus_connection_read_write_dispatch(conn, 50);
+       dbus_connection_read_write_dispatch(g_conn_listener, 50);
 
-       msg = dbus_connection_pop_message(conn);
+       DBusMessage* msg = NULL;
+       msg = dbus_connection_pop_message(g_conn_listener);
 
        /* loop again if we haven't read a message */
        if (NULL == msg) { 
@@ -54,7 +50,7 @@ static Eina_Bool listener_event_callback(void* data, Ecore_Fd_Handler *fd_handle
        dbus_error_init(&err);
 
        char if_name[64];
-       snprintf(if_name, 64, "%s%d", VC_CLIENT_SERVICE_INTERFACE, getpid());
+       snprintf(if_name, 64, "%s", VC_CLIENT_SERVICE_INTERFACE);
 
        if (dbus_message_is_method_call(msg, if_name, VCD_METHOD_HELLO)) {
                SLOG(LOG_DEBUG, TAG_VCC, "===== Get Hello");
@@ -76,18 +72,19 @@ static Eina_Bool listener_event_callback(void* data, Ecore_Fd_Handler *fd_handle
                        SLOG(LOG_ERROR, TAG_VCC, "<<<< vc get hello : invalid pid ");
                }
 
+               DBusMessage* reply = NULL;
                reply = dbus_message_new_method_return(msg);
                
                if (NULL != reply) {
                        dbus_message_append_args(reply, DBUS_TYPE_INT32, &response, DBUS_TYPE_INVALID);
 
-                       if (!dbus_connection_send(conn, reply, NULL))
+                       if (!dbus_connection_send(g_conn_listener, reply, NULL))
                                SLOG(LOG_ERROR, TAG_VCC, ">>>> vc get hello : fail to send reply");
                        else 
                                SLOG(LOG_DEBUG, TAG_VCC, ">>>> vc get hello : result(%d)", response);
 
-                       dbus_connection_flush(conn);
-                       dbus_message_unref(reply); 
+                       dbus_connection_flush(g_conn_listener);
+                       dbus_message_unref(reply);
                } else {
                        SLOG(LOG_ERROR, TAG_VCC, ">>>> vc get hello : fail to create reply message");
                }
@@ -105,13 +102,13 @@ static Eina_Bool listener_event_callback(void* data, Ecore_Fd_Handler *fd_handle
                reply = dbus_message_new_method_return(msg);
 
                if (NULL != reply) {
-                       if (!dbus_connection_send(conn, reply, NULL))
+                       if (!dbus_connection_send(g_conn_listener, reply, NULL))
                                SLOG(LOG_ERROR, TAG_VCC, ">>>> vc get result : fail to send reply");
                        else 
                                SLOG(LOG_DEBUG, TAG_VCC, ">>>> vc get result");
 
-                       dbus_connection_flush(conn);
-                       dbus_message_unref(reply); 
+                       dbus_connection_flush(g_conn_listener);
+                       dbus_message_unref(reply);
                } else {
                        SLOG(LOG_ERROR, TAG_VCC, ">>>> vc get result : fail to create reply message");
                }
@@ -146,13 +143,13 @@ static Eina_Bool listener_event_callback(void* data, Ecore_Fd_Handler *fd_handle
                reply = dbus_message_new_method_return(msg);
 
                if (NULL != reply) {
-                       if (!dbus_connection_send(conn, reply, NULL))
+                       if (!dbus_connection_send(g_conn_listener, reply, NULL))
                                SLOG(LOG_ERROR, TAG_VCC, ">>>> vc Error message : fail to send reply");
                        else 
                                SLOG(LOG_DEBUG, TAG_VCC, ">>>> vc Error message");
 
-                       dbus_connection_flush(conn);
-                       dbus_message_unref(reply); 
+                       dbus_connection_flush(g_conn_listener);
+                       dbus_message_unref(reply);
                } else {
                        SLOG(LOG_ERROR, TAG_VCC, ">>>> vc Error message : fail to create reply message");
                }
@@ -170,7 +167,7 @@ static Eina_Bool listener_event_callback(void* data, Ecore_Fd_Handler *fd_handle
 
 int vc_dbus_open_connection()
 {
-       if (NULL != g_conn) {
+       if (NULL != g_conn_sender && NULL != g_conn_listener) {
                SLOG(LOG_WARN, TAG_VCC, "already existed connection ");
                return 0;
        }
@@ -182,28 +179,40 @@ int vc_dbus_open_connection()
        dbus_error_init(&err);
 
        /* connect to the DBUS system bus, and check for errors */
-       g_conn = dbus_bus_get_private(DBUS_BUS_SYSTEM, &err);
+       g_conn_sender = dbus_bus_get_private(DBUS_BUS_SYSTEM, &err);
 
        if (dbus_error_is_set(&err)) { 
                SLOG(LOG_ERROR, TAG_VCC, "Dbus Connection Error (%s)", err.message); 
                dbus_error_free(&err); 
        }
 
-       if (NULL == g_conn) {
+       if (NULL == g_conn_sender) {
                SLOG(LOG_ERROR, TAG_VCC, "Fail to get dbus connection ");
-               return VC_ERROR_OPERATION_FAILED; 
+               return VC_ERROR_OPERATION_FAILED;
+       }
+
+       g_conn_listener = dbus_bus_get_private(DBUS_BUS_SYSTEM, &err);
+
+       if (dbus_error_is_set(&err)) {
+               SLOG(LOG_ERROR, TAG_VCC, "Dbus Connection Error (%s)", err.message);
+               dbus_error_free(&err);
+       }
+
+       if (NULL == g_conn_listener) {
+               SLOG(LOG_ERROR, TAG_VCC, "Fail to get dbus connection ");
+               return VC_ERROR_OPERATION_FAILED;
        }
 
        int pid = getpid();
 
        char service_name[64];
        memset(service_name, '\0', 64);
-       snprintf(service_name, 64, "%s%d", VC_CLIENT_SERVICE_NAME, pid);
+       snprintf(service_name, 64, "%s", VC_CLIENT_SERVICE_NAME);
 
        SLOG(LOG_DEBUG, TAG_VCC, "service name is %s", service_name);
 
        /* register our name on the bus, and check for errors */
-       ret = dbus_bus_request_name(g_conn, service_name, DBUS_NAME_FLAG_REPLACE_EXISTING , &err);
+       ret = dbus_bus_request_name(g_conn_listener, service_name, DBUS_NAME_FLAG_REPLACE_EXISTING, &err);
 
        if (dbus_error_is_set(&err)) {
                SLOG(LOG_ERROR, TAG_VCC, "Name Error (%s)", err.message); 
@@ -221,11 +230,11 @@ int vc_dbus_open_connection()
        }
 
        char rule[128];
-       snprintf(rule, 128, "type='signal',interface='%s%d'", VC_CLIENT_SERVICE_INTERFACE, pid);
+       snprintf(rule, 128, "type='signal',interface='%s'", VC_CLIENT_SERVICE_INTERFACE);
 
        /* add a rule for which messages we want to see */
-       dbus_bus_add_match(g_conn, rule, &err); 
-       dbus_connection_flush(g_conn);
+       dbus_bus_add_match(g_conn_listener, rule, &err);
+       dbus_connection_flush(g_conn_listener);
 
        if (dbus_error_is_set(&err)) 
        { 
@@ -235,15 +244,14 @@ int vc_dbus_open_connection()
        }
 
        int fd = 0;
-       if (1 != dbus_connection_get_unix_fd(g_conn, &fd)) {
+       if (1 != dbus_connection_get_unix_fd(g_conn_listener, &fd)) {
                SLOG(LOG_ERROR, TAG_VCC, "fail to get fd from dbus ");
                return VC_ERROR_OPERATION_FAILED;
        } else {
                SLOG(LOG_DEBUG, TAG_VCC, "Get fd from dbus : %d", fd);
        }
 
-       g_fd_handler = ecore_main_fd_handler_add(fd, ECORE_FD_READ, (Ecore_Fd_Cb)listener_event_callback, g_conn, NULL, NULL);
-
+       g_fd_handler = ecore_main_fd_handler_add(fd, ECORE_FD_READ, (Ecore_Fd_Cb)listener_event_callback, g_conn_listener, NULL, NULL);
        if (NULL == g_fd_handler) {
                SLOG(LOG_ERROR, TAG_VCC, "fail to get fd handler from ecore ");
                return VC_ERROR_OPERATION_FAILED;
@@ -257,33 +265,38 @@ int vc_dbus_close_connection()
        DBusError err;
        dbus_error_init(&err);
 
+       if (NULL != g_fd_handler) {
+               ecore_main_fd_handler_del(g_fd_handler);
+               g_fd_handler = NULL;
+       }
+
        int pid = getpid();
 
        char service_name[64];
        memset(service_name, '\0', 64);
-       snprintf(service_name, 64, "%s%d", VC_CLIENT_SERVICE_NAME, pid);
+       snprintf(service_name, 64, "%s", VC_CLIENT_SERVICE_NAME);
 
-       dbus_bus_release_name (g_conn, service_name, &err);
+       dbus_bus_release_name(g_conn_listener, service_name, &err);
 
        if (dbus_error_is_set(&err)) {
                SLOG(LOG_ERROR, TAG_VCC, "[ERROR] Dbus Error (%s)", err.message);
                dbus_error_free(&err);
        }
 
-       dbus_connection_close(g_conn);
-
-       g_fd_handler = NULL;
-       g_conn = NULL;
+       g_conn_sender = NULL;
+       g_conn_listener = NULL;
 
        return 0;
 }
 
 int vc_dbus_reconnect()
 {
-       bool connected = dbus_connection_get_is_connected(g_conn);
-       SECURE_SLOG(LOG_DEBUG, TAG_VCC, "[DBUS] %s", connected ? "Connected" : "Not connected");
+       bool sender_connected = dbus_connection_get_is_connected(g_conn_sender);
+       bool listener_connected = dbus_connection_get_is_connected(g_conn_listener);
+       SLOG(LOG_DEBUG, TAG_VCC, "[DBUS] Sender(%s) Listener(%s)",
+                sender_connected ? "Connected" : "Not connected", listener_connected ? "Connected" : "Not connected");
 
-       if (false == connected) {
+       if (false == sender_connected || false == listener_connected) {
                vc_dbus_close_connection();
 
                if (0 != vc_dbus_open_connection()) {
@@ -317,8 +330,8 @@ int vc_dbus_request_hello()
        DBusMessage* result_msg = NULL;
        int result = 0;
 
-       result_msg = dbus_connection_send_with_reply_and_block(g_conn, msg, 500, &err);
-       
+       result_msg = dbus_connection_send_with_reply_and_block(g_conn_sender, msg, 500, &err);
+
        if (dbus_error_is_set(&err)) {
                dbus_error_free(&err);
        }
@@ -363,7 +376,7 @@ int vc_dbus_request_initialize(int pid, int* mgr_pid)
        DBusMessage* result_msg;
        int result = VC_ERROR_OPERATION_FAILED;
 
-       result_msg = dbus_connection_send_with_reply_and_block(g_conn, msg, g_waiting_time, &err);
+       result_msg = dbus_connection_send_with_reply_and_block(g_conn_sender, msg, g_waiting_time, &err);
        dbus_message_unref(msg);
 
        if (dbus_error_is_set(&err)) {
@@ -426,7 +439,7 @@ int vc_dbus_request_finalize(int pid)
        DBusMessage* result_msg;
        int result = VC_ERROR_OPERATION_FAILED;
 
-       result_msg = dbus_connection_send_with_reply_and_block(g_conn, msg, g_waiting_time, &err);
+       result_msg = dbus_connection_send_with_reply_and_block(g_conn_sender, msg, g_waiting_time, &err);
        dbus_message_unref(msg);
 
        if (dbus_error_is_set(&err)) {
@@ -491,7 +504,7 @@ int vc_dbus_request_set_exclusive_command(int pid, bool value)
        DBusMessage* result_msg;
        int result = VC_ERROR_OPERATION_FAILED;
 
-       result_msg = dbus_connection_send_with_reply_and_block(g_conn, msg, g_waiting_time, &err);
+       result_msg = dbus_connection_send_with_reply_and_block(g_conn_sender, msg, g_waiting_time, &err);
        dbus_message_unref(msg);
 
        if (dbus_error_is_set(&err)) {
@@ -553,7 +566,7 @@ int vc_dbus_request_set_command(int pid, vc_cmd_type_e cmd_type)
        DBusMessage* result_msg;
        int result = VC_ERROR_OPERATION_FAILED;
 
-       result_msg = dbus_connection_send_with_reply_and_block(g_conn, msg, g_waiting_time, &err);
+       result_msg = dbus_connection_send_with_reply_and_block(g_conn_sender, msg, g_waiting_time, &err);
        dbus_message_unref(msg);
 
        if (dbus_error_is_set(&err)) {
@@ -615,7 +628,7 @@ int vc_dbus_request_unset_command(int pid, vc_cmd_type_e cmd_type)
        DBusMessage* result_msg;
        int result = VC_ERROR_OPERATION_FAILED;
 
-       result_msg = dbus_connection_send_with_reply_and_block(g_conn, msg, g_waiting_time, &err);
+       result_msg = dbus_connection_send_with_reply_and_block(g_conn_sender, msg, g_waiting_time, &err);
        dbus_message_unref(msg);
 
        if (dbus_error_is_set(&err)) {
@@ -681,7 +694,7 @@ int vc_dbus_request_start(int pid, int silence)
        DBusMessage* result_msg;
        int result = VC_ERROR_OPERATION_FAILED;
 
-       result_msg = dbus_connection_send_with_reply_and_block(g_conn, msg, g_waiting_time, &err);
+       result_msg = dbus_connection_send_with_reply_and_block(g_conn_sender, msg, g_waiting_time, &err);
        dbus_message_unref(msg);
 
        if (dbus_error_is_set(&err)) {
@@ -743,7 +756,7 @@ int vc_dbus_request_stop(int pid)
        DBusMessage* result_msg;
        int result = VC_ERROR_OPERATION_FAILED;
 
-       result_msg = dbus_connection_send_with_reply_and_block(g_conn, msg, g_waiting_time, &err);
+       result_msg = dbus_connection_send_with_reply_and_block(g_conn_sender, msg, g_waiting_time, &err);
        dbus_message_unref(msg);
 
        if (dbus_error_is_set(&err)) {
@@ -805,7 +818,7 @@ int vc_dbus_request_cancel(int pid)
        DBusMessage* result_msg;
        int result = VC_ERROR_OPERATION_FAILED;
 
-       result_msg = dbus_connection_send_with_reply_and_block(g_conn, msg, g_waiting_time, &err);
+       result_msg = dbus_connection_send_with_reply_and_block(g_conn_sender, msg, g_waiting_time, &err);
        dbus_message_unref(msg);
 
        if (dbus_error_is_set(&err)) {
@@ -849,9 +862,9 @@ int vc_dbus_request_auth_enable(int pid, int mgr_pid)
        char object_path[64] = {0,};
        char target_if_name[128] = {0,};
 
-       snprintf(service_name, 64, "%s%d", VC_MANAGER_SERVICE_NAME, mgr_pid);
+       snprintf(service_name, 64, "%s", VC_MANAGER_SERVICE_NAME);
        snprintf(object_path, 64, "%s", VC_MANAGER_SERVICE_OBJECT_PATH);
-       snprintf(target_if_name, 128, "%s%d", VC_MANAGER_SERVICE_INTERFACE, mgr_pid);
+       snprintf(target_if_name, 128, "%s", VC_MANAGER_SERVICE_INTERFACE);
 
        /* create a signal & check for errors */
        msg = dbus_message_new_method_call(
@@ -877,7 +890,7 @@ int vc_dbus_request_auth_enable(int pid, int mgr_pid)
        DBusMessage* result_msg;
        int result = VC_ERROR_OPERATION_FAILED;
 
-       result_msg = dbus_connection_send_with_reply_and_block(g_conn, msg, g_waiting_time, &err);
+       result_msg = dbus_connection_send_with_reply_and_block(g_conn_sender, msg, g_waiting_time, &err);
        dbus_message_unref(msg);
 
        if (dbus_error_is_set(&err)) {
@@ -919,9 +932,9 @@ int vc_dbus_request_auth_disable(int pid, int mgr_pid)
        char object_path[64] = {0,};
        char target_if_name[128] = {0,};
 
-       snprintf(service_name, 64, "%s%d", VC_MANAGER_SERVICE_NAME, mgr_pid);
+       snprintf(service_name, 64, "%s", VC_MANAGER_SERVICE_NAME);
        snprintf(object_path, 64, "%s", VC_MANAGER_SERVICE_OBJECT_PATH);
-       snprintf(target_if_name, 128, "%s%d", VC_MANAGER_SERVICE_INTERFACE, mgr_pid);
+       snprintf(target_if_name, 128, "%s", VC_MANAGER_SERVICE_INTERFACE);
 
        /* create a signal & check for errors */
        msg = dbus_message_new_method_call(
@@ -947,7 +960,7 @@ int vc_dbus_request_auth_disable(int pid, int mgr_pid)
        DBusMessage* result_msg;
        int result = VC_ERROR_OPERATION_FAILED;
 
-       result_msg = dbus_connection_send_with_reply_and_block(g_conn, msg, g_waiting_time, &err);
+       result_msg = dbus_connection_send_with_reply_and_block(g_conn_sender, msg, g_waiting_time, &err);
        dbus_message_unref(msg);
 
        if (dbus_error_is_set(&err)) {
@@ -989,9 +1002,9 @@ int vc_dbus_request_auth_start(int pid, int mgr_pid)
        char object_path[64] = {0,};
        char target_if_name[128] = {0,};
 
-       snprintf(service_name, 64, "%s%d", VC_MANAGER_SERVICE_NAME, mgr_pid);
+       snprintf(service_name, 64, "%s", VC_MANAGER_SERVICE_NAME);
        snprintf(object_path, 64, "%s", VC_MANAGER_SERVICE_OBJECT_PATH);
-       snprintf(target_if_name, 128, "%s%d", VC_MANAGER_SERVICE_INTERFACE, mgr_pid);
+       snprintf(target_if_name, 128, "%s", VC_MANAGER_SERVICE_INTERFACE);
 
        /* create a signal & check for errors */
        msg = dbus_message_new_method_call(
@@ -1019,7 +1032,7 @@ int vc_dbus_request_auth_start(int pid, int mgr_pid)
        DBusMessage* result_msg;
        int result = VC_ERROR_OPERATION_FAILED;
 
-       result_msg = dbus_connection_send_with_reply_and_block(g_conn, msg, g_waiting_time, &err);
+       result_msg = dbus_connection_send_with_reply_and_block(g_conn_sender, msg, g_waiting_time, &err);
        dbus_message_unref(msg);
 
        if (dbus_error_is_set(&err)) {
@@ -1061,9 +1074,9 @@ int vc_dbus_request_auth_stop(int pid, int mgr_pid)
        char object_path[64] = {0,};
        char target_if_name[128] = {0,};
 
-       snprintf(service_name, 64, "%s%d", VC_MANAGER_SERVICE_NAME, mgr_pid);
+       snprintf(service_name, 64, "%s", VC_MANAGER_SERVICE_NAME);
        snprintf(object_path, 64, "%s", VC_MANAGER_SERVICE_OBJECT_PATH);
-       snprintf(target_if_name, 128, "%s%d", VC_MANAGER_SERVICE_INTERFACE, mgr_pid);
+       snprintf(target_if_name, 128, "%s", VC_MANAGER_SERVICE_INTERFACE);
 
        /* create a signal & check for errors */
        msg = dbus_message_new_method_call(
@@ -1089,7 +1102,7 @@ int vc_dbus_request_auth_stop(int pid, int mgr_pid)
        DBusMessage* result_msg;
        int result = VC_ERROR_OPERATION_FAILED;
 
-       result_msg = dbus_connection_send_with_reply_and_block(g_conn, msg, g_waiting_time, &err);
+       result_msg = dbus_connection_send_with_reply_and_block(g_conn_sender, msg, g_waiting_time, &err);
        dbus_message_unref(msg);
 
        if (dbus_error_is_set(&err)) {
@@ -1131,9 +1144,9 @@ int vc_dbus_request_auth_cancel(int pid, int mgr_pid)
        char object_path[64] = {0,};
        char target_if_name[128] = {0,};
 
-       snprintf(service_name, 64, "%s%d", VC_MANAGER_SERVICE_NAME, mgr_pid);
+       snprintf(service_name, 64, "%s", VC_MANAGER_SERVICE_NAME);
        snprintf(object_path, 64, "%s", VC_MANAGER_SERVICE_OBJECT_PATH);
-       snprintf(target_if_name, 128, "%s%d", VC_MANAGER_SERVICE_INTERFACE, mgr_pid);
+       snprintf(target_if_name, 128, "%s", VC_MANAGER_SERVICE_INTERFACE);
 
        /* create a signal & check for errors */
        msg = dbus_message_new_method_call(
@@ -1159,7 +1172,7 @@ int vc_dbus_request_auth_cancel(int pid, int mgr_pid)
        DBusMessage* result_msg;
        int result = VC_ERROR_OPERATION_FAILED;
 
-       result_msg = dbus_connection_send_with_reply_and_block(g_conn, msg, g_waiting_time, &err);
+       result_msg = dbus_connection_send_with_reply_and_block(g_conn_sender, msg, g_waiting_time, &err);
        dbus_message_unref(msg);
 
        if (dbus_error_is_set(&err)) {
index f1d7121..40c74ca 100644 (file)
 
 #define VC_MANAGER_CONFIG_HANDLE       100000
 
-static bool g_m_is_daemon_started = false;
-
 static Ecore_Timer* g_m_connect_timer = NULL;
 
 static vc_h g_vc_m = NULL;
 
 static GSList* g_demandable_client_list = NULL;
 
-
 static Eina_Bool __vc_mgr_notify_state_changed(void *data);
 static Eina_Bool __vc_mgr_notify_error(void *data);
 static Eina_Bool __vc_mgr_notify_result(void *data);
@@ -204,7 +201,6 @@ static void __vc_mgr_internal_unprepare()
                SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Fail to request finalize : %s", __vc_mgr_get_error_code(ret));
        }
 
-       g_m_is_daemon_started = false;
 
        vc_cmd_parser_delete_file(getpid(), VC_COMMAND_TYPE_SYSTEM);
        vc_cmd_parser_delete_file(getpid(), VC_COMMAND_TYPE_EXCLUSIVE);
@@ -263,47 +259,10 @@ int vc_mgr_deinitialize()
        return VC_ERROR_NONE;
 }
 
-static void* __fork_vc_daemon()
-{
-       int pid, i;
-       pid = fork();
-
-       switch(pid) {
-       case -1:
-               SLOG(LOG_ERROR, TAG_VCM, "Fail to create daemon");
-               break;
-       case 0:
-               setsid();
-               for (i = 0;i < _NSIG;i++)
-                       signal(i, SIG_DFL);
-
-               execl(VC_DAEMON_PATH, VC_DAEMON_PATH, NULL);
-               break;
-       default:
-               break;
-       }
-
-       return (void*) 1;
-}
-
 static Eina_Bool __vc_mgr_connect_daemon(void *data)
 {
        /* Send hello */
        if (0 != vc_mgr_dbus_request_hello()) {
-               if (false == g_m_is_daemon_started) {
-                       g_m_is_daemon_started = true;
-
-                       pthread_t thread;
-                       int thread_id;
-                       thread_id = pthread_create(&thread, NULL, __fork_vc_daemon, NULL);
-                       if (thread_id < 0) {
-                               SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Fail to make thread");
-                               g_m_connect_timer = NULL;
-                               return EINA_FALSE;
-                       }
-
-                       pthread_detach(thread);
-               }
                return EINA_TRUE;
        }
 
@@ -380,7 +339,6 @@ int vc_mgr_prepare()
                return VC_ERROR_INVALID_STATE;
        }
 
-       g_m_is_daemon_started = false;
 
        g_m_connect_timer = ecore_timer_add(0, __vc_mgr_connect_daemon, NULL);
 
index be13390..5121870 100644 (file)
@@ -25,7 +25,8 @@ static int g_m_waiting_time = 3000;
 
 static Ecore_Fd_Handler* g_m_fd_handler = NULL;
 
-static DBusConnection* g_m_conn = NULL;
+static DBusConnection* g_m_conn_sender = NULL;
+static DBusConnection* g_m_conn_listener = NULL;
 
 
 extern void __vc_mgr_cb_all_result();
@@ -49,16 +50,12 @@ extern int __vc_mgr_request_auth_cancel(int pid);
 
 static Eina_Bool vc_mgr_listener_event_callback(void* data, Ecore_Fd_Handler *fd_handler)
 {
-       DBusConnection* conn = (DBusConnection*)data;
-       DBusMessage* msg = NULL;
-       DBusMessage *reply = NULL;
-
-       if (NULL == conn)
-               return ECORE_CALLBACK_RENEW;
+       if (NULL == g_m_conn_listener)  return ECORE_CALLBACK_RENEW;
 
-       dbus_connection_read_write_dispatch(conn, 50);
+       dbus_connection_read_write_dispatch(g_m_conn_listener, 50);
 
-       msg = dbus_connection_pop_message(conn);
+       DBusMessage* msg = NULL;
+       msg = dbus_connection_pop_message(g_m_conn_listener);
 
        /* loop again if we haven't read a message */
        if (NULL == msg) { 
@@ -69,7 +66,7 @@ static Eina_Bool vc_mgr_listener_event_callback(void* data, Ecore_Fd_Handler *fd
        dbus_error_init(&err);
 
        char if_name[64];
-       snprintf(if_name, 64, "%s%d", VC_MANAGER_SERVICE_NAME, getpid());
+       snprintf(if_name, 64, "%s", VC_MANAGER_SERVICE_NAME);
 
        if (dbus_message_is_method_call(msg, if_name, VCD_MANAGER_METHOD_HELLO)) {
                SLOG(LOG_DEBUG, TAG_VCM, "===== Get Hello");
@@ -83,26 +80,27 @@ static Eina_Bool vc_mgr_listener_event_callback(void* data, Ecore_Fd_Handler *fd
                }
 
                if (pid > 0) {
-                       SLOG(LOG_DEBUG, TAG_VCM, "<<<< vc get hello : pid(%d) ", pid);
+                       SLOG(LOG_DEBUG, TAG_VCM, "<<<< vc mgr get hello : pid(%d) ", pid);
                        response = 1;
                } else {
-                       SLOG(LOG_ERROR, TAG_VCM, "<<<< vc get hello : invalid pid ");
+                       SLOG(LOG_ERROR, TAG_VCM, "<<<< vc mgr get hello : invalid pid ");
                }
 
+               DBusMessage *reply = NULL;
                reply = dbus_message_new_method_return(msg);
                
                if (NULL != reply) {
                        dbus_message_append_args(reply, DBUS_TYPE_INT32, &response, DBUS_TYPE_INVALID);
 
-                       if (!dbus_connection_send(conn, reply, NULL))
+                       if (!dbus_connection_send(g_m_conn_listener, reply, NULL))
                                SLOG(LOG_ERROR, TAG_VCM, ">>>> vc get hello : fail to send reply");
                        else 
                                SLOG(LOG_DEBUG, TAG_VCM, ">>>> vc get hello : result(%d)", response);
 
-                       dbus_connection_flush(conn);
-                       dbus_message_unref(reply); 
+                       dbus_connection_flush(g_m_conn_listener);
+                       dbus_message_unref(reply);
                } else {
-                       SLOG(LOG_ERROR, TAG_VCM, ">>>> vc get hello : fail to create reply message");
+                       SLOG(LOG_ERROR, TAG_VCM, ">>>> vc mgr get hello : fail to create reply message");
                }
                
                SLOG(LOG_DEBUG, TAG_VCM, "=====");
@@ -114,22 +112,6 @@ static Eina_Bool vc_mgr_listener_event_callback(void* data, Ecore_Fd_Handler *fd
 
                __vc_mgr_cb_speech_detected();
 
-               /*
-               reply = dbus_message_new_method_return(msg);
-
-               if (NULL != reply) {
-                       if (!dbus_connection_send(conn, reply, NULL))
-                               SLOG(LOG_ERROR, TAG_VCM, ">>>> vc mgr get speech detected : fail to send reply");
-                       else
-                               SLOG(LOG_DEBUG, TAG_VCM, ">>>> vc mgr get speech detected");
-
-                       dbus_connection_flush(conn);
-                       dbus_message_unref(reply);
-               } else {
-                       SLOG(LOG_ERROR, TAG_VCM, ">>>> vc mgr get speech detected : fail to create reply message");
-               }
-               */
-
                SLOG(LOG_DEBUG, TAG_VCM, "=====");
                SLOG(LOG_DEBUG, TAG_VCM, " ");
 
@@ -140,22 +122,6 @@ static Eina_Bool vc_mgr_listener_event_callback(void* data, Ecore_Fd_Handler *fd
                
                __vc_mgr_cb_all_result();
 
-               /*
-               reply = dbus_message_new_method_return(msg);
-
-               if (NULL != reply) {
-                       if (!dbus_connection_send(conn, reply, NULL))
-                               SLOG(LOG_ERROR, TAG_VCM, ">>>> vc mgr get all result : fail to send reply");
-                       else 
-                               SLOG(LOG_DEBUG, TAG_VCM, ">>>> vc mgr get all result");
-
-                       dbus_connection_flush(conn);
-                       dbus_message_unref(reply); 
-               } else {
-                       SLOG(LOG_ERROR, TAG_VCM, ">>>> vc mgr get all result : fail to create reply message");
-               }
-               */
-
                SLOG(LOG_DEBUG, TAG_VCM, "=====");
                SLOG(LOG_DEBUG, TAG_VCM, " ");
 
@@ -166,22 +132,6 @@ static Eina_Bool vc_mgr_listener_event_callback(void* data, Ecore_Fd_Handler *fd
 
                __vc_mgr_cb_system_result();
 
-               /*
-               reply = dbus_message_new_method_return(msg);
-
-               if (NULL != reply) {
-                       if (!dbus_connection_send(conn, reply, NULL))
-                               SLOG(LOG_ERROR, TAG_VCM, ">>>> vc mgr get system result : fail to send reply");
-                       else 
-                               SLOG(LOG_DEBUG, TAG_VCM, ">>>> vc mgr get system result");
-
-                       dbus_connection_flush(conn);
-                       dbus_message_unref(reply); 
-               } else {
-                       SLOG(LOG_ERROR, TAG_VCM, ">>>> vc mgr get system result : fail to create reply message");
-               }
-               */
-
                SLOG(LOG_DEBUG, TAG_VCM, "=====");
                SLOG(LOG_DEBUG, TAG_VCM, " ");
 
@@ -200,29 +150,13 @@ static Eina_Bool vc_mgr_listener_event_callback(void* data, Ecore_Fd_Handler *fd
                        DBUS_TYPE_INVALID);
 
                if (dbus_error_is_set(&err)) { 
-                       SLOG(LOG_ERROR, TAG_VCM, "<<<< vc Get Error message : Get arguments error (%s)", err.message);
+                       SLOG(LOG_ERROR, TAG_VCM, "<<<< vc mgr Get Error message : Get arguments error (%s)", err.message);
                        dbus_error_free(&err); 
                } else {
-                       SLOG(LOG_DEBUG, TAG_VCM, "<<<< vc Get Error message : pid(%d), reason(%d), msg(%s)", pid, reason, err_msg);
+                       SLOG(LOG_DEBUG, TAG_VCM, "<<<< vc mgr Get Error message : pid(%d), reason(%d), msg(%s)", pid, reason, err_msg);
                        __vc_mgr_cb_error(pid, reason);
                }
 
-               /*
-               reply = dbus_message_new_method_return(msg);
-
-               if (NULL != reply) {
-                       if (!dbus_connection_send(conn, reply, NULL))
-                               SLOG(LOG_ERROR, TAG_VCM, ">>>> vc Error message : fail to send reply");
-                       else 
-                               SLOG(LOG_DEBUG, TAG_VCM, ">>>> vc Error message");
-
-                       dbus_connection_flush(conn);
-                       dbus_message_unref(reply); 
-               } else {
-                       SLOG(LOG_ERROR, TAG_VCM, ">>>> vc Error message : fail to create reply message");
-               }
-               */
-
                SLOG(LOG_DEBUG, TAG_VCM, "=====");
                SLOG(LOG_DEBUG, TAG_VCM, " ");
        }/* VCD_MANAGER_METHOD_ERROR */
@@ -238,27 +172,28 @@ static Eina_Bool vc_mgr_listener_event_callback(void* data, Ecore_Fd_Handler *fd
                        DBUS_TYPE_INVALID);
 
                if (dbus_error_is_set(&err)) {
-                       SLOG(LOG_ERROR, TAG_VCM, "<<<< vc request auth enable : Get arguments error (%s)", err.message);
+                       SLOG(LOG_ERROR, TAG_VCM, "<<<< vc mgr request auth enable : Get arguments error (%s)", err.message);
                        dbus_error_free(&err);
                } else {
-                       SLOG(LOG_DEBUG, TAG_VCM, "<<<< vc request auth enable : pid(%d)", pid);
+                       SLOG(LOG_DEBUG, TAG_VCM, "<<<< vc mgr request auth enable : pid(%d)", pid);
                        ret = __vc_mgr_request_auth_enable(pid);
                }
 
+               DBusMessage *reply = NULL;
                reply = dbus_message_new_method_return(msg);
                
                if (NULL != reply) {
                        dbus_message_append_args(reply,
-                               DBUS_TYPE_INT32, &ret,
-                               DBUS_TYPE_INVALID);
-                       if (!dbus_connection_send(conn, reply ,NULL))
-                               SLOG(LOG_ERROR, TAG_VCM, ">>>> vc request auth enable : fail to send reply");
+                                                                        DBUS_TYPE_INT32, &ret,
+                                                                        DBUS_TYPE_INVALID);
+                       if (!dbus_connection_send(g_m_conn_listener, reply, NULL))
+                               SLOG(LOG_ERROR, TAG_VCM, ">>>> vc mgr request auth enable : fail to send reply");
                        else
-                               SLOG(LOG_DEBUG, TAG_VCM, ">>>> vc request auth enable : ret(%d)", ret);
-                       dbus_connection_flush(conn);
+                               SLOG(LOG_DEBUG, TAG_VCM, ">>>> vc mgr request auth enable : ret(%d)", ret);
+                       dbus_connection_flush(g_m_conn_listener);
                        dbus_message_unref(reply);
                } else {
-                       SLOG(LOG_ERROR, TAG_VCM, ">>>> vc request auth enable : fail to create reply message");
+                       SLOG(LOG_ERROR, TAG_VCM, ">>>> vc mgr request auth enable : fail to create reply message");
                }
 
                SLOG(LOG_DEBUG, TAG_VCM, "=====");
@@ -275,27 +210,28 @@ static Eina_Bool vc_mgr_listener_event_callback(void* data, Ecore_Fd_Handler *fd
                        DBUS_TYPE_INVALID);
 
                if (dbus_error_is_set(&err)) {
-                       SLOG(LOG_ERROR, TAG_VCM, "<<<< vc request auth disable : Get arguments error (%s)", err.message);
+                       SLOG(LOG_ERROR, TAG_VCM, "<<<< vc mgr request auth disable : Get arguments error (%s)", err.message);
                        dbus_error_free(&err);
                } else {
-                       SLOG(LOG_DEBUG, TAG_VCM, "<<<< vc request auth disable : pid(%d)", pid);
+                       SLOG(LOG_DEBUG, TAG_VCM, "<<<< vc mgr request auth disable : pid(%d)", pid);
                        ret = __vc_mgr_request_auth_disable(pid);
                }
 
+               DBusMessage *reply = NULL;
                reply = dbus_message_new_method_return(msg);
 
                if (NULL != reply) {
                        dbus_message_append_args(reply,
                                DBUS_TYPE_INT32, &ret,
                                DBUS_TYPE_INVALID);
-                       if (!dbus_connection_send(conn, reply, NULL))
-                               SLOG(LOG_ERROR, TAG_VCM, ">>>> vc request auth disable : fail to send reply");
+                       if (!dbus_connection_send(g_m_conn_listener, reply, NULL))
+                               SLOG(LOG_ERROR, TAG_VCM, ">>>> vc mgr request auth disable : fail to send reply");
                        else
-                               SLOG(LOG_DEBUG, TAG_VCM, ">>>> vc request auth disable : ret(%d)", ret);
-                       dbus_connection_flush(conn);
+                               SLOG(LOG_DEBUG, TAG_VCM, ">>>> vc mgr request auth disable : ret(%d)", ret);
+                       dbus_connection_flush(g_m_conn_listener);
                        dbus_message_unref(reply);
                } else {
-                       SLOG(LOG_ERROR, TAG_VCM, ">>>> vc request auth disable : fail to create reply message");
+                       SLOG(LOG_ERROR, TAG_VCM, ">>>> vc mgr request auth disable : fail to create reply message");
                }
 
                SLOG(LOG_DEBUG, TAG_VCM, "=====");
@@ -312,27 +248,28 @@ static Eina_Bool vc_mgr_listener_event_callback(void* data, Ecore_Fd_Handler *fd
                        DBUS_TYPE_INVALID);
 
                if (dbus_error_is_set(&err)) {
-                       SLOG(LOG_ERROR, TAG_VCM, "<<<< vc request auth start : Get arguments error (%s)", err.message);
+                       SLOG(LOG_ERROR, TAG_VCM, "<<<< vc mgr request auth start : Get arguments error (%s)", err.message);
                        dbus_error_free(&err);
                } else {
-                       SLOG(LOG_DEBUG, TAG_VCM, "<<<< vc request auth start : pid(%d)", pid);
+                       SLOG(LOG_DEBUG, TAG_VCM, "<<<< vc mgr request auth start : pid(%d)", pid);
                        ret = __vc_mgr_request_auth_start(pid);
                }
 
+               DBusMessage *reply = NULL;
                reply = dbus_message_new_method_return(msg);
 
                if (NULL != reply) {
                        dbus_message_append_args(reply,
                                DBUS_TYPE_INT32, &ret,
                                DBUS_TYPE_INVALID);
-                       if (!dbus_connection_send(conn, reply, NULL))
-                               SLOG(LOG_ERROR, TAG_VCM, ">>>> vc request auth start : fail to send reply");
+                       if (!dbus_connection_send(g_m_conn_listener, reply, NULL))
+                               SLOG(LOG_ERROR, TAG_VCM, ">>>> vc mgr request auth start : fail to send reply");
                        else
-                               SLOG(LOG_DEBUG, TAG_VCM, ">>>> vc request auth start : ret(%d)", ret);
-                       dbus_connection_flush(conn);
+                               SLOG(LOG_DEBUG, TAG_VCM, ">>>> vc mgr request auth start : ret(%d)", ret);
+                       dbus_connection_flush(g_m_conn_listener);
                        dbus_message_unref(reply);
                } else {
-                       SLOG(LOG_ERROR, TAG_VCM, ">>>> vc request auth start : fail to create reply message");
+                       SLOG(LOG_ERROR, TAG_VCM, ">>>> vc mgr request auth start : fail to create reply message");
                }
 
                SLOG(LOG_DEBUG, TAG_VCM, "=====");
@@ -349,27 +286,28 @@ static Eina_Bool vc_mgr_listener_event_callback(void* data, Ecore_Fd_Handler *fd
                        DBUS_TYPE_INVALID);
 
                if (dbus_error_is_set(&err)) {
-                       SLOG(LOG_ERROR, TAG_VCM, "<<<< vc request auth stop : Get arguments error (%s)", err.message);
+                       SLOG(LOG_ERROR, TAG_VCM, "<<<< vc mgr request auth stop : Get arguments error (%s)", err.message);
                        dbus_error_free(&err);
                } else {
-                       SLOG(LOG_DEBUG, TAG_VCM, "<<<< vc request auth stop : pid(%d)", pid);
+                       SLOG(LOG_DEBUG, TAG_VCM, "<<<< vc mgr request auth stop : pid(%d)", pid);
                        ret = __vc_mgr_request_auth_stop(pid);
                }
 
+               DBusMessage *reply = NULL;
                reply = dbus_message_new_method_return(msg);
 
                if (NULL != reply) {
                        dbus_message_append_args(reply,
                                DBUS_TYPE_INT32, &ret,
                                DBUS_TYPE_INVALID);
-                       if (!dbus_connection_send(conn, reply, NULL))
-                               SLOG(LOG_ERROR, TAG_VCM, ">>>> vc request auth stop : fail to send reply");
+                       if (!dbus_connection_send(g_m_conn_listener, reply, NULL))
+                               SLOG(LOG_ERROR, TAG_VCM, ">>>> vc mgr request auth stop : fail to send reply");
                        else
-                               SLOG(LOG_DEBUG, TAG_VCM, ">>>> vc request auth stop : ret(%d)", ret);
-                       dbus_connection_flush(conn);
+                               SLOG(LOG_DEBUG, TAG_VCM, ">>>> vc mgr request auth stop : ret(%d)", ret);
+                       dbus_connection_flush(g_m_conn_listener);
                        dbus_message_unref(reply);
                } else {
-                       SLOG(LOG_ERROR, TAG_VCM, ">>>> vc request auth stop : fail to create reply message");
+                       SLOG(LOG_ERROR, TAG_VCM, ">>>> vc mgr request auth stop : fail to create reply message");
                }
 
                SLOG(LOG_DEBUG, TAG_VCM, "=====");
@@ -386,27 +324,28 @@ static Eina_Bool vc_mgr_listener_event_callback(void* data, Ecore_Fd_Handler *fd
                        DBUS_TYPE_INVALID);
 
                if (dbus_error_is_set(&err)) {
-                       SLOG(LOG_ERROR, TAG_VCM, "<<<< vc request auth cancel : Get arguments error (%s)", err.message);
+                       SLOG(LOG_ERROR, TAG_VCM, "<<<< vc mgr request auth cancel : Get arguments error (%s)", err.message);
                        dbus_error_free(&err);
                } else {
-                       SLOG(LOG_DEBUG, TAG_VCM, "<<<< vc request auth cancel : pid(%d)", pid);
+                       SLOG(LOG_DEBUG, TAG_VCM, "<<<< vc mgr request auth cancel : pid(%d)", pid);
                        ret = __vc_mgr_request_auth_cancel(pid);
                }
 
+               DBusMessage *reply = NULL;
                reply = dbus_message_new_method_return(msg);
 
                if (NULL != reply) {
                        dbus_message_append_args(reply,
                                DBUS_TYPE_INT32, &ret,
                                DBUS_TYPE_INVALID);
-                       if (!dbus_connection_send(conn, reply, NULL))
+                       if (!dbus_connection_send(g_m_conn_listener, reply, NULL))
                                SLOG(LOG_ERROR, TAG_VCM, ">>>> vc request auth cancel : fail to send reply");
                        else
                                SLOG(LOG_DEBUG, TAG_VCM, ">>>> vc request auth cancel : ret(%d)", ret);
-                       dbus_connection_flush(conn);
+                       dbus_connection_flush(g_m_conn_listener);
                        dbus_message_unref(reply);
                } else {
-                       SLOG(LOG_ERROR, TAG_VCM, ">>>> vc request auth cancel : fail to create reply message");
+                       SLOG(LOG_ERROR, TAG_VCM, ">>>> vc mgr request auth cancel : fail to create reply message");
                }
 
                SLOG(LOG_DEBUG, TAG_VCM, "=====");
@@ -421,7 +360,7 @@ static Eina_Bool vc_mgr_listener_event_callback(void* data, Ecore_Fd_Handler *fd
 
 int vc_mgr_dbus_open_connection()
 {
-       if (NULL != g_m_conn) {
+       if (NULL != g_m_conn_sender && NULL != g_m_conn_listener) {
                SLOG(LOG_WARN, TAG_VCM, "already existed connection ");
                return 0;
        }
@@ -433,14 +372,27 @@ int vc_mgr_dbus_open_connection()
        dbus_error_init(&err);
 
        /* connect to the DBUS system bus, and check for errors */
-       g_m_conn = dbus_bus_get_private(DBUS_BUS_SYSTEM, &err);
+       g_m_conn_sender = dbus_bus_get_private(DBUS_BUS_SYSTEM, &err);
+
+       if (dbus_error_is_set(&err)) {
+               SLOG(LOG_ERROR, TAG_VCM, "Dbus Connection Error (%s)", err.message);
+               dbus_error_free(&err);
+       }
+
+       if (NULL == g_m_conn_sender) {
+               SLOG(LOG_ERROR, TAG_VCM, "Fail to get dbus connection ");
+               return VC_ERROR_OPERATION_FAILED;
+       }
+
+       /* connect to the DBUS system bus, and check for errors */
+       g_m_conn_listener = dbus_bus_get_private(DBUS_BUS_SYSTEM, &err);
 
        if (dbus_error_is_set(&err)) { 
                SLOG(LOG_ERROR, TAG_VCM, "Dbus Connection Error (%s)", err.message); 
                dbus_error_free(&err); 
        }
 
-       if (NULL == g_m_conn) {
+       if (NULL == g_m_conn_listener) {
                SLOG(LOG_ERROR, TAG_VCM, "Fail to get dbus connection ");
                return VC_ERROR_OPERATION_FAILED; 
        }
@@ -449,12 +401,12 @@ int vc_mgr_dbus_open_connection()
 
        char service_name[64];
        memset(service_name, '\0', 64);
-       snprintf(service_name, 64, "%s%d", VC_MANAGER_SERVICE_NAME, pid);
+       snprintf(service_name, 64, "%s", VC_MANAGER_SERVICE_NAME);
 
        SLOG(LOG_DEBUG, TAG_VCM, "service name is %s", service_name);
 
        /* register our name on the bus, and check for errors */
-       ret = dbus_bus_request_name(g_m_conn, service_name, DBUS_NAME_FLAG_REPLACE_EXISTING , &err);
+       ret = dbus_bus_request_name(g_m_conn_listener, service_name, DBUS_NAME_FLAG_REPLACE_EXISTING, &err);
 
        if (dbus_error_is_set(&err)) {
                SLOG(LOG_ERROR, TAG_VCM, "Name Error (%s)", err.message); 
@@ -472,11 +424,11 @@ int vc_mgr_dbus_open_connection()
        }
 
        char rule[128];
-       snprintf(rule, 128, "type='signal',interface='%s%d'", VC_MANAGER_SERVICE_INTERFACE, pid);
+       snprintf(rule, 128, "type='signal',interface='%s'", VC_MANAGER_SERVICE_INTERFACE);
 
        /* add a rule for which messages we want to see */
-       dbus_bus_add_match(g_m_conn, rule, &err); 
-       dbus_connection_flush(g_m_conn);
+       dbus_bus_add_match(g_m_conn_listener, rule, &err);
+       dbus_connection_flush(g_m_conn_listener);
 
        if (dbus_error_is_set(&err)) 
        { 
@@ -486,14 +438,14 @@ int vc_mgr_dbus_open_connection()
        }
 
        int fd = 0;
-       if (1 != dbus_connection_get_unix_fd(g_m_conn, &fd)) {
+       if (1 != dbus_connection_get_unix_fd(g_m_conn_listener, &fd)) {
                SLOG(LOG_ERROR, TAG_VCM, "fail to get fd from dbus ");
                return VC_ERROR_OPERATION_FAILED;
        } else {
                SLOG(LOG_DEBUG, TAG_VCM, "Get fd from dbus : %d", fd);
        }
 
-       g_m_fd_handler = ecore_main_fd_handler_add(fd, ECORE_FD_READ, (Ecore_Fd_Cb)vc_mgr_listener_event_callback, g_m_conn, NULL, NULL);
+       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);
 
        if (NULL == g_m_fd_handler) {
                SLOG(LOG_ERROR, TAG_VCM, "fail to get fd handler from ecore ");
@@ -508,33 +460,39 @@ int vc_mgr_dbus_close_connection()
        DBusError err;
        dbus_error_init(&err);
 
+       if (NULL != g_m_fd_handler) {
+               ecore_main_fd_handler_del(g_m_fd_handler);
+               g_m_fd_handler = NULL;
+       }
+
        int pid = getpid();
 
        char service_name[64];
        memset(service_name, '\0', 64);
-       snprintf(service_name, 64, "%s%d", VC_MANAGER_SERVICE_NAME, pid);
+       snprintf(service_name, 64, "%s", VC_MANAGER_SERVICE_NAME);
 
-       dbus_bus_release_name (g_m_conn, service_name, &err);
+       dbus_bus_release_name(g_m_conn_listener, service_name, &err);
 
        if (dbus_error_is_set(&err)) {
                SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Dbus Error (%s)", err.message);
                dbus_error_free(&err);
        }
 
-       dbus_connection_close(g_m_conn);
-
-       g_m_fd_handler = NULL;
-       g_m_conn = NULL;
+       g_m_conn_sender = NULL;
+       g_m_conn_listener = NULL;
 
        return 0;
 }
 
 int vc_mgr_dbus_reconnect()
 {
-       bool connected = dbus_connection_get_is_connected(g_m_conn);
-       SECURE_SLOG(LOG_DEBUG, TAG_VCM, "[DBUS] %s", connected ? "Connected" : "Not connected");
+       bool sender_connected = dbus_connection_get_is_connected(g_m_conn_sender);
+       bool listener_connected = dbus_connection_get_is_connected(g_m_conn_listener);
+
+       SLOG(LOG_DEBUG, TAG_VCM, "[DBUS] Sender(%s) Listener(%s)",
+                sender_connected ? "Connected" : "Not connected", listener_connected ? "Connected" : "Not connected");
 
-       if (false == connected) {
+       if (false == sender_connected || false == listener_connected) {
                vc_mgr_dbus_close_connection();
 
                if (0 != vc_mgr_dbus_open_connection()) {
@@ -544,6 +502,7 @@ int vc_mgr_dbus_reconnect()
 
                SLOG(LOG_DEBUG, TAG_VCM, "[DBUS] Reconnect");
        }
+
        return 0;
 }
 
@@ -568,7 +527,7 @@ int vc_mgr_dbus_request_hello()
        DBusMessage* result_msg = NULL;
        int result = 0;
 
-       result_msg = dbus_connection_send_with_reply_and_block(g_m_conn, msg, 500, &err);
+       result_msg = dbus_connection_send_with_reply_and_block(g_m_conn_sender, msg, 500, &err);
 
        if (dbus_error_is_set(&err)) {
                dbus_error_free(&err);
@@ -614,7 +573,7 @@ int vc_mgr_dbus_request_initialize(int pid)
        DBusMessage* result_msg;
        int result = VC_ERROR_OPERATION_FAILED;
 
-       result_msg = dbus_connection_send_with_reply_and_block(g_m_conn, msg, g_m_waiting_time, &err);
+       result_msg = dbus_connection_send_with_reply_and_block(g_m_conn_sender, msg, g_m_waiting_time, &err);
        dbus_message_unref(msg);
 
        if (dbus_error_is_set(&err)) {
@@ -674,7 +633,7 @@ int vc_mgr_dbus_request_finalize(int pid)
        DBusMessage* result_msg;
        int result = VC_ERROR_OPERATION_FAILED;
 
-       result_msg = dbus_connection_send_with_reply_and_block(g_m_conn, msg, g_m_waiting_time, &err);
+       result_msg = dbus_connection_send_with_reply_and_block(g_m_conn_sender, msg, g_m_waiting_time, &err);
        dbus_message_unref(msg);
 
        if (dbus_error_is_set(&err)) {
@@ -736,7 +695,7 @@ int vc_mgr_dbus_request_set_command(int pid)
        DBusMessage* result_msg;
        int result = VC_ERROR_OPERATION_FAILED;
 
-       result_msg = dbus_connection_send_with_reply_and_block(g_m_conn, msg, g_m_waiting_time, &err);
+       result_msg = dbus_connection_send_with_reply_and_block(g_m_conn_sender, msg, g_m_waiting_time, &err);
        dbus_message_unref(msg);
 
        if (dbus_error_is_set(&err)) {
@@ -797,7 +756,7 @@ int vc_mgr_dbus_request_unset_command(int pid)
        DBusMessage* result_msg;
        int result = VC_ERROR_OPERATION_FAILED;
 
-       result_msg = dbus_connection_send_with_reply_and_block(g_m_conn, msg, g_m_waiting_time, &err);
+       result_msg = dbus_connection_send_with_reply_and_block(g_m_conn_sender, msg, g_m_waiting_time, &err);
        dbus_message_unref(msg);
 
        if (dbus_error_is_set(&err)) {
@@ -858,7 +817,7 @@ int vc_mgr_dbus_request_demandable_client(int pid)
        DBusMessage* result_msg;
        int result = VC_ERROR_OPERATION_FAILED;
 
-       result_msg = dbus_connection_send_with_reply_and_block(g_m_conn, msg, g_m_waiting_time, &err);
+       result_msg = dbus_connection_send_with_reply_and_block(g_m_conn_sender, msg, g_m_waiting_time, &err);
        dbus_message_unref(msg);
 
        if (dbus_error_is_set(&err)) {
@@ -921,7 +880,7 @@ int vc_mgr_dbus_request_set_audio_type(int pid, const char* audio_type)
        DBusMessage* result_msg;
        int result = VC_ERROR_OPERATION_FAILED;
 
-       result_msg = dbus_connection_send_with_reply_and_block(g_m_conn, msg, g_m_waiting_time, &err);
+       result_msg = dbus_connection_send_with_reply_and_block(g_m_conn_sender, msg, g_m_waiting_time, &err);
        dbus_message_unref(msg);
 
        if (dbus_error_is_set(&err)) {
@@ -984,7 +943,7 @@ int vc_mgr_dbus_request_get_audio_type(int pid, char** audio_type)
        int result = VC_ERROR_OPERATION_FAILED;
        char* temp = NULL;
 
-       result_msg = dbus_connection_send_with_reply_and_block(g_m_conn, msg, g_m_waiting_time, &err);
+       result_msg = dbus_connection_send_with_reply_and_block(g_m_conn_sender, msg, g_m_waiting_time, &err);
        dbus_message_unref(msg);
 
        if (dbus_error_is_set(&err)) {
@@ -1050,7 +1009,7 @@ int vc_mgr_dbus_request_set_client_info(int pid)
        DBusMessage* result_msg;
        int result = VC_ERROR_OPERATION_FAILED;
 
-       result_msg = dbus_connection_send_with_reply_and_block(g_m_conn, msg, g_m_waiting_time, &err);
+       result_msg = dbus_connection_send_with_reply_and_block(g_m_conn_sender, msg, g_m_waiting_time, &err);
        dbus_message_unref(msg);
 
        if (dbus_error_is_set(&err)) {
@@ -1084,75 +1043,6 @@ int vc_mgr_dbus_request_set_client_info(int pid)
        return result;
 }
 
-#if 0
-int vc_mgr_dbus_request_start(int pid, int silence, bool exclusive_command_option)
-{
-       DBusMessage* msg;
-
-       /* create a signal & check for errors */
-       msg = dbus_message_new_method_call(
-               VC_SERVER_SERVICE_NAME,
-               VC_SERVER_SERVICE_OBJECT_PATH,  
-               VC_SERVER_SERVICE_INTERFACE,    
-               VC_MANAGER_METHOD_START);               
-
-       if (NULL == msg) { 
-               SLOG(LOG_ERROR, TAG_VCM, ">>>> vc mgr start : Fail to make message "); 
-               return VC_ERROR_OPERATION_FAILED;
-       } else {
-               SLOG(LOG_DEBUG, TAG_VCM, ">>>> vc mgr start : pid(%d), silence(%d) exclusive(%d)", 
-                       pid, silence, exclusive_command_option);
-       }
-
-       int temp = exclusive_command_option;
-
-       dbus_message_append_args(msg, 
-               DBUS_TYPE_INT32, &pid,
-               DBUS_TYPE_INT32, &(silence),
-               DBUS_TYPE_INT32, &(temp),
-               DBUS_TYPE_INVALID);
-
-       DBusError err;
-       dbus_error_init(&err);
-
-       DBusMessage* result_msg;
-       int result = VC_ERROR_OPERATION_FAILED;
-
-       result_msg = dbus_connection_send_with_reply_and_block(g_m_conn, msg, g_m_waiting_time, &err);
-       dbus_message_unref(msg);
-
-       if (dbus_error_is_set(&err)) {
-               SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Dbus Error (%s)", err.message);
-               dbus_error_free(&err);
-       }
-
-       if (NULL != result_msg) {
-               dbus_message_get_args(result_msg, &err,
-                       DBUS_TYPE_INT32, &result,
-                       DBUS_TYPE_INVALID);
-
-               if (dbus_error_is_set(&err)) { 
-                       SLOG(LOG_ERROR, TAG_VCM, "<<<< Get arguments error (%s)", err.message);
-                       dbus_error_free(&err); 
-                       result = VC_ERROR_OPERATION_FAILED;
-               }
-               dbus_message_unref(result_msg);
-
-               if (0 == result) {
-                       SLOG(LOG_DEBUG, TAG_VCM, "<<<< vc mgr start : result = %d", result);
-               } else {
-                       SLOG(LOG_ERROR, TAG_VCM, "<<<< vc mgr start : result = %d", result);
-               }
-       } else {
-               SLOG(LOG_DEBUG, TAG_VCM, "<<<< Result Message is NULL");
-               vc_mgr_dbus_reconnect();
-               result = VC_ERROR_TIMED_OUT;
-       }
-
-       return result;
-}
-#endif
-
 int vc_mgr_dbus_request_start(int pid, int silence, bool exclusive_command_option, bool start_by_client)
 {
        DBusMessage* msg;
@@ -1188,7 +1078,7 @@ int vc_mgr_dbus_request_start(int pid, int silence, bool exclusive_command_optio
        DBusMessage* result_msg;
        int result = VC_ERROR_OPERATION_FAILED;
 
-       result_msg = dbus_connection_send_with_reply_and_block(g_m_conn, msg, g_m_waiting_time, &err);
+       result_msg = dbus_connection_send_with_reply_and_block(g_m_conn_sender, msg, g_m_waiting_time, &err);
        dbus_message_unref(msg);
 
        if (dbus_error_is_set(&err)) {
@@ -1250,7 +1140,7 @@ int vc_mgr_dbus_request_stop(int pid)
        DBusMessage* result_msg;
        int result = VC_ERROR_OPERATION_FAILED;
 
-       result_msg = dbus_connection_send_with_reply_and_block(g_m_conn, msg, g_m_waiting_time, &err);
+       result_msg = dbus_connection_send_with_reply_and_block(g_m_conn_sender, msg, g_m_waiting_time, &err);
        dbus_message_unref(msg);
 
        if (dbus_error_is_set(&err)) {
@@ -1312,7 +1202,7 @@ int vc_mgr_dbus_request_cancel(int pid)
        DBusMessage* result_msg;
        int result = VC_ERROR_OPERATION_FAILED;
 
-       result_msg = dbus_connection_send_with_reply_and_block(g_m_conn, msg, g_m_waiting_time, &err);
+       result_msg = dbus_connection_send_with_reply_and_block(g_m_conn_sender, msg, g_m_waiting_time, &err);
        dbus_message_unref(msg);
 
        if (dbus_error_is_set(&err)) {
@@ -1357,13 +1247,14 @@ static DBusMessage* __get_message(int pid, const char* method, int type)
        memset(target_if_name, '\0', 128);
        
        if (VC_COMMAND_TYPE_FOREGROUND == type || VC_COMMAND_TYPE_BACKGROUND == type) {
-               snprintf(service_name, 64, "%s%d", VC_CLIENT_SERVICE_NAME, pid);
+               snprintf(service_name, 64, "%s", VC_CLIENT_SERVICE_NAME);
                snprintf(object_path, 64, "%s", VC_CLIENT_SERVICE_OBJECT_PATH);
-               snprintf(target_if_name, 128, "%s%d", VC_CLIENT_SERVICE_NAME, pid);
+               snprintf(target_if_name, 128, "%s", VC_CLIENT_SERVICE_NAME);
+
        } else if (VC_COMMAND_TYPE_WIDGET == type) {
-               snprintf(service_name, 64, "%s%d", VC_WIDGET_SERVICE_NAME, pid);
+               snprintf(service_name, 64, "%s", VC_WIDGET_SERVICE_NAME);
                snprintf(object_path, 64, "%s", VC_WIDGET_SERVICE_OBJECT_PATH);
-               snprintf(target_if_name, 128, "%s%d", VC_WIDGET_SERVICE_INTERFACE, pid);
+               snprintf(target_if_name, 128, "%s", VC_WIDGET_SERVICE_INTERFACE);
        } else {
                return NULL;
        }
@@ -1398,12 +1289,12 @@ int vc_mgr_dbus_send_result(int pid, int cmd_type, int result_id)
        dbus_message_set_no_reply(msg, TRUE);
 
        /* send the message and flush the connection */
-       if (!dbus_connection_send(g_m_conn, msg, NULL)) {
-               SLOG(LOG_ERROR, TAG_VCM, "[Dbus ERROR] Fail to send result message"); 
+       if (!dbus_connection_send(g_m_conn_sender, msg, NULL)) {
+               SLOG(LOG_ERROR, TAG_VCM, "[Dbus ERROR] Fail to send result message");
        } else {
                SLOG(LOG_DEBUG, TAG_VCM, "[Dbus] Success to send result");
 
-               dbus_connection_flush(g_m_conn);
+               dbus_connection_flush(g_m_conn_sender);
        }
 
        dbus_message_unref(msg);
@@ -1434,54 +1325,14 @@ int vc_mgr_dbus_send_result_selection(int pid)
                DBUS_TYPE_INVALID);
 
        dbus_message_set_no_reply(msg, TRUE);
-       
-       if (1 != dbus_connection_send(g_m_conn, msg, NULL)) {
+
+       if (1 != dbus_connection_send(g_m_conn_sender, msg, NULL)) {
                SLOG(LOG_ERROR, TAG_VCM, "[Dbus ERROR] Fail to Send");
                return -1;
        } else {
                SLOG(LOG_DEBUG, TAG_VCM, "[Dbus] SUCCESS Send");
-               dbus_connection_flush(g_m_conn);
-               return 0;
-       }
-
-       /*
-       DBusError err;
-       dbus_error_init(&err);
-
-       DBusMessage* result_msg;
-       int result = VC_ERROR_OPERATION_FAILED;
-
-       result_msg = dbus_connection_send_with_reply_and_block(g_m_conn, msg, g_m_waiting_time, &err);
-       dbus_message_unref(msg);
-
-       if (dbus_error_is_set(&err)) {
-               SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Dbus Error (%s)", err.message);
-               dbus_error_free(&err);
+               dbus_connection_flush(g_m_conn_sender);
        }
 
-       if (NULL != result_msg) {
-               dbus_message_get_args(result_msg, &err,
-                       DBUS_TYPE_INT32, &result,
-                       DBUS_TYPE_INVALID);
-
-               if (dbus_error_is_set(&err)) { 
-                       SLOG(LOG_ERROR, TAG_VCM, "<<<< Get arguments error (%s)", err.message);
-                       dbus_error_free(&err); 
-                       result = VC_ERROR_OPERATION_FAILED;
-               }
-               dbus_message_unref(result_msg);
-
-               if (0 == result) {
-                       SLOG(LOG_DEBUG, TAG_VCM, "<<<< vc result selection : result = %d", result);
-               } else {
-                       SLOG(LOG_ERROR, TAG_VCM, "<<<< vc result selection : result = %d", result);
-               }
-       } else {
-               SLOG(LOG_DEBUG, TAG_VCM, "<<<< Result Message is NULL");
-               vc_mgr_dbus_reconnect();
-               result = VC_ERROR_TIMED_OUT;
-       }
-
-       return result;
-       */
+       return 0;
 }
index e5bce76..c0608c1 100644 (file)
@@ -46,10 +46,6 @@ int vc_mgr_dbus_request_get_audio_type(int pid, char** audio_type);
 
 int vc_mgr_dbus_request_set_client_info(int pid);
 
-#if 0
-int vc_mgr_dbus_request_start(int pid, int silence, bool exclusive_command_option);
-#endif
-
 int vc_mgr_dbus_request_start(int pid, int silence, bool exclusive_command_option, bool start_by_client);
 
 int vc_mgr_dbus_request_stop(int pid);
index 7ae5467..64f0453 100644 (file)
@@ -102,21 +102,6 @@ int vc_setting_initialize(void)
        return VC_ERROR_NONE;
 }
 
-//int vc_setting_finalize()
-//{
-//     SLOG(LOG_DEBUG, TAG_VCS, "===== Finalize VC Setting");
-//
-//     vc_config_mgr_unset_lang_cb(getpid() + VC_SETTING_CONFIG_HANDLE);
-//     vc_config_mgr_finalize(getpid() + VC_SETTING_CONFIG_HANDLE);
-//
-//     g_state = VC_SETTING_STATE_NONE;
-//     
-//     SLOG(LOG_DEBUG, TAG_VCS, "=====");
-//     SLOG(LOG_DEBUG, TAG_VCS, " ");
-//
-//     return VC_ERROR_NONE;
-//}
-
 int vc_setting_deinitialize()
 {
        SLOG(LOG_DEBUG, TAG_VCS, "===== Deinitialize VC Setting");
index d04a545..b7a3537 100644 (file)
@@ -28,8 +28,6 @@
 
 #define VC_WIDGET_CONFIG_HANDLE        200000
 
-static bool g_w_is_daemon_started = false;
-
 static Ecore_Timer* g_w_connect_timer = NULL;
 
 static Ecore_Timer* g_w_start_timer = NULL;
@@ -195,8 +193,6 @@ static void __vc_widget_internal_unprepare()
                SLOG(LOG_WARN, TAG_VCW, "[ERROR] Fail to request finalize : %s", __vc_widget_get_error_code(ret));
        }
 
-       g_w_is_daemon_started = false;
-
        vc_cmd_parser_delete_file(getpid(), VC_COMMAND_TYPE_WIDGET);
 
        return;
@@ -253,36 +249,10 @@ int vc_widget_deinitialize()
        return VC_ERROR_NONE;
 }
 
-static void __vc_widget_fork_vc_daemon()
-{
-       int pid, i;
-       pid = fork();
-
-       switch(pid) {
-       case -1:
-               SLOG(LOG_ERROR, TAG_VCW, "Fail to create daemon");
-               break;
-       case 0:
-               setsid();
-               for (i = 0;i < _NSIG;i++)
-                       signal(i, SIG_DFL);
-
-               execl(VC_DAEMON_PATH, VC_DAEMON_PATH, NULL);
-               break;
-       default:
-               break;
-       }
-       return;
-}
-
 static Eina_Bool __vc_widget_connect_daemon(void *data)
 {
        /* Send hello */
        if (0 != vc_widget_dbus_request_hello()) {
-               if (false == g_w_is_daemon_started) {
-                       g_w_is_daemon_started = true;
-                       __vc_widget_fork_vc_daemon();
-               }
                return EINA_TRUE;
        }
 
@@ -344,8 +314,6 @@ int vc_widget_prepare()
                return VC_ERROR_INVALID_STATE;
        }
 
-       g_w_is_daemon_started = false;
-
        g_w_connect_timer = ecore_timer_add(0, __vc_widget_connect_daemon, NULL);
 
        SLOG(LOG_DEBUG, TAG_VCW, "=====");
index 0b1a11d..0d1df58 100644 (file)
@@ -24,8 +24,8 @@ static int g_w_waiting_time = 3000;
 
 static Ecore_Fd_Handler* g_w_fd_handler = NULL;
 
-static DBusConnection* g_w_conn = NULL;
-
+static DBusConnection* g_w_conn_sender = NULL;
+static DBusConnection* g_w_conn_listener = NULL;
 
 extern int __vc_widget_cb_error(int pid, int reason);
 
@@ -36,16 +36,12 @@ extern void __vc_widget_cb_result();
 
 static Eina_Bool widget_listener_event_callback(void* data, Ecore_Fd_Handler *fd_handler)
 {
-       DBusConnection* conn = (DBusConnection*)data;
-       DBusMessage* msg = NULL;
-       DBusMessage *reply = NULL;
-
-       if (NULL == conn)
-               return ECORE_CALLBACK_RENEW;
+       if (NULL == g_w_conn_listener)  return ECORE_CALLBACK_RENEW;
 
-       dbus_connection_read_write_dispatch(conn, 50);
+       dbus_connection_read_write_dispatch(g_w_conn_listener, 50);
 
-       msg = dbus_connection_pop_message(conn);
+       DBusMessage* msg = NULL;
+       msg = dbus_connection_pop_message(g_w_conn_listener);
 
        /* loop again if we haven't read a message */
        if (NULL == msg) { 
@@ -56,7 +52,7 @@ static Eina_Bool widget_listener_event_callback(void* data, Ecore_Fd_Handler *fd
        dbus_error_init(&err);
 
        char if_name[64];
-       snprintf(if_name, 64, "%s%d", VC_WIDGET_SERVICE_INTERFACE, getpid());
+       snprintf(if_name, 64, "%s", VC_WIDGET_SERVICE_INTERFACE);
 
        if (dbus_message_is_method_call(msg, if_name, VCD_WIDGET_METHOD_HELLO)) {
                SLOG(LOG_DEBUG, TAG_VCW, "===== Get widget hello");
@@ -77,18 +73,19 @@ static Eina_Bool widget_listener_event_callback(void* data, Ecore_Fd_Handler *fd
                        SLOG(LOG_ERROR, TAG_VCW, "<<<< vc widget get hello : invalid pid ");
                }
 
+               DBusMessage* reply = NULL;
                reply = dbus_message_new_method_return(msg);
                
                if (NULL != reply) {
                        dbus_message_append_args(reply, DBUS_TYPE_INT32, &response, DBUS_TYPE_INVALID);
 
-                       if (!dbus_connection_send(conn, reply, NULL))
+                       if (!dbus_connection_send(g_w_conn_listener, reply, NULL))
                                SLOG(LOG_ERROR, TAG_VCW, ">>>> vc widget get hello : fail to send reply");
                        else 
                                SLOG(LOG_DEBUG, TAG_VCW, ">>>> vc widget get hello : result(%d)", response);
 
-                       dbus_connection_flush(conn);
-                       dbus_message_unref(reply); 
+                       dbus_connection_flush(g_w_conn_listener);
+                       dbus_message_unref(reply);
                } else {
                        SLOG(LOG_ERROR, TAG_VCW, ">>>> vc widget get hello : fail to create reply message");
                }
@@ -120,22 +117,6 @@ static Eina_Bool widget_listener_event_callback(void* data, Ecore_Fd_Handler *fd
                        SLOG(LOG_ERROR, TAG_VCW, "<<<< vc widget show tooltip : invalid pid");
                }
 
-               /*
-               reply = dbus_message_new_method_return(msg);
-
-               if (NULL != reply) {
-                       if (!dbus_connection_send(conn, reply, NULL))
-                               SLOG(LOG_ERROR, TAG_VCW, ">>>> vc widget show tooltip : fail to send reply");
-                       else 
-                               SLOG(LOG_DEBUG, TAG_VCW, ">>>> vc widget show tooltip");
-
-                       dbus_connection_flush(conn);
-                       dbus_message_unref(reply); 
-               } else {
-                       SLOG(LOG_ERROR, TAG_VCW, ">>>> vc widget show tooltip : fail to create reply message");
-               }
-               */
-
                SLOG(LOG_DEBUG, TAG_VCW, "=====");
                SLOG(LOG_DEBUG, TAG_VCW, " ");
        } /* VCD_WIDGET_METHOD_SHOW_TOOLTIP */
@@ -145,22 +126,6 @@ static Eina_Bool widget_listener_event_callback(void* data, Ecore_Fd_Handler *fd
 
                __vc_widget_cb_result();
 
-               /*
-               reply = dbus_message_new_method_return(msg);
-
-               if (NULL != reply) {
-                       if (!dbus_connection_send(conn, reply, NULL))
-                               SLOG(LOG_ERROR, TAG_VCW, ">>>> vc widget get result : fail to send reply");
-                       else 
-                               SLOG(LOG_DEBUG, TAG_VCW, ">>>> vc widget get result");
-
-                       dbus_connection_flush(conn);
-                       dbus_message_unref(reply); 
-               } else {
-                       SLOG(LOG_ERROR, TAG_VCW, ">>>> vc widget get result : fail to create reply message");
-               
-               */
-
                SLOG(LOG_DEBUG, TAG_VCW, "=====");
                SLOG(LOG_DEBUG, TAG_VCW, " ");
 
@@ -186,22 +151,6 @@ static Eina_Bool widget_listener_event_callback(void* data, Ecore_Fd_Handler *fd
                        __vc_widget_cb_error(pid, reason);
                }
 
-               /*
-               reply = dbus_message_new_method_return(msg);
-
-               if (NULL != reply) {
-                       if (!dbus_connection_send(conn, reply, NULL))
-                               SLOG(LOG_ERROR, TAG_VCW, ">>>> vc widget error message : fail to send reply");
-                       else 
-                               SLOG(LOG_DEBUG, TAG_VCW, ">>>> vc widget error message");
-
-                       dbus_connection_flush(conn);
-                       dbus_message_unref(reply); 
-               } else {
-                       SLOG(LOG_ERROR, TAG_VCW, ">>>> vc widget error message : fail to create reply message");
-               }
-               */
-
                SLOG(LOG_DEBUG, TAG_VCW, "=====");
                SLOG(LOG_DEBUG, TAG_VCW, " ");
        } /* VCD_WIDGET_METHOD_ERROR */
@@ -214,7 +163,7 @@ static Eina_Bool widget_listener_event_callback(void* data, Ecore_Fd_Handler *fd
 
 int vc_widget_dbus_open_connection()
 {
-       if (NULL != g_w_conn) {
+       if (NULL != g_w_conn_sender && NULL != g_w_conn_listener) {
                SLOG(LOG_WARN, TAG_VCW, "Already existed connection ");
                return 0;
        }
@@ -226,28 +175,40 @@ int vc_widget_dbus_open_connection()
        dbus_error_init(&err);
 
        /* connect to the DBUS system bus, and check for errors */
-       g_w_conn = dbus_bus_get_private(DBUS_BUS_SYSTEM, &err);
+       g_w_conn_sender = dbus_bus_get_private(DBUS_BUS_SYSTEM, &err);
 
-       if (dbus_error_is_set(&err)) { 
-               SLOG(LOG_ERROR, TAG_VCW, "Dbus Connection Error (%s)", err.message); 
-               dbus_error_free(&err); 
+       if (dbus_error_is_set(&err)) {
+               SLOG(LOG_ERROR, TAG_VCW, "Dbus Connection Error (%s)", err.message);
+               dbus_error_free(&err);
        }
 
-       if (NULL == g_w_conn) {
+       if (NULL == g_w_conn_sender) {
                SLOG(LOG_ERROR, TAG_VCW, "Fail to get dbus connection ");
-               return VC_ERROR_OPERATION_FAILED; 
+               return VC_ERROR_OPERATION_FAILED;
+       }
+
+       g_w_conn_listener = dbus_bus_get_private(DBUS_BUS_SYSTEM, &err);
+
+       if (dbus_error_is_set(&err)) {
+               SLOG(LOG_ERROR, TAG_VCW, "Dbus Connection Error (%s)", err.message);
+               dbus_error_free(&err);
+       }
+
+       if (NULL == g_w_conn_listener) {
+               SLOG(LOG_ERROR, TAG_VCW, "Fail to get dbus connection ");
+               return VC_ERROR_OPERATION_FAILED;
        }
 
        int pid = getpid();
 
        char service_name[64];
        memset(service_name, '\0', 64);
-       snprintf(service_name, 64, "%s%d", VC_WIDGET_SERVICE_NAME, pid);
+       snprintf(service_name, 64, "%s", VC_WIDGET_SERVICE_NAME);
 
        SLOG(LOG_DEBUG, TAG_VCW, "service name is %s", service_name);
 
        /* register our name on the bus, and check for errors */
-       ret = dbus_bus_request_name(g_w_conn, service_name, DBUS_NAME_FLAG_REPLACE_EXISTING , &err);
+       ret = dbus_bus_request_name(g_w_conn_listener, service_name, DBUS_NAME_FLAG_REPLACE_EXISTING , &err);
 
        if (dbus_error_is_set(&err)) {
                SLOG(LOG_ERROR, TAG_VCW, "Name Error (%s)", err.message); 
@@ -265,11 +226,11 @@ int vc_widget_dbus_open_connection()
        }
 
        char rule[128];
-       snprintf(rule, 128, "type='signal',interface='%s%d'", VC_WIDGET_SERVICE_INTERFACE, pid);
+       snprintf(rule, 128, "type='signal',interface='%s'", VC_WIDGET_SERVICE_INTERFACE);
 
        /* add a rule for which messages we want to see */
-       dbus_bus_add_match(g_w_conn, rule, &err); 
-       dbus_connection_flush(g_w_conn);
+       dbus_bus_add_match(g_w_conn_listener, rule, &err);
+       dbus_connection_flush(g_w_conn_listener);
 
        if (dbus_error_is_set(&err)) 
        { 
@@ -279,14 +240,14 @@ int vc_widget_dbus_open_connection()
        }
 
        int fd = 0;
-       if (1 != dbus_connection_get_unix_fd(g_w_conn, &fd)) {
+       if (1 != dbus_connection_get_unix_fd(g_w_conn_listener, &fd)) {
                SLOG(LOG_ERROR, TAG_VCW, "fail to get fd from dbus ");
                return VC_ERROR_OPERATION_FAILED;
        } else {
                SLOG(LOG_DEBUG, TAG_VCW, "Get fd from dbus : %d", fd);
        }
 
-       g_w_fd_handler = ecore_main_fd_handler_add(fd, ECORE_FD_READ, (Ecore_Fd_Cb)widget_listener_event_callback, g_w_conn, NULL, NULL);
+       g_w_fd_handler = ecore_main_fd_handler_add(fd, ECORE_FD_READ, (Ecore_Fd_Cb)widget_listener_event_callback, g_w_conn_listener, NULL, NULL);
 
        if (NULL == g_w_fd_handler) {
                SLOG(LOG_ERROR, TAG_VCW, "fail to get fd handler from ecore ");
@@ -301,33 +262,38 @@ int vc_widget_dbus_close_connection()
        DBusError err;
        dbus_error_init(&err);
 
+       if (NULL != g_w_fd_handler) {
+               ecore_main_fd_handler_del(g_w_fd_handler);
+               g_w_fd_handler = NULL;
+       }
+
        int pid = getpid();
 
        char service_name[64];
        memset(service_name, '\0', 64);
-       snprintf(service_name, 64, "%s%d", VC_WIDGET_SERVICE_NAME, pid);
+       snprintf(service_name, 64, "%s", VC_WIDGET_SERVICE_NAME);
 
-       dbus_bus_release_name (g_w_conn, 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);
        }
 
-       dbus_connection_close(g_w_conn);
-
-       g_w_fd_handler = NULL;
-       g_w_conn = NULL;
+       g_w_conn_sender = NULL;
+       g_w_conn_listener = NULL;
 
        return 0;
 }
 
 int vc_widget_dbus_reconnect()
 {
-       bool connected = dbus_connection_get_is_connected(g_w_conn);
-       SECURE_SLOG(LOG_DEBUG, TAG_VCW, "[DBUS] %s", connected ? "Connected" : "Not connected");
+       bool sender_connected = dbus_connection_get_is_connected(g_w_conn_sender);
+       bool listener_connected = dbus_connection_get_is_connected(g_w_conn_listener);
+       SLOG(LOG_DEBUG, TAG_VCW, "[DBUS] Sender(%s) Listener(%s)",
+                sender_connected ? "Connected" : "Not connected", listener_connected ? "Connected" : "Not connected");
 
-       if (false == connected) {
+       if (false == sender_connected || false == listener_connected) {
                vc_widget_dbus_close_connection();
 
                if (0 != vc_widget_dbus_open_connection()) {
@@ -337,6 +303,7 @@ int vc_widget_dbus_reconnect()
 
                SLOG(LOG_DEBUG, TAG_VCW, "[DBUS] Reconnect");
        }
+
        return 0;
 }
 
@@ -361,7 +328,7 @@ int vc_widget_dbus_request_hello()
        DBusMessage* result_msg = NULL;
        int result = 0;
 
-       result_msg = dbus_connection_send_with_reply_and_block(g_w_conn, msg, 500, &err);
+       result_msg = dbus_connection_send_with_reply_and_block(g_w_conn_sender, msg, 500, &err);
 
        if (dbus_error_is_set(&err)) {
                dbus_error_free(&err);
@@ -407,7 +374,7 @@ int vc_widget_dbus_request_initialize(int pid)
        DBusMessage* result_msg;
        int result = VC_ERROR_OPERATION_FAILED;
 
-       result_msg = dbus_connection_send_with_reply_and_block(g_w_conn, msg, g_w_waiting_time, &err);
+       result_msg = dbus_connection_send_with_reply_and_block(g_w_conn_sender, msg, g_w_waiting_time, &err);
        dbus_message_unref(msg);
 
        if (dbus_error_is_set(&err)) {
@@ -467,7 +434,7 @@ int vc_widget_dbus_request_finalize(int pid)
        DBusMessage* result_msg;
        int result = VC_ERROR_OPERATION_FAILED;
 
-       result_msg = dbus_connection_send_with_reply_and_block(g_w_conn, msg, g_w_waiting_time, &err);
+       result_msg = dbus_connection_send_with_reply_and_block(g_w_conn_sender, msg, g_w_waiting_time, &err);
        dbus_message_unref(msg);
 
        if (dbus_error_is_set(&err)) {
@@ -532,7 +499,7 @@ int vc_widget_dbus_request_start_recording(int pid, bool command)
        DBusMessage* result_msg;
        int result = VC_ERROR_OPERATION_FAILED;
 
-       result_msg = dbus_connection_send_with_reply_and_block(g_w_conn, msg, g_w_waiting_time, &err);
+       result_msg = dbus_connection_send_with_reply_and_block(g_w_conn_sender, msg, g_w_waiting_time, &err);
        dbus_message_unref(msg);
 
        if (dbus_error_is_set(&err)) {
@@ -595,7 +562,7 @@ int vc_widget_dbus_request_start(int pid, int silence)
        DBusMessage* result_msg;
        int result = VC_ERROR_OPERATION_FAILED;
 
-       result_msg = dbus_connection_send_with_reply_and_block(g_w_conn, msg, g_w_waiting_time, &err);
+       result_msg = dbus_connection_send_with_reply_and_block(g_w_conn_sender, msg, g_w_waiting_time, &err);
        dbus_message_unref(msg);
 
        if (dbus_error_is_set(&err)) {
@@ -657,7 +624,7 @@ int vc_widget_dbus_request_stop(int pid)
        DBusMessage* result_msg;
        int result = VC_ERROR_OPERATION_FAILED;
 
-       result_msg = dbus_connection_send_with_reply_and_block(g_w_conn, msg, g_w_waiting_time, &err);
+       result_msg = dbus_connection_send_with_reply_and_block(g_w_conn_sender, msg, g_w_waiting_time, &err);
        dbus_message_unref(msg);
 
        if (dbus_error_is_set(&err)) {
@@ -719,7 +686,7 @@ int vc_widget_dbus_request_cancel(int pid)
        DBusMessage* result_msg;
        int result = VC_ERROR_OPERATION_FAILED;
 
-       result_msg = dbus_connection_send_with_reply_and_block(g_w_conn, msg, g_w_waiting_time, &err);
+       result_msg = dbus_connection_send_with_reply_and_block(g_w_conn_sender, msg, g_w_waiting_time, &err);
        dbus_message_unref(msg);
 
        if (dbus_error_is_set(&err)) {
index fd501da..7d570a2 100644 (file)
@@ -534,7 +534,6 @@ int vc_cmd_get_unfixed_command(vc_cmd_h vc_command, char** command)
        return 0;
 }
 
-//int vc_cmd_set_type(vc_cmd_h vc_command, vc_cmd_type_e type)
 int vc_cmd_set_type(vc_cmd_h vc_command, int type)
 {
        if (NULL == vc_command) {
@@ -721,7 +720,6 @@ int vc_cmd_set_result_key(vc_cmd_h vc_command, int key, int modifier)
 * @see vc_cmd_add_result_key()
 */
 int vc_cmd_get_result_key(vc_cmd_h vc_command, int* key, int* modifier)
-//int vc_command_get_result_key(vc_cmd_h vc_command, int* key, int* modifier)
 {
        SLOG(LOG_DEBUG, TAG_VCCMD, "===== Get result key");
 
index cc3cd54..7c88337 100644 (file)
@@ -27,19 +27,19 @@ extern "C" {
 * Definition for Dbus
 *******************************************************************************************/
 
-#define VC_CLIENT_SERVICE_NAME         "org.tizen.voice.vcclient"
-#define VC_CLIENT_SERVICE_OBJECT_PATH  "/org/tizen/voice/vcclient"
-#define VC_CLIENT_SERVICE_INTERFACE    "org.tizen.voice.vcclient"
+#define VC_CLIENT_SERVICE_NAME         "org.tizen.vc.client"
+#define VC_CLIENT_SERVICE_OBJECT_PATH  "/org/tizen/vc/client"
+#define VC_CLIENT_SERVICE_INTERFACE    "org.tizen.vc.client"
 
-#define VC_WIDGET_SERVICE_NAME        "org.tizen.voice.vcwidget"
-#define VC_WIDGET_SERVICE_OBJECT_PATH "/org/tizen/voice/vcwidget"
-#define VC_WIDGET_SERVICE_INTERFACE   "org.tizen.voice.vcwidget"
+#define VC_WIDGET_SERVICE_NAME        "org.tizen.vc.widget"
+#define VC_WIDGET_SERVICE_OBJECT_PATH "/org/tizen/vc/widget"
+#define VC_WIDGET_SERVICE_INTERFACE   "org.tizen.vc.widget"
 
-#define VC_MANAGER_SERVICE_NAME        "org.tizen.voice.vcmanager"
-#define VC_MANAGER_SERVICE_OBJECT_PATH "/org/tizen/voice/vcmanager"
-#define VC_MANAGER_SERVICE_INTERFACE   "org.tizen.voice.vcmanager"
+#define VC_MANAGER_SERVICE_NAME        "org.tizen.vc.manager"
+#define VC_MANAGER_SERVICE_OBJECT_PATH "/org/tizen/vc/manager"
+#define VC_MANAGER_SERVICE_INTERFACE   "org.tizen.vc.manager"
 
-#define VC_SERVER_SERVICE_NAME         "service.connect.vcserver"
+#define VC_SERVER_SERVICE_NAME         "org.tizen.voice.vcserver"
 #define VC_SERVER_SERVICE_OBJECT_PATH  "/org/tizen/voice/vcserver"
 #define VC_SERVER_SERVICE_INTERFACE    "org.tizen.voice.vcserver"
 
index ae2ccca..ba34513 100644 (file)
  * <td></td>
  * </tr>
  * <tr>
- * <td>vc_set_app_state()</td>
- * <td>Ready</td>
- * <td></td>
- * </tr>
- * <tr>
- * <td>vc_get_app_state()</td>
- * <td>Ready</td>
- * <td></td>
- * </tr>
- * <tr>
  * <td>vc_set_command_list()</td>
  * <td>Ready</td>
  * <td></td>
index 74ddccf..5165ffe 100644 (file)
@@ -5,6 +5,7 @@ includedir=@INCLUDEDIR@
 
 Name: lib@PROJECT_NAME@_manager
 Description: Voice control manager client library
+Requires: glib-2.0 dbus-1 capi-base-common
 Version: @VERSION@
 Libs: -L${libdir} -l@PROJECT_NAME@_manager
 Cflags: -I${includedir}
index e250626..fa3c9ea 100644 (file)
@@ -5,6 +5,7 @@ includedir=@INCLUDEDIR@
 
 Name: lib@PROJECT_NAME@_setting
 Description: Voice control setting library
+Requires: glib-2.0 capi-base-common
 Version: @VERSION@
 Libs: -L${libdir} -l@PROJECT_NAME@_setting
 Cflags: -I${includedir}
index 51ba1ca..308394a 100644 (file)
@@ -5,6 +5,7 @@ includedir=@INCLUDEDIR@
 
 Name: lib@PROJECT_NAME@_widget
 Description: Voice control library for widget
+Requires: glib-2.0 dbus-1 capi-base-common
 Version: @VERSION@
 Libs: -L${libdir} -l@PROJECT_NAME@_widget
 Cflags: -I${includedir}
index fe29d64..8396172 100644 (file)
@@ -5,6 +5,7 @@ includedir=@INCLUDEDIR@
 
 Name: lib@PROJECT_NAME@
 Description: Voice control client library
+Requires: glib-2.0 dbus-1 capi-base-common
 Version: @VERSION@
 Libs: -L${libdir} -l@PROJECT_NAME@
 Cflags: -I${includedir}
index bbdc847..9e065b3 100644 (file)
 
 
 /**
-* @addtogroup Voice_control_command
+* @defgroup CAPI_UIX_VOICE_CONTROL_COMMAND_MODULE Voice control command
+* @ingroup CAPI_UIX_VOICE_CONTROL_MODULE
+*
+* @brief The @ref CAPI_UIX_VOICE_CONTROL_COMMAND_MODULE API provides functions for creating/destroying command list and add/remove/retrieve commands of list.
 * @{
 */
 
index 7bd8055..861749d 100644 (file)
@@ -21,7 +21,7 @@
 #include <voice_control_command.h>
 
 /**
-* @addtogroup Voice_control_common
+* @addtogroup CAPI_UIX_VOICE_CONTROL_MODULE
 * @{
 */
 
diff --git a/org.tizen.voice.vcserver.service b/org.tizen.voice.vcserver.service
new file mode 100644 (file)
index 0000000..638d1dc
--- /dev/null
@@ -0,0 +1,5 @@
+[D-BUS Service]
+Name=org.tizen.voice.vcserver
+Exec=/usr/bin/vc-daemon
+User=system
+Group=system
index 5e3b8c8..dab629a 100644 (file)
@@ -1,6 +1,6 @@
 Name:       voice-control
 Summary:    Voice control client library and daemon
-Version:    0.2.7
+Version:    0.2.8
 Release:    1
 Group:      Graphics & UI Framework/Voice Framework
 License:    Apache-2.0
@@ -97,7 +97,6 @@ install LICENSE %{buildroot}/usr/share/license/%{name}
 /sbin/ldconfig
 
 mkdir -p /usr/share/voice/vc
-chsmack -a '_' /usr/share/voice/vc
 
 mkdir -p /opt/home/app/.voice/vc
 chown 5000:5000 /opt/home/app/.voice/vc
@@ -112,6 +111,8 @@ chown 5000:5000 /opt/home/app/.voice/vc
 %{_libdir}/libvc_widget.so
 %{_libdir}/libvc_manager.so
 %{_bindir}/vc-daemon
+/usr/share/dbus-1/system-services/org.tizen.voice*
+/etc/dbus-1/system.d/vc-server.conf
 /usr/lib/voice/vc/1.0/vc-config.xml
 /usr/share/license/%{name}
 
@@ -147,8 +148,6 @@ chown 5000:5000 /opt/home/app/.voice/vc
 %files setting-devel
 %defattr(-,root,root,-)
 %{_libdir}/pkgconfig/voice-control-setting.pc
-%{_includedir}/voice_control_command.h
-%{_includedir}/voice_control_common.h
 %{_includedir}/voice_control_setting.h
 
 %files engine-devel
index 8ae7b33..f21b5c5 100644 (file)
@@ -1049,7 +1049,6 @@ int vcd_client_get_list(int** pids, int* pid_count)
        return 0;
 }
 
-//int vcd_client_set_command_type(int pid, vcd_client_command_group_type_e type)
 int vcd_client_set_command_type(int pid, int type)
 {
        vc_client_info_s* client_info = NULL;
@@ -1075,7 +1074,6 @@ int vcd_client_set_command_type(int pid, int type)
        return 0;
 }
 
-//int vcd_client_unset_command_type(int pid, vcd_client_command_group_type_e type)
 int vcd_client_unset_command_type(int pid, int type)
 {
        vc_client_info_s* client_info = NULL;
index 6cfc59c..2a826ab 100644 (file)
@@ -74,7 +74,6 @@ int vcd_client_get_length();
 
 int vcd_client_foreach_command(client_foreach_command_cb callback, void* user_data);
 
-//int vcd_client_get_client_info_from_result_id(int* result_id, int** pid, int** cmd_type);
 int vcd_client_get_cmd_from_result_id(int result_id, vc_cmd_s** result);
 
 int vcd_client_get_cmd_info_from_result_id(int result_id, int* pid, int* cmd_type, vc_cmd_s** result);
index 9bcc0e3..5afdddf 100644 (file)
@@ -14,8 +14,6 @@
 * limitations under the License.
 */
 
-
-
 #include <dbus/dbus.h>
 #include "vcd_client_data.h"
 #include "vcd_dbus.h"
 #include "vcd_main.h"
 
 
-static DBusConnection* g_conn;
+static DBusConnection* g_conn_sender = NULL;
+static DBusConnection* g_conn_listener = NULL;
+
+static Ecore_Fd_Handler* g_dbus_fd_handler = NULL;
 
 static int g_waiting_time = 3000;
 
@@ -35,17 +36,19 @@ static DBusMessage* __get_message(int pid, const char* method, vcd_client_type_e
        char target_if_name[128] = {0,};
 
        if (VCD_CLIENT_TYPE_NORMAL == type) {
-               snprintf(service_name, 64, "%s%d", VC_CLIENT_SERVICE_NAME, pid);
+               snprintf(service_name, 64, "%s", VC_CLIENT_SERVICE_NAME);
                snprintf(object_path, 64, "%s", VC_CLIENT_SERVICE_OBJECT_PATH);
-               snprintf(target_if_name, 128, "%s%d", VC_CLIENT_SERVICE_NAME, pid);
+               snprintf(target_if_name, 128, "%s", VC_CLIENT_SERVICE_NAME);
+
        } else if (VCD_CLIENT_TYPE_WIDGET == type) {
-               snprintf(service_name, 64, "%s%d", VC_WIDGET_SERVICE_NAME, pid);
+               snprintf(service_name, 64, "%s", VC_WIDGET_SERVICE_NAME);
                snprintf(object_path, 64, "%s", VC_WIDGET_SERVICE_OBJECT_PATH);
-               snprintf(target_if_name, 128, "%s%d", VC_WIDGET_SERVICE_INTERFACE, pid);
+               snprintf(target_if_name, 128, "%s", VC_WIDGET_SERVICE_INTERFACE);
+
        } else if (VCD_CLIENT_TYPE_MANAGER == type) {
-               snprintf(service_name, 64, "%s%d", VC_MANAGER_SERVICE_NAME, pid);
+               snprintf(service_name, 64, "%s", VC_MANAGER_SERVICE_NAME);
                snprintf(object_path, 64, "%s", VC_MANAGER_SERVICE_OBJECT_PATH);
-               snprintf(target_if_name, 128, "%s%d", VC_MANAGER_SERVICE_INTERFACE, pid);
+               snprintf(target_if_name, 128, "%s", VC_MANAGER_SERVICE_INTERFACE);
        } else {
                return NULL;
        }
@@ -70,7 +73,7 @@ int vcdc_send_hello(int pid, vcd_client_type_e type)
 
        if (NULL == msg) { 
                SLOG(LOG_ERROR, TAG_VCD, "[Dbus ERROR] Fail to create message");
-               return -1;
+               return VCD_ERROR_OUT_OF_MEMORY;
        }
 
        dbus_message_append_args(msg, DBUS_TYPE_INT32, &pid, DBUS_TYPE_INVALID);
@@ -81,7 +84,7 @@ int vcdc_send_hello(int pid, vcd_client_type_e type)
        DBusMessage* result_msg;
        int result = -1;
 
-       result_msg = dbus_connection_send_with_reply_and_block(g_conn, msg, g_waiting_time, &err);
+       result_msg = dbus_connection_send_with_reply_and_block(g_conn_sender, msg, g_waiting_time, &err);
        dbus_message_unref(msg);
 
        if (dbus_error_is_set(&err)) { 
@@ -95,7 +98,7 @@ int vcdc_send_hello(int pid, vcd_client_type_e type)
                if (dbus_error_is_set(&err)) { 
                        SLOG(LOG_ERROR, TAG_VCD, "[Dbus] Get arguments error (%s)", err.message);
                        dbus_error_free(&err);
-                       result = -1;
+                       result = VCD_ERROR_OPERATION_FAILED;
                }
 
                dbus_message_unref(result_msg);
@@ -116,10 +119,10 @@ int vcdc_send_show_tooltip(int pid, bool show)
 
        char service_name[64];
        memset(service_name, 0, 64);
-       snprintf(service_name, 64, "%s%d", VC_WIDGET_SERVICE_NAME, pid);
+       snprintf(service_name, 64, "%s", VC_WIDGET_SERVICE_NAME);
 
        char target_if_name[128];
-       snprintf(target_if_name, sizeof(target_if_name), "%s%d", VC_WIDGET_SERVICE_INTERFACE, pid);
+       snprintf(target_if_name, sizeof(target_if_name), "%s", VC_WIDGET_SERVICE_INTERFACE);
 
        DBusMessage* msg;
 
@@ -133,7 +136,7 @@ int vcdc_send_show_tooltip(int pid, bool show)
 
        if (NULL == msg) { 
                SLOG(LOG_ERROR, TAG_VCD, "[Dbus ERROR] Fail to create message");
-               return -1;
+               return VCD_ERROR_OUT_OF_MEMORY;
        }
 
        int temp = (int)show;
@@ -146,47 +149,20 @@ int vcdc_send_show_tooltip(int pid, bool show)
        dbus_message_iter_append_basic(&args, DBUS_TYPE_INT32, &(temp));
 
        dbus_message_set_no_reply(msg, TRUE);
-       
-       if (1 != dbus_connection_send(g_conn, msg, NULL)) {
+
+       if (1 != dbus_connection_send(g_conn_sender, msg, NULL)) {
                SLOG(LOG_ERROR, TAG_VCD, "[Dbus ERROR] Fail to Send");
-               return -1;
+               return VCD_ERROR_OPERATION_FAILED;
        } else {
                SLOG(LOG_DEBUG, TAG_VCD, "[Dbus] SUCCESS Send");
-               dbus_connection_flush(g_conn);
-               return 0;
-       }
-
-       /*
-       DBusError err;
-       dbus_error_init(&err);
-
-       DBusMessage* result_msg;
-
-       result_msg = dbus_connection_send_with_reply_and_block(g_conn, msg, g_waiting_time, &err);
-       dbus_message_unref(msg);
-
-       if (NULL != result_msg) {
-               if (dbus_error_is_set(&err)) {
-                       SLOG(LOG_ERROR, TAG_VCD, "[Dbus] Get arguments error (%s)\n", err.message);
-                       dbus_error_free(&err);
-                       return -1;
-               } else {
-                       SLOG(LOG_DEBUG, TAG_VCD, "[Dbus] Result response");
-               }
-       } else {
-               SLOG(LOG_DEBUG, TAG_VCD, "[Dbus] Result message is NULL. Widget is not available");
-
-               if (dbus_error_is_set(&err)) { 
-                       SLOG(LOG_ERROR, TAG_VCD, "[Dbus ERROR] %s", err.message);
-                       dbus_error_free(&err);
-               }
-               return -1;
+               dbus_connection_flush(g_conn_sender);
        }
 
        return 0;
-       */
 }
 
+
+
 int vcdc_send_result(int pid, int cmd_type)
 {
        DBusMessage* msg = NULL;
@@ -213,58 +189,26 @@ int vcdc_send_result(int pid, int cmd_type)
                return -1;
        }
 
-       if (NULL == msg)
+       if (NULL == msg) {
                SLOG(LOG_ERROR, TAG_VCD, "[Dbus ERROR] Message is NULL");
-
+               return VCD_ERROR_OUT_OF_MEMORY;
+       }
 
        dbus_message_set_no_reply(msg, TRUE);
-       if (1 != dbus_connection_send(g_conn, msg, NULL)) {
+
+       if (1 != dbus_connection_send(g_conn_sender, msg, NULL)) {
                SLOG(LOG_ERROR, TAG_VCD, "[Dbus ERROR] Fail to Send");
-               return -1;
+               return VCD_ERROR_OPERATION_FAILED;
        } else {
                SLOG(LOG_DEBUG, TAG_VCD, "[Dbus] SUCCESS Send");
-               dbus_connection_flush(g_conn);
-               return 0;
-       }
-
-       /*
-       DBusError err;
-       dbus_error_init(&err);
-
-       DBusMessage* result_msg;
-
-       result_msg = dbus_connection_send_with_reply_and_block(g_conn, msg, g_waiting_time, &err);
-       dbus_message_unref(msg);
-
-       if (NULL != result_msg) {
-               dbus_message_unref(result_msg);
-               if (dbus_error_is_set(&err)) {
-                       SLOG(LOG_ERROR, TAG_VCD, "[Dbus] Get arguments error (%s)\n", err.message);
-                       dbus_error_free(&err);
-                       return VCD_ERROR_TIMED_OUT;
-               } else {
-                       SLOG(LOG_DEBUG, TAG_VCD, "[Dbus] Result response");
-               }
-       } else {
-               SLOG(LOG_DEBUG, TAG_VCD, "[Dbus] Result message is NULL.");
-
-               if (dbus_error_is_set(&err)) { 
-                       SLOG(LOG_ERROR, TAG_VCD, "[Dbus ERROR] %s", err.message);
-                       dbus_error_free(&err);
-               }
-               return VCD_ERROR_TIMED_OUT;
+               dbus_connection_flush(g_conn_sender);
        }
 
        return 0;
-       */
 }
 
 int vcdc_send_result_to_manager(int manger_pid)
 {
-//     int count = 0;
-
-//     DBusMessage* result_msg = NULL;
-       
        DBusError err;
        dbus_error_init(&err);
 
@@ -272,53 +216,26 @@ int vcdc_send_result_to_manager(int manger_pid)
 
        msg = __get_message(manger_pid, VCD_MANAGER_METHOD_ALL_RESULT, VCD_CLIENT_TYPE_MANAGER);
 
-       if (NULL == msg)
+       if (NULL == msg) {
                SLOG(LOG_ERROR, TAG_VCD, "[Dbus ERROR] Message is NULL");
+               return VCD_ERROR_OUT_OF_MEMORY;
+       }
 
        dbus_message_set_no_reply(msg, TRUE);
-       
-       if (1 != dbus_connection_send(g_conn, msg, NULL)) {
+
+       if (1 != dbus_connection_send(g_conn_sender, msg, NULL)) {
                SLOG(LOG_ERROR, TAG_VCD, "[Dbus ERROR] Fail to Send");
-               return -1;
+               return VCD_ERROR_OPERATION_FAILED;
        } else {
                SLOG(LOG_DEBUG, TAG_VCD, "[Dbus] SUCCESS Send");
-               dbus_connection_flush(g_conn);
-               return 0;
-       }
-       
-       /*
-       result_msg = dbus_connection_send_with_reply_and_block(g_conn, msg, g_waiting_time, &err);
-       dbus_message_unref(msg);
-
-       if (NULL != result_msg) {
-               dbus_message_unref(result_msg);
-               if (dbus_error_is_set(&err)) {
-                       SLOG(LOG_ERROR, TAG_VCD, "[Dbus] Get arguments error (%s)\n", err.message);
-                       dbus_error_free(&err);
-                       return -1;
-               } else {
-                       SLOG(LOG_DEBUG, TAG_VCD, "[Dbus] Result response");
-               }
-       } else {
-               SLOG(LOG_DEBUG, TAG_VCD, "[Dbus] Result message is NULL.");
-
-               if (dbus_error_is_set(&err)) { 
-                       SLOG(LOG_ERROR, TAG_VCD, "[Dbus ERROR] %s", err.message);
-                       dbus_error_free(&err);
-               }
-               return -1;
+               dbus_connection_flush(g_conn_sender);
        }
 
-       count++;
-
        return 0;
-       */
 }
 
 int vcdc_send_speech_detected(int manger_pid)
 {
-//     DBusMessage* result_msg = NULL;
-
        DBusError err;
        dbus_error_init(&err);
 
@@ -326,47 +243,22 @@ int vcdc_send_speech_detected(int manger_pid)
 
        msg = __get_message(manger_pid, VCD_MANAGER_METHOD_SPEECH_DETECTED, VCD_CLIENT_TYPE_MANAGER);
 
-       if (NULL == msg)
+       if (NULL == msg) {
                SLOG(LOG_ERROR, TAG_VCD, "[Dbus ERROR] Message is NULL");
+               return VCD_ERROR_OUT_OF_MEMORY;
+       }
 
        dbus_message_set_no_reply(msg, TRUE);
 
-       if (1 != dbus_connection_send(g_conn, msg, NULL)) {
+       if (1 != dbus_connection_send(g_conn_sender, msg, NULL)) {
                SLOG(LOG_ERROR, TAG_VCD, "[Dbus ERROR] Fail to Send");
-               return -1;
+               return VCD_ERROR_OPERATION_FAILED;
        } else {
                SLOG(LOG_DEBUG, TAG_VCD, "[Dbus] SUCCESS Send");
-               dbus_connection_flush(g_conn);
-               return 0;
-       }
-
-       /*
-       result_msg = dbus_connection_send_with_reply_and_block(g_conn, msg, g_waiting_time, &err);
-       dbus_message_unref(msg);
-
-       if (NULL != result_msg) {
-               dbus_message_unref(result_msg);
-               if (dbus_error_is_set(&err)) {
-                       SLOG(LOG_ERROR, TAG_VCD, "[Dbus] Get arguments error (%s)\n", err.message);
-                       dbus_error_free(&err);
-                       return -1;
-               }
-               else {
-                       SLOG(LOG_DEBUG, TAG_VCD, "[Dbus] Result response");
-               }
-       }
-       else {
-               SLOG(LOG_DEBUG, TAG_VCD, "[Dbus] Result message is NULL.");
-
-               if (dbus_error_is_set(&err)) {
-                       SLOG(LOG_ERROR, TAG_VCD, "[Dbus ERROR] %s", err.message);
-                       dbus_error_free(&err);
-               }
-               return -1;
+               dbus_connection_flush(g_conn_sender);
        }
 
        return 0;
-       */
 }
 
 int vcdc_send_error_signal(int pid, int reason, char *err_msg)
@@ -378,10 +270,10 @@ int vcdc_send_error_signal(int pid, int reason, char *err_msg)
 
        char service_name[64];
        memset(service_name, 0, 64);
-       snprintf(service_name, 64, "%s%d", VC_CLIENT_SERVICE_NAME, pid);
+       snprintf(service_name, 64, "%s", VC_CLIENT_SERVICE_NAME);
 
        char target_if_name[128];
-       snprintf(target_if_name, sizeof(target_if_name), "%s%d", VC_CLIENT_SERVICE_INTERFACE, pid);
+       snprintf(target_if_name, sizeof(target_if_name), "%s", VC_CLIENT_SERVICE_INTERFACE);
 
        DBusMessage* msg;
        SLOG(LOG_DEBUG, TAG_VCD, "[Dbus] send error signal : reason(%d), Error Msg(%s)", reason, err_msg);
@@ -394,7 +286,7 @@ int vcdc_send_error_signal(int pid, int reason, char *err_msg)
 
        if (NULL == msg) { 
                SLOG(LOG_ERROR, TAG_VCD, "[Dbus ERROR] Fail to create message");
-               return -1;
+               return VCD_ERROR_OUT_OF_MEMORY;
        }
 
        dbus_message_append_args(msg, 
@@ -404,51 +296,26 @@ int vcdc_send_error_signal(int pid, int reason, char *err_msg)
                DBUS_TYPE_INVALID);
 
        dbus_message_set_no_reply(msg, TRUE);
-       
-       if (1 != dbus_connection_send(g_conn, msg, NULL)) {
+
+       if (1 != dbus_connection_send(g_conn_sender, msg, NULL)) {
                SLOG(LOG_ERROR, TAG_VCD, "[Dbus ERROR] Fail to Send");
-               return -1;
+               return VCD_ERROR_OPERATION_FAILED;
        } else {
                SLOG(LOG_DEBUG, TAG_VCD, "[Dbus] SUCCESS Send");
-               dbus_connection_flush(g_conn);
-               return 0;
-       }
-
-       /*
-       DBusError err;
-       dbus_error_init(&err);
-
-       DBusMessage* result_msg;
-
-       result_msg = dbus_connection_send_with_reply_and_block(g_conn, msg, g_waiting_time, &err);
-       dbus_message_unref(msg);
-
-       if (dbus_error_is_set(&err)) { 
-               SLOG(LOG_ERROR, TAG_VCD, "[Dbus ERROR] %s", err.message);
-               dbus_error_free(&err);
-       }
-
-       if (NULL != result_msg) {
-               dbus_message_unref(result_msg);
-       } else {
-               SLOG(LOG_DEBUG, TAG_VCD, "[Dbus] Result message is NULL.");
+               dbus_connection_flush(g_conn_sender);
        }
 
        return 0;
-       */
 }
 
 static Eina_Bool listener_event_callback(void* data, Ecore_Fd_Handler *fd_handler)
 {
-       DBusConnection* conn = (DBusConnection*)data;
-       DBusMessage* msg = NULL;
-
-       if (NULL == conn)
-               return ECORE_CALLBACK_RENEW;
+       if (NULL == g_conn_listener)    return ECORE_CALLBACK_RENEW;
 
-       dbus_connection_read_write_dispatch(conn, 50);
+       dbus_connection_read_write_dispatch(g_conn_listener, 50);
 
-       msg = dbus_connection_pop_message(conn);
+       DBusMessage* msg = NULL;
+       msg = dbus_connection_pop_message(g_conn_listener);
 
        /* loop again if we haven't read a message */
        if (NULL == msg) { 
@@ -457,89 +324,89 @@ static Eina_Bool listener_event_callback(void* data, Ecore_Fd_Handler *fd_handle
 
        /* Common event */
        if (dbus_message_is_method_call(msg, VC_SERVER_SERVICE_INTERFACE, VC_METHOD_HELLO))
-               vcd_dbus_server_hello(conn, msg);
+               vcd_dbus_server_hello(g_conn_listener, msg);
 
        /* manager event */
        else if (dbus_message_is_method_call(msg, VC_SERVER_SERVICE_INTERFACE, VC_MANAGER_METHOD_INITIALIZE))
-               vcd_dbus_server_mgr_initialize(conn, msg);
+               vcd_dbus_server_mgr_initialize(g_conn_listener, msg);
 
        else if (dbus_message_is_method_call(msg, VC_SERVER_SERVICE_INTERFACE, VC_MANAGER_METHOD_FINALIZE))
-               vcd_dbus_server_mgr_finalize(conn, msg);
+               vcd_dbus_server_mgr_finalize(g_conn_listener, msg);
 
        else if (dbus_message_is_method_call(msg, VC_SERVER_SERVICE_INTERFACE, VC_MANAGER_METHOD_SET_COMMAND))
-               vcd_dbus_server_mgr_set_command(conn, msg);
+               vcd_dbus_server_mgr_set_command(g_conn_listener, msg);
 
        else if (dbus_message_is_method_call(msg, VC_SERVER_SERVICE_INTERFACE, VC_MANAGER_METHOD_UNSET_COMMAND))
-               vcd_dbus_server_mgr_unset_command(conn, msg);
+               vcd_dbus_server_mgr_unset_command(g_conn_listener, msg);
 
        else if (dbus_message_is_method_call(msg, VC_SERVER_SERVICE_INTERFACE, VC_MANAGER_METHOD_SET_DEMANDABLE))
-               vcd_dbus_server_mgr_set_demandable_client(conn, msg);
+               vcd_dbus_server_mgr_set_demandable_client(g_conn_listener, msg);
 
        else if (dbus_message_is_method_call(msg, VC_SERVER_SERVICE_INTERFACE, VC_MANAGER_METHOD_SET_AUDIO_TYPE))
-               vcd_dbus_server_mgr_set_audio_type(conn, msg);
+               vcd_dbus_server_mgr_set_audio_type(g_conn_listener, msg);
 
        else if (dbus_message_is_method_call(msg, VC_SERVER_SERVICE_INTERFACE, VC_MANAGER_METHOD_GET_AUDIO_TYPE))
-               vcd_dbus_server_mgr_get_audio_type(conn, msg);
+               vcd_dbus_server_mgr_get_audio_type(g_conn_listener, msg);
 
        else if (dbus_message_is_method_call(msg, VC_SERVER_SERVICE_INTERFACE, VC_MANAGER_METHOD_SET_CLIENT_INFO))
-               vcd_dbus_server_mgr_set_client_info(conn, msg);
+               vcd_dbus_server_mgr_set_client_info(g_conn_listener, msg);
 
-       else if (dbus_message_is_method_call(msg, VC_SERVER_SERVICE_INTERFACE, VC_MANAGER_METHOD_START)) 
-               vcd_dbus_server_mgr_start(conn, msg);
+       else if (dbus_message_is_method_call(msg, VC_SERVER_SERVICE_INTERFACE, VC_MANAGER_METHOD_START))
+               vcd_dbus_server_mgr_start(g_conn_listener, msg);
 
-       else if (dbus_message_is_method_call(msg, VC_SERVER_SERVICE_INTERFACE, VC_MANAGER_METHOD_STOP)) 
-               vcd_dbus_server_mgr_stop(conn, msg);
+       else if (dbus_message_is_method_call(msg, VC_SERVER_SERVICE_INTERFACE, VC_MANAGER_METHOD_STOP))
+               vcd_dbus_server_mgr_stop(g_conn_listener, msg);
 
-       else if (dbus_message_is_method_call(msg, VC_SERVER_SERVICE_INTERFACE, VC_MANAGER_METHOD_CANCEL)) 
-               vcd_dbus_server_mgr_cancel(conn, msg);
+       else if (dbus_message_is_method_call(msg, VC_SERVER_SERVICE_INTERFACE, VC_MANAGER_METHOD_CANCEL))
+               vcd_dbus_server_mgr_cancel(g_conn_listener, msg);
 
-       else if (dbus_message_is_method_call(msg, VC_SERVER_SERVICE_INTERFACE, VC_MANAGER_METHOD_RESULT_SELECTION)) 
-               vcd_dbus_server_mgr_result_selection(conn, msg);
+       else if (dbus_message_is_method_call(msg, VC_SERVER_SERVICE_INTERFACE, VC_MANAGER_METHOD_RESULT_SELECTION))
+               vcd_dbus_server_mgr_result_selection(g_conn_listener, msg);
 
 
        /* client event */
        else if (dbus_message_is_method_call(msg, VC_SERVER_SERVICE_INTERFACE, VC_METHOD_INITIALIZE))
-               vcd_dbus_server_initialize(conn, msg);
+               vcd_dbus_server_initialize(g_conn_listener, msg);
 
        else if (dbus_message_is_method_call(msg, VC_SERVER_SERVICE_INTERFACE, VC_METHOD_FINALIZE))
-               vcd_dbus_server_finalize(conn, msg);
+               vcd_dbus_server_finalize(g_conn_listener, msg);
 #if 0
        else if (dbus_message_is_method_call(msg, VC_SERVER_SERVICE_INTERFACE, VC_METHOD_SET_EXCLUSIVE_CMD))
-               vcd_dbus_server_set_exclusive_command(conn, msg);
+               vcd_dbus_server_set_exclusive_command(g_conn_listener, msg);
 #endif
        else if (dbus_message_is_method_call(msg, VC_SERVER_SERVICE_INTERFACE, VC_METHOD_SET_COMMAND))
-               vcd_dbus_server_set_command(conn, msg);
+               vcd_dbus_server_set_command(g_conn_listener, msg);
 
        else if (dbus_message_is_method_call(msg, VC_SERVER_SERVICE_INTERFACE, VC_METHOD_UNSET_COMMAND))
-               vcd_dbus_server_unset_command(conn, msg);
+               vcd_dbus_server_unset_command(g_conn_listener, msg);
 #if 0
        else if (dbus_message_is_method_call(msg, VC_SERVER_SERVICE_INTERFACE, VC_METHOD_REQUEST_START))
-               vcd_dbus_server_start_request(conn, msg);
+               vcd_dbus_server_start_request(g_conn_listener, msg);
 
        else if (dbus_message_is_method_call(msg, VC_SERVER_SERVICE_INTERFACE, VC_METHOD_REQUEST_STOP))
-               vcd_dbus_server_stop_request(conn, msg);
+               vcd_dbus_server_stop_request(g_conn_listener, msg);
 
        else if (dbus_message_is_method_call(msg, VC_SERVER_SERVICE_INTERFACE, VC_METHOD_REQUEST_CANCEL))
-               vcd_dbus_server_cancel_request(conn, msg);
+               vcd_dbus_server_cancel_request(g_conn_listener, msg);
 #endif
        /* widget event */
        else if (dbus_message_is_method_call(msg, VC_SERVER_SERVICE_INTERFACE, VC_WIDGET_METHOD_INITIALIZE))
-               vcd_dbus_server_widget_initialize(conn, msg);
+               vcd_dbus_server_widget_initialize(g_conn_listener, msg);
 
        else if (dbus_message_is_method_call(msg, VC_SERVER_SERVICE_INTERFACE, VC_WIDGET_METHOD_FINALIZE))
-               vcd_dbus_server_widget_finalize(conn, msg);
+               vcd_dbus_server_widget_finalize(g_conn_listener, msg);
 
        else if (dbus_message_is_method_call(msg, VC_SERVER_SERVICE_INTERFACE, VC_WIDGET_METHOD_START_RECORDING))
-               vcd_dbus_server_widget_start_recording(conn, msg);
+               vcd_dbus_server_widget_start_recording(g_conn_listener, msg);
 
        else if (dbus_message_is_method_call(msg, VC_SERVER_SERVICE_INTERFACE, VC_WIDGET_METHOD_START))
-               vcd_dbus_server_widget_start(conn, msg);
+               vcd_dbus_server_widget_start(g_conn_listener, msg);
 
        else if (dbus_message_is_method_call(msg, VC_SERVER_SERVICE_INTERFACE, VC_WIDGET_METHOD_STOP))
-               vcd_dbus_server_widget_stop(conn, msg);
+               vcd_dbus_server_widget_stop(g_conn_listener, msg);
 
        else if (dbus_message_is_method_call(msg, VC_SERVER_SERVICE_INTERFACE, VC_WIDGET_METHOD_CANCEL))
-               vcd_dbus_server_widget_cancel(conn, msg);
+               vcd_dbus_server_widget_cancel(g_conn_listener, msg);
 
        else 
                return ECORE_CALLBACK_RENEW;
@@ -557,32 +424,45 @@ int vcd_dbus_open_connection()
 
        int ret;
 
+       /* Create connection for sender */
+       g_conn_sender = dbus_bus_get(DBUS_BUS_SYSTEM, &err);
+
+       if (dbus_error_is_set(&err)) {
+               SLOG(LOG_ERROR, TAG_VCD, "[Dbus ERROR] Fail dbus_bus_get : %s", err.message);
+               dbus_error_free(&err);
+       }
+
+       if (NULL == g_conn_sender) {
+               SLOG(LOG_ERROR, TAG_VCD, "[Dbus ERROR] Fail to get dbus connection");
+               return VCD_ERROR_OPERATION_FAILED;
+       }
+
        /* connect to the bus and check for errors */
-       g_conn = dbus_bus_get(DBUS_BUS_SYSTEM, &err);
+       g_conn_listener = dbus_bus_get(DBUS_BUS_SYSTEM, &err);
 
        if (dbus_error_is_set(&err)) { 
                SLOG(LOG_ERROR, TAG_VCD, "[Dbus ERROR] Fail dbus_bus_get : %s", err.message);
                dbus_error_free(&err);
        }
 
-       if (NULL == g_conn) { 
-               SLOG(LOG_ERROR, TAG_VCD, "[Dbus ERROR] Fail to get dbus connection" );
-               return -1;
+       if (NULL == g_conn_listener) {
+               SLOG(LOG_ERROR, TAG_VCD, "[Dbus ERROR] Fail to get dbus connection");
+               return VCD_ERROR_OPERATION_FAILED;
        }
 
        /* request our name on the bus and check for errors */
-       ret = dbus_bus_request_name(g_conn, VC_SERVER_SERVICE_NAME, DBUS_NAME_FLAG_REPLACE_EXISTING , &err);
+       ret = dbus_bus_request_name(g_conn_listener, VC_SERVER_SERVICE_NAME, DBUS_NAME_FLAG_REPLACE_EXISTING, &err);
 
        if (DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER != ret) {
                printf("Fail to be primary owner in dbus request.");
                SLOG(LOG_ERROR, TAG_VCD, "[Dbus ERROR] Fail to be primary owner");
-               return -1;
+               return VCD_ERROR_OPERATION_FAILED;
        }
 
        if (dbus_error_is_set(&err)) { 
                SLOG(LOG_ERROR, TAG_VCD, "[Dbus ERROR] dbus_bus_request_name() : %s", err.message);
                dbus_error_free(&err);
-               return -1;
+               return VCD_ERROR_OPERATION_FAILED;
        }
 
        /* add a rule for getting signal */
@@ -590,29 +470,23 @@ int vcd_dbus_open_connection()
        snprintf(rule, 128, "type='signal',interface='%s'", VC_SERVER_SERVICE_INTERFACE);
 
        /* add a rule for which messages we want to see */
-       dbus_bus_add_match(g_conn, rule, &err);/* see signals from the given interface */
-       dbus_connection_flush(g_conn);
+       dbus_bus_add_match(g_conn_listener, rule, &err);/* see signals from the given interface */
+       dbus_connection_flush(g_conn_listener);
 
        if (dbus_error_is_set(&err)) { 
                SLOG(LOG_ERROR, TAG_VCD, "[Dbus ERROR] dbus_bus_add_match() : %s", err.message);
                dbus_error_free(&err);
-               return -1;
+               return VCD_ERROR_OPERATION_FAILED;
        }
 
        int fd = 0;
-       dbus_connection_get_unix_fd(g_conn, &fd);
+       dbus_connection_get_unix_fd(g_conn_listener, &fd);
 
-       if (!ecore_init()) {
-               SLOG(LOG_ERROR, TAG_VCD, "[Dbus ERROR] ecore_init()");
-               return -1;
-       }
+       g_dbus_fd_handler = ecore_main_fd_handler_add(fd, ECORE_FD_READ, (Ecore_Fd_Cb)listener_event_callback, g_conn_listener, NULL, NULL);
 
-       Ecore_Fd_Handler* fd_handler;
-       fd_handler = ecore_main_fd_handler_add(fd, ECORE_FD_READ , (Ecore_Fd_Cb)listener_event_callback, g_conn, NULL, NULL);
-
-       if (NULL == fd_handler) {
+       if (NULL == g_dbus_fd_handler) {
                SLOG(LOG_ERROR, TAG_VCD, "[Dbus ERROR] Fail to get fd handler");
-               return -1;
+               return VCD_ERROR_OPERATION_FAILED;
        }
 
        return 0;
@@ -623,13 +497,20 @@ int vcd_dbus_close_connection()
        DBusError err;
        dbus_error_init(&err);
 
-       dbus_bus_release_name (g_conn, VC_SERVER_SERVICE_NAME, &err);
+       if (NULL != g_dbus_fd_handler) {
+               ecore_main_fd_handler_del(g_dbus_fd_handler);
+               g_dbus_fd_handler = NULL;
+       }
+
+       dbus_bus_release_name(g_conn_listener, VC_SERVER_SERVICE_NAME, &err);
 
        if (dbus_error_is_set(&err)) {
                SLOG(LOG_ERROR, TAG_VCD, "[Dbus ERROR] dbus_bus_release_name() : %s", err.message);
                dbus_error_free(&err);
-               return -1;
        }
 
+       g_conn_listener = NULL;
+       g_conn_sender = NULL;
+
        return 0;
 }
\ No newline at end of file
index 60e17b1..77be315 100644 (file)
@@ -666,7 +666,6 @@ int vcd_dbus_server_mgr_result_selection(DBusConnection* conn, DBusMessage* msg)
        dbus_error_init(&err);
 
        int pid;
-       //int ret = VCD_ERROR_OPERATION_FAILED;
        dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &pid, DBUS_TYPE_INVALID);
 
        SLOG(LOG_DEBUG, TAG_VCD, ">>>>> VCD Manager result selection");
@@ -674,10 +673,8 @@ int vcd_dbus_server_mgr_result_selection(DBusConnection* conn, DBusMessage* msg)
        if (dbus_error_is_set(&err)) {
                SLOG(LOG_ERROR, TAG_VCD, "[IN ERROR] vcd mgr result selection : get arguments error (%s)", err.message);
                dbus_error_free(&err);
-       //      ret = VCD_ERROR_OPERATION_FAILED;
        } else {
                SLOG(LOG_DEBUG, TAG_VCD, "[IN] vcd mgr result selection : pid(%d)", pid);
-               //ret = vcd_server_mgr_result_select();
                vcd_server_mgr_result_select();
        }
        return 0;
diff --git a/vc-server.conf b/vc-server.conf
new file mode 100644 (file)
index 0000000..a408454
--- /dev/null
@@ -0,0 +1,97 @@
+<!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
+ "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
+<busconfig>
+
+<!-- root can own the service -->
+  <policy user="default">
+    <allow own_prefix="org.tizen.vc.client"/>
+    <allow send_destination="org.tizen.vc.client"/>
+    <allow receive_sender="org.tizen.vc.client"/>
+  </policy>
+
+  <policy user="root">
+    <allow own_prefix="org.tizen.vc.client"/>
+    <allow send_destination="org.tizen.vc.client"/>
+    <allow receive_sender="org.tizen.vc.client"/>
+  </policy>
+
+  <policy context="default">
+    <allow own_prefix="org.tizen.vc.client"/>
+    <allow send_destination="org.tizen.vc.client"/>
+    <allow receive_sender="org.tizen.vc.client"/>
+  </policy>
+
+  
+  <policy user="default">
+    <allow own_prefix="org.tizen.vc.widget"/>
+    <allow send_destination="org.tizen.vc.widget"/>
+    <allow receive_sender="org.tizen.vc.widget"/>
+  </policy>
+
+  <policy user="root">
+    <allow own_prefix="org.tizen.vc.widget"/>
+    <allow send_destination="org.tizen.vc.widget"/>
+    <allow receive_sender="org.tizen.vc.widget"/>
+  </policy>
+
+  <policy context="default">
+    <allow own_prefix="org.tizen.vc.widget"/>
+    <allow send_destination="org.tizen.vc.widget"/>
+    <allow receive_sender="org.tizen.vc.widget"/>
+  </policy>
+
+    
+  <policy user="default">
+    <allow own_prefix="org.tizen.vc.manager"/>
+    <allow send_destination="org.tizen.vc.manager"/>
+    <allow receive_sender="org.tizen.vc.manager"/>
+  </policy>
+
+  <policy user="root">
+    <allow own_prefix="org.tizen.vc.manager"/>
+    <allow send_destination="org.tizen.vc.manager"/>
+    <allow receive_sender="org.tizen.vc.manager"/>
+  </policy>
+
+  <policy context="default">
+    <allow own_prefix="org.tizen.vc.manager"/>
+    <allow send_destination="org.tizen.vc.manager"/>
+    <allow receive_sender="org.tizen.vc.manager"/>
+  </policy>
+    
+
+  <policy user="default">
+    <allow own="org.tizen.voice.vcserver"/>
+    <allow send_destination="org.tizen.voice.vcserver"/>
+    <allow receive_sender="org.tizen.voice.vcserver"/>
+  </policy>
+
+  <policy user="root">
+    <allow own="org.tizen.voice.vcserver"/>
+    <allow send_destination="org.tizen.voice.vcserver"/>
+    <allow receive_sender="org.tizen.voice.vcserver"/>
+  </policy>
+  
+  <policy user="system">
+    <allow own="org.tizen.voice.vcserver"/>
+    <allow send_destination="org.tizen.voice.vcserver"/>
+    <allow receive_sender="org.tizen.voice.vcserver"/>
+  </policy>
+  
+  
+  <!--
+  <policy context="default">
+    <check send_destination="org.tizen.voice.vcserver"
+    send_interface="org.tizen.voice.vcserver"
+    privilege="(n/a)" />
+  </policy>
+  -->
+  
+  <!--
+  <policy context="default">
+    <check send_destination="org.tizen.voice.vcserver"
+    send_interface="org.tizen.voice.vcserver"
+    privilege="http://tizen.org/privilege/recorder" />
+  </policy>
+  -->
+</busconfig>