[PATCH 08/16] e_dbus/ofono: Add NetworkRegistration interface.
authorbarbieri <barbieri@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Sat, 27 Feb 2010 05:27:20 +0000 (05:27 +0000)
committerbarbieri <barbieri@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Sat, 27 Feb 2010 05:27:20 +0000 (05:27 +0000)
By: João Paulo Rechi Vita <jprvita@profusion.mobi>

git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/e_dbus@46560 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

src/lib/ofono/E_Ofono.h
src/lib/ofono/Makefile.am
src/lib/ofono/e_ofono.c
src/lib/ofono/e_ofono_network_reg.c [new file with mode: 0644]
src/lib/ofono/e_ofono_private.h

index 8ba83fb..aaa2f52 100644 (file)
@@ -76,6 +76,12 @@ extern "C" {
   EAPI bool e_ofono_modem_powered_set(E_Ofono_Element *element, Eina_Bool powered, E_DBus_Method_Return_Cb cb, const void *data);
   EAPI bool e_ofono_modem_name_get(E_Ofono_Element *element, const char **name);
 
+  /* NetworkRegistration Methods */
+  EAPI bool e_ofono_netreg_mode_get(E_Ofono_Element *element, const char **mode);
+  EAPI bool e_ofono_netreg_status_get(E_Ofono_Element *element, const char **status);
+  EAPI bool e_ofono_netreg_operator_get(E_Ofono_Element *element, const char **op);
+  EAPI bool e_ofono_netreg_strength_get(E_Ofono_Element *element, char *strength);
+
   /* Low-Level API:
    *
    * Should just be used to work around problems until proper solution
index 28ec51c..0228b93 100644 (file)
@@ -15,7 +15,8 @@ e_ofono_private.h \
 e_ofono.c \
 e_ofono_element.c \
 e_ofono_manager.c \
-e_ofono_modem.c
+e_ofono_modem.c \
+e_ofono_network_reg.c
 
 libeofono_la_LIBADD = \
 @EDBUS_LIBS@ @EVAS_LIBS@ \
index 3db7d8c..aaf5168 100644 (file)
@@ -26,6 +26,11 @@ const char *e_ofono_iface_modem = NULL;
 const char *e_ofono_prop_name = NULL;
 const char *e_ofono_prop_powered = NULL;
 const char *e_ofono_prop_interfaces = NULL;
+const char *e_ofono_iface_network_reg = NULL;
+const char *e_ofono_prop_mode = NULL;
+const char *e_ofono_prop_status = NULL;
+const char *e_ofono_prop_operator = NULL;
+const char *e_ofono_prop_strength = NULL;
 
 int _e_dbus_ofono_log_dom = -1;
 
@@ -231,6 +236,16 @@ e_ofono_system_init(E_DBus_Connection *edbus_conn)
                e_ofono_prop_powered = eina_stringshare_add("Powered");
        if (e_ofono_prop_interfaces == NULL)
                e_ofono_prop_interfaces = eina_stringshare_add("Interfaces");
+       if (e_ofono_iface_network_reg == NULL)
+               e_ofono_iface_network_reg = eina_stringshare_add("org.ofono.NetworkRegistration");
+       if (e_ofono_prop_mode == NULL)
+               e_ofono_prop_mode = eina_stringshare_add("Mode");
+       if (e_ofono_prop_status == NULL)
+               e_ofono_prop_status = eina_stringshare_add("Status");
+       if (e_ofono_prop_operator == NULL)
+               e_ofono_prop_operator = eina_stringshare_add("Operator");
+       if (e_ofono_prop_strength == NULL)
+               e_ofono_prop_strength = eina_stringshare_add("Strength");
 
        e_ofono_conn = edbus_conn;
        cb_name_owner_changed = e_dbus_signal_handler_add
@@ -282,5 +297,10 @@ e_ofono_system_shutdown(void)
        _stringshare_del(&e_ofono_prop_name);
        _stringshare_del(&e_ofono_prop_powered);
        _stringshare_del(&e_ofono_prop_interfaces);
+       _stringshare_del(&e_ofono_iface_network_reg);
+       _stringshare_del(&e_ofono_prop_mode);
+       _stringshare_del(&e_ofono_prop_status);
+       _stringshare_del(&e_ofono_prop_operator);
+       _stringshare_del(&e_ofono_prop_strength);
        return 0;
 }
diff --git a/src/lib/ofono/e_ofono_network_reg.c b/src/lib/ofono/e_ofono_network_reg.c
new file mode 100644 (file)
index 0000000..3db4535
--- /dev/null
@@ -0,0 +1,93 @@
+#include "e_ofono_private.h"
+
+/**
+ * Get property "Mode" value.
+ *
+ * If this property isn't found then 0 is returned.
+ * If zero is returned, then this call failed and parameter-returned
+ * values shall be considered invalid.
+ *
+ * @param mode where to store the property value, must be a pointer
+ *        to string (const char **), it will not be allocated or
+ *        copied and references will be valid until element changes,
+ *        so copy it if you want to use it later.
+ *
+ * @return 1 on success, 0 otherwise.
+ */
+bool
+e_ofono_netreg_mode_get(E_Ofono_Element *element, const char **mode)
+{
+   EINA_SAFETY_ON_NULL_RETURN_VAL(element, 0);
+   EINA_SAFETY_ON_NULL_RETURN_VAL(mode, 0);
+
+   return e_ofono_element_property_get_stringshared
+     (element, e_ofono_prop_mode, NULL, mode);
+}
+
+/**
+ * Get property "Status" value.
+ *
+ * If this property isn't found then 0 is returned.
+ * If zero is returned, then this call failed and parameter-returned
+ * values shall be considered invalid.
+ *
+ * @param status where to store the property value, must be a pointer
+ *        to string (const char **), it will not be allocated or
+ *        copied and references will be valid until element changes,
+ *        so copy it if you want to use it later.
+ *
+ * @return 1 on success, 0 otherwise.
+ */
+bool
+e_ofono_netreg_status_get(E_Ofono_Element *element, const char **status)
+{
+   EINA_SAFETY_ON_NULL_RETURN_VAL(element, 0);
+   EINA_SAFETY_ON_NULL_RETURN_VAL(status, 0);
+
+   return e_ofono_element_property_get_stringshared
+     (element, e_ofono_prop_status, NULL, status);
+}
+
+/**
+ * Get property "Operator" value.
+ *
+ * If this property isn't found then 0 is returned.
+ * If zero is returned, then this call failed and parameter-returned
+ * values shall be considered invalid.
+ *
+ * @param operator where to store the property value, must be a pointer
+ *        to string (const char **), it will not be allocated or
+ *        copied and references will be valid until element changes,
+ *        so copy it if you want to use it later.
+ *
+ * @return 1 on success, 0 otherwise.
+ */
+bool
+e_ofono_netreg_operator_get(E_Ofono_Element *element, const char **op)
+{
+   EINA_SAFETY_ON_NULL_RETURN_VAL(element, 0);
+   EINA_SAFETY_ON_NULL_RETURN_VAL(op, 0);
+
+   return e_ofono_element_property_get_stringshared
+     (element, e_ofono_prop_operator, NULL, op);
+}
+
+/**
+ * Get property "Strength" value.
+ *
+ * @param strength where to store the property value, must be a pointer
+ *        to char (char *), it will not be allocated or
+ *        copied and references will be valid until element changes,
+ *        so copy it if you want to use it later.
+ *
+ * @return 1 on success, 0 otherwise.
+ */
+bool
+e_ofono_netreg_strength_get(E_Ofono_Element *element, char *strength)
+{
+   EINA_SAFETY_ON_NULL_RETURN_VAL(element, 0);
+   EINA_SAFETY_ON_NULL_RETURN_VAL(strength, 0);
+
+   return e_ofono_element_property_get_stringshared
+     (element, e_ofono_prop_strength, NULL, strength);
+}
index 7cedd78..a9c31bb 100644 (file)
     extern const char *e_ofono_prop_name;
     extern const char *e_ofono_prop_powered;
     extern const char *e_ofono_prop_interfaces;
+    extern const char *e_ofono_iface_network_reg;
+    extern const char *e_ofono_prop_mode;
+    extern const char *e_ofono_prop_status;
+    extern const char *e_ofono_prop_operator;
+    extern const char *e_ofono_prop_strength;
 
     extern int _e_dbus_ofono_log_dom;