e_dbus/bluez: add start/stop discovery methods
authorbarbieri <barbieri@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Mon, 22 Feb 2010 21:38:01 +0000 (21:38 +0000)
committerbarbieri <barbieri@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Mon, 22 Feb 2010 21:38:01 +0000 (21:38 +0000)
By: Gustavo F. Padovan <padovan@profusion.mobi>

git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/e_dbus@46372 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 4cc7143..6b7a2be 100644 (file)
@@ -402,6 +402,40 @@ _on_cmd_adapter_set_powered(char *cmd, char *args)
    return 1;
 }
 
+static int
+_on_cmd_adapter_start_discovery(char *cmd, char *args)
+{
+   char *next_args;
+   E_Bluez_Element *element = _element_from_args(args, &next_args);
+
+   if (!element)
+          return 1;
+
+   if (e_bluez_adapter_start_discovery(element,
+        _method_success_check, "adapter_start_discovery"))
+     printf(":::Adapter Start Discovery for %s\n", element->path);
+   else
+     fputs("ERROR: can't start discovery on adapter \n", stderr);
+   return 1;
+}
+
+static int
+_on_cmd_adapter_stop_discovery(char *cmd, char *args)
+{
+   char *next_args;
+   E_Bluez_Element *element = _element_from_args(args, &next_args);
+
+   if (!element)
+          return 1;
+
+   if (e_bluez_adapter_stop_discovery(element,
+        _method_success_check, "adapter_stop_discovery"))
+     printf(":::Adapter Stop Discovery for %s\n", element->path);
+   else
+     fputs("ERROR: can't stop discovery on adapter \n", stderr);
+   return 1;
+}
+
 /* Devices Commands */
 
 static int
@@ -443,6 +477,8 @@ _on_input(void *data, Ecore_Fd_Handler *fd_handler)
      {"adapter_get_address", _on_cmd_adapter_get_address},
      {"adapter_get_powered", _on_cmd_adapter_get_powered},
      {"adapter_set_powered", _on_cmd_adapter_set_powered},
+     {"adapter_start_discovery", _on_cmd_adapter_start_discovery},
+     {"adapter_stop_discovery", _on_cmd_adapter_stop_discovery},
      {"device_get_name", _on_cmd_device_get_name},
      {NULL, NULL}
    };
index 1dea0b7..a736795 100644 (file)
@@ -56,6 +56,8 @@ extern "C" {
        Eina_Inlist *property_set;
        Eina_Inlist *agent_register;
        Eina_Inlist *agent_unregister;
+       Eina_Inlist *start_discovery;
+       Eina_Inlist *stop_discovery;
      } _pending;
      struct {
        Ecore_Idler *changed;
@@ -79,7 +81,8 @@ extern "C" {
   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;
-
+  EAPI bool e_bluez_adapter_start_discovery(E_Bluez_Element *element, E_DBus_Method_Return_Cb cb, const void *data) EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT;
+  EAPI bool e_bluez_adapter_stop_discovery(E_Bluez_Element *element, E_DBus_Method_Return_Cb cb, const void *data) EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT;
 
   /* Devices Methods */
   EAPI bool e_bluez_device_name_get(E_Bluez_Element *element, const char **name) EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT;
index f414f01..9ee1b1c 100644 (file)
@@ -116,3 +116,47 @@ e_bluez_adapter_powered_set(E_Bluez_Element *element, bool powered, E_DBus_Metho
      (element, e_bluez_prop_powered, DBUS_TYPE_BOOLEAN,
       &powered, cb, data);
 }
+
+/**
+ * Start Discovery of Bluetooth Devices
+ *
+ * call StartDiscovery()
+ *
+ * @param element the adapter's element.
+ * @param cb function to call when server replies or some error happens.
+ * @param data data to give to cb when it is called.
+ *
+ * @return 1 on success, 0 otherwise.
+ */
+bool
+e_bluez_adapter_start_discovery(E_Bluez_Element *element, E_DBus_Method_Return_Cb cb, const void *data)
+{
+   const char name[] = "StartDiscovery";
+
+   EINA_SAFETY_ON_NULL_RETURN_VAL(element, 0);
+
+   return e_bluez_element_call_full(element, name, NULL,
+                  &element->_pending.start_discovery, cb, data);
+}
+
+/**
+ * Stop Discovery of Bluetooth Devices
+ *
+ * call StopDiscovery()
+ *
+ * @param element the adapter's element.
+ * @param cb function to call when server replies or some error happens.
+ * @param data data to give to cb when it is called.
+ *
+ * @return 1 on success, 0 otherwise.
+ */
+bool
+e_bluez_adapter_stop_discovery(E_Bluez_Element *element, E_DBus_Method_Return_Cb cb, const void *data)
+{
+   const char name[] = "StopDiscovery";
+
+   EINA_SAFETY_ON_NULL_RETURN_VAL(element, 0);
+
+   return e_bluez_element_call_full(element, name, NULL,
+                  &element->_pending.stop_discovery, cb, data);
+}