diff options
Diffstat (limited to 'audio/manager.c')
-rw-r--r-- | audio/manager.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/audio/manager.c b/audio/manager.c index 9c57d17d..30b78632 100644 --- a/audio/manager.c +++ b/audio/manager.c @@ -608,6 +608,8 @@ struct device *manager_device_connected(bdaddr_t *bda, const char *uuid) device = manager_find_device(bda, NULL, FALSE); if (!device) { device = create_device(bda); + if (!device) + return NULL; if (!add_device(device, TRUE)) { remove_device(device); return NULL; @@ -676,13 +678,18 @@ struct device *manager_device_connected(bdaddr_t *bda, const char *uuid) return device; } -void manager_create_device(bdaddr_t *bda, create_dev_cb_t cb, +gboolean manager_create_device(bdaddr_t *bda, create_dev_cb_t cb, void *user_data) { struct device *dev; dev = create_device(bda); + if (!dev) + return FALSE; + resolve_services(NULL, dev, cb, user_data); + + return TRUE; } static DBusHandlerResult am_create_device(DBusConnection *conn, |