diff --git a/src/device.c b/src/device.c
index cb3dca6..2221e83 100644
--- a/src/device.c
+++ b/src/device.c
GIOChannel *att_io;
guint cleanup_id;
guint store_id;
+
+ bool pending_conn_params;
+ uint16_t min_interval;
+ uint16_t max_interval;
+ uint16_t latency;
+ uint16_t timeout;
};
static const uint16_t uuid_list[] = {
g_key_file_remove_group(key_file, "DeviceID", NULL);
}
+ if (device->pending_conn_params) {
+ device->pending_conn_params = false;
+ g_key_file_set_integer(key_file, "ConnectionParameters",
+ "MinInterval", device->min_interval);
+ g_key_file_set_integer(key_file, "ConnectionParameters",
+ "MaxInterval", device->max_interval);
+ g_key_file_set_integer(key_file, "ConnectionParameters",
+ "Latency", device->latency);
+ g_key_file_set_integer(key_file, "ConnectionParameters",
+ "Timeout", device->timeout);
+ }
+
create_file(filename, S_IRUSR | S_IWUSR);
str = g_key_file_to_data(key_file, &length, NULL);
device->le_seen = time(NULL);
}
+void device_set_conn_param(struct btd_device *dev, uint16_t min_interval,
+ uint16_t max_interval, uint16_t latency,
+ uint16_t timeout)
+{
+ dev->pending_conn_params = true;
+ dev->min_interval = min_interval;
+ dev->max_interval = max_interval;
+ dev->latency = latency;
+ dev->timeout = timeout;
+
+ store_device_info(dev);
+}
+
/* It is possible that we have two device objects for the same device in
* case it has first been discovered over BR/EDR and has a private
* address when discovered over LE for the first time. In such a case we
diff --git a/src/device.h b/src/device.h
index 2e0473e..59db52c 100644
--- a/src/device.h
+++ b/src/device.h
void device_set_bredr_support(struct btd_device *device);
void device_set_le_support(struct btd_device *device, uint8_t bdaddr_type);
void device_update_last_seen(struct btd_device *device, uint8_t bdaddr_type);
+void device_set_conn_param(struct btd_device *dev, uint16_t min_interval,
+ uint16_t max_interval, uint16_t latency,
+ uint16_t timeout);
void device_merge_duplicate(struct btd_device *dev, struct btd_device *dup);
uint32_t btd_device_get_class(struct btd_device *device);
uint16_t btd_device_get_vendor(struct btd_device *device);