diff options
author | Simon Busch <morphis@gravedo.de> | 2011-10-10 11:46:53 +0200 |
---|---|---|
committer | Koen Kooi <koen@dominion.thruhere.net> | 2011-10-12 13:02:55 +0200 |
commit | 19ebb4bda5fe83f00602db716039ce74ab38eee2 (patch) | |
tree | 83c684b2b59e83582c2f9b3bdefcd32c47e3a6de | |
parent | 4be8fa4e01b089430dced7d386ad37d12acffb43 (diff) | |
download | meta-openembedded-19ebb4bda5fe83f00602db716039ce74ab38eee2.tar.gz |
meta-oe: xf86-input-mtev: add intial recipe for a multitouch input driver
Signed-off-by: Denis Carikli <denis@eukrea.com>
Signed-off-by: Simon Busch <morphis@gravedo.de>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
-rw-r--r-- | meta-oe/recipes-graphics/xorg-driver/xf86-input-mtev/fix-it.patch | 153 | ||||
-rw-r--r-- | meta-oe/recipes-graphics/xorg-driver/xf86-input-mtev_git.bb | 21 |
2 files changed, 174 insertions, 0 deletions
diff --git a/meta-oe/recipes-graphics/xorg-driver/xf86-input-mtev/fix-it.patch b/meta-oe/recipes-graphics/xorg-driver/xf86-input-mtev/fix-it.patch new file mode 100644 index 0000000000..771a2a8e12 --- /dev/null +++ b/meta-oe/recipes-graphics/xorg-driver/xf86-input-mtev/fix-it.patch @@ -0,0 +1,153 @@ +diff --git a/src/multitouch.c b/src/multitouch.c +index c55d742..4a8192d 100644 +--- a/src/multitouch.c ++++ b/src/multitouch.c +@@ -114,7 +114,7 @@ static int init_properties(DeviceIntPtr dev) + return Success; + } + +-static int device_init(DeviceIntPtr dev, LocalDevicePtr local) ++static int device_init(DeviceIntPtr dev, InputInfoPtr local) + { + struct mtev_mtouch *mt = local->private; + Atom atom; +@@ -222,7 +222,7 @@ static int device_init(DeviceIntPtr dev, LocalDevicePtr local) + xf86InitValuatorAxisStruct(dev, val, axes_labels[val], + min, + max, +- 1, 0, 1); ++ 1, 0, 1,Absolute); + xf86InitValuatorDefaults(dev, val); + } + } +@@ -232,7 +232,7 @@ static int device_init(DeviceIntPtr dev, LocalDevicePtr local) + return Success; + } + +-static int device_on(LocalDevicePtr local) ++static int device_on(InputInfoPtr local) + { + struct mtev_mtouch *mt = local->private; + local->fd = xf86OpenSerial(local->options); +@@ -248,7 +248,7 @@ static int device_on(LocalDevicePtr local) + return Success; + } + +-static int device_off(LocalDevicePtr local) ++static int device_off(InputInfoPtr local) + { + struct mtev_mtouch *mt = local->private; + xf86RemoveEnabledDevice(local); +@@ -259,12 +259,12 @@ static int device_off(LocalDevicePtr local) + return Success; + } + +-static int device_close(LocalDevicePtr local) ++static int device_close(InputInfoPtr local) + { + return Success; + } + +-static void process_state(LocalDevicePtr local, ++static void process_state(InputInfoPtr local, + const struct mtev_mtouch *mt) + { + +@@ -321,22 +321,22 @@ static void process_state(LocalDevicePtr local, + } + + /* Some x-clients assume they get motion events before button down */ ++ xf86Msg(X_INFO,"down %d|pdown %d\n", down, pdown); + if (down) + xf86PostMotionEventP(local->dev, TRUE, + 0, down * MT_AXIS_PER_FINGER, valuators); +- + if(down && pdown == 0) + xf86PostButtonEventP(local->dev, TRUE, + 1, 1, + 0, down * MT_AXIS_PER_FINGER, valuators); +- else if (down == 0 && pdown) +- xf86PostButtonEvent(local->dev, TRUE, 1, 0, 0, 0); +- ++ else if (down == 0 && pdown){ ++ xf86PostButtonEvent(local->dev, TRUE, 1, 1, 0, 0); ++ } + pdown = !!down; + } + + /* called for each full received packet from the touchpad */ +-static void read_input(LocalDevicePtr local) ++static void read_input(InputInfoPtr local) + { + struct mtev_mtouch *mt = local->private; + while (mtouch_read_synchronized_event(mt, local->fd)) { +@@ -346,7 +346,7 @@ static void read_input(LocalDevicePtr local) + + static Bool device_control(DeviceIntPtr dev, int mode) + { +- LocalDevicePtr local = dev->public.devicePrivate; ++ InputInfoPtr local = dev->public.devicePrivate; + switch (mode) { + case DEVICE_INIT: + xf86Msg(X_INFO, "device control: init\n"); +@@ -366,39 +366,29 @@ static Bool device_control(DeviceIntPtr dev, int mode) + } + } + +-static InputInfoPtr preinit(InputDriverPtr drv, IDevPtr dev, int flags) ++static InputInfoPtr preinit(InputDriverPtr drv, InputInfoPtr pInfo, int flags) + { + struct mtev_mtouch *mt; +- InputInfoPtr local = xf86AllocateInput(drv, 0); +- if (!local) +- goto error; ++ int rc; ++ + mt = calloc(1, sizeof(struct mtev_mtouch)); ++ + if (!mt) + goto error; + +- local->name = dev->identifier; +- local->type_name = XI_TOUCHSCREEN; +- local->device_control = device_control; +- local->read_input = read_input; +- local->private = mt; +- local->flags = XI86_POINTER_CAPABLE | +- XI86_SEND_DRAG_EVENTS; +- +- local->conf_idev = dev; +- +- xf86CollectInputOptions(local, NULL, NULL); +- //xf86OptionListReport(local->options); +- xf86ProcessCommonOptions(local, local->options); ++ pInfo->private = mt; ++ pInfo->type_name = "UNKNOWN"; ++ pInfo->device_control = device_control; ++ pInfo->read_input = read_input; + ++ mt->swap_xy = xf86SetBoolOption(pInfo->options, "SwapAxes", FALSE); ++ mt->invert_x = xf86SetBoolOption(pInfo->options, "InvertX", FALSE); ++ mt->invert_y = xf86SetBoolOption(pInfo->options, "InvertY", FALSE); + +- mt->swap_xy = xf86SetBoolOption(local->options, "SwapAxes", FALSE); +- mt->invert_x = xf86SetBoolOption(local->options, "InvertX", FALSE); +- mt->invert_y = xf86SetBoolOption(local->options, "InvertY", FALSE); +- +- local->flags |= XI86_CONFIGURED; ++ return Success; + + error: +- return local; ++ return !Success; + } + + static void uninit(InputDriverPtr drv, InputInfoPtr local, int flags) +@@ -415,7 +405,6 @@ static InputDriverRec MTEV = { + .PreInit = preinit, + .UnInit = uninit, + .module = NULL, +- .refCount = 0 + }; + + static XF86ModuleVersionInfo VERSION = { diff --git a/meta-oe/recipes-graphics/xorg-driver/xf86-input-mtev_git.bb b/meta-oe/recipes-graphics/xorg-driver/xf86-input-mtev_git.bb new file mode 100644 index 0000000000..a604d4651a --- /dev/null +++ b/meta-oe/recipes-graphics/xorg-driver/xf86-input-mtev_git.bb @@ -0,0 +1,21 @@ +require recipes-graphics/xorg-driver/xorg-driver-input.inc +DESCRIPTION = "X.Org X server -- multitouch input driver" +PR = "r0" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=8a71d0475d08eee76d8b6d0c6dbec543" + +DEPENDS += "pixman" + +SRC_URI = "git://gitorious.org/xorg/xf86-input-mtev.git file://fix-it.patch" +SRCREV = "1eb469166ffc095c5801475f057f911f97a6e641" +S = "${WORKDIR}/git" +PV = "1.0.0+gitr${SRCPV}" +PR = "${INC_PR}.0" + +EXTRA_OEMAKE = "'INCLUDE=-I${STAGING_INCDIR}/xorg -I${STAGING_INCDIR}/pixman-1'" + +#skip xorg-driver-common.inc AC_CHECK_FILE mangling +do_configure_prepend () { + sed 's#gcc#${CC}#g' -i Makefile + return +} |