diff options
author | Marcel Holtmann <marcel@holtmann.org> | 2007-04-12 09:59:15 +0000 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2007-04-12 09:59:15 +0000 |
commit | e3aec1dd412fc0adb0587edf750979e4d18906b0 (patch) | |
tree | 67224966c44b0670b12f934b998cc167c518b94f /input/manager.c | |
parent | 1f6bcd79a30ce899eec1245956c48876831439eb (diff) |
Keep the device structure local
Diffstat (limited to 'input/manager.c')
-rw-r--r-- | input/manager.c | 31 |
1 files changed, 10 insertions, 21 deletions
diff --git a/input/manager.c b/input/manager.c index bd75dc5a..f74349df 100644 --- a/input/manager.c +++ b/input/manager.c @@ -115,20 +115,6 @@ static void pending_req_free(struct pending_req *pr) g_free(pr); } -static int path_bdaddr_cmp(const char *path, const bdaddr_t *bdaddr) -{ - struct device *idev; - - if (!dbus_connection_get_object_path_data(connection, path, - (void *) &idev)) - return -1; - - if (!idev) - return -1; - - return bacmp(&idev->dst, bdaddr); -} - static int get_record(struct pending_req *pr, uint32_t handle, DBusPendingCallNotifyFunction cb) { @@ -637,6 +623,16 @@ done: dbus_pending_call_unref(call); } +static int path_bdaddr_cmp(const char *path, const bdaddr_t *bdaddr) +{ + bdaddr_t src, dst; + + if (input_device_get_bdaddr(connection, path, &src, &dst) < 0) + return -1; + + return bacmp(&dst, bdaddr); +} + static DBusHandlerResult create_device(DBusConnection *conn, DBusMessage *msg, void *data) { @@ -710,7 +706,6 @@ static DBusHandlerResult create_device(DBusConnection *conn, static DBusHandlerResult remove_device(DBusConnection *conn, DBusMessage *msg, void *data) { - struct device *idev; DBusMessage *reply; DBusError derr; GSList *l; @@ -736,12 +731,6 @@ static DBusHandlerResult remove_device(DBusConnection *conn, g_free(l->data); device_paths = g_slist_remove(device_paths, l->data); - if (!dbus_connection_get_object_path_data(connection, - path, (void *) &idev)) - return err_does_not_exist(conn, msg, "Input doesn't exist"); - - del_stored_device_info(&idev->src, &idev->dst); - if (input_device_unregister(conn, path) < 0) { dbus_message_unref(reply); return err_failed(conn, msg, "D-Bus path unregistration failed"); |