Diff between 21f71192a92b93006e6358531e0aa46de192acb9 and 093d96a57d1ec118f2d0e8f35e110c3d9aae158b

Changed Files

File Additions Deletions Status
doc/adapter-api.txt +2 -11 modified
src/adapter.c +2 -100 modified

Full Patch

diff --git a/doc/adapter-api.txt b/doc/adapter-api.txt
index efc1031..7a587fb 100644
--- a/doc/adapter-api.txt
+++ b/doc/adapter-api.txt
@@ -21,8 +21,8 @@ Methods		void StartDiscovery()
 			resolving. Use StopDiscovery to release the sessions
 			acquired.
 
-			This process will start emitting DevicesFound and
-			PropertyChanged "Discovering" signals.
+			This process will start creating Device objects as
+			new devices are discovered.
 
 			Possible errors: org.bluez.Error.NotReady
 					 org.bluez.Error.Failed
@@ -48,15 +48,6 @@ Methods		void StartDiscovery()
 			Possible errors: org.bluez.Error.InvalidArguments
 					 org.bluez.Error.Failed
 
-Signals		DevicesFound(array{object path, dict values})
-
-			This signal will be sent every time devices have
-			been found. In general they only appear during a
-			device discovery.
-
-			The dictionary contains the properties from the
-			org.bluez.Device1 interface.
-
 Properties	string Address [readonly]
 
 			The Bluetooth device address.
diff --git a/src/adapter.c b/src/adapter.c
index b0b45ca..9b83afe 100644
--- a/src/adapter.c
+++ b/src/adapter.c
@@ -83,7 +83,6 @@
 #define MODE_UNKNOWN		0xff
 
 #define REMOVE_TEMP_TIMEOUT (3 * 60)
-#define PENDING_FOUND_MAX 5
 
 static const char *base_path = "/org/bluez";
 static GSList *adapter_drivers = NULL;
@@ -114,9 +113,7 @@ struct service_auth {
 };
 
 struct discovery {
-	guint id;
 	GSList *found;
-	GSList *pending;
 };
 
 struct btd_adapter {
@@ -389,49 +386,6 @@ static struct session_req *find_session(GSList *list, const char *sender)
 	return NULL;
 }
 
-static void send_devices_found(struct btd_adapter *adapter)
-{
-	struct discovery *discovery = adapter->discovery;
-	DBusConnection *conn = btd_get_dbus_connection();
-	DBusMessageIter iter, props;
-	DBusMessage *signal;
-
-	if (!discovery || !discovery->pending)
-		return;
-
-	signal = dbus_message_new_signal(adapter->path, ADAPTER_INTERFACE,
-							"DevicesFound");
-	if (!signal) {
-		error("Unable to allocate DevicesFound signal");
-		g_slist_free(discovery->pending);
-		discovery->pending = NULL;
-		return;
-	}
-
-	dbus_message_iter_init_append(signal, &iter);
-	dbus_message_iter_open_container(&iter, DBUS_TYPE_ARRAY, "{oa{sv}}",
-								&props);
-
-	while (discovery->pending) {
-		struct btd_device *dev = discovery->pending->data;
-		const char *path = device_get_path(dev);
-		DBusMessageIter entry;
-
-		dbus_message_iter_open_container(&props, DBUS_TYPE_DICT_ENTRY,
-								NULL, &entry);
-		dbus_message_iter_append_basic(&entry, DBUS_TYPE_OBJECT_PATH,
-									&path);
-		g_dbus_get_properties(conn, path, DEVICE_INTERFACE, &entry);
-		dbus_message_iter_close_container(&props, &entry);
-
-		discovery->pending = g_slist_remove(discovery->pending, dev);
-	}
-
-	dbus_message_iter_close_container(&iter, &props);
-
-	g_dbus_send_message(conn, signal);
-}
-
 static void invalidate_rssi(gpointer a)
 {
 	struct btd_device *dev = a;
@@ -446,11 +400,6 @@ static void discovery_cleanup(struct btd_adapter *adapter)
 	if (!discovery)
 		return;
 
-	if (discovery->id > 0)
-		g_source_remove(discovery->id);
-
-	send_devices_found(adapter);
-
 	adapter->discovery = NULL;
 
 	g_slist_free_full(discovery->found, invalidate_rssi);
@@ -806,10 +755,8 @@ void adapter_remove_device(struct btd_adapter *adapter,
 
 	adapter->devices = g_slist_remove(adapter->devices, dev);
 
-	if (discovery) {
+	if (discovery)
 		discovery->found = g_slist_remove(discovery->found, dev);
-		discovery->pending = g_slist_remove(discovery->pending, dev);
-	}
 
 	adapter->connections = g_slist_remove(adapter->connections, dev);
 
@@ -1212,12 +1159,6 @@ static const GDBusMethodTable adapter_methods[] = {
 	{ }
 };
 
-static const GDBusSignalTable adapter_signals[] = {
-	{ GDBUS_SIGNAL("DevicesFound",
-			GDBUS_ARGS({ "devices", "a{oa{sv}}" })) },
-	{ }
-};
-
 static const GDBusPropertyTable adapter_properties[] = {
 	{ "Address", "s", adapter_property_get_address },
 	{ "Name", "s", adapter_property_get_name, adapter_property_set_name },
@@ -2739,7 +2680,7 @@ struct btd_adapter *adapter_create(int id)
 
 	if (!g_dbus_register_interface(btd_get_dbus_connection(),
 					path, ADAPTER_INTERFACE,
-					adapter_methods, adapter_signals,
+					adapter_methods, NULL,
 					adapter_properties, adapter,
 					adapter_free)) {
 		error("Adapter interface init failed on path %s", path);
@@ -2801,26 +2742,6 @@ void adapter_set_allow_name_changes(struct btd_adapter *adapter,
 	adapter->allow_name_changes = allow_name_changes;
 }
 
-static gboolean send_found(gpointer user_data)
-{
-	struct btd_adapter *adapter = user_data;
-	struct discovery *discovery = adapter->discovery;
-
-	if (!discovery)
-		return FALSE;
-
-	discovery->id = 0;
-
-	if (!discovery->pending)
-		return FALSE;
-
-	send_devices_found(adapter);
-
-	discovery->id = g_timeout_add_seconds(1, send_found, adapter);
-
-	return FALSE;
-}
-
 static gboolean adapter_remove_temp(gpointer data)
 {
 	struct btd_adapter *adapter = data;
@@ -2845,14 +2766,11 @@ static gboolean adapter_remove_temp(gpointer data)
 void adapter_set_discovering(struct btd_adapter *adapter,
 						gboolean discovering)
 {
-	struct discovery *discovery;
 	guint connect_list_len;
 
 	if (discovering && !adapter->discovery)
 		adapter->discovery = g_new0(struct discovery, 1);
 
-	discovery = adapter->discovery;
-
 	g_dbus_emit_property_changed(btd_get_dbus_connection(), adapter->path,
 					ADAPTER_INTERFACE, "Discovering");
 
@@ -2861,7 +2779,6 @@ void adapter_set_discovering(struct btd_adapter *adapter,
 			g_source_remove(adapter->remove_temp);
 			adapter->remove_temp = 0;
 		}
-		discovery->id = g_timeout_add_seconds(1, send_found, adapter);
 		return;
 	}
 
@@ -3014,21 +2931,6 @@ void adapter_update_found_devices(struct btd_adapter *adapter,
 
 	eir_data_free(&eir_data);
 
-	if (!g_slist_find(discovery->pending, dev)) {
-		guint pending_count;
-
-		discovery->pending = g_slist_prepend(discovery->pending, dev);
-
-		pending_count = g_slist_length(discovery->pending);
-
-		if (discovery->id == 0) {
-			discovery->id = g_idle_add(send_found, adapter);
-		} else if (pending_count > PENDING_FOUND_MAX) {
-			g_source_remove(discovery->id);
-			discovery->id = g_idle_add(send_found, adapter);
-		}
-	}
-
 	if (g_slist_find(discovery->found, dev))
 		return;