stefan pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=f5dcadaab5d695a5cba928199a52daee0a94923b

commit f5dcadaab5d695a5cba928199a52daee0a94923b
Author: Stefan Schmidt <[email protected]>
Date:   Mon Nov 3 16:16:16 2014 +0100

    elocation: Add generated GeoClue2 DBus helper code.
    
    Generated by eldbus-codegen to avoid writing the boilerplate code by hand.
---
 src/Makefile_Elocation.am                          |  11 +-
 src/lib/elocation/gen/eldbus_geo_clue2_client.c    | 442 +++++++++++++++++++++
 src/lib/elocation/gen/eldbus_geo_clue2_client.h    |  32 ++
 src/lib/elocation/gen/eldbus_geo_clue2_location.c  | 242 +++++++++++
 src/lib/elocation/gen/eldbus_geo_clue2_location.h  |  18 +
 src/lib/elocation/gen/eldbus_geo_clue2_manager.c   | 203 ++++++++++
 src/lib/elocation/gen/eldbus_geo_clue2_manager.h   |  19 +
 src/lib/elocation/gen/eldbus_utils.h               |  24 ++
 src/lib/elocation/gen/org.freedesktop.GeoClue2.xml | 199 ++++++++++
 9 files changed, 1188 insertions(+), 2 deletions(-)

diff --git a/src/Makefile_Elocation.am b/src/Makefile_Elocation.am
index 579300e..0260652 100644
--- a/src/Makefile_Elocation.am
+++ b/src/Makefile_Elocation.am
@@ -5,10 +5,17 @@ lib_LTLIBRARIES += lib/elocation/libelocation.la
 installed_elocationsmainheadersdir = $(includedir)/elocation-@VMAJ@
 dist_installed_elocationsmainheaders_DATA = \
 lib/elocation/Elocation.h \
-lib/elocation/elocation_private.h
+lib/elocation/elocation_private.h \
+lib/elocation/gen/eldbus_geo_clue2_client.h \
+lib/elocation/gen/eldbus_geo_clue2_location.h \
+lib/elocation/gen/eldbus_geo_clue2_manager.h \
+lib/elocation/gen/eldbus_utils.h
 
 lib_elocation_libelocation_la_SOURCES = \
-lib/elocation/elocation.c
+lib/elocation/elocation.c \
+lib/elocation/gen/eldbus_geo_clue2_client.c \
+lib/elocation/gen/eldbus_geo_clue2_location.c \
+lib/elocation/gen/eldbus_geo_clue2_manager.c
 
 lib_elocation_libelocation_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl 
@ELOCATION_CFLAGS@
 lib_elocation_libelocation_la_LIBADD = @ELOCATION_LIBS@
diff --git a/src/lib/elocation/gen/eldbus_geo_clue2_client.c 
b/src/lib/elocation/gen/eldbus_geo_clue2_client.c
new file mode 100644
index 0000000..73fed90
--- /dev/null
+++ b/src/lib/elocation/gen/eldbus_geo_clue2_client.c
@@ -0,0 +1,442 @@
+#include "eldbus_geo_clue2_client.h"
+
+static int _log_main = -1;
+#undef ERR
+#define ERR(...) EINA_LOG_DOM_ERR(_log_main, __VA_ARGS__);
+int GEO_CLUE2_CLIENT_LOCATION_UPDATED_EVENT = 0;
+
+static void
+cb_geo_clue2_client_start(void *data, const Eldbus_Message *msg, 
Eldbus_Pending *pending)
+{
+   void *user_data = eldbus_pending_data_del(pending, "__user_data");
+   Geo_Clue2_Client_Start_Cb cb = data;
+   const char *error, *error_msg;
+   Eldbus_Proxy *proxy = eldbus_pending_data_del(pending, "__proxy");
+   if (eldbus_message_error_get(msg, &error, &error_msg))
+     {
+        Eldbus_Error_Info error_info = {error, error_msg};
+        cb(proxy, user_data, pending, &error_info);
+        return;
+     }
+   if (!eldbus_message_arguments_get(msg, ""))
+     {
+        Eldbus_Error_Info error_info = {"", ""};
+        ERR("Error: Getting arguments from message.");
+        cb(proxy, user_data, pending, &error_info);
+        return;
+     }
+   cb(proxy, user_data, pending, NULL);
+   return;
+}
+
+Eldbus_Pending *
+geo_clue2_client_start_call(Eldbus_Proxy *proxy, Geo_Clue2_Client_Start_Cb cb, 
const void *data)
+{
+   Eldbus_Message *msg;
+   Eldbus_Pending *p;
+   EINA_SAFETY_ON_NULL_RETURN_VAL(proxy, NULL);
+   msg = eldbus_proxy_method_call_new(proxy, "Start");
+   if (!eldbus_message_arguments_append(msg, ""))
+     {
+        ERR("Error: Filling message.");
+        return NULL;
+     }
+   p = eldbus_proxy_send(proxy, msg, cb_geo_clue2_client_start, cb, -1);
+   if (data)
+     eldbus_pending_data_set(p, "__user_data", data);
+   eldbus_pending_data_set(p, "__proxy", proxy);
+   return p;
+}
+
+static void
+cb_geo_clue2_client_stop(void *data, const Eldbus_Message *msg, Eldbus_Pending 
*pending)
+{
+   void *user_data = eldbus_pending_data_del(pending, "__user_data");
+   Geo_Clue2_Client_Stop_Cb cb = data;
+   const char *error, *error_msg;
+   Eldbus_Proxy *proxy = eldbus_pending_data_del(pending, "__proxy");
+   if (eldbus_message_error_get(msg, &error, &error_msg))
+     {
+        Eldbus_Error_Info error_info = {error, error_msg};
+        cb(proxy, user_data, pending, &error_info);
+        return;
+     }
+   if (!eldbus_message_arguments_get(msg, ""))
+     {
+        Eldbus_Error_Info error_info = {"", ""};
+        ERR("Error: Getting arguments from message.");
+        cb(proxy, user_data, pending, &error_info);
+        return;
+     }
+   cb(proxy, user_data, pending, NULL);
+   return;
+}
+
+Eldbus_Pending *
+geo_clue2_client_stop_call(Eldbus_Proxy *proxy, Geo_Clue2_Client_Stop_Cb cb, 
const void *data)
+{
+   Eldbus_Message *msg;
+   Eldbus_Pending *p;
+   EINA_SAFETY_ON_NULL_RETURN_VAL(proxy, NULL);
+   msg = eldbus_proxy_method_call_new(proxy, "Stop");
+   if (!eldbus_message_arguments_append(msg, ""))
+     {
+        ERR("Error: Filling message.");
+        return NULL;
+     }
+   p = eldbus_proxy_send(proxy, msg, cb_geo_clue2_client_stop, cb, -1);
+   if (data)
+     eldbus_pending_data_set(p, "__user_data", data);
+   eldbus_pending_data_set(p, "__proxy", proxy);
+   return p;
+}
+
+static void
+geo_clue2_client_location_updated_data_free(void *user_data EINA_UNUSED, void 
*func_data)
+{
+   Geo_Clue2_Client_LocationUpdated_Data *s_data = func_data;
+   free(s_data->old);
+   free(s_data->new);
+   free(s_data);
+}
+
+static void
+on_geo_clue2_client_location_updated(void *data, const Eldbus_Message *msg)
+{
+   Eldbus_Proxy *proxy = data;
+   Geo_Clue2_Client_LocationUpdated_Data *s_data = calloc(1, 
sizeof(Geo_Clue2_Client_LocationUpdated_Data));
+   s_data->proxy = proxy;
+   if (!eldbus_message_arguments_get(msg, "oo", &s_data->old, &s_data->new))
+     {
+        ERR("Error: Getting arguments from message.");
+        free(s_data);
+        return;
+     }
+   s_data->old = strdup(s_data->old);
+   s_data->new = strdup(s_data->new);
+   ecore_event_add(GEO_CLUE2_CLIENT_LOCATION_UPDATED_EVENT, s_data, 
geo_clue2_client_location_updated_data_free, NULL);
+}
+
+static void
+cb_geo_clue2_client_location(void *data, const Eldbus_Message *msg, 
Eldbus_Pending *pending)
+{
+   void *user_data = eldbus_pending_data_del(pending, "__user_data");
+   const char *error, *error_msg;
+   Eldbus_Codegen_Property_String_Get_Cb cb = data;
+   Eldbus_Proxy *proxy = eldbus_pending_data_del(pending, "__proxy");
+   Eldbus_Message_Iter *variant;
+   const char *v;
+   if (eldbus_message_error_get(msg, &error, &error_msg))
+     {
+        Eldbus_Error_Info error_info = {error, error_msg};
+        cb(user_data, pending, "Location", proxy, &error_info, NULL);
+        return;
+     }
+   if (!eldbus_message_arguments_get(msg, "v", &variant))
+     {
+        Eldbus_Error_Info error_info = {"", ""};
+        cb(user_data, pending, "Location", proxy, &error_info, NULL);
+        return;
+     }
+   if (!eldbus_message_iter_arguments_get(variant, "o", &v))
+     {
+        Eldbus_Error_Info error_info = {"", ""};
+        cb(user_data, pending, "Location", proxy, &error_info, NULL);
+        return;
+     }
+   cb(user_data, pending, "Location", proxy, NULL, v);
+}
+
+Eldbus_Pending *
+geo_clue2_client_location_propget(Eldbus_Proxy *proxy, 
Eldbus_Codegen_Property_String_Get_Cb cb, const void *data)
+{
+   Eldbus_Pending *p;
+   EINA_SAFETY_ON_NULL_RETURN_VAL(proxy, NULL);
+   p = eldbus_proxy_property_get(proxy, "Location", 
cb_geo_clue2_client_location, cb);
+   if (data)
+     eldbus_pending_data_set(p, "__user_data", data);
+   eldbus_pending_data_set(p, "__proxy", proxy);
+   return p;
+}
+
+static void
+cb_geo_clue2_client_distance_threshold(void *data, const Eldbus_Message *msg, 
Eldbus_Pending *pending)
+{
+   void *user_data = eldbus_pending_data_del(pending, "__user_data");
+   const char *error, *error_msg;
+   Eldbus_Codegen_Property_Uint32_Get_Cb cb = data;
+   Eldbus_Proxy *proxy = eldbus_pending_data_del(pending, "__proxy");
+   Eldbus_Message_Iter *variant;
+   unsigned int v;
+   if (eldbus_message_error_get(msg, &error, &error_msg))
+     {
+        Eldbus_Error_Info error_info = {error, error_msg};
+        cb(user_data, pending, "DistanceThreshold", proxy, &error_info, 0);
+        return;
+     }
+   if (!eldbus_message_arguments_get(msg, "v", &variant))
+     {
+        Eldbus_Error_Info error_info = {"", ""};
+        cb(user_data, pending, "DistanceThreshold", proxy, &error_info, 0);
+        return;
+     }
+   if (!eldbus_message_iter_arguments_get(variant, "u", &v))
+     {
+        Eldbus_Error_Info error_info = {"", ""};
+        cb(user_data, pending, "DistanceThreshold", proxy, &error_info, 0);
+        return;
+     }
+   cb(user_data, pending, "DistanceThreshold", proxy, NULL, v);
+}
+
+Eldbus_Pending *
+geo_clue2_client_distance_threshold_propget(Eldbus_Proxy *proxy, 
Eldbus_Codegen_Property_Uint32_Get_Cb cb, const void *data)
+{
+   Eldbus_Pending *p;
+   EINA_SAFETY_ON_NULL_RETURN_VAL(proxy, NULL);
+   p = eldbus_proxy_property_get(proxy, "DistanceThreshold", 
cb_geo_clue2_client_distance_threshold, cb);
+   if (data)
+     eldbus_pending_data_set(p, "__user_data", data);
+   eldbus_pending_data_set(p, "__proxy", proxy);
+   return p;
+}
+
+static void
+cb_geo_clue2_client_distance_threshold_set(void *data, const Eldbus_Message 
*msg, Eldbus_Pending *pending)
+{
+   const char *error, *error_msg;
+   void *user_data = eldbus_pending_data_del(pending, "__user_data");
+   Eldbus_Proxy *proxy = eldbus_pending_data_del(pending, "__proxy");
+   Eldbus_Codegen_Property_Set_Cb cb = data;
+   if (eldbus_message_error_get(msg, &error, &error_msg))     {
+        Eldbus_Error_Info error_info = {error, error_msg};
+
+        cb(user_data, "DistanceThreshold", proxy, pending, &error_info);
+        return;
+     }
+   cb(user_data, "DistanceThreshold", proxy, pending, NULL);
+}
+
+Eldbus_Pending *
+geo_clue2_client_distance_threshold_propset(Eldbus_Proxy *proxy, 
Eldbus_Codegen_Property_Set_Cb cb, const void *data, const void *value)
+{
+   Eldbus_Pending *p;
+   EINA_SAFETY_ON_NULL_RETURN_VAL(proxy, NULL);
+   EINA_SAFETY_ON_NULL_RETURN_VAL(value, NULL);
+   p = eldbus_proxy_property_set(proxy, "DistanceThreshold", "u", value, 
cb_geo_clue2_client_distance_threshold_set, data);
+   eldbus_pending_data_set(p, "__user_data", data);
+   eldbus_pending_data_set(p, "__proxy", proxy);
+   return p;
+}
+
+static void
+cb_geo_clue2_client_desktop_id(void *data, const Eldbus_Message *msg, 
Eldbus_Pending *pending)
+{
+   void *user_data = eldbus_pending_data_del(pending, "__user_data");
+   const char *error, *error_msg;
+   Eldbus_Codegen_Property_String_Get_Cb cb = data;
+   Eldbus_Proxy *proxy = eldbus_pending_data_del(pending, "__proxy");
+   Eldbus_Message_Iter *variant;
+   const char *v;
+   if (eldbus_message_error_get(msg, &error, &error_msg))
+     {
+        Eldbus_Error_Info error_info = {error, error_msg};
+        cb(user_data, pending, "DesktopId", proxy, &error_info, NULL);
+        return;
+     }
+   if (!eldbus_message_arguments_get(msg, "v", &variant))
+     {
+        Eldbus_Error_Info error_info = {"", ""};
+        cb(user_data, pending, "DesktopId", proxy, &error_info, NULL);
+        return;
+     }
+   if (!eldbus_message_iter_arguments_get(variant, "s", &v))
+     {
+        Eldbus_Error_Info error_info = {"", ""};
+        cb(user_data, pending, "DesktopId", proxy, &error_info, NULL);
+        return;
+     }
+   cb(user_data, pending, "DesktopId", proxy, NULL, v);
+}
+
+Eldbus_Pending *
+geo_clue2_client_desktop_id_propget(Eldbus_Proxy *proxy, 
Eldbus_Codegen_Property_String_Get_Cb cb, const void *data)
+{
+   Eldbus_Pending *p;
+   EINA_SAFETY_ON_NULL_RETURN_VAL(proxy, NULL);
+   p = eldbus_proxy_property_get(proxy, "DesktopId", 
cb_geo_clue2_client_desktop_id, cb);
+   if (data)
+     eldbus_pending_data_set(p, "__user_data", data);
+   eldbus_pending_data_set(p, "__proxy", proxy);
+   return p;
+}
+
+static void
+cb_geo_clue2_client_desktop_id_set(void *data, const Eldbus_Message *msg, 
Eldbus_Pending *pending)
+{
+   const char *error, *error_msg;
+   void *user_data = eldbus_pending_data_del(pending, "__user_data");
+   Eldbus_Proxy *proxy = eldbus_pending_data_del(pending, "__proxy");
+   Eldbus_Codegen_Property_Set_Cb cb = data;
+   if (eldbus_message_error_get(msg, &error, &error_msg))     {
+        Eldbus_Error_Info error_info = {error, error_msg};
+
+        cb(user_data, "DesktopId", proxy, pending, &error_info);
+        return;
+     }
+   cb(user_data, "DesktopId", proxy, pending, NULL);
+}
+
+Eldbus_Pending *
+geo_clue2_client_desktop_id_propset(Eldbus_Proxy *proxy, 
Eldbus_Codegen_Property_Set_Cb cb, const void *data, const void *value)
+{
+   Eldbus_Pending *p;
+   EINA_SAFETY_ON_NULL_RETURN_VAL(proxy, NULL);
+   EINA_SAFETY_ON_NULL_RETURN_VAL(value, NULL);
+   p = eldbus_proxy_property_set(proxy, "DesktopId", "s", value, 
cb_geo_clue2_client_desktop_id_set, data);
+   eldbus_pending_data_set(p, "__user_data", data);
+   eldbus_pending_data_set(p, "__proxy", proxy);
+   return p;
+}
+
+static void
+cb_geo_clue2_client_requested_accuracy_level(void *data, const Eldbus_Message 
*msg, Eldbus_Pending *pending)
+{
+   void *user_data = eldbus_pending_data_del(pending, "__user_data");
+   const char *error, *error_msg;
+   Eldbus_Codegen_Property_Uint32_Get_Cb cb = data;
+   Eldbus_Proxy *proxy = eldbus_pending_data_del(pending, "__proxy");
+   Eldbus_Message_Iter *variant;
+   unsigned int v;
+   if (eldbus_message_error_get(msg, &error, &error_msg))
+     {
+        Eldbus_Error_Info error_info = {error, error_msg};
+        cb(user_data, pending, "RequestedAccuracyLevel", proxy, &error_info, 
0);
+        return;
+     }
+   if (!eldbus_message_arguments_get(msg, "v", &variant))
+     {
+        Eldbus_Error_Info error_info = {"", ""};
+        cb(user_data, pending, "RequestedAccuracyLevel", proxy, &error_info, 
0);
+        return;
+     }
+   if (!eldbus_message_iter_arguments_get(variant, "u", &v))
+     {
+        Eldbus_Error_Info error_info = {"", ""};
+        cb(user_data, pending, "RequestedAccuracyLevel", proxy, &error_info, 
0);
+        return;
+     }
+   cb(user_data, pending, "RequestedAccuracyLevel", proxy, NULL, v);
+}
+
+Eldbus_Pending *
+geo_clue2_client_requested_accuracy_level_propget(Eldbus_Proxy *proxy, 
Eldbus_Codegen_Property_Uint32_Get_Cb cb, const void *data)
+{
+   Eldbus_Pending *p;
+   EINA_SAFETY_ON_NULL_RETURN_VAL(proxy, NULL);
+   p = eldbus_proxy_property_get(proxy, "RequestedAccuracyLevel", 
cb_geo_clue2_client_requested_accuracy_level, cb);
+   if (data)
+     eldbus_pending_data_set(p, "__user_data", data);
+   eldbus_pending_data_set(p, "__proxy", proxy);
+   return p;
+}
+
+static void
+cb_geo_clue2_client_requested_accuracy_level_set(void *data, const 
Eldbus_Message *msg, Eldbus_Pending *pending)
+{
+   const char *error, *error_msg;
+   void *user_data = eldbus_pending_data_del(pending, "__user_data");
+   Eldbus_Proxy *proxy = eldbus_pending_data_del(pending, "__proxy");
+   Eldbus_Codegen_Property_Set_Cb cb = data;
+   if (eldbus_message_error_get(msg, &error, &error_msg))     {
+        Eldbus_Error_Info error_info = {error, error_msg};
+
+        cb(user_data, "RequestedAccuracyLevel", proxy, pending, &error_info);
+        return;
+     }
+   cb(user_data, "RequestedAccuracyLevel", proxy, pending, NULL);
+}
+
+Eldbus_Pending *
+geo_clue2_client_requested_accuracy_level_propset(Eldbus_Proxy *proxy, 
Eldbus_Codegen_Property_Set_Cb cb, const void *data, const void *value)
+{
+   Eldbus_Pending *p;
+   EINA_SAFETY_ON_NULL_RETURN_VAL(proxy, NULL);
+   EINA_SAFETY_ON_NULL_RETURN_VAL(value, NULL);
+   p = eldbus_proxy_property_set(proxy, "RequestedAccuracyLevel", "u", value, 
cb_geo_clue2_client_requested_accuracy_level_set, data);
+   eldbus_pending_data_set(p, "__user_data", data);
+   eldbus_pending_data_set(p, "__proxy", proxy);
+   return p;
+}
+
+static void
+cb_geo_clue2_client_active(void *data, const Eldbus_Message *msg, 
Eldbus_Pending *pending)
+{
+   void *user_data = eldbus_pending_data_del(pending, "__user_data");
+   const char *error, *error_msg;
+   Eldbus_Codegen_Property_Bool_Get_Cb cb = data;
+   Eldbus_Proxy *proxy = eldbus_pending_data_del(pending, "__proxy");
+   Eldbus_Message_Iter *variant;
+   Eina_Bool v;
+   if (eldbus_message_error_get(msg, &error, &error_msg))
+     {
+        Eldbus_Error_Info error_info = {error, error_msg};
+        cb(user_data, pending, "Active", proxy, &error_info, 0);
+        return;
+     }
+   if (!eldbus_message_arguments_get(msg, "v", &variant))
+     {
+        Eldbus_Error_Info error_info = {"", ""};
+        cb(user_data, pending, "Active", proxy, &error_info, 0);
+        return;
+     }
+   if (!eldbus_message_iter_arguments_get(variant, "b", &v))
+     {
+        Eldbus_Error_Info error_info = {"", ""};
+        cb(user_data, pending, "Active", proxy, &error_info, 0);
+        return;
+     }
+   cb(user_data, pending, "Active", proxy, NULL, v);
+}
+
+Eldbus_Pending *
+geo_clue2_client_active_propget(Eldbus_Proxy *proxy, 
Eldbus_Codegen_Property_Bool_Get_Cb cb, const void *data)
+{
+   Eldbus_Pending *p;
+   EINA_SAFETY_ON_NULL_RETURN_VAL(proxy, NULL);
+   p = eldbus_proxy_property_get(proxy, "Active", cb_geo_clue2_client_active, 
cb);
+   if (data)
+     eldbus_pending_data_set(p, "__user_data", data);
+   eldbus_pending_data_set(p, "__proxy", proxy);
+   return p;
+}
+
+void
+geo_clue2_client_log_domain_set(int id)
+{
+   _log_main = id;
+}
+
+void
+geo_clue2_client_proxy_unref(Eldbus_Proxy *proxy)
+{
+   Eldbus_Object *obj = eldbus_proxy_object_get(proxy);
+   eldbus_proxy_unref(proxy);
+   eldbus_object_unref(obj);
+}
+
+Eldbus_Proxy *
+geo_clue2_client_proxy_get(Eldbus_Connection *conn, const char *bus, const 
char *path)
+{
+   Eldbus_Object *obj;
+   Eldbus_Proxy *proxy;
+   EINA_SAFETY_ON_NULL_RETURN_VAL(conn, NULL);
+   EINA_SAFETY_ON_NULL_RETURN_VAL(bus, NULL);
+   if (!path) path = "/";
+   obj = eldbus_object_get(conn, bus, path);
+   proxy = eldbus_proxy_get(obj, "org.freedesktop.GeoClue2.Client");
+   eldbus_proxy_signal_handler_add(proxy, "LocationUpdated", 
on_geo_clue2_client_location_updated, proxy);
+   if (!GEO_CLUE2_CLIENT_LOCATION_UPDATED_EVENT)
+     GEO_CLUE2_CLIENT_LOCATION_UPDATED_EVENT = ecore_event_type_new();
+   return proxy;
+}
diff --git a/src/lib/elocation/gen/eldbus_geo_clue2_client.h 
b/src/lib/elocation/gen/eldbus_geo_clue2_client.h
new file mode 100644
index 0000000..5f73069
--- /dev/null
+++ b/src/lib/elocation/gen/eldbus_geo_clue2_client.h
@@ -0,0 +1,32 @@
+#ifndef ELDBUS_GEO_CLUE2_CLIENT_H
+#define ELDBUS_GEO_CLUE2_CLIENT_H
+
+#include <Eina.h>
+#include <Ecore.h>
+#include <Eldbus.h>
+#include "eldbus_utils.h"
+
+Eldbus_Proxy *geo_clue2_client_proxy_get(Eldbus_Connection *conn, const char 
*bus, const char *path);
+void geo_clue2_client_proxy_unref(Eldbus_Proxy *proxy);
+void geo_clue2_client_log_domain_set(int id);
+typedef void (*Geo_Clue2_Client_Start_Cb)(Eldbus_Proxy *proxy, void *data, 
Eldbus_Pending *pending, Eldbus_Error_Info *error);
+Eldbus_Pending *geo_clue2_client_start_call(Eldbus_Proxy *proxy, 
Geo_Clue2_Client_Start_Cb cb, const void *data);
+typedef void (*Geo_Clue2_Client_Stop_Cb)(Eldbus_Proxy *proxy, void *data, 
Eldbus_Pending *pending, Eldbus_Error_Info *error);
+Eldbus_Pending *geo_clue2_client_stop_call(Eldbus_Proxy *proxy, 
Geo_Clue2_Client_Stop_Cb cb, const void *data);
+extern int GEO_CLUE2_CLIENT_LOCATION_UPDATED_EVENT;
+typedef struct _Geo_Clue2_Client_LocationUpdated_Data
+{
+   Eldbus_Proxy *proxy;
+   char *old;
+   char *new;
+} Geo_Clue2_Client_LocationUpdated_Data;
+Eldbus_Pending *geo_clue2_client_location_propget(Eldbus_Proxy *proxy, 
Eldbus_Codegen_Property_String_Get_Cb cb, const void *data);
+Eldbus_Pending *geo_clue2_client_distance_threshold_propget(Eldbus_Proxy 
*proxy, Eldbus_Codegen_Property_Uint32_Get_Cb cb, const void *data);
+Eldbus_Pending *geo_clue2_client_distance_threshold_propset(Eldbus_Proxy 
*proxy, Eldbus_Codegen_Property_Set_Cb cb, const void *data, const void *value);
+Eldbus_Pending *geo_clue2_client_desktop_id_propget(Eldbus_Proxy *proxy, 
Eldbus_Codegen_Property_String_Get_Cb cb, const void *data);
+Eldbus_Pending *geo_clue2_client_desktop_id_propset(Eldbus_Proxy *proxy, 
Eldbus_Codegen_Property_Set_Cb cb, const void *data, const void *value);
+Eldbus_Pending *geo_clue2_client_requested_accuracy_level_propget(Eldbus_Proxy 
*proxy, Eldbus_Codegen_Property_Uint32_Get_Cb cb, const void *data);
+Eldbus_Pending *geo_clue2_client_requested_accuracy_level_propset(Eldbus_Proxy 
*proxy, Eldbus_Codegen_Property_Set_Cb cb, const void *data, const void *value);
+Eldbus_Pending *geo_clue2_client_active_propget(Eldbus_Proxy *proxy, 
Eldbus_Codegen_Property_Bool_Get_Cb cb, const void *data);
+
+#endif
diff --git a/src/lib/elocation/gen/eldbus_geo_clue2_location.c 
b/src/lib/elocation/gen/eldbus_geo_clue2_location.c
new file mode 100644
index 0000000..53dbf3c
--- /dev/null
+++ b/src/lib/elocation/gen/eldbus_geo_clue2_location.c
@@ -0,0 +1,242 @@
+#include "eldbus_geo_clue2_location.h"
+
+static int _log_main = -1;
+#undef ERR
+#define ERR(...) EINA_LOG_DOM_ERR(_log_main, __VA_ARGS__);
+
+static void
+cb_geo_clue2_location_latitude(void *data, const Eldbus_Message *msg, 
Eldbus_Pending *pending)
+{
+   void *user_data = eldbus_pending_data_del(pending, "__user_data");
+   const char *error, *error_msg;
+   Eldbus_Codegen_Property_Double_Get_Cb cb = data;
+   Eldbus_Proxy *proxy = eldbus_pending_data_del(pending, "__proxy");
+   Eldbus_Message_Iter *variant;
+   double v;
+   if (eldbus_message_error_get(msg, &error, &error_msg))
+     {
+        Eldbus_Error_Info error_info = {error, error_msg};
+        cb(user_data, pending, "Latitude", proxy, &error_info, 0);
+        return;
+     }
+   if (!eldbus_message_arguments_get(msg, "v", &variant))
+     {
+        Eldbus_Error_Info error_info = {"", ""};
+        cb(user_data, pending, "Latitude", proxy, &error_info, 0);
+        return;
+     }
+   if (!eldbus_message_iter_arguments_get(variant, "d", &v))
+     {
+        Eldbus_Error_Info error_info = {"", ""};
+        cb(user_data, pending, "Latitude", proxy, &error_info, 0);
+        return;
+     }
+   cb(user_data, pending, "Latitude", proxy, NULL, v);
+}
+
+Eldbus_Pending *
+geo_clue2_location_latitude_propget(Eldbus_Proxy *proxy, 
Eldbus_Codegen_Property_Double_Get_Cb cb, const void *data)
+{
+   Eldbus_Pending *p;
+   EINA_SAFETY_ON_NULL_RETURN_VAL(proxy, NULL);
+   p = eldbus_proxy_property_get(proxy, "Latitude", 
cb_geo_clue2_location_latitude, cb);
+   if (data)
+     eldbus_pending_data_set(p, "__user_data", data);
+   eldbus_pending_data_set(p, "__proxy", proxy);
+   return p;
+}
+
+static void
+cb_geo_clue2_location_longitude(void *data, const Eldbus_Message *msg, 
Eldbus_Pending *pending)
+{
+   void *user_data = eldbus_pending_data_del(pending, "__user_data");
+   const char *error, *error_msg;
+   Eldbus_Codegen_Property_Double_Get_Cb cb = data;
+   Eldbus_Proxy *proxy = eldbus_pending_data_del(pending, "__proxy");
+   Eldbus_Message_Iter *variant;
+   double v;
+   if (eldbus_message_error_get(msg, &error, &error_msg))
+     {
+        Eldbus_Error_Info error_info = {error, error_msg};
+        cb(user_data, pending, "Longitude", proxy, &error_info, 0);
+        return;
+     }
+   if (!eldbus_message_arguments_get(msg, "v", &variant))
+     {
+        Eldbus_Error_Info error_info = {"", ""};
+        cb(user_data, pending, "Longitude", proxy, &error_info, 0);
+        return;
+     }
+   if (!eldbus_message_iter_arguments_get(variant, "d", &v))
+     {
+        Eldbus_Error_Info error_info = {"", ""};
+        cb(user_data, pending, "Longitude", proxy, &error_info, 0);
+        return;
+     }
+   cb(user_data, pending, "Longitude", proxy, NULL, v);
+}
+
+Eldbus_Pending *
+geo_clue2_location_longitude_propget(Eldbus_Proxy *proxy, 
Eldbus_Codegen_Property_Double_Get_Cb cb, const void *data)
+{
+   Eldbus_Pending *p;
+   EINA_SAFETY_ON_NULL_RETURN_VAL(proxy, NULL);
+   p = eldbus_proxy_property_get(proxy, "Longitude", 
cb_geo_clue2_location_longitude, cb);
+   if (data)
+     eldbus_pending_data_set(p, "__user_data", data);
+   eldbus_pending_data_set(p, "__proxy", proxy);
+   return p;
+}
+
+static void
+cb_geo_clue2_location_accuracy(void *data, const Eldbus_Message *msg, 
Eldbus_Pending *pending)
+{
+   void *user_data = eldbus_pending_data_del(pending, "__user_data");
+   const char *error, *error_msg;
+   Eldbus_Codegen_Property_Double_Get_Cb cb = data;
+   Eldbus_Proxy *proxy = eldbus_pending_data_del(pending, "__proxy");
+   Eldbus_Message_Iter *variant;
+   double v;
+   if (eldbus_message_error_get(msg, &error, &error_msg))
+     {
+        Eldbus_Error_Info error_info = {error, error_msg};
+        cb(user_data, pending, "Accuracy", proxy, &error_info, 0);
+        return;
+     }
+   if (!eldbus_message_arguments_get(msg, "v", &variant))
+     {
+        Eldbus_Error_Info error_info = {"", ""};
+        cb(user_data, pending, "Accuracy", proxy, &error_info, 0);
+        return;
+     }
+   if (!eldbus_message_iter_arguments_get(variant, "d", &v))
+     {
+        Eldbus_Error_Info error_info = {"", ""};
+        cb(user_data, pending, "Accuracy", proxy, &error_info, 0);
+        return;
+     }
+   cb(user_data, pending, "Accuracy", proxy, NULL, v);
+}
+
+Eldbus_Pending *
+geo_clue2_location_accuracy_propget(Eldbus_Proxy *proxy, 
Eldbus_Codegen_Property_Double_Get_Cb cb, const void *data)
+{
+   Eldbus_Pending *p;
+   EINA_SAFETY_ON_NULL_RETURN_VAL(proxy, NULL);
+   p = eldbus_proxy_property_get(proxy, "Accuracy", 
cb_geo_clue2_location_accuracy, cb);
+   if (data)
+     eldbus_pending_data_set(p, "__user_data", data);
+   eldbus_pending_data_set(p, "__proxy", proxy);
+   return p;
+}
+
+static void
+cb_geo_clue2_location_altitude(void *data, const Eldbus_Message *msg, 
Eldbus_Pending *pending)
+{
+   void *user_data = eldbus_pending_data_del(pending, "__user_data");
+   const char *error, *error_msg;
+   Eldbus_Codegen_Property_Double_Get_Cb cb = data;
+   Eldbus_Proxy *proxy = eldbus_pending_data_del(pending, "__proxy");
+   Eldbus_Message_Iter *variant;
+   double v;
+   if (eldbus_message_error_get(msg, &error, &error_msg))
+     {
+        Eldbus_Error_Info error_info = {error, error_msg};
+        cb(user_data, pending, "Altitude", proxy, &error_info, 0);
+        return;
+     }
+   if (!eldbus_message_arguments_get(msg, "v", &variant))
+     {
+        Eldbus_Error_Info error_info = {"", ""};
+        cb(user_data, pending, "Altitude", proxy, &error_info, 0);
+        return;
+     }
+   if (!eldbus_message_iter_arguments_get(variant, "d", &v))
+     {
+        Eldbus_Error_Info error_info = {"", ""};
+        cb(user_data, pending, "Altitude", proxy, &error_info, 0);
+        return;
+     }
+   cb(user_data, pending, "Altitude", proxy, NULL, v);
+}
+
+Eldbus_Pending *
+geo_clue2_location_altitude_propget(Eldbus_Proxy *proxy, 
Eldbus_Codegen_Property_Double_Get_Cb cb, const void *data)
+{
+   Eldbus_Pending *p;
+   EINA_SAFETY_ON_NULL_RETURN_VAL(proxy, NULL);
+   p = eldbus_proxy_property_get(proxy, "Altitude", 
cb_geo_clue2_location_altitude, cb);
+   if (data)
+     eldbus_pending_data_set(p, "__user_data", data);
+   eldbus_pending_data_set(p, "__proxy", proxy);
+   return p;
+}
+
+static void
+cb_geo_clue2_location_description(void *data, const Eldbus_Message *msg, 
Eldbus_Pending *pending)
+{
+   void *user_data = eldbus_pending_data_del(pending, "__user_data");
+   const char *error, *error_msg;
+   Eldbus_Codegen_Property_String_Get_Cb cb = data;
+   Eldbus_Proxy *proxy = eldbus_pending_data_del(pending, "__proxy");
+   Eldbus_Message_Iter *variant;
+   const char *v;
+   if (eldbus_message_error_get(msg, &error, &error_msg))
+     {
+        Eldbus_Error_Info error_info = {error, error_msg};
+        cb(user_data, pending, "Description", proxy, &error_info, NULL);
+        return;
+     }
+   if (!eldbus_message_arguments_get(msg, "v", &variant))
+     {
+        Eldbus_Error_Info error_info = {"", ""};
+        cb(user_data, pending, "Description", proxy, &error_info, NULL);
+        return;
+     }
+   if (!eldbus_message_iter_arguments_get(variant, "s", &v))
+     {
+        Eldbus_Error_Info error_info = {"", ""};
+        cb(user_data, pending, "Description", proxy, &error_info, NULL);
+        return;
+     }
+   cb(user_data, pending, "Description", proxy, NULL, v);
+}
+
+Eldbus_Pending *
+geo_clue2_location_description_propget(Eldbus_Proxy *proxy, 
Eldbus_Codegen_Property_String_Get_Cb cb, const void *data)
+{
+   Eldbus_Pending *p;
+   EINA_SAFETY_ON_NULL_RETURN_VAL(proxy, NULL);
+   p = eldbus_proxy_property_get(proxy, "Description", 
cb_geo_clue2_location_description, cb);
+   if (data)
+     eldbus_pending_data_set(p, "__user_data", data);
+   eldbus_pending_data_set(p, "__proxy", proxy);
+   return p;
+}
+
+void
+geo_clue2_location_log_domain_set(int id)
+{
+   _log_main = id;
+}
+
+void
+geo_clue2_location_proxy_unref(Eldbus_Proxy *proxy)
+{
+   Eldbus_Object *obj = eldbus_proxy_object_get(proxy);
+   eldbus_proxy_unref(proxy);
+   eldbus_object_unref(obj);
+}
+
+Eldbus_Proxy *
+geo_clue2_location_proxy_get(Eldbus_Connection *conn, const char *bus, const 
char *path)
+{
+   Eldbus_Object *obj;
+   Eldbus_Proxy *proxy;
+   EINA_SAFETY_ON_NULL_RETURN_VAL(conn, NULL);
+   EINA_SAFETY_ON_NULL_RETURN_VAL(bus, NULL);
+   if (!path) path = "/";
+   obj = eldbus_object_get(conn, bus, path);
+   proxy = eldbus_proxy_get(obj, "org.freedesktop.GeoClue2.Location");
+   return proxy;
+}
diff --git a/src/lib/elocation/gen/eldbus_geo_clue2_location.h 
b/src/lib/elocation/gen/eldbus_geo_clue2_location.h
new file mode 100644
index 0000000..38793a1
--- /dev/null
+++ b/src/lib/elocation/gen/eldbus_geo_clue2_location.h
@@ -0,0 +1,18 @@
+#ifndef ELDBUS_GEO_CLUE2_LOCATION_H
+#define ELDBUS_GEO_CLUE2_LOCATION_H
+
+#include <Eina.h>
+#include <Ecore.h>
+#include <Eldbus.h>
+#include "eldbus_utils.h"
+
+Eldbus_Proxy *geo_clue2_location_proxy_get(Eldbus_Connection *conn, const char 
*bus, const char *path);
+void geo_clue2_location_proxy_unref(Eldbus_Proxy *proxy);
+void geo_clue2_location_log_domain_set(int id);
+Eldbus_Pending *geo_clue2_location_latitude_propget(Eldbus_Proxy *proxy, 
Eldbus_Codegen_Property_Double_Get_Cb cb, const void *data);
+Eldbus_Pending *geo_clue2_location_longitude_propget(Eldbus_Proxy *proxy, 
Eldbus_Codegen_Property_Double_Get_Cb cb, const void *data);
+Eldbus_Pending *geo_clue2_location_accuracy_propget(Eldbus_Proxy *proxy, 
Eldbus_Codegen_Property_Double_Get_Cb cb, const void *data);
+Eldbus_Pending *geo_clue2_location_altitude_propget(Eldbus_Proxy *proxy, 
Eldbus_Codegen_Property_Double_Get_Cb cb, const void *data);
+Eldbus_Pending *geo_clue2_location_description_propget(Eldbus_Proxy *proxy, 
Eldbus_Codegen_Property_String_Get_Cb cb, const void *data);
+
+#endif
\ No newline at end of file
diff --git a/src/lib/elocation/gen/eldbus_geo_clue2_manager.c 
b/src/lib/elocation/gen/eldbus_geo_clue2_manager.c
new file mode 100644
index 0000000..1fea889
--- /dev/null
+++ b/src/lib/elocation/gen/eldbus_geo_clue2_manager.c
@@ -0,0 +1,203 @@
+#include "eldbus_geo_clue2_manager.h"
+
+static int _log_main = -1;
+#undef ERR
+#define ERR(...) EINA_LOG_DOM_ERR(_log_main, __VA_ARGS__);
+
+static void
+cb_geo_clue2_manager_get_client(void *data, const Eldbus_Message *msg, 
Eldbus_Pending *pending)
+{
+   void *user_data = eldbus_pending_data_del(pending, "__user_data");
+   Geo_Clue2_Manager_Get_Client_Cb cb = data;
+   const char *error, *error_msg;
+   Eldbus_Proxy *proxy = eldbus_pending_data_del(pending, "__proxy");
+   const char *client = NULL;
+   if (eldbus_message_error_get(msg, &error, &error_msg))
+     {
+        Eldbus_Error_Info error_info = {error, error_msg};
+        cb(proxy, user_data, pending, &error_info, client);
+        return;
+     }
+   if (!eldbus_message_arguments_get(msg, "o", &client))
+     {
+        Eldbus_Error_Info error_info = {"", ""};
+        ERR("Error: Getting arguments from message.");
+        cb(proxy, user_data, pending, &error_info, client);
+        return;
+     }
+   cb(proxy, user_data, pending, NULL, client);
+   return;
+}
+
+Eldbus_Pending *
+geo_clue2_manager_get_client_call(Eldbus_Proxy *proxy, 
Geo_Clue2_Manager_Get_Client_Cb cb, const void *data)
+{
+   Eldbus_Message *msg;
+   Eldbus_Pending *p;
+   EINA_SAFETY_ON_NULL_RETURN_VAL(proxy, NULL);
+   msg = eldbus_proxy_method_call_new(proxy, "GetClient");
+   if (!eldbus_message_arguments_append(msg, ""))
+     {
+        ERR("Error: Filling message.");
+        return NULL;
+     }
+   p = eldbus_proxy_send(proxy, msg, cb_geo_clue2_manager_get_client, cb, -1);
+   if (data)
+     eldbus_pending_data_set(p, "__user_data", data);
+   eldbus_pending_data_set(p, "__proxy", proxy);
+   return p;
+}
+
+static void
+cb_geo_clue2_manager_add_agent(void *data, const Eldbus_Message *msg, 
Eldbus_Pending *pending)
+{
+   void *user_data = eldbus_pending_data_del(pending, "__user_data");
+   Geo_Clue2_Manager_Add_Agent_Cb cb = data;
+   const char *error, *error_msg;
+   Eldbus_Proxy *proxy = eldbus_pending_data_del(pending, "__proxy");
+   if (eldbus_message_error_get(msg, &error, &error_msg))
+     {
+        Eldbus_Error_Info error_info = {error, error_msg};
+        cb(proxy, user_data, pending, &error_info);
+        return;
+     }
+   if (!eldbus_message_arguments_get(msg, ""))
+     {
+        Eldbus_Error_Info error_info = {"", ""};
+        ERR("Error: Getting arguments from message.");
+        cb(proxy, user_data, pending, &error_info);
+        return;
+     }
+   cb(proxy, user_data, pending, NULL);
+   return;
+}
+
+Eldbus_Pending *
+geo_clue2_manager_add_agent_call(Eldbus_Proxy *proxy, 
Geo_Clue2_Manager_Add_Agent_Cb cb, const void *data, const char *id)
+{
+   Eldbus_Message *msg;
+   Eldbus_Pending *p;
+   EINA_SAFETY_ON_NULL_RETURN_VAL(proxy, NULL);
+   msg = eldbus_proxy_method_call_new(proxy, "AddAgent");
+   if (!eldbus_message_arguments_append(msg, "s", id))
+     {
+        ERR("Error: Filling message.");
+        return NULL;
+     }
+   p = eldbus_proxy_send(proxy, msg, cb_geo_clue2_manager_add_agent, cb, -1);
+   if (data)
+     eldbus_pending_data_set(p, "__user_data", data);
+   eldbus_pending_data_set(p, "__proxy", proxy);
+   return p;
+}
+
+static void
+cb_geo_clue2_manager_in_use(void *data, const Eldbus_Message *msg, 
Eldbus_Pending *pending)
+{
+   void *user_data = eldbus_pending_data_del(pending, "__user_data");
+   const char *error, *error_msg;
+   Eldbus_Codegen_Property_Bool_Get_Cb cb = data;
+   Eldbus_Proxy *proxy = eldbus_pending_data_del(pending, "__proxy");
+   Eldbus_Message_Iter *variant;
+   Eina_Bool v;
+   if (eldbus_message_error_get(msg, &error, &error_msg))
+     {
+        Eldbus_Error_Info error_info = {error, error_msg};
+        cb(user_data, pending, "InUse", proxy, &error_info, 0);
+        return;
+     }
+   if (!eldbus_message_arguments_get(msg, "v", &variant))
+     {
+        Eldbus_Error_Info error_info = {"", ""};
+        cb(user_data, pending, "InUse", proxy, &error_info, 0);
+        return;
+     }
+   if (!eldbus_message_iter_arguments_get(variant, "b", &v))
+     {
+        Eldbus_Error_Info error_info = {"", ""};
+        cb(user_data, pending, "InUse", proxy, &error_info, 0);
+        return;
+     }
+   cb(user_data, pending, "InUse", proxy, NULL, v);
+}
+
+Eldbus_Pending *
+geo_clue2_manager_in_use_propget(Eldbus_Proxy *proxy, 
Eldbus_Codegen_Property_Bool_Get_Cb cb, const void *data)
+{
+   Eldbus_Pending *p;
+   EINA_SAFETY_ON_NULL_RETURN_VAL(proxy, NULL);
+   p = eldbus_proxy_property_get(proxy, "InUse", cb_geo_clue2_manager_in_use, 
cb);
+   if (data)
+     eldbus_pending_data_set(p, "__user_data", data);
+   eldbus_pending_data_set(p, "__proxy", proxy);
+   return p;
+}
+
+static void
+cb_geo_clue2_manager_available_accuracy_level(void *data, const Eldbus_Message 
*msg, Eldbus_Pending *pending)
+{
+   void *user_data = eldbus_pending_data_del(pending, "__user_data");
+   const char *error, *error_msg;
+   Eldbus_Codegen_Property_Uint32_Get_Cb cb = data;
+   Eldbus_Proxy *proxy = eldbus_pending_data_del(pending, "__proxy");
+   Eldbus_Message_Iter *variant;
+   unsigned int v;
+   if (eldbus_message_error_get(msg, &error, &error_msg))
+     {
+        Eldbus_Error_Info error_info = {error, error_msg};
+        cb(user_data, pending, "AvailableAccuracyLevel", proxy, &error_info, 
0);
+        return;
+     }
+   if (!eldbus_message_arguments_get(msg, "v", &variant))
+     {
+        Eldbus_Error_Info error_info = {"", ""};
+        cb(user_data, pending, "AvailableAccuracyLevel", proxy, &error_info, 
0);
+        return;
+     }
+   if (!eldbus_message_iter_arguments_get(variant, "u", &v))
+     {
+        Eldbus_Error_Info error_info = {"", ""};
+        cb(user_data, pending, "AvailableAccuracyLevel", proxy, &error_info, 
0);
+        return;
+     }
+   cb(user_data, pending, "AvailableAccuracyLevel", proxy, NULL, v);
+}
+
+Eldbus_Pending *
+geo_clue2_manager_available_accuracy_level_propget(Eldbus_Proxy *proxy, 
Eldbus_Codegen_Property_Uint32_Get_Cb cb, const void *data)
+{
+   Eldbus_Pending *p;
+   EINA_SAFETY_ON_NULL_RETURN_VAL(proxy, NULL);
+   p = eldbus_proxy_property_get(proxy, "AvailableAccuracyLevel", 
cb_geo_clue2_manager_available_accuracy_level, cb);
+   if (data)
+     eldbus_pending_data_set(p, "__user_data", data);
+   eldbus_pending_data_set(p, "__proxy", proxy);
+   return p;
+}
+
+void
+geo_clue2_manager_log_domain_set(int id)
+{
+   _log_main = id;
+}
+
+void
+geo_clue2_manager_proxy_unref(Eldbus_Proxy *proxy)
+{
+   Eldbus_Object *obj = eldbus_proxy_object_get(proxy);
+   eldbus_proxy_unref(proxy);
+   eldbus_object_unref(obj);
+}
+
+Eldbus_Proxy *
+geo_clue2_manager_proxy_get(Eldbus_Connection *conn, const char *bus, const 
char *path)
+{
+   Eldbus_Object *obj;
+   Eldbus_Proxy *proxy;
+   EINA_SAFETY_ON_NULL_RETURN_VAL(conn, NULL);
+   EINA_SAFETY_ON_NULL_RETURN_VAL(bus, NULL);
+   if (!path) path = "/";
+   obj = eldbus_object_get(conn, bus, path);
+   proxy = eldbus_proxy_get(obj, "org.freedesktop.GeoClue2.Manager");
+   return proxy;
+}
diff --git a/src/lib/elocation/gen/eldbus_geo_clue2_manager.h 
b/src/lib/elocation/gen/eldbus_geo_clue2_manager.h
new file mode 100644
index 0000000..b96323a
--- /dev/null
+++ b/src/lib/elocation/gen/eldbus_geo_clue2_manager.h
@@ -0,0 +1,19 @@
+#ifndef ELDBUS_GEO_CLUE2_MANAGER_H
+#define ELDBUS_GEO_CLUE2_MANAGER_H
+
+#include <Eina.h>
+#include <Ecore.h>
+#include <Eldbus.h>
+#include "eldbus_utils.h"
+
+Eldbus_Proxy *geo_clue2_manager_proxy_get(Eldbus_Connection *conn, const char 
*bus, const char *path);
+void geo_clue2_manager_proxy_unref(Eldbus_Proxy *proxy);
+void geo_clue2_manager_log_domain_set(int id);
+typedef void (*Geo_Clue2_Manager_Get_Client_Cb)(Eldbus_Proxy *proxy, void 
*data, Eldbus_Pending *pending, Eldbus_Error_Info *error, const char *client);
+Eldbus_Pending *geo_clue2_manager_get_client_call(Eldbus_Proxy *proxy, 
Geo_Clue2_Manager_Get_Client_Cb cb, const void *data);
+typedef void (*Geo_Clue2_Manager_Add_Agent_Cb)(Eldbus_Proxy *proxy, void 
*data, Eldbus_Pending *pending, Eldbus_Error_Info *error);
+Eldbus_Pending *geo_clue2_manager_add_agent_call(Eldbus_Proxy *proxy, 
Geo_Clue2_Manager_Add_Agent_Cb cb, const void *data, const char *id);
+Eldbus_Pending *geo_clue2_manager_in_use_propget(Eldbus_Proxy *proxy, 
Eldbus_Codegen_Property_Bool_Get_Cb cb, const void *data);
+Eldbus_Pending 
*geo_clue2_manager_available_accuracy_level_propget(Eldbus_Proxy *proxy, 
Eldbus_Codegen_Property_Uint32_Get_Cb cb, const void *data);
+
+#endif
\ No newline at end of file
diff --git a/src/lib/elocation/gen/eldbus_utils.h 
b/src/lib/elocation/gen/eldbus_utils.h
new file mode 100644
index 0000000..db4f9ae
--- /dev/null
+++ b/src/lib/elocation/gen/eldbus_utils.h
@@ -0,0 +1,24 @@
+#ifndef ELDBUS_UTILS_H
+#define ELDBUS_UTILS_H 1
+
+typedef struct _Eldbus_Error_Info
+{
+   const char *error;
+   const char *message;
+} Eldbus_Error_Info;
+
+typedef void (*Eldbus_Codegen_Property_Set_Cb)(void *data, const char 
*propname, Eldbus_Proxy *proxy, Eldbus_Pending *p, Eldbus_Error_Info 
*error_info);
+
+typedef void (*Eldbus_Codegen_Property_String_Get_Cb)(void *data, 
Eldbus_Pending *p, const char *propname, Eldbus_Proxy *proxy, Eldbus_Error_Info 
*error_info, const char *value);
+typedef void (*Eldbus_Codegen_Property_Int32_Get_Cb)(void *data, 
Eldbus_Pending *p, const char *propname, Eldbus_Proxy *proxy, Eldbus_Error_Info 
*error_info, int value);
+typedef void (*Eldbus_Codegen_Property_Byte_Get_Cb)(void *data, Eldbus_Pending 
*p, const char *propname, Eldbus_Proxy *proxy, Eldbus_Error_Info *error_info, 
unsigned char value);
+typedef void (*Eldbus_Codegen_Property_Bool_Get_Cb)(void *data, Eldbus_Pending 
*p, const char *propname, Eldbus_Proxy *proxy, Eldbus_Error_Info *error_info, 
Eina_Bool value);
+typedef void (*Eldbus_Codegen_Property_Int16_Get_Cb)(void *data, 
Eldbus_Pending *p, const char *propname, Eldbus_Proxy *proxy, Eldbus_Error_Info 
*error_info, short int value);
+typedef void (*Eldbus_Codegen_Property_Uint16_Get_Cb)(void *data, 
Eldbus_Pending *p, const char *propname, Eldbus_Proxy *proxy, Eldbus_Error_Info 
*error_info, unsigned short int value);
+typedef void (*Eldbus_Codegen_Property_Uint32_Get_Cb)(void *data, 
Eldbus_Pending *p, const char *propname, Eldbus_Proxy *proxy, Eldbus_Error_Info 
*error_info, unsigned int value);
+typedef void (*Eldbus_Codegen_Property_Double_Get_Cb)(void *data, 
Eldbus_Pending *p, const char *propname, Eldbus_Proxy *proxy, Eldbus_Error_Info 
*error_info, double value);
+typedef void (*Eldbus_Codegen_Property_Int64_Get_Cb)(void *data, 
Eldbus_Pending *p, const char *propname, Eldbus_Proxy *proxy, Eldbus_Error_Info 
*error_info, int64_t value);
+typedef void (*Eldbus_Codegen_Property_Uint64_Get_Cb)(void *data, 
Eldbus_Pending *p, const char *propname, Eldbus_Proxy *proxy, Eldbus_Error_Info 
*error_info, uint64_t value);
+typedef void (*Eldbus_Codegen_Property_Complex_Get_Cb)(void *data, 
Eldbus_Pending *p, const char *propname, Eldbus_Proxy *proxy, Eldbus_Error_Info 
*error_info, Eina_Value *value);
+
+#endif
\ No newline at end of file
diff --git a/src/lib/elocation/gen/org.freedesktop.GeoClue2.xml 
b/src/lib/elocation/gen/org.freedesktop.GeoClue2.xml
new file mode 100644
index 0000000..ab14565
--- /dev/null
+++ b/src/lib/elocation/gen/org.freedesktop.GeoClue2.xml
@@ -0,0 +1,199 @@
+<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"
+"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd";>
+
+<!--
+    GeoClue 2.0 Interface Specification
+
+    Copyright (C) 2013 Red Hat, Inc.
+-->
+
+<node>
+
+  <!--
+      org.freedesktop.GeoClue2.Manager:
+      @short_description: The GeoClue service manager
+
+      This is the interface you use to talk to main GeoClue2 manager object at
+      path "/org/freedesktop/GeoClue2/Manager". The only thing you do with this
+      interface is to call org.freedesktop.GeoClue2.Manager.GetClient() on it
+      to get your application specific client object.
+  -->
+  <interface name="org.freedesktop.GeoClue2.Manager">
+    <!--
+        InUse:
+
+        Whether service is currently is use by any application.
+    -->
+    <property name="InUse" type="b" access="read"/>
+
+    <!--
+        AvailableAccuracyLevel:
+
+        The level of available accuracy, as
+        <link linkend="GClueAccuracyLevel">GClueAccuracyLevel</link>.
+    -->
+    <property name="AvailableAccuracyLevel" type="u" access="read"/>
+
+    <!--
+        GetClient:
+        @client: The path for newly created client object
+
+        Retrieves a client object which can only be used by the calling
+        application only.
+    -->
+    <method name="GetClient">
+      <arg name="client" type="o" direction="out"/>
+    </method>
+
+    <!--
+        AddAgent:
+        @id: The Desktop ID (excluding .desktop) of the agent
+
+        An API for user authorization agents to register themselves. Each agent
+        is responsible for the user it is running as. Application developers
+        can and should simply ignore this API.
+    -->
+    <method name="AddAgent">
+      <arg name="id" type="s" direction="in"/>
+    </method>
+  </interface>
+
+  <!--
+      org.freedesktop.GeoClue2.Client:
+      @short_description: The Application-specific client API
+
+      This is the interface you use to retrieve location information and 
receive
+      location update signals from GeoClue service. You get the client object 
to
+      use this interface on from org.freedesktop.GeoClue2.Manager.GetClient()
+      method.
+  -->
+  <interface name="org.freedesktop.GeoClue2.Client">
+    <!--
+        Location:
+
+        Current location as path to a #org.freedesktop.GeoClue2.Location 
object.
+    -->
+    <property name="Location" type="o" access="read"/>
+
+    <!--
+        DistanceThreshold:
+
+        Contains the current distance threshold in meters. This value is used
+        by the service when it gets new location info. If the distance moved is
+        below the threshold, it won't emit the LocationUpdated signal.
+    -->
+    <property name="DistanceThreshold" type="u" access="readwrite"/>
+
+    <!--
+        DesktopId:
+
+        The desktop file id (the basename of the desktop file). This property
+        must be set by applications for authorization to work.
+    -->
+    <property name="DesktopId" type="s" access="readwrite"/>
+
+    <!--
+        RequestedAccuracyLevel:
+
+        The level of accuracy requested by client, as
+        <link linkend="GClueAccuracyLevel">GClueAccuracyLevel</link>.
+
+        Please keep in mind that the actual accuracy of location information is
+        dependent on available hardware on your machine, external resources
+        and/or how much accuracy user agrees to be confortable with.
+    -->
+    <property name="RequestedAccuracyLevel" type="u" access="readwrite"/>
+
+    <!--
+        Active:
+
+        If client is active, i-e started successfully using
+        org.freedesktop.GeoClue2.Client.Start() and receiving location updates.
+
+        Please keep in mind that geoclue can at any time stop and start the
+        client on user (agent) request. Applications that are interested in
+        in these changes, should watch for changes in this property.
+    -->
+    <property name="Active" type="b" access="read"/>
+
+    <!--
+        Start:
+
+        Start receiving events about the current location. Applications should
+        hook-up to #org.freedesktop.GeoClue2.Client::LocationUpdated signal
+        before calling this method.
+    -->
+    <method name="Start"/>
+
+    <!--
+        Stop:
+
+        Stop receiving events about the current location.
+    -->
+    <method name="Stop"/>
+
+    <!--
+        LocationUpdated:
+        @old: old location as path to a #org.freedesktop.GeoClue2.Location 
object
+        @new: new location as path to a #org.freedesktop.GeoClue2.Location 
object
+
+        The signal is emitted every time the location changes.
+        The client should set the DistanceThreshold property to control how
+        often this signal is emitted.
+    -->
+    <signal name="LocationUpdated">
+      <arg name="old" type="o"/>
+      <arg name="new" type="o"/>
+    </signal>
+  </interface>
+
+  <!--
+      org.freedesktop.GeoClue2.Location:
+      @short_description: The Location interface
+
+      This is the interface you use on location objects.
+  -->
+  <interface name="org.freedesktop.GeoClue2.Location">
+
+    <!--
+        Latitude:
+
+        The latitude of the location, in degrees.
+    -->
+    <property name="Latitude" type="d" access="read"/>
+
+    <!--
+        Longitude:
+
+        The longitude of the location, in degrees.
+    -->
+    <property name="Longitude" type="d" access="read"/>
+
+    <!--
+        Accuracy:
+
+        The accuracy of the location fix, in meters.
+    -->
+    <property name="Accuracy" type="d" access="read"/>
+
+    <!--
+        Altitude:
+
+        The altitude of the location fix, in meters. When unknown, its set to
+        minimum double value, -1.7976931348623157e+308.
+    -->
+    <property name="Altitude" type="d" access="read"/>
+
+    <!--
+        Description:
+
+        A human-readable description of the location, if available.
+
+        WARNING: Applications should not rely on this property since not all
+        sources provide a description. If you really need a description (or
+        more details) about current location, use a reverse-geocoding API, e.g
+        geocode-glib.
+    -->
+    <property name="Description" type="s" access="read"/>
+  </interface>
+</node>

-- 


Reply via email to