guint ctrl_watch;
guint intr_watch;
guint sec_watch;
- int timeout;
struct hidp_connadd_req *req;
guint dc_id;
bool disable_sdp;
};
static GSList *devices = NULL;
+static int idle_timeout = 0;
+
+void input_set_idle_timeout(int timeout)
+{
+ idle_timeout = timeout;
+}
static void input_device_enter_reconnect_mode(struct input_device *idev);
static const char *reconnect_mode_to_string(const enum reconnect_mode_t mode);
req->ctrl_sock = g_io_channel_unix_get_fd(idev->ctrl_io);
req->intr_sock = g_io_channel_unix_get_fd(idev->intr_io);
req->flags = 0;
- req->idle_to = idev->timeout;
+ req->idle_to = idle_timeout;
ba2str(&idev->src, src_addr);
ba2str(&idev->dst, dst_addr);
int input_device_register(struct btd_device *device,
const char *path, const char *uuid,
- const sdp_record_t *rec, int timeout)
+ const sdp_record_t *rec)
{
struct input_device *idev;
return -EINVAL;
}
- idev->timeout = timeout;
idev->uuid = g_strdup(uuid);
devices = g_slist_append(devices, idev);
struct input_device;
struct input_conn;
+void input_set_idle_timeout(int timeout);
+
int input_device_register(struct btd_device *device, const char *path,
- const char *uuid, const sdp_record_t *rec,
- int timeout);
+ const char *uuid, const sdp_record_t *rec);
void input_device_unregister(const char *path, const char *uuid);
int input_device_set_channel(const bdaddr_t *src, const bdaddr_t *dst, int psm,
#include "server.h"
#include "manager.h"
-static int idle_timeout = 0;
-
static void input_remove(struct btd_device *device, const char *uuid)
{
const char *path = device_get_path(device);
if (!rec)
return -1;
- return input_device_register(device, path, HID_UUID, rec,
- idle_timeout * 60);
+ return input_device_register(device, path, HID_UUID, rec);
}
static void hid_device_remove(struct btd_profile *p, struct btd_device *device)
config = load_config_file(CONFIGDIR "/input.conf");
if (config) {
+ int idle_timeout;
+
idle_timeout = g_key_file_get_integer(config, "General",
"IdleTimeout", &err);
if (err) {
DBG("input.conf: %s", err->message);
g_error_free(err);
}
+
+ input_set_idle_timeout(idle_timeout * 60);
}
btd_profile_register(&input_profile);