move dbus codes into the eom_dbus.c 25/42425/1
authorSooChan Lim <sc1.lim@samsung.com>
Wed, 17 Jun 2015 07:43:38 +0000 (16:43 +0900)
committerSooChan Lim <sc1.lim@samsung.com>
Mon, 29 Jun 2015 06:41:09 +0000 (15:41 +0900)
Change-Id: Id39bf0f3f86e17b92c8e1072757d44230e9fd2f4

src/eom-dbus.c [changed mode: 0644->0755]
src/eom-dbus.h [changed mode: 0644->0755]
src/eom-private.h [changed mode: 0644->0755]
src/eom.c [changed mode: 0644->0755]

old mode 100644 (file)
new mode 100755 (executable)
index 03a56a4..ff0b07b
@@ -37,10 +37,25 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #include "eom.h"
 #include "eom-log.h"
 #include "eom-dbus.h"
+#include "eom-private.h"
+
+#define EOM_DBUS_SERVER     "org.eom.server"
+#define EOM_DBUS_CLIENT     "org.eom.client"
+#define EOM_DBUS_INTERFACE  "org.eom.interface"
+#define EOM_DBUS_PATH       "/org/eom/path"
+
+#define STR_LEN 128
 
 #define REPLY_TIME  1000
 #define ARGV_NUM    64
 
+typedef struct _EomDBusClientMethod {
+       char name[STR_LEN];
+       notify_func func;
+       void *data;
+       struct _EomDBusClientMethod *next;
+} EomDBusClientMethod;
+
 typedef struct _EomDBusClientInfo {
        DBusConnection *conn;
        char name[STR_LEN];
@@ -52,7 +67,10 @@ typedef struct _EomDBusClientInfo {
 
 static EomDBusClientInfo client_info;
 
-static void _eom_dbus_client_deinit(EomDBusClientInfo *info);
+static bool dbus_initialized;
+static EomDBusClientMethod dbus_method;
+
+static void _eom_dbus_client_deinitialize(EomDBusClientInfo *info);
 
 static int
 _eom_dbus_need_private_conn(void)
@@ -283,7 +301,7 @@ _eom_dbus_client_msg_filter(DBusConnection *conn, DBusMessage *msg, void *data)
 
        if (dbus_message_is_signal(msg, DBUS_INTERFACE_LOCAL, "Disconnected")) {
                INFO("[EOM] disconnected by signal");
-               _eom_dbus_client_deinit(info);
+               _eom_dbus_client_deinitialize(info);
 
                return DBUS_HANDLER_RESULT_HANDLED;
        }
@@ -292,7 +310,7 @@ _eom_dbus_client_msg_filter(DBusConnection *conn, DBusMessage *msg, void *data)
 }
 
 static int
-_eom_dbus_client_init(EomDBusClientInfo *info)
+_eom_dbus_client_initialize(EomDBusClientInfo *info)
 {
        DBusError err;
        int ret;
@@ -387,7 +405,7 @@ free_err:
 }
 
 static void
-_eom_dbus_client_deinit(EomDBusClientInfo *info)
+_eom_dbus_client_deinitialize(EomDBusClientInfo *info)
 {
        DBusError err;
 
@@ -414,8 +432,9 @@ _eom_dbus_client_deinit(EomDBusClientInfo *info)
        INFO("[EOM] disconnected");
 }
 
-bool
-eom_dbus_client_connect(void)
+
+static bool
+_eom_dbus_client_connect(void)
 {
        if (client_info.conn)
                return true;
@@ -424,20 +443,20 @@ eom_dbus_client_connect(void)
 
        client_info.fd = -1;
 
-       if (!_eom_dbus_client_init(&client_info))
+       if (!_eom_dbus_client_initialize(&client_info))
                return false;
 
        return true;
 }
 
-void
-eom_dbus_client_disconnect(void)
+static void
+_eom_dbus_client_disconnect(void)
 {
-       _eom_dbus_client_deinit(&client_info);
+       _eom_dbus_client_deinitialize(&client_info);
 }
 
-bool
-eom_dbus_client_add_method(EomDBusClientMethod *method)
+static bool
+_eom_dbus_client_add_method(EomDBusClientMethod *method)
 {
        EomDBusClientMethod **prev;
 
@@ -449,8 +468,8 @@ eom_dbus_client_add_method(EomDBusClientMethod *method)
        return true;
 }
 
-void
-eom_dbus_client_remove_method(EomDBusClientMethod *method)
+static void
+_eom_dbus_client_remove_method(EomDBusClientMethod *method)
 {
        EomDBusClientMethod **prev;
 
@@ -462,6 +481,46 @@ eom_dbus_client_remove_method(EomDBusClientMethod *method)
                }
 }
 
+bool
+eom_dbus_client_init(notify_func func)
+{
+       if (dbus_initialized)
+               return true;
+
+       if (!_eom_dbus_client_connect())
+               return false;
+
+       snprintf(dbus_method.name, sizeof(dbus_method.name), "%s", "Notify");
+       dbus_method.func = func;
+       dbus_method.data = NULL;
+       _eom_dbus_client_add_method(&dbus_method);
+
+       dbus_initialized = true;
+
+       INFO("dbus init");
+
+       return true;
+}
+
+void
+eom_dbus_client_deinit(GList *cb_info_list)
+{
+       if (!dbus_initialized)
+               return;
+
+       /* An output instance and a callback can be created and be added only by user.
+        * If there is cb_info_list, it means that user is still
+        * watching and interested with eom dbus message.
+        */
+       if (cb_info_list)
+               return;
+
+       _eom_dbus_client_remove_method(&dbus_method);
+       _eom_dbus_client_disconnect();
+
+       dbus_initialized = false;
+}
+
 GValueArray*
 eom_dbus_client_send_message(char *method, GValueArray *array)
 {
old mode 100644 (file)
new mode 100755 (executable)
index a5530fc..99cfbce
@@ -38,27 +38,11 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #include <glib.h>
 #include <glib-object.h>
 #include "eom.h"
+#include "eom-private.h"
 
-#define EOM_DBUS_SERVER     "org.eom.server"
-#define EOM_DBUS_CLIENT     "org.eom.client"
-#define EOM_DBUS_INTERFACE  "org.eom.interface"
-#define EOM_DBUS_PATH       "/org/eom/path"
+bool eom_dbus_client_init(notify_func func);
+void eom_dbus_client_deinit(GList *cb_info_list);
 
-#define STR_LEN 128
-
-typedef void (*MethodFunc) (void *data, GValueArray *noti_array);
-
-typedef struct _EomDBusClientMethod {
-       char name[STR_LEN];
-       MethodFunc func;
-       void *data;
-       struct _EomDBusClientMethod *next;
-} EomDBusClientMethod;
-
-bool eom_dbus_client_connect(void);
-void eom_dbus_client_disconnect(void);
 GValueArray *eom_dbus_client_send_message(char *method, GValueArray *array);
-bool eom_dbus_client_add_method(EomDBusClientMethod *method);
-void eom_dbus_client_remove_method(EomDBusClientMethod *method);
 
 #endif /* __EOM_DBUS_H__ */
old mode 100644 (file)
new mode 100755 (executable)
index dec29be..a8465fb
@@ -49,12 +49,8 @@ typedef struct {
        int mm_height;
 } eom_output_info;
 
-struct _eom_output {
-       eom_output_id id;
-       eom_output_type_e type;
-
-       eom_output_info *output_info;
-};
+/* notify callback function prototype */
+typedef void (*notify_func) (void *data, GValueArray *array);
 
 void _eom_mutex_lock(void);
 void _eom_mutex_unlock(void);
old mode 100644 (file)
new mode 100755 (executable)
index 520bb5f..adcca4b
--- a/src/eom.c
+++ b/src/eom.c
@@ -94,9 +94,6 @@ bool eom_debug_on;
 
 static pthread_mutex_t eom_lock;
 
-static bool dbus_initialized;
-static EomDBusClientMethod dbus_method;
-
 static GList *cb_info_list;
 static GList *output_info_list;
 
@@ -194,46 +191,6 @@ _eom_mutex_unlock(void)
        pthread_mutex_unlock(&eom_lock);
 }
 
-static bool
-_eom_dbus_init(void)
-{
-       if (dbus_initialized)
-               return true;
-
-       if (!eom_dbus_client_connect())
-               return false;
-
-       snprintf(dbus_method.name, sizeof(dbus_method.name), "%s", "Notify");
-       dbus_method.func = _eom_output_process_notify_cb;
-       dbus_method.data = NULL;
-       eom_dbus_client_add_method(&dbus_method);
-
-       dbus_initialized = true;
-
-       INFO("dbus init");
-
-       return true;
-}
-
-static void
-_eom_dbus_deinit(void)
-{
-       if (!dbus_initialized)
-               return;
-
-       /* An output instance and a callback can be created and be added only by user.
-        * If there is cb_info_list, it means that user is still
-        * watching and interested with eom dbus message.
-        */
-       if (cb_info_list)
-               return;
-
-       eom_dbus_client_remove_method(&dbus_method);
-       eom_dbus_client_disconnect();
-
-       dbus_initialized = false;
-}
-
 static void
 _eom_set_output_info_mode(eom_output_info *output_info, int output_mode)
 {
@@ -526,7 +483,7 @@ eom_init(void)
 
        g_type_init();
 
-       ret = _eom_dbus_init();
+       ret = eom_dbus_client_init(_eom_output_process_notify_cb);
 
        _eom_mutex_unlock();
 
@@ -541,7 +498,8 @@ eom_deinit(void)
        GList *l;
 
        _eom_mutex_lock();
-       _eom_dbus_deinit();
+
+       eom_dbus_client_deinit(cb_info_list);
 
        /* TODO: redesign the life-cycle of output_infos */
        /* destory output_info. */