[PATCH libinput 06/19] touchpad: move structs into a header file

Peter Hutterer peter.hutterer at who-t.net
Sun Feb 16 22:48:25 PST 2014


The tapping state implementation will be in a separate file, so let's make
sure we can access the structs we need.

Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
---
 src/Makefile.am         |  1 +
 src/evdev-mt-touchpad.c | 61 +--------------------------------
 src/evdev-mt-touchpad.h | 91 +++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 93 insertions(+), 60 deletions(-)
 create mode 100644 src/evdev-mt-touchpad.h

diff --git a/src/Makefile.am b/src/Makefile.am
index c6afb82..f6d0335 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -11,6 +11,7 @@ libinput_la_SOURCES =			\
 	evdev.c				\
 	evdev.h				\
 	evdev-mt-touchpad.c		\
+	evdev-mt-touchpad.h		\
 	evdev-touchpad.c		\
 	filter.c			\
 	filter.h			\
diff --git a/src/evdev-mt-touchpad.c b/src/evdev-mt-touchpad.c
index 6d1793b..8a8586a 100644
--- a/src/evdev-mt-touchpad.c
+++ b/src/evdev-mt-touchpad.c
@@ -26,71 +26,12 @@
 #include <math.h>
 #include <stdbool.h>
 
-#include "evdev.h"
-#include "filter.h"
+#include "evdev-mt-touchpad.h"
 
 #define DEFAULT_CONSTANT_ACCEL_NUMERATOR 50
 #define DEFAULT_MIN_ACCEL_FACTOR 0.16
 #define DEFAULT_MAX_ACCEL_FACTOR 1.0
 #define DEFAULT_HYSTERESIS_MARGIN_DENOMINATOR 700.0
-#define TOUCHPAD_HISTORY_LENGTH 4
-
-#define tp_for_each_touch(_tp, _t) \
-	for (unsigned int _i = 0; _i < (_tp)->ntouches && (_t = &(_tp)->touches[_i]); _i++)
-
-enum touch_state {
-	TOUCH_NONE = 0,
-	TOUCH_BEGIN,
-	TOUCH_UPDATE,
-	TOUCH_END
-};
-
-struct tp_motion {
-	int32_t x;
-	int32_t y;
-};
-
-struct tp_touch {
-	enum touch_state state;
-	bool dirty;
-	int32_t x;
-	int32_t y;
-	uint32_t millis;
-
-	struct {
-		struct tp_motion samples[TOUCHPAD_HISTORY_LENGTH];
-		unsigned int index;
-		unsigned int count;
-	} history;
-
-	struct {
-		int32_t center_x;
-		int32_t center_y;
-	} hysteresis;
-};
-
-struct tp_dispatch {
-	struct evdev_dispatch base;
-	struct evdev_device *device;
-	unsigned int nfingers_down;		/* number of fingers down */
-	unsigned int slot;			/* current slot */
-
-	unsigned int ntouches;			/* number of slots */
-	struct tp_touch *touches;		/* len == ntouches */
-
-	struct {
-		int32_t margin_x;
-		int32_t margin_y;
-	} hysteresis;
-
-	struct motion_filter *filter;
-
-	struct {
-		double constant_factor;
-		double min_factor;
-		double max_factor;
-	} accel;
-};
 
 static inline int
 tp_hysteresis(int in, int center, int margin)
diff --git a/src/evdev-mt-touchpad.h b/src/evdev-mt-touchpad.h
new file mode 100644
index 0000000..f7f413b
--- /dev/null
+++ b/src/evdev-mt-touchpad.h
@@ -0,0 +1,91 @@
+/*
+ * Copyright © 2014 Red Hat, Inc.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and
+ * its documentation for any purpose is hereby granted without fee, provided
+ * that the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation, and that the name of the copyright holders not be used in
+ * advertising or publicity pertaining to distribution of the software
+ * without specific, written prior permission.  The copyright holders make
+ * no representations about the suitability of this software for any
+ * purpose.  It is provided "as is" without express or implied warranty.
+ *
+ * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
+ * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
+ * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+ * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+ * CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+
+#ifndef EVDEV_MT_TOUCHPAD_H
+#define EVDEV_MT_TOUCHPAD_H
+
+#include <stdbool.h>
+
+#include "evdev.h"
+#include "filter.h"
+
+#define TOUCHPAD_HISTORY_LENGTH 4
+
+enum touch_state {
+	TOUCH_NONE = 0,
+	TOUCH_BEGIN,
+	TOUCH_UPDATE,
+	TOUCH_END
+};
+
+struct tp_motion {
+	int32_t x;
+	int32_t y;
+};
+
+struct tp_touch {
+	enum touch_state state;
+	bool dirty;
+	int32_t x;
+	int32_t y;
+	uint32_t millis;
+
+	struct {
+		struct tp_motion samples[TOUCHPAD_HISTORY_LENGTH];
+		unsigned int index;
+		unsigned int count;
+	} history;
+
+	struct {
+		int32_t center_x;
+		int32_t center_y;
+	} hysteresis;
+};
+
+struct tp_dispatch {
+	struct evdev_dispatch base;
+	struct evdev_device *device;
+	unsigned int nfingers_down;		/* number of fingers down */
+	unsigned int slot;			/* current slot */
+
+	unsigned int ntouches;			/* number of slots */
+	struct tp_touch *touches;		/* len == ntouches */
+
+	struct {
+		int32_t margin_x;
+		int32_t margin_y;
+	} hysteresis;
+
+	struct motion_filter *filter;
+
+	struct {
+		double constant_factor;
+		double min_factor;
+		double max_factor;
+	} accel;
+};
+
+#define tp_for_each_touch(_tp, _t) \
+	for (unsigned int _i = 0; _i < (_tp)->ntouches && (_t = &(_tp)->touches[_i]); _i++)
+
+#endif
-- 
1.8.4.2



More information about the wayland-devel mailing list