From eeea876d77aba6b555ed0c0959951883d02eaa69 Mon Sep 17 00:00:00 2001 From: Luiz Augusto von Dentz Date: Mon, 10 Nov 2008 16:06:29 -0300 Subject: Emit DeviceCreated for temporary devices. DeviceCreated should be emitted for temporary devices since there could be meaningful information for user applications. This also affects DeviceRemoved since it now should be emitted for temporary devices too. --- src/adapter.c | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) (limited to 'src/adapter.c') diff --git a/src/adapter.c b/src/adapter.c index b874e12a..0e68359f 100644 --- a/src/adapter.c +++ b/src/adapter.c @@ -953,6 +953,7 @@ struct btd_device *adapter_create_device(DBusConnection *conn, struct btd_adapter *adapter, const char *address) { struct btd_device *device; + const char *path; debug("adapter_create_device(%s)", address); @@ -964,6 +965,14 @@ struct btd_device *adapter_create_device(DBusConnection *conn, adapter->devices = g_slist_append(adapter->devices, device); + path = device_get_path(device); + g_dbus_emit_signal(conn, adapter->path, + ADAPTER_INTERFACE, "DeviceCreated", + DBUS_TYPE_OBJECT_PATH, &path, + DBUS_TYPE_INVALID); + + adapter_update_devices(adapter); + return device; } @@ -1068,17 +1077,15 @@ void adapter_remove_device(DBusConnection *conn, struct btd_adapter *adapter, delete_entry(&adapter->bdaddr, "profiles", dstaddr); adapter->devices = g_slist_remove(adapter->devices, device); - if (!device_is_temporary(device)) { + if (!device_is_temporary(device)) remove_bonding(conn, NULL, dstaddr, adapter); - g_dbus_emit_signal(conn, adapter->path, - ADAPTER_INTERFACE, - "DeviceRemoved", - DBUS_TYPE_OBJECT_PATH, &dev_path, - DBUS_TYPE_INVALID); + g_dbus_emit_signal(conn, adapter->path, + ADAPTER_INTERFACE, "DeviceRemoved", + DBUS_TYPE_OBJECT_PATH, &dev_path, + DBUS_TYPE_INVALID); - adapter_update_devices(adapter); - } + adapter_update_devices(adapter); agent = device_get_agent(device); -- cgit