e_dbus/bluez: add method to get powered state
authorbarbieri <barbieri@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Mon, 22 Feb 2010 21:13:09 +0000 (21:13 +0000)
committerbarbieri <barbieri@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Mon, 22 Feb 2010 21:13:09 +0000 (21:13 +0000)
By: Gustavo F. Padovan <padovan@profusion.mobi>

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

src/bin/e_dbus_bluez_test.c
src/lib/bluez/E_Bluez.h
src/lib/bluez/e_bluez_adapter.c

index 7efb68d..564a9a1 100644 (file)
@@ -360,6 +360,23 @@ _on_cmd_adapter_get_address(char *cmd, char *args)
 }
 
 static int
+_on_cmd_adapter_get_powered(char *cmd, char *args)
+{
+   char *next_args;
+   bool powered;
+   E_Bluez_Element *element = _element_from_args(args, &next_args);
+
+   if (!element)
+          return 1;
+
+   if (e_bluez_adapter_powered_get(element, &powered))
+     printf(":::Adapter powered = \"%hhu\"\n", powered);
+   else
+     fputs("ERROR: can't get adapter powered\n", stderr);
+   return 1;
+}
+
+static int
 _on_cmd_adapter_set_powered(char *cmd, char *args)
 {
    char *next_args;
@@ -424,6 +441,7 @@ _on_input(void *data, Ecore_Fd_Handler *fd_handler)
      {"adapter_register_agent", _on_cmd_adapter_register_agent},
      {"adapter_unregister_agent", _on_cmd_adapter_unregister_agent},
      {"adapter_get_address", _on_cmd_adapter_get_address},
+     {"adapter_get_powered", _on_cmd_adapter_get_powered},
      {"adapter_set_powered", _on_cmd_adapter_set_powered},
      {"device_get_name", _on_cmd_device_get_name},
      {NULL, NULL}
index f428eb6..2852265 100644 (file)
@@ -76,6 +76,7 @@ extern "C" {
   EAPI bool e_bluez_adapter_agent_register(E_Bluez_Element *element, const char *object_path, const char *capability, E_DBus_Method_Return_Cb cb, const void *data) EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT;
   EAPI bool e_bluez_adapter_agent_unregister(E_Bluez_Element *element, const char *object_path, E_DBus_Method_Return_Cb cb, const void *data) EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT;
   EAPI bool e_bluez_adapter_address_get(E_Bluez_Element *element, const char **address) EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT;
+  EAPI bool e_bluez_adapter_powered_get(E_Bluez_Element *element, bool *powered) EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT;
 
   EAPI bool e_bluez_adapter_powered_set(E_Bluez_Element *profile, bool powered, E_DBus_Method_Return_Cb cb, const void *data) EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT;
 
index 7c4f36a..38c3768 100644 (file)
@@ -75,6 +75,29 @@ e_bluez_adapter_address_get(E_Bluez_Element *element, const char **address)
 }
 
 /**
+ * Get property "Powered" 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 offline where to store the property value, must be a pointer
+ *        to booleans (bool *).
+ *
+ * @return 1 on success, 0 otherwise.
+ * @see e_connman_manager_offline_mode_set()
+ */
+bool
+e_bluez_adapter_powered_get(E_Bluez_Element *element, bool *powered)
+{
+   EINA_SAFETY_ON_NULL_RETURN_VAL(element, 0);
+   EINA_SAFETY_ON_NULL_RETURN_VAL(powered, 0);
+
+   return e_bluez_element_property_get_stringshared
+     (element, e_bluez_prop_powered, NULL, powered);
+}
+
+/**
  * Call method SetProperty("Powered", powered) at the given element on server.
  *
  *