summaryrefslogtreecommitdiffstats
path: root/hcid/device.c
diff options
context:
space:
mode:
authorClaudio Takahasi <claudio.takahasi@openbossa.org>2008-03-07 17:53:50 +0000
committerClaudio Takahasi <claudio.takahasi@openbossa.org>2008-03-07 17:53:50 +0000
commitda0e7105811dc046d13d0365404efc1189ee4a8c (patch)
treedffa4eee585192d1402a6427bb087a7263cc399c /hcid/device.c
parentc6638ee5c399991f1496b213de64529fcd8556eb (diff)
Registering device's object path
Diffstat (limited to 'hcid/device.c')
-rw-r--r--hcid/device.c13
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)