diff options
author | Marcel Holtmann <marcel@holtmann.org> | 2007-08-22 01:50:41 +0000 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2007-08-22 01:50:41 +0000 |
commit | b22d297c0c679b400d7825367e31fed46c552a49 (patch) | |
tree | 48f403d960004356af7ce70bedfc4f2490231945 /hcid/manager.c | |
parent | 145dfdd4b2e09f6b5b9e0be03d134c0242261b81 (diff) |
First attempt for automatic setting of service classes value
Diffstat (limited to 'hcid/manager.c')
-rw-r--r-- | hcid/manager.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/hcid/manager.c b/hcid/manager.c index 50cd698e..c03cdc3f 100644 --- a/hcid/manager.c +++ b/hcid/manager.c @@ -42,6 +42,7 @@ #include <dbus/dbus.h> #include "hcid.h" +#include "sdpd.h" #include "adapter.h" #include "dbus.h" #include "dbus-helper.h" @@ -328,3 +329,28 @@ void set_default_adapter(int new_default) { default_adapter_id = new_default; } + +void update_class_of_device(void) +{ + uint8_t value = get_service_classes(); + uint8_t cls[3]; + int dd, dev_id = default_adapter_id; + + if (dev_id < 0) + return; + + dd = hci_open_dev(dev_id); + if (dd < 0) + return; + + if (hci_read_class_of_dev(dd, cls, 1000) < 0) { + error("Can't read class of device on hci%d: %s (%d)", + dev_id, strerror(errno), errno); + hci_close_dev(dd); + return; + } + + set_service_classes(dd, cls, value); + + hci_close_dev(dd); +} |