xserver-xorg-input-mutouch: Changes to 'upstream-unstable'
configure.ac | 2
src/xf86MuTouch.c | 676 ++++++------------------------------------------------
2 files changed, 83 insertions(+), 595 deletions(-)
New commits:
commit 3a210acc671a6a2f07b2321cf4d7d525867da145
Author: Peter Hutterer <peter.hutterer@redhat.com>
Date: Thu Oct 2 09:10:15 2008 +0930
mutouch 1.2.1
diff --git a/configure.ac b/configure.ac
index 702bf2d..f4befa1 100644
--- a/configure.ac
+++ b/configure.ac
@@ -22,7 +22,7 @@
AC_PREREQ(2.57)
AC_INIT([xf86-input-mutouch],
- 1.2.0,
+ 1.2.1,
[https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
xf86-input-mutouch)
commit 226adbe8a87266115eb66a480896d33405124acb
Author: Peter Hutterer <peter.hutterer@redhat.com>
Date: Thu Aug 14 15:44:27 2008 +0930
Remove pre-XFREE86_V4 cruft.
diff --git a/src/xf86MuTouch.c b/src/xf86MuTouch.c
index 6e6a134..82c2a25 100644
--- a/src/xf86MuTouch.c
+++ b/src/xf86MuTouch.c
@@ -49,12 +49,8 @@
#include <string.h>
#include <stdio.h>
-#include "xf86Version.h"
-#if XF86_VERSION_CURRENT >= XF86_VERSION_NUMERIC(3,9,0,0,0)
-#define XFREE86_V4
-#endif
+#include "xorgVersion.h"
-#ifdef XFREE86_V4
#include "misc.h"
#include "xf86.h"
#if !defined(DGUX)
@@ -67,110 +63,8 @@
#include "xf86Module.h"
#endif
-#else /* XFREE86_V4 */
-
-#include <X11/Xos.h>
-#include <signal.h>
-#include <stdio.h>
-
-#define NEED_EVENTS
-#include <X11/X.h>
-#include <X11/Xproto.h>
-#include "inputstr.h"
-#include "scrnintstr.h"
-#include <X11/extensions/XI.h>
-#include <X11/extensions/XIproto.h>
-
-#include "compiler.h"
-
-#include "xf86.h"
-#include "xf86Procs.h"
-#include "xf86_OSlib.h"
-#include "xf86_Config.h"
-#include "xf86Xinput.h"
-
-#include "os.h"
-#include "osdep.h"
-#include "exevents.h"
-
-#include "extnsionst.h"
-#include "extinit.h"
-
-#endif /* XFREE86_V4 */
-
-
-#ifndef XFREE86_V4
-/*
- ***************************************************************************
- *
- * Configuration descriptor.
- *
- ***************************************************************************
- */
-#define FINGER_SECTION_NAME "microtouchfinger"
-#define STYLUS_SECTION_NAME "microtouchstylus"
-
-#define PORT 1
-#define DEVICENAME 2
-#define SCREEN_NO 3
-#define MAXX 5
-#define MAXY 6
-#define MINX 7
-#define MINY 8
-#define DEBUG_LEVEL 9
-#define HISTORY_SIZE 10
-#define LINK_SPEED 11
-#define ALWAYS_CORE 12
-#define SWAP_AXES 13
-#define FREQUENCY 14
-#define PORTRAIT_MODE 15
-
-static SymTabRec MuTTab[] = {
- { ENDSUBSECTION, "endsubsection" },
- { PORT, "port" },
- { DEVICENAME, "devicename" },
- { SCREEN_NO, "screenno" },
- { MAXX, "maximumxposition" },
- { MAXY, "maximumyposition" },
- { MINX, "minimumxposition" },
- { MINY, "minimumyposition" },
- { DEBUG_LEVEL, "debuglevel" },
- { HISTORY_SIZE, "historysize" },
- { LINK_SPEED, "linkspeed" },
- { ALWAYS_CORE, "alwayscore" },
- { SWAP_AXES, "swapxy" },
- { FREQUENCY, "frequency" },
- { PORTRAIT_MODE, "portraitmode" },
- { -1, "" },
-};
-
-#define LS300 1
-#define LS1200 2
-#define LS2400 3
-#define LS9600 4
-#define LS19200 5
-
-static SymTabRec LinkSpeedTab[] = {
- { LS300, "b300" },
- { LS1200, "b1200" },
- { LS2400, "b2400" },
- { LS9600, "b9600" },
- { LS19200, "b19200" }
-};
-
-typedef struct {
- int speed;
-} LinkParameterStruct;
-static LinkParameterStruct LinkSpeedValues[] = {
- { B300 },
- { B1200 },
- { B2400 },
- { B9600 },
- { B19200 }
-};
-#endif /* XFREE86_V4 */
/*
@@ -291,7 +185,6 @@ static int debug_level = 0;
#define DBG(lvl, f)
#endif
-#ifdef XFREE86_V4
#undef SYSCALL
#undef read
#undef write
@@ -300,7 +193,6 @@ static int debug_level = 0;
#define read(fd, ptr, num) xf86ReadSerial(fd, ptr, num)
#define write(fd, ptr, num) xf86WriteSerial(fd, ptr, num)
#define close(fd) xf86CloseSerial(fd)
-#endif
/*
@@ -322,9 +214,6 @@ typedef struct _MuTPrivateRec {
int max_y; /* Maximum y */
int x_inverted; /* X axis inverted? */
int y_inverted; /* Y axis inverted? */
-#ifndef XFREE86_V4
- int link_speed; /* Speed of the RS232 link connecting the ts. */
-#endif
int frequency; /* Frequency for ThruGlass */
int screen_no; /* Screen associated with the device */
int screen_width; /* Width of the associated X screen */
@@ -339,257 +228,6 @@ typedef struct _MuTPrivateRec {
} MuTPrivateRec, *MuTPrivatePtr;
-#ifndef XFREE86_V4
-/*
- ***************************************************************************
- *
- * xf86MuTConfig --
- * Configure the driver from the configuration data.
- *
- ***************************************************************************
- */
-static Bool
-xf86MuTConfig(LocalDevicePtr *array,
- int inx,
- int max,
- LexPtr val)
-{
- LocalDevicePtr local = array[inx];
- MuTPrivatePtr priv = (MuTPrivatePtr)(local->private);
- int token;
- int portrait=0;
-
- while ((token = xf86GetToken(MuTTab)) != ENDSUBSECTION) {
- switch(token) {
-
- case PORT:
- if (xf86GetToken(NULL) != STRING)
- xf86ConfigError("MicroTouch input port expected");
- else {
- /*
- * See if another X device share the same physical
- * device and set up the links so that they share
- * the same private structure (the one that controls
- * the physical device).
- */
- int i;
- for (i = 0; i < max; i++) {
- if (i == inx)
- continue;
- if (array[i]->device_config == xf86MuTConfig &&
- (strcmp(((MuTPrivatePtr) array[i]->private)->input_dev,
- val->str) == 0)) {
- ErrorF("%s MicroTouch config detected a device share between %s and %s\n",
- XCONFIG_GIVEN, local->name, array[i]->name);
- xfree(priv);
- priv = local->private = array[i]->private;
- switch (DEVICE_ID(local->private_flags)) {
- case FINGER_ID:
- priv->finger = local;
- break;
- case STYLUS_ID:
- priv->stylus = local;
- break;
- }
- break;
- }
- }
- if (i == max) {
- priv->input_dev = strdup(val->str);
- if (xf86Verbose)
- ErrorF("%s MicroTouch %s input port: %s\n",
- XCONFIG_GIVEN, local->name, priv->input_dev);
- }
- }
- break;
-
- case DEVICENAME:
- if (xf86GetToken(NULL) != STRING)
- xf86ConfigError("MicroTouch device name expected");
- local->name = strdup(val->str);
- if (xf86Verbose)
- ErrorF("%s MicroTouch %s X device name: %s\n",
- XCONFIG_GIVEN, local->name, local->name);
- break;
-
- case SCREEN_NO:
- if (xf86GetToken(NULL) != NUMBER)
- xf86ConfigError("MicroTouch screen number expected");
- priv->screen_no = val->num;
- if (xf86Verbose)
- ErrorF("%s MicroTouch %s associated screen: %d\n",
- XCONFIG_GIVEN, local->name, priv->screen_no);
- break;
-
- case LINK_SPEED:
- {
- int ltoken = xf86GetToken(LinkSpeedTab);
- if (ltoken == EOF ||
- ltoken == STRING ||
- ltoken == NUMBER)
- xf86ConfigError("MicroTouch link speed expected");
- priv->link_speed = LinkSpeedValues[ltoken-1].speed;
- if (xf86Verbose)
- ErrorF("%s MicroTouch %s link speed: %s bps\n",
- XCONFIG_GIVEN, local->name, (LinkSpeedTab[ltoken-1].name)+1);
- }
- break;
-
- case MAXX:
- if (xf86GetToken(NULL) != NUMBER)
- xf86ConfigError("MicroTouch maximum x position expected");
- priv->max_x = val->num;
- if (xf86Verbose)
- ErrorF("%s MicroTouch %s maximum x position: %d\n",
- XCONFIG_GIVEN, local->name, priv->max_x);
- break;
-
- case MAXY:
- if (xf86GetToken(NULL) != NUMBER)
- xf86ConfigError("MicroTouch maximum y position expected");
- priv->max_y = val->num;
- if (xf86Verbose)
- ErrorF("%s Microtouch %s maximum y position: %d\n",
- XCONFIG_GIVEN, local->name, priv->max_y);
- break;
-
- case MINX:
- if (xf86GetToken(NULL) != NUMBER)
- xf86ConfigError("MicroTouch minimum x position expected");
- priv->min_x = val->num;
- if (xf86Verbose)
- ErrorF("%s MicroTouch %s minimum x position: %d\n",
- XCONFIG_GIVEN, local->name, priv->min_x);
- break;
-
- case MINY:
- if (xf86GetToken(NULL) != NUMBER)
- xf86ConfigError("MicroTouch minimum y position expected");
- priv->min_y = val->num;
- if (xf86Verbose)
- ErrorF("%s MicroTouch %s minimum y position: %d\n",
- XCONFIG_GIVEN, local->name, priv->min_y);
- break;
-
- case DEBUG_LEVEL:
- if (xf86GetToken(NULL) != NUMBER)
- xf86ConfigError("MicroTouch driver debug expected");
- debug_level = val->num;
- if (xf86Verbose) {
-#if DEBUG
- ErrorF("%s MicroTouch %s debug level sets to %d\n", XCONFIG_GIVEN,
- local->name, debug_level);
-#else
- ErrorF("%s MicroTouch %s debug not available\n",
- XCONFIG_GIVEN, local->name, debug_level);
-#endif
- }
- break;
-
- case HISTORY_SIZE:
- if (xf86GetToken(NULL) != NUMBER)
- xf86ConfigError("MicroTouch motion history size expected");
- local->history_size = val->num;
- if (xf86Verbose)
- ErrorF("%s MicroTouch %s motion history size is %d\n", XCONFIG_GIVEN,
- local->name, local->history_size);
- break;
-
- case FREQUENCY:
- if (xf86GetToken(NULL) != NUMBER)
- xf86ConfigError("MicroTouch ThruGlass frequency expected");
- priv->frequency = val->num;
- if (xf86Verbose)
- ErrorF("%s MicroTouch %s frequency is %d\n", XCONFIG_GIVEN,
- local->name, priv->frequency);
- break;
-
- case ALWAYS_CORE:
- xf86AlwaysCore(local, TRUE);
- if (xf86Verbose)
- ErrorF("%s MicroTouch %s device will always stays core pointer\n",
- XCONFIG_GIVEN, local->name);
- break;
-
- case SWAP_AXES:
- priv->swap_axes = 1;
- if (xf86Verbose) {
- ErrorF("%s Microtouch %s device will work with X and Y axes swapped\n",
- XCONFIG_GIVEN, local->name);
- }
- break;
-
- case PORTRAIT_MODE:
- if (xf86GetToken(NULL) != STRING) {
- portrait_mode_err:
- xf86ConfigError("Microtouch portrait mode should be: Portrait, Landscape or PortraitCCW");
- }
- if (strcmp(val->str, "portrait") == 0) {
- portrait = 1;
- }
- else if (strcmp(val->str, "portraitccw") == 0) {
- portrait = -1;
- }
- else if (strcmp(val->str, "landscape") != 0) {
- goto portrait_mode_err;
- }
- if (xf86Verbose) {
- ErrorF("%s Microtouch %s device will work in %s mode\n",
- XCONFIG_GIVEN, local->name, val->str);
- }
- break;
-
- case EOF:
- FatalError("Unexpected EOF (missing EndSubSection)");
- break;
-
- default:
- xf86ConfigError("MicroTouch subsection keyword expected");
- break;
- }
- }
-
- if (priv->max_x - priv->min_x <=0) {
- ErrorF("%s MicroTouch: reverse x mode (minimum x position >= maximum x position)\n",
- XCONFIG_GIVEN);
- }
- if (priv->max_y - priv->min_y <=0) {
- ErrorF("%s MicroTouch: reverse y mode (minimum y position >= maximum y position)\n",
- XCONFIG_GIVEN);
- }
-
- /*
- * The portrait adjustments need to be done after axis reversing
- * and axes swap. This way the driver can cope with deffective
- * hardware and still do the correct processing depending on the
- * actual display orientation.
- */
- if (portrait == 1) {
- /*
- * Portrait Clockwise: reverse Y axis and exchange X and Y.
- */
- int tmp;
- tmp = priv->min_y;
- priv->min_y = priv->max_y;
- priv->max_y = tmp;
- priv->swap_axes = (priv->swap_axes==0) ? 1 : 0;
- }
- else if (portrait == -1) {
- /*
- * Portrait Counter Clockwise: reverse X axis and exchange X and Y.
- */
- int tmp;
- tmp = priv->min_x;
- priv->min_x = priv->max_x;
- priv->max_x = tmp;
- priv->swap_axes = (priv->swap_axes==0) ? 1 : 0;
- }
-
- DBG(2, ErrorF("xf86MuTConfig port name=%s\n", priv->input_dev))
-
- return Success;
-}
-#endif
/*
@@ -635,14 +273,12 @@ xf86MuTConvert(LocalDevicePtr local,
*y = (priv->screen_height -
(priv->screen_height * (input_y - priv->min_y)) / height);
-#ifdef XFREE86_V4
/*
* Need to check if still on the correct screen.
* This call is here so that this work can be done after
* calib and before posting the event.
*/
xf86XInputSetScreen(local, priv->screen_no, *x, *y);
-#endif
return TRUE;
}
@@ -959,24 +595,6 @@ xf86MuTGetReply(unsigned char *buffer,
*
***************************************************************************
*/
-#ifndef XFREE86_V4
-static int
-xf86WaitForInput(int fd,
- int timeout)
-{
- fd_set readfds;
- struct timeval to;
- int r;
-
- FD_ZERO(&readfds);
- FD_SET(fd, &readfds);
- to.tv_sec = 0;
- to.tv_usec = timeout;
-
- SYSCALL(r = select(FD_SETSIZE, &readfds, NULL, NULL, &to));
- return r;
-}
-#endif
static Bool
xf86MuTWaitReply(unsigned char *reply,
@@ -1066,7 +684,6 @@ xf86MuTPrintIdent(unsigned char *packet)
{
int vers, rev;
-#ifdef XFREE86_V4
xf86Msg(X_PROBED, "MicroTouch touchscreen is a ");
if (strncmp((char *) &packet[1], MuT_TOUCH_PEN_IDENT, 2) == 0) {
xf86Msg(X_NONE, "TouchPen");
@@ -1080,21 +697,6 @@ xf86MuTPrintIdent(unsigned char *packet)
xf86Msg(X_NONE, ", connected through a serial port.\n");
sscanf((char *) &packet[3], "%2d%2d", &vers, &rev);
xf86Msg(X_PROBED, "MicroTouch controller firmware revision is %d.%d.\n", vers, rev);
-#else
- ErrorF("%s MicroTouch touchscreen is a ", XCONFIG_PROBED);
- if (strncmp((char *) &packet[1], MuT_TOUCH_PEN_IDENT, 2) == 0) {
- ErrorF("TouchPen");
- }
- else if (strncmp((char *) &packet[1], MuT_SMT3_IDENT, 2) == 0) {
- ErrorF("Serial/SMT3");
- }
- else if (strncmp((char *) &packet[1], MuT_THRU_GLASS_IDENT, 2) == 0) {
- ErrorF("ThruGlass");
- }
- ErrorF(", connected through a serial port.\n");
- sscanf((char *) &packet[3], "%2d%2d", &vers, &rev);
- ErrorF("%s MicroTouch controller firmware revision is %d.%d.\n", XCONFIG_PROBED, vers, rev);
-#endif
}
@@ -1110,11 +712,7 @@ xf86MuTPrintIdent(unsigned char *packet)
static void
xf86MuTPrintHwStatus(unsigned char *packet)
{
-#ifdef XFREE86_V4
xf86Msg(X_PROBED, "MicroTouch status of errors: %c%c.\n", packet[7], packet[8]);
-#else
- ErrorF("%s MicroTouch status of errors: %c%c.\n", XCONFIG_PROBED, packet[7], packet[8]);
-#endif
}
@@ -1211,9 +809,6 @@ xf86MuTControl(DeviceIntPtr dev,
/*
* This once has caused the server to crash after doing an xalloc & strcpy ??
*/
-#ifndef XFREE86_V4
- AssignTypeAndName(dev, local->atom, local->name);
-#endif
DBG(2, ErrorF("Done.\n"));
return Success;
@@ -1250,44 +845,13 @@ xf86MuTControl(DeviceIntPtr dev,
}
}
if (!already_open) {
-#ifndef XFREE86_V4
- struct termios termios_tty;
- int result;
-#endif
DBG(2, ErrorF("MicroTouch touchscreen opening : %s\n", priv->input_dev));
-#ifdef XFREE86_V4
local->fd = xf86OpenSerial(local->options);
if (local->fd < 0) {
Error("Unable to open MicroTouch touchscreen device");
return !Success;
}
-#else
- SYSCALL(local->fd = open(priv->input_dev, O_RDWR|O_NDELAY, 0));
- if (local->fd < 0) {
- Error("Unable to open MicroTouch touchscreen device");
- return !Success;
- }
-
- /*
- * Try to see if the link is at the specified rate and
- * reset the controller. The wait time needed by the
- * controller after reset should be compensated by the
- * timeouts in the receive section.
- */
- DBG(3, ErrorF("Try to see if the link is at the specified rate\n"));
- memset(&termios_tty, 0, sizeof(termios_tty));
- termios_tty.c_cflag = priv->link_speed | CS8 | CREAD | CLOCAL;
-#ifdef CRTSCTS
- termios_tty.c_cflag &= ~CRTSCTS;
-#endif
- termios_tty.c_cc[VMIN] = 1;
- SYSCALL(result = tcsetattr(local->fd, TCSANOW, &termios_tty));
- if (result < 0) {
- Error("Unable to configure MicroTouch touchscreen port");
- goto not_success;
- }
-#endif
memset(req, 0, MuT_PACKET_SIZE);
strncpy((char *) &req[1], MuT_RESET, strlen(MuT_RESET));
if (xf86MuTSendCommand(req, strlen(MuT_RESET), NULL, local->fd) != Success) {
@@ -1341,11 +905,7 @@ xf86MuTControl(DeviceIntPtr dev,
goto not_success;
}
/* goto not_success;*/
-#ifndef XFREE86_V4
- xf86AddEnabledDevice(local);
-#else
AddEnabledDevice(local->fd);
-#endif
}
/*
@@ -1421,11 +981,7 @@ xf86MuTControl(DeviceIntPtr dev,
DBG(2, ErrorF("MicroTouch %s close...\n", id_string));
dev->public.on = FALSE;
if (local->fd >= 0) {
-#ifdef XFREE86_V4
xf86RemoveEnabledDevice(local);
-#else
- RemoveEnabledDevice(local->fd);
-#endif
SYSCALL(close(local->fd));
local->fd = -1;
/*
@@ -1460,22 +1016,12 @@ xf86MuTControl(DeviceIntPtr dev,
***************************************************************************
*/
static LocalDevicePtr
-#ifndef XFREE86_V4
-xf86MuTAllocate(char *name,
- char *type_name,
- int flag)
-#else
xf86MuTAllocate(InputDriverPtr drv,
char *name,
char *type_name,
int flag)
-#endif
{
-#ifndef XFREE86_V4
- LocalDevicePtr local = (LocalDevicePtr) xalloc(sizeof(LocalDeviceRec));
-#else
LocalDevicePtr local = xf86AllocateInput(drv, 0);
-#endif
MuTPrivatePtr priv = (MuTPrivatePtr) xalloc(sizeof(MuTPrivateRec));
if (!local) {
@@ -1492,9 +1038,6 @@ xf86MuTAllocate(InputDriverPtr drv,
}
priv->input_dev = strdup(MuT_PORT);
-#ifndef XFREE86_V4
- priv->link_speed = MuT_LINK_SPEED;
-#endif
priv->min_x = 0;
priv->max_x = 0;
priv->min_y = 0;
@@ -1512,9 +1055,6 @@ xf86MuTAllocate(InputDriverPtr drv,
local->name = name;
local->flags = 0 /* XI86_NO_OPEN_ON_INIT */;
-#ifndef XFREE86_V4
- local->device_config = xf86MuTConfig;
-#endif
local->device_control = xf86MuTControl;
local->read_input = xf86MuTReadInput;
local->control_proc = NULL;
@@ -1542,17 +1082,9 @@ xf86MuTAllocate(InputDriverPtr drv,
***************************************************************************
*/
static LocalDevicePtr
-#ifndef XFREE86_V4
-xf86MuTAllocateFinger(void)
-#else
xf86MuTAllocateFinger(InputDriverPtr drv)
-#endif
{
-#ifndef XFREE86_V4
- LocalDevicePtr local = xf86MuTAllocate(XI_FINGER, "MicroTouch Finger", FINGER_ID);
-#else
LocalDevicePtr local = xf86MuTAllocate(drv, XI_FINGER, "MicroTouch Finger", FINGER_ID);
-#endif
if (local) {
((MuTPrivatePtr) local->private)->finger = local;
@@ -1569,17 +1101,9 @@ xf86MuTAllocateFinger(InputDriverPtr drv)
***************************************************************************
*/
static LocalDevicePtr
-#ifndef XFREE86_V4
-xf86MuTAllocateStylus(void)
-#else
xf86MuTAllocateStylus(InputDriverPtr drv)
-#endif
{
-#ifndef XFREE86_V4
- LocalDevicePtr local = xf86MuTAllocate(XI_STYLUS, "MicroTouch Stylus", STYLUS_ID);
-#else
LocalDevicePtr local = xf86MuTAllocate(drv, XI_STYLUS, "MicroTouch Stylus", STYLUS_ID);
-#endif
if (local) {
((MuTPrivatePtr) local->private)->stylus = local;
@@ -1588,63 +1112,6 @@ xf86MuTAllocateStylus(InputDriverPtr drv)
}
-#ifndef XFREE86_V4
-/*
- ***************************************************************************
- *
- * MicroTouch finger device association --
- *
- ***************************************************************************
- */
-DeviceAssocRec MuT_finger_assoc =
-{
- FINGER_SECTION_NAME, /* config_section_name */
- xf86MuTAllocateFinger /* device_allocate */
-};
-
-/*
- ***************************************************************************
- *
- * MicroTouch stylus device association --
- *
- ***************************************************************************
- */
-DeviceAssocRec MuT_stylus_assoc =
-{
- STYLUS_SECTION_NAME, /* config_section_name */
- xf86MuTAllocateStylus /* device_allocate */
-};
-
-
-#ifdef DYNAMIC_MODULE
-/*
- ***************************************************************************
- *
- * entry point of dynamic loading
- *
- ***************************************************************************
- */
-int
-#ifndef DLSYM_BUG
-init_module(unsigned long server_version)
-#else
-init_xf86MuTouch(unsigned long server_version)
-#endif
-{
- xf86AddDeviceAssoc(&MuT_finger_assoc);
- xf86AddDeviceAssoc(&MuT_stylus_assoc);
-
- if (server_version != XF86_VERSION_CURRENT) {
- ErrorF("Warning: MicroTouch module compiled for version%s\n", XF86_VERSION);
- return 0;
- }
- else {
- return 1;
- }
-}
-#endif
-
-#else /* XFREE86_V4 */
static void
xf86MuTUninit(InputDriverPtr drv,
LocalDevicePtr local,
@@ -1912,4 +1379,3 @@ static XF86ModuleVersionInfo version_rec = {
_X_EXPORT XF86ModuleData mutouchModuleData = { &version_rec, Plug, Unplug };
#endif
-#endif /* XFREE86_V4 */
commit c2a2c40506a57aa6d9e92e6dce372165c132eb85
Author: Peter Hutterer <peter@cs.unisa.edu.au>
Date: Sat Jun 21 23:15:14 2008 +0930
Fix stupid typos from last patch.
Don't mis-use a boolean as temporary variable either.
diff --git a/src/xf86MuTouch.c b/src/xf86MuTouch.c
index 8f78765..6e6a134 100644
--- a/src/xf86MuTouch.c
+++ b/src/xf86MuTouch.c
@@ -1803,19 +1803,21 @@ xf86MuTInit(InputDriverPtr drv,
xf86Msg(X_CONFIG, "Microtouch device will work in %s mode\n", str);
if (priv->max_x - priv->min_x <= 0) {
+ int tmp;
xf86Msg(X_INFO, "MicroTouch: reverse x mode (minimum x position >= maximum x position)\n");
- priv->x_inverted = priv->max_x; /* X server doesn't do inverted by itself*/
+ tmp = priv->max_x; /* X server doesn't do inverted by itself*/
priv->max_x = priv->min_x;
- priv->min_x = priv->max_x;
+ priv->min_x = tmp;
priv->x_inverted = TRUE;
} else
priv->x_inverted = FALSE;
if (priv->max_y - priv->min_y <= 0) {
+ int tmp;
xf86Msg(X_INFO, "MicroTouch: reverse y mode (minimum y position >= maximum y position)\n");
- priv->y_inverted = priv->max_y;
+ tmp = priv->max_y;
priv->max_y = priv->min_y;
- priv->min_y = priv->max_y;
+ priv->min_y = tmp;
priv->y_inverted = TRUE;
} else
priv->y_inverted = FALSE;
commit 7ada6945af8c690e629bfc4ad6fe19b49cbbb66e
Author: Peter Hutterer <peter@cs.unisa.edu.au>
Date: Thu Jun 12 21:27:32 2008 +0930
Handle axis inversion in the driver.
The current X server doesn't handle inverted axes, so we need to do it in the
driver. Report valid axis ranges to the server, but flip the coordinates
before posting events.
Untested for lack of device.
diff --git a/src/xf86MuTouch.c b/src/xf86MuTouch.c
index bef8ab9..8f78765 100644
--- a/src/xf86MuTouch.c
+++ b/src/xf86MuTouch.c
@@ -320,6 +320,8 @@ typedef struct _MuTPrivateRec {
int max_x; /* Maximum x */
int min_y; /* Minimum y reported by calibration */
int max_y; /* Maximum y */
+ int x_inverted; /* X axis inverted? */
+ int y_inverted; /* Y axis inverted? */
#ifndef XFREE86_V4
int link_speed; /* Speed of the RS232 link connecting the ts. */
#endif
@@ -787,6 +789,10 @@ xf86MuTReadInput(LocalDevicePtr local)
* Emit a motion. If in core pointer mode we need to calibrate
* or we will feed X with quite bogus event positions.
*/
+ if (priv->x_inverted)
+ cur_x = priv->max_x - cur_x;
+ if (priv->y_inverted)
+ cur_y = priv->max_y - cur_y;
xf86PostMotionEvent(local_to_use->dev, TRUE, 0, 2, cur_x, cur_y);
/*
@@ -1798,10 +1804,21 @@ xf86MuTInit(InputDriverPtr drv,
if (priv->max_x - priv->min_x <= 0) {
xf86Msg(X_INFO, "MicroTouch: reverse x mode (minimum x position >= maximum x position)\n");
- }
+ priv->x_inverted = priv->max_x; /* X server doesn't do inverted by itself*/
+ priv->max_x = priv->min_x;
+ priv->min_x = priv->max_x;
+ priv->x_inverted = TRUE;
+ } else
+ priv->x_inverted = FALSE;
+
if (priv->max_y - priv->min_y <= 0) {
xf86Msg(X_INFO, "MicroTouch: reverse y mode (minimum y position >= maximum y position)\n");
- }
+ priv->y_inverted = priv->max_y;
+ priv->max_y = priv->min_y;
+ priv->min_y = priv->max_y;
+ priv->y_inverted = TRUE;
+ } else
+ priv->y_inverted = FALSE;
if (portrait == 1) {
/*
commit aa2cd369f4966520ee90c57035f760b1ca5d9216
Author: Peter Hutterer <peter@cs.unisa.edu.au>
Date: Thu Jun 12 21:15:28 2008 +0930
Remove trailing whitespaces.
diff --git a/src/xf86MuTouch.c b/src/xf86MuTouch.c
index 8f7b54e..bef8ab9 100644
--- a/src/xf86MuTouch.c
+++ b/src/xf86MuTouch.c
@@ -1,6 +1,6 @@
/*
* Copyright 1996, 1999 by Patrick Lecoanet, France. <lecoanet@cena.dgac.fr>
- *
+ *
* 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
@@ -9,8 +9,8 @@
* advertising or publicity pertaining to distribution of the software without
* specific, written prior permission. Patrick Lecoanet makes no
* representations about the suitability of this software for any purpose. It
- * is provided "as is" without express or implied warranty.
- *
+ * is provided "as is" without express or implied warranty.
+ *
* PATRICK LECOANET DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
* EVENT SHALL PATRICK LECOANET BE LIABLE FOR ANY SPECIAL, INDIRECT OR
@@ -162,7 +162,7 @@ static SymTabRec LinkSpeedTab[] = {
typedef struct {
int speed;
} LinkParameterStruct;
-
+
static LinkParameterStruct LinkSpeedValues[] = {
{ B300 },
{ B1200 },
@@ -217,7 +217,7 @@ static LinkParameterStruct LinkSpeedValues[] = {
#define MuT_RESTORE_DEFAULTS "RD" /* Restore factory settings. */
#define MuT_FORMAT_TABLET "FT" /* Report events using tablet format. */
#define MuT_FORMAT_RAW "FR" /* Report events in raw mode (no corrections). */
-#define MuT_CALIBRATE_RAW "CR" /* Calibration in raw mode. */
+#define MuT_CALIBRATE_RAW "CR" /* Calibration in raw mode. */
#define MuT_CALIBRATE_EXT "CX" /* Calibration in extended mode (cooked). */
#define MuT_OUTPUT_IDENT "OI" /* Ask some infos about the firmware. */
#define MuT_UNIT_TYPE "UT" /* Ask some more infos about the firmware. */
@@ -313,7 +313,7 @@ static int debug_level = 0;
#define FINGER_ID 1
#define STYLUS_ID 2
#define DEVICE_ID(flags) ((flags) & 0x03)
-
+
typedef struct _MuTPrivateRec {
char *input_dev; /* The touchscreen input tty */
int min_x; /* Minimum x reported by calibration */
@@ -356,10 +356,10 @@ xf86MuTConfig(LocalDevicePtr *array,
MuTPrivatePtr priv = (MuTPrivatePtr)(local->private);
int token;
int portrait=0;
-
+
while ((token = xf86GetToken(MuTTab)) != ENDSUBSECTION) {
switch(token) {
-
+
case PORT:
if (xf86GetToken(NULL) != STRING)
xf86ConfigError("MicroTouch input port expected");
@@ -393,14 +393,14 @@ xf86MuTConfig(LocalDevicePtr *array,
}
}
if (i == max) {
- priv->input_dev = strdup(val->str);
+ priv->input_dev = strdup(val->str);
if (xf86Verbose)
ErrorF("%s MicroTouch %s input port: %s\n",
XCONFIG_GIVEN, local->name, priv->input_dev);
}
}
break;
-
+
case DEVICENAME:
if (xf86GetToken(NULL) != STRING)
xf86ConfigError("MicroTouch device name expected");
@@ -409,16 +409,16 @@ xf86MuTConfig(LocalDevicePtr *array,
ErrorF("%s MicroTouch %s X device name: %s\n",
XCONFIG_GIVEN, local->name, local->name);
break;
-
+
case SCREEN_NO:
if (xf86GetToken(NULL) != NUMBER)
xf86ConfigError("MicroTouch screen number expected");
priv->screen_no = val->num;
if (xf86Verbose)
ErrorF("%s MicroTouch %s associated screen: %d\n",
- XCONFIG_GIVEN, local->name, priv->screen_no);
+ XCONFIG_GIVEN, local->name, priv->screen_no);
break;
-
+
case LINK_SPEED:
{
int ltoken = xf86GetToken(LinkSpeedTab);
@@ -432,43 +432,43 @@ xf86MuTConfig(LocalDevicePtr *array,
XCONFIG_GIVEN, local->name, (LinkSpeedTab[ltoken-1].name)+1);
}
break;
-
+
case MAXX:
if (xf86GetToken(NULL) != NUMBER)
xf86ConfigError("MicroTouch maximum x position expected");
priv->max_x = val->num;
if (xf86Verbose)
ErrorF("%s MicroTouch %s maximum x position: %d\n",
- XCONFIG_GIVEN, local->name, priv->max_x);
+ XCONFIG_GIVEN, local->name, priv->max_x);
break;
-
+
case MAXY:
if (xf86GetToken(NULL) != NUMBER)
xf86ConfigError("MicroTouch maximum y position expected");
priv->max_y = val->num;
if (xf86Verbose)
ErrorF("%s Microtouch %s maximum y position: %d\n",
- XCONFIG_GIVEN, local->name, priv->max_y);
+ XCONFIG_GIVEN, local->name, priv->max_y);
break;
-
+
case MINX:
if (xf86GetToken(NULL) != NUMBER)
xf86ConfigError("MicroTouch minimum x position expected");
priv->min_x = val->num;
if (xf86Verbose)
ErrorF("%s MicroTouch %s minimum x position: %d\n",
- XCONFIG_GIVEN, local->name, priv->min_x);
+ XCONFIG_GIVEN, local->name, priv->min_x);
break;
-
+
case MINY:
Reply to: