commit 58da3b4e2e41a6700845df364c936acd3731b0ba
parent 6518eda75c01f09e643378f82ad6aaf8188e9347
Author: Michael Forney <mforney@mforney.org>
Date: Mon, 20 Jan 2014 15:27:47 -0800
evdev_device: Move add_event_sources to initialize
Diffstat:
3 files changed, 12 insertions(+), 13 deletions(-)
diff --git a/libswc/evdev_device.c b/libswc/evdev_device.c
@@ -27,6 +27,7 @@
#include "evdev_device.h"
#include "event.h"
+#include "internal.h"
#include "launch.h"
#include "seat.h"
#include "util.h"
@@ -211,6 +212,15 @@ struct swc_evdev_device * swc_evdev_device_new
if (!(device->path = strdup(path)))
goto error2;
+ device->source = wl_event_loop_add_fd
+ (swc.event_loop, device->fd, WL_EVENT_READABLE, handle_data, device);
+
+ if (!device->source)
+ {
+ ERROR("Failed to add event source\n");
+ goto error3;
+ }
+
DEBUG("Adding device %s\n", libevdev_get_name(device->dev));
device->handler = handler;
@@ -235,6 +245,8 @@ struct swc_evdev_device * swc_evdev_device_new
return device;
+ error3:
+ libevdev_free(device->dev);
error2:
libevdev_free(device->dev);
error1:
@@ -252,15 +264,6 @@ void swc_evdev_device_destroy(struct swc_evdev_device * device)
free(device);
}
-void swc_evdev_device_add_event_sources(struct swc_evdev_device * device,
- struct wl_event_loop * event_loop)
-{
- DEBUG("Adding event source for %s\n", libevdev_get_name(device->dev));
- device->source
- = wl_event_loop_add_fd(event_loop, device->fd, WL_EVENT_READABLE,
- handle_data, device);
-}
-
bool swc_evdev_device_reopen(struct swc_evdev_device * device)
{
close(device->fd);
diff --git a/libswc/evdev_device.h b/libswc/evdev_device.h
@@ -82,9 +82,6 @@ struct swc_evdev_device * swc_evdev_device_new
void swc_evdev_device_destroy(struct swc_evdev_device * device);
-void swc_evdev_device_add_event_sources(struct swc_evdev_device * device,
- struct wl_event_loop * event_loop);
-
bool swc_evdev_device_reopen(struct swc_evdev_device * device);
#endif
diff --git a/libswc/seat.c b/libswc/seat.c
@@ -206,7 +206,6 @@ static void add_device(struct udev_device * udev_device)
}
wl_list_insert(&seat.devices, &device->link);
- swc_evdev_device_add_event_sources(device, swc.event_loop);
}
static void add_devices()