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
{"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}
};
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;
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;
(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);
+}