From da0e7105811dc046d13d0365404efc1189ee4a8c Mon Sep 17 00:00:00 2001 From: Claudio Takahasi Date: Fri, 7 Mar 2008 17:53:50 +0000 Subject: Registering device's object path --- hcid/device.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'hcid/device.c') 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) -- cgit