diff options
author | Claudio Takahasi <claudio.takahasi@openbossa.org> | 2008-03-07 17:53:50 +0000 |
---|---|---|
committer | Claudio Takahasi <claudio.takahasi@openbossa.org> | 2008-03-07 17:53:50 +0000 |
commit | da0e7105811dc046d13d0365404efc1189ee4a8c (patch) | |
tree | dffa4eee585192d1402a6427bb087a7263cc399c /hcid/device.c | |
parent | c6638ee5c399991f1496b213de64529fcd8556eb (diff) |
Registering device's object path
Diffstat (limited to 'hcid/device.c')
-rw-r--r-- | hcid/device.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/hcid/device.c b/hcid/device.c index bf84ad2c..51e6bebc 100644 --- a/hcid/device.c +++ b/hcid/device.c @@ -54,6 +54,7 @@ #include "adapter.h" #include "device.h" +#include "dbus-common.h" #define MAX_DEVICES 16 @@ -789,7 +790,8 @@ static DBusSignalVTable device_signals[] = { { NULL, NULL } }; -struct device *device_create(struct adapter *adapter, const char *address) +const char *device_create(struct adapter *adapter, + const char *address, sdp_list_t *recs) { struct device *device; @@ -797,7 +799,8 @@ struct device *device_create(struct adapter *adapter, const char *address) if (device == NULL) return NULL; - device->path = g_strdup_printf("%s/dev_%s", adapter->address, address); + device->path = g_strdup_printf("%s/hci%d/dev_%s", + BASE_PATH, adapter->dev_id, address); g_strdelimit(device->path, ":", '_'); debug("Creating device %s", device->path); @@ -807,12 +810,16 @@ struct device *device_create(struct adapter *adapter, const char *address) device_free(device); return NULL; } + dbus_connection_register_interface(connection, device->path, DEVICE_INTERFACE, device_methods, device_signals, NULL); device_list = g_slist_append(device_list, device); - return device; + device->adapter = adapter; + device->records = recs; + + return device->path; } void device_remove(const char *path) |