summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2014-11-19 15:26:40 +1000
committerPeter Hutterer <peter.hutterer@who-t.net>2014-11-25 16:32:37 +1000
commit5f703f48b07dcdc1a5457f9153bd74836e880a2e (patch)
treeffb64d418a0028aaf64b15938b1d953d246c1e0c
parent8d24cd530425f3860c4a55a987b9d74f029c8d91 (diff)
downloadlibinput-5f703f48b07dcdc1a5457f9153bd74836e880a2e.tar.gz
path: split out creating a device into a helper function
No functional changes Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
-rw-r--r--src/path.c57
1 files changed, 32 insertions, 25 deletions
diff --git a/src/path.c b/src/path.c
index f986afda..59007754 100644
--- a/src/path.c
+++ b/src/path.c
@@ -236,6 +236,37 @@ path_input_destroy(struct libinput *input)
}
+static struct libinput_device *
+path_create_device(struct libinput *libinput,
+ const char *path)
+{
+ struct path_input *input = (struct path_input*)libinput;
+ struct path_device *dev;
+ struct libinput_device *device;
+
+ dev = zalloc(sizeof *dev);
+ if (!dev)
+ return NULL;
+
+ dev->path = strdup(path);
+ if (!dev->path) {
+ free(dev);
+ return NULL;
+ }
+
+ list_insert(&input->path_list, &dev->link);
+
+ device = path_device_enable(input, dev->path);
+
+ if (!device) {
+ list_remove(&dev->link);
+ free(dev->path);
+ free(dev);
+ }
+
+ return device;
+}
+
static const struct libinput_interface_backend interface_backend = {
.resume = path_input_enable,
.suspend = path_input_disable,
@@ -275,36 +306,12 @@ LIBINPUT_EXPORT struct libinput_device *
libinput_path_add_device(struct libinput *libinput,
const char *path)
{
- struct path_input *input = (struct path_input*)libinput;
- struct path_device *dev;
- struct libinput_device *device;
-
if (libinput->interface_backend != &interface_backend) {
log_bug_client(libinput, "Mismatching backends.\n");
return NULL;
}
- dev = zalloc(sizeof *dev);
- if (!dev)
- return NULL;
-
- dev->path = strdup(path);
- if (!dev->path) {
- free(dev);
- return NULL;
- }
-
- list_insert(&input->path_list, &dev->link);
-
- device = path_device_enable(input, dev->path);
-
- if (!device) {
- list_remove(&dev->link);
- free(dev->path);
- free(dev);
- }
-
- return device;
+ return path_create_device(libinput, path);
}
LIBINPUT_EXPORT void