}
static void
+_default_adapter_callback(void *data, DBusMessage *msg, DBusError *err)
+{
+ E_Bluez_Element *element;
+ const char *path;
+
+ if (dbus_message_get_args(msg, NULL, DBUS_TYPE_OBJECT_PATH, &path,
+ DBUS_TYPE_INVALID) == FALSE)
+ printf("FAILURE: failed to get default adapter\n");
+
+ printf("SUCCESS: default adapter: %s\n", path);
+
+ element = e_bluez_element_get(path);
+ e_bluez_element_print(stdout, element);
+ return;
+
+}
+
+static void
_elements_print(E_Bluez_Element **elements, unsigned int count)
{
unsigned int i;
e_bluez_element_print(stderr, element);
return 1;
}
+
+static int
+_on_cmd_manager_default_adapter(char *cmd, char *args)
+{
+ return e_bluez_manager_default_adapter(_default_adapter_callback);
+}
+
/* Adapter Commands */
static int
{"get_properties", _on_cmd_get_properties},
{"set_property", _on_cmd_property_set},
{"manager_get", _on_cmd_manager_get},
+ {"manager_default_adapter", _on_cmd_manager_default_adapter},
{"adapter_register_agent", _on_cmd_adapter_register_agent},
{"adapter_unregister_agent", _on_cmd_adapter_unregister_agent},
{"adapter_get_address", _on_cmd_adapter_get_address},
/* Manager Methods */
EAPI E_Bluez_Element *e_bluez_manager_get(void) EINA_WARN_UNUSED_RESULT;
+ EAPI bool e_bluez_manager_default_adapter(E_DBus_Method_Return_Cb cb) EINA_WARN_UNUSED_RESULT;
/* Adapter Methods */
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;
{
return e_bluez_element_get(manager_path);
}
+
+/**
+ *
+ * Call method DefaultAdapter() on Manager.
+ * TODO: Soon this method will be replaced by ANY adapter inside BlueZ, so we
+ * won't need t to call it anymore.
+ *
+ * @param cb function to call when server replies or some error happens.
+ *
+ * @return 1 on success, 0 otherwise.
+ */
+bool
+e_bluez_manager_default_adapter(E_DBus_Method_Return_Cb cb)
+{
+ E_Bluez_Element *element = e_bluez_element_get(manager_path);
+ const char name[] = "DefaultAdapter";
+
+ EINA_SAFETY_ON_NULL_RETURN_VAL(element, 0);
+ return e_bluez_element_call_full
+ (element, name, NULL, &element->_pending.properties_get, cb, NULL);
+}