From 37223289b3d85ea8876e7ba7c9ff97ec428073ba Mon Sep 17 00:00:00 2001
From: Martin Jansa <Martin.Jansa@gmail.com>
Date: Sat, 22 Feb 2014 14:36:38 +0100
Subject: [PATCH] dbus-stuff: Convert to eldbus

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
---
 configure.ac     |  2 +-
 src/Makefile.am  |  2 +-
 src/dbus-stuff.c | 95 ++++++++++++++++++++++++++++++++------------------------
 src/dbus-stuff.h | 13 ++------
 src/main.c       |  2 +-
 5 files changed, 61 insertions(+), 53 deletions(-)

diff --git a/configure.ac b/configure.ac
index b3e4d12..4ace32a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -15,7 +15,7 @@ AC_HEADER_STDC
 
 AM_PROG_LIBTOOL
 
-PKG_CHECK_MODULES(TASKS, [elementary eina dbus-1 edbus sqlite3])
+PKG_CHECK_MODULES(TASKS, [elementary eina dbus-1 eldbus sqlite3])
 
 AC_OUTPUT([
 Makefile
diff --git a/src/Makefile.am b/src/Makefile.am
index 2143dc9..31d5253 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -8,7 +8,7 @@ AM_CPPFLAGS = \
 	$(TASKS_CFLAGS)
 
 AM_CFLAGS =\
-         $(EDBUS_CFLAGS) \
+         $(ELDBUS_CFLAGS) \
 	 -Wall\
 	 -g
 
diff --git a/src/dbus-stuff.c b/src/dbus-stuff.c
index 50809bc..9f02ef3 100644
--- a/src/dbus-stuff.c
+++ b/src/dbus-stuff.c
@@ -1,8 +1,7 @@
 /***************************************************************************
  *            dbus-stuff.c
  *
- *  Copyright  2009  cchandel
- *  <cchandel@yahoo.com>
+ *  Copyright  2009  cchandel <cchandel@yahoo.com>
  ****************************************************************************/
 
 /*
@@ -21,51 +20,67 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301,  USA
  */
 #include "dbus-stuff.h"
-#include <string.h>
-#include <E_DBus.h>
-#include <Elementary.h>
+#include "Eldbus.h"
 
-void occupy_cpu(void)
+void on_usage_cb(void *data EINA_UNUSED, const Eldbus_Message *msg, Eldbus_Pending *pending EINA_UNUSED)
+{
+        const char *errname, *errmsg;
+        if (eldbus_message_error_get(msg, &errname, &errmsg))
+	        fprintf(stderr, "Error: %s %s\n", errname, errmsg);
+}
+
+int ousaged_resource(const char *resource, int used)
 {	
-	e_dbus_init();
-	conn = e_dbus_bus_get(DBUS_BUS_SYSTEM);
-	
-	DBusMessage *msg;
-	msg = dbus_message_new_method_call(
-		"org.freesmartphone.ousaged",
-		"/org/freesmartphone/Usage",
-		"org.freesmartphone.Usage",
-		"RequestResource"
-	);
-	
-	const char *resource = "CPU";
-	dbus_message_append_args (msg, DBUS_TYPE_STRING, &resource, DBUS_TYPE_INVALID);
+	eldbus_init();
+	const char *REQUEST = "RequestResource";
+	const char *RELEASE = "ReleaseResource";
+	const int   PREQUEST = 1;
 
-	e_dbus_message_send(conn, msg, dbus_reply_cb, -1, NULL);
-	dbus_message_unref(msg);
-}
+        Eldbus_Connection *conn;
+        Eldbus_Object *obj;
+        Eldbus_Proxy *usage;
+        Eldbus_Pending *pending;
+	conn = eldbus_connection_get(ELDBUS_CONNECTION_TYPE_SYSTEM);
+        if (!conn)
+        {
+                fprintf(stderr, "Error: could not get system bus\n");
+                return EXIT_FAILURE;
+        }
 
-void release_cpu(void)
-{
-	DBusMessage *msg;
-	msg = dbus_message_new_method_call(
-		"org.freesmartphone.ousaged",
-		"/org/freesmartphone/Usage",
-		"org.freesmartphone.Usage",
-		"ReleaseResource"
-	);
-	
-	const char *resource = "CPU";
-	dbus_message_append_args (msg, DBUS_TYPE_STRING, &resource, DBUS_TYPE_INVALID);
+        obj = eldbus_object_get(conn, "org.freesmartphone.ousaged", "/org/freesmartphone/Usage");
+        if (!obj)
+        {
+                fprintf(stderr, "Error: could not get object\n");
+                return EXIT_FAILURE;
+        }
 
-	e_dbus_message_send(conn, msg, dbus_reply_cb, -1, NULL);
-	dbus_message_unref(msg);
+        usage = eldbus_proxy_get(obj, "org.freesmartphone.Usage");
+        if (!usage)
+        {
+                fprintf(stderr, "Error: could not get proxy\n");
+                return EXIT_FAILURE;
+        }
+
+        pending = eldbus_proxy_call(usage, used == PREQUEST ? REQUEST : RELEASE, on_usage_cb, NULL, -1, "ss", resource);
+        if (!pending)
+        {
+                fprintf(stderr, "Error: could not call\n");
+                return EXIT_FAILURE;
+        }
+        eldbus_proxy_unref(usage);
+        eldbus_object_unref(obj);
+        eldbus_connection_unref(conn);
+
+        eldbus_shutdown();
+	return EXIT_SUCCESS;
 }
 
-void dbus_reply_cb(void *data, DBusMessage *replymsg, DBusError *error)
+int request_cpu(void)
 {
-	if (dbus_error_is_set(error)) {
-		printf("Error: %s - %s\n", error->name, error->message);
-	}
+        return ousaged_resource("CPU", 1);
 }
 
+int release_cpu(void)
+{
+        return ousaged_resource("CPU" , 0);
+}
diff --git a/src/dbus-stuff.h b/src/dbus-stuff.h
index 83d4778..a3c72cb 100644
--- a/src/dbus-stuff.h
+++ b/src/dbus-stuff.h
@@ -2,8 +2,7 @@
  *            dbus.h
  *
  *  Fri Mar  6 12:32:57 2009
- *  Copyright  2009  nidhin
- *  <nidhin@nids-laptop.home>
+ *  Copyright  2009  nidhin <nidhin@nids-laptop.home>
  ****************************************************************************/
 
 /*
@@ -22,11 +21,5 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301,  USA
  */
 
-#include <E_DBus.h>
-#include <Elementary.h>
-
-void occupy_cpu(void);
-void release_cpu(void);
-void dbus_reply_cb(void *data, DBusMessage *replymsg, DBusError *error);
-
-E_DBus_Connection *conn;
+int request_cpu(void);
+int release_cpu(void);
diff --git a/src/main.c b/src/main.c
index 92d21de..4e4bbe2 100644
--- a/src/main.c
+++ b/src/main.c
@@ -76,7 +76,7 @@ elm_main(int argc, char **argv)
 	//restore state
 	restore_state();
 
-	occupy_cpu();
+	request_cpu();
 
 	elm_run();
 	//clean up stuff
-- 
1.8.5.3

