From 6042b35ad51fda2c63e1051cc0c0a7029e8120cc Mon Sep 17 00:00:00 2001 From: Manuel Reimer Date: Mon, 8 Nov 2010 20:17:16 +0100 Subject: Fixed indentation, dropped trailing whitespaces Signed-off-by: Manuel Reimer Signed-off-by: Peter Hutterer --- src/xf86HyperPen.c | 1255 +++++++++++++++++++++++++--------------------------- 1 file changed, 606 insertions(+), 649 deletions(-) diff --git a/src/xf86HyperPen.c b/src/xf86HyperPen.c index 3920a04..4e265bb 100644 --- a/src/xf86HyperPen.c +++ b/src/xf86HyperPen.c @@ -1,17 +1,18 @@ +// -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- /* * xf86HyperPen * * Based on the xf86Summa driver. - * + * * Modified for the Aiptek HyperPen 6000 / Tevion MD 9310 * (c) 2000 Roland Jansen - * - * - * + * + * + * * added button and 19200 bps stuff from the DigitalEdge driver on sourceforge * (c) 2000 Christian Herzog - * - * + * + * */ /* xf86Summa @@ -55,7 +56,7 @@ #endif #include #include -#include /* Needed for InitValuator/Proximity stuff */ +#include /* Needed for InitValuator/Proximity stuff */ #include #include @@ -77,21 +78,20 @@ #undef PRIVATE #define PRIVATE(x) XI_PRIVATE(x) -/* +/* * Be sure to set vmin appropriately for your device's protocol. You want to * read a full packet before returning */ -static const char *default_options[] = -{ - "BaudRate", "9600", - "DataBits", "8", - "StopBits", "1", - "Parity", "Odd", - "FlowControl", "Xoff", - "VTime", "10", - "VMin", "7", - NULL +static const char *default_options[] = { + "BaudRate", "9600", + "DataBits", "8", + "StopBits", "1", + "Parity", "Odd", + "FlowControl", "Xoff", + "VTime", "10", + "VMin", "7", + NULL }; static InputDriverPtr hypDrv; @@ -115,64 +115,63 @@ static InputDriverPtr hypDrv; static int debug_level = INI_DEBUG_LEVEL; #define DEBUG 1 #if DEBUG -#define DBG(lvl, f) {if ((lvl) <= debug_level) f;} +#define DBG(lvl, f) {if ((lvl) <= debug_level) f;} #else -#define DBG(lvl, f) +#define DBG(lvl, f) #endif /* ** Device records */ -#define ABSOLUTE_FLAG 1 -#define STYLUS_FLAG 2 -#define INVX_FLAG 4 -#define INVY_FLAG 8 -#define BAUD_19200_FLAG 16 +#define ABSOLUTE_FLAG 1 +#define STYLUS_FLAG 2 +#define INVX_FLAG 4 +#define INVY_FLAG 8 +#define BAUD_19200_FLAG 16 int stylus; -typedef struct -{ - char *hypDevice; /* device file name */ - int hypButTrans; /* button translation flags */ - int hypOldX; /* previous X position */ - int hypOldY; /* previous Y position */ - int hypOldZ; /* previous Z position */ - int hypOldProximity; /* previous proximity */ - int hypOldPush; /* previous buttons state */ - int hypOldButtons; /* previous buttons state */ - int hypOldBarrel; /* previous buttons state */ - int hypOldBarrel1; /* previous buttons state */ - int hypOldPressure; /* previous pen pressure */ - int hypMaxX; /* max X value */ - int hypMaxY; /* max Y value */ - int hypMaxZ; /* max Z value */ - int hypXSize; /* active area X size */ - int hypXOffset; /* active area X offset */ - int hypYSize; /* active area Y size */ - int hypYOffset; /* active area Y offset */ - int hypRes; /* resolution in lines per inch */ - int flags; /* various flags */ - int hypIndex; /* number of bytes read */ - int modelid; /* model id */ - int PT; /* pressure threshold */ - int AutoPT; /* automatically set PT*/ - int PMax; /* maximum pressure read from tablet */ - unsigned char hypData[7]; /* data read on the device */ +typedef struct { + char *hypDevice; /* device file name */ + int hypButTrans; /* button translation flags */ + int hypOldX; /* previous X position */ + int hypOldY; /* previous Y position */ + int hypOldZ; /* previous Z position */ + int hypOldProximity; /* previous proximity */ + int hypOldPush; /* previous buttons state */ + int hypOldButtons; /* previous buttons state */ + int hypOldBarrel; /* previous buttons state */ + int hypOldBarrel1; /* previous buttons state */ + int hypOldPressure; /* previous pen pressure */ + int hypMaxX; /* max X value */ + int hypMaxY; /* max Y value */ + int hypMaxZ; /* max Z value */ + int hypXSize; /* active area X size */ + int hypXOffset; /* active area X offset */ + int hypYSize; /* active area Y size */ + int hypYOffset; /* active area Y offset */ + int hypRes; /* resolution in lines per inch */ + int flags; /* various flags */ + int hypIndex; /* number of bytes read */ + int modelid; /* model id */ + int PT; /* pressure threshold */ + int AutoPT; /* automatically set PT*/ + int PMax; /* maximum pressure read from tablet */ + unsigned char hypData[7]; /* data read on the device */ } HyperPenDeviceRec, *HyperPenDevicePtr; /* ** List of model IDs */ static struct MODEL_ID { - unsigned id; - char* name; + unsigned id; + char* name; } models[] = { - {0x32, "HyperPen 3000"}, - {0x43, "HyperPen 4000"}, - {0x54, "HyperPen 5000"}, - {0x64, "HyperPen 6000"}, - {0, NULL} + {0x32, "HyperPen 3000"}, + {0x43, "HyperPen 4000"}, + {0x54, "HyperPen 5000"}, + {0x64, "HyperPen 6000"}, + {0, NULL} }; /* @@ -184,40 +183,40 @@ static struct MODEL_ID { /* ** Contants and macro */ -#define BUFFER_SIZE 256 /* size of reception buffer */ -#define XI_NAME "HYPERPEN" /* X device name for the stylus */ +#define BUFFER_SIZE 256 /* size of reception buffer */ +#define XI_NAME "HYPERPEN" /* X device name for the stylus */ #define SYSCALL(call) while(((call) == -1) && (errno == EINTR)) -#define SS_RESET "\0" /* Reset */ -#define SS_GETID "\5" /* Get Model ID */ -#define SS_CONFIG "a" /* Send configuration (max coords) */ -#define SS_PROMPT_MODE "D" /* Prompt mode */ -#define SS_STREAM_MODE "@" /* Stream mode */ -#define SS_RATE "\xb5" /* 19200 bps */ -#define SS_ABSOLUTE "F" /* absolute mode */ -#define SS_RELATIVE "E" /* relative mode */ -#define SS_MACROKEY "U" /* enable F-keys */ -#define SS_MACRO_4K "\2" /* start F-keys for Hyperpen 4000 */ -#define SS_MACRO_56K "\1" /* start F-keys for Hyperpen 5000/6000 */ -static const char * ss_initstr = SS_STREAM_MODE; - -#define PHASING_BIT 0x80 -#define PROXIMITY_BIT 0x40 -#define XSIGN_BIT 0x10 -#define YSIGN_BIT 0x08 -#define BUTTON_BITS 0x07 -#define COORD_BITS 0x7f -#define XAXIS_BITS 0x03 -#define YAXIS_BITS 0x0C -#define ZMASK_BIT 0x70 -#define TIP_BITS 0x01 -#define F_BIT 0x20 +#define SS_RESET "\0" /* Reset */ +#define SS_GETID "\5" /* Get Model ID */ +#define SS_CONFIG "a" /* Send configuration (max coords) */ +#define SS_PROMPT_MODE "D" /* Prompt mode */ +#define SS_STREAM_MODE "@" /* Stream mode */ +#define SS_RATE "\xb5" /* 19200 bps */ +#define SS_ABSOLUTE "F" /* absolute mode */ +#define SS_RELATIVE "E" /* relative mode */ +#define SS_MACROKEY "U" /* enable F-keys */ +#define SS_MACRO_4K "\2" /* start F-keys for Hyperpen 4000 */ +#define SS_MACRO_56K "\1" /* start F-keys for Hyperpen 5000/6000 */ +static const char * ss_initstr = SS_STREAM_MODE; + +#define PHASING_BIT 0x80 +#define PROXIMITY_BIT 0x40 +#define XSIGN_BIT 0x10 +#define YSIGN_BIT 0x08 +#define BUTTON_BITS 0x07 +#define COORD_BITS 0x7f +#define XAXIS_BITS 0x03 +#define YAXIS_BITS 0x0C +#define ZMASK_BIT 0x70 +#define TIP_BITS 0x01 +#define F_BIT 0x20 /* macro from counts/inch to counts/meter */ -#define LPI2CPM(res) (res * 1000 / 25.4) +#define LPI2CPM(res) (res * 1000 / 25.4) /* ** External declarations @@ -229,38 +228,36 @@ static const char * ss_initstr = SS_STREAM_MODE; ** Convert valuators to X and Y. */ static Bool -xf86HypConvert(LocalDevicePtr local, - int first, - int num, - int v0, - int v1, - int v2, - int v3, - int v4, - int v5, - int* x, - int* y) +xf86HypConvert(LocalDevicePtr local, + int first, + int num, + int v0, + int v1, + int v2, + int v3, + int v4, + int v5, + int* x, + int* y) { - HyperPenDevicePtr priv = (HyperPenDevicePtr) local->private; + HyperPenDevicePtr priv = (HyperPenDevicePtr) local->private; if (first != 0 || num == 1) - return FALSE; + return FALSE; *x = (v0 * screenInfo.screens[0]->width) / priv->hypXSize; *y = (v1 * screenInfo.screens[0]->height) / priv->hypYSize; if (priv->flags & INVX_FLAG) - *x = screenInfo.screens[0]->width - *x; + *x = screenInfo.screens[0]->width - *x; if (*x < 0) - *x = 0; + *x = 0; if (priv->flags & INVY_FLAG) - *y = screenInfo.screens[0]->height - *y; + *y = screenInfo.screens[0]->height - *y; if (*y < 0) - *y = 0; + *y = 0; if (*x > screenInfo.screens[0]->width) - *x = screenInfo.screens[0]->width; + *x = screenInfo.screens[0]->width; if (*y > screenInfo.screens[0]->height) - *y = screenInfo.screens[0]->height; - - + *y = screenInfo.screens[0]->height; return TRUE; } @@ -270,17 +267,15 @@ xf86HypConvert(LocalDevicePtr local, ** Convert X and Y to valuators. */ static Bool -xf86HypReverseConvert(LocalDevicePtr local, - int x, - int y, - int *valuators) +xf86HypReverseConvert(LocalDevicePtr local, + int x, + int y, + int *valuators) { - HyperPenDevicePtr priv = (HyperPenDevicePtr) local->private; + HyperPenDevicePtr priv = (HyperPenDevicePtr) local->private; valuators[0] = ((x * priv->hypXSize) / screenInfo.screens[0]->width); valuators[1] = ((y * priv->hypYSize) / screenInfo.screens[0]->height); - - return TRUE; } @@ -291,183 +286,164 @@ xf86HypReverseConvert(LocalDevicePtr local, static void xf86HypReadInput(LocalDevicePtr local) { - HyperPenDevicePtr priv = (HyperPenDevicePtr) local->private; - int len, loop; - int is_absolute; + HyperPenDevicePtr priv = (HyperPenDevicePtr) local->private; + int len, loop; + int is_absolute; int f_keys, f_key, tip; int x, y, bx, by, barrel, barrel1, prox, pressure, button, push; int hw_pressure; - DeviceIntPtr device; - unsigned char buffer[BUFFER_SIZE]; - - - + DeviceIntPtr device; + unsigned char buffer[BUFFER_SIZE]; SYSCALL(len = read(local->fd, buffer, sizeof(buffer))); if (len <= 0) { - Error("error reading HyperPen device"); - return; - } else { - + Error("error reading HyperPen device"); + return; } for(loop=0; loophypIndex == 0) && !(buffer[loop] & PHASING_BIT)) { + /* magic bit is not OK */ + DBG(6, ErrorF("xf86HypReadInput bad magic number 0x%x\n", buffer[loop]));; + continue; + } - if ((priv->hypIndex == 0) && !(buffer[loop] & PHASING_BIT)) { /* magic bit is not OK */ - DBG(6, ErrorF("xf86HypReadInput bad magic number 0x%x\n", buffer[loop]));; - continue; - } - - priv->hypData[priv->hypIndex++] = buffer[loop]; + priv->hypData[priv->hypIndex++] = buffer[loop]; - if (priv->hypIndex == (priv->flags & ABSOLUTE_FLAG? 7 : 5)) { -/* the packet is OK */ -/* reset char count for next read */ - priv->hypIndex = 0; + if (priv->hypIndex == (priv->flags & ABSOLUTE_FLAG? 7 : 5)) { + /* the packet is OK */ + /* reset char count for next read */ + priv->hypIndex = 0; - prox = (priv->hypData[0] & PROXIMITY_BIT)? 0: 1; - tip = (priv->hypData[0] & TIP_BITS)? 1:0; - button = (priv->hypData[0] & BUTTON_BITS); + prox = (priv->hypData[0] & PROXIMITY_BIT)? 0: 1; + tip = (priv->hypData[0] & TIP_BITS)? 1:0; + button = (priv->hypData[0] & BUTTON_BITS); - f_keys = (priv->hypData[0] & F_BIT); - pressure = (int) priv->hypData[6] + (((int) priv->hypData[5] & ZMASK_BIT) << 3); + f_keys = (priv->hypData[0] & F_BIT); + pressure = (int) priv->hypData[6] + (((int) priv->hypData[5] & ZMASK_BIT) << 3); - if ((tip==0) && (button==0) && (pressure>2) && (pressure != 1022)) {priv->flags |= STYLUS_FLAG; stylus=1;} else - if ((tip==0) && (button==0) && (pressure==0)) {priv->flags &= ~STYLUS_FLAG; stylus=0; pressure = 1019;} + if ((tip==0) && (button==0) && (pressure>2) && (pressure != 1022)) { + priv->flags |= STYLUS_FLAG; stylus=1; + } else if ((tip==0) && (button==0) && (pressure==0)) { + priv->flags &= ~STYLUS_FLAG; stylus=0; pressure = 1019; + } -is_absolute = stylus; + is_absolute = stylus; - x = priv->hypData[1] + (priv->hypData[2] << 7) + ((priv->hypData[5] & XAXIS_BITS) << 14); - y = priv->hypData[3] + (priv->hypData[4] << 7) + ((priv->hypData[5] & YAXIS_BITS) << 12); + x = priv->hypData[1] + (priv->hypData[2] << 7) + ((priv->hypData[5] & XAXIS_BITS) << 14); + y = priv->hypData[3] + (priv->hypData[4] << 7) + ((priv->hypData[5] & YAXIS_BITS) << 12); - if ((f_keys) && (tip)) (f_key = ((x >> 7) + 1) >> 1); else f_key =0; + if ((f_keys) && (tip)) (f_key = ((x >> 7) + 1) >> 1); else f_key =0; - x -= priv->hypXOffset; - y = priv->hypYSize - y + priv->hypYOffset; - if (x < 0) x = 0; - if (y < 0) y = 0; - if (x > priv->hypXSize) x = priv->hypXSize; - if (y > priv->hypYSize) y = priv->hypYSize; - bx=x; - by=y; + x -= priv->hypXOffset; + y = priv->hypYSize - y + priv->hypYOffset; + if (x < 0) x = 0; + if (y < 0) y = 0; + if (x > priv->hypXSize) x = priv->hypXSize; + if (y > priv->hypYSize) y = priv->hypYSize; + bx=x; + by=y; - if (!is_absolute) { - x -= priv->hypOldX; - y -= priv->hypOldY; - } + if (!is_absolute) { + x -= priv->hypOldX; + y -= priv->hypOldY; + } + hw_pressure=pressure; + if (!priv->PMax) priv->PMax=1000; + if (pressure>1020) pressure=priv->PT; + if (priv->AutoPT) { + if ((pressure>1) && !(tip)) priv->PT = pressure; + pressure = 511 * (pressure - priv->PT - 10) / (priv->PMax - priv->PT); + } else { + pressure = 511 * (pressure - priv->PT) / (priv->PMax - priv->PT); + button &= ~1; + if (pressure>0) button |=1; + }; + if (pressure > 511) pressure = 511; + if (pressure < 0) pressure = 0; - - - hw_pressure=pressure; - + push = button & 1; + barrel = button & 2; + barrel1 = button & 4; - if (!priv->PMax) priv->PMax=1000; - if (pressure>1020) pressure=priv->PT; - if (priv->AutoPT) - { - if ((pressure>1) && !(tip)) priv->PT = pressure; - pressure = 511 * (pressure - priv->PT - 10) / (priv->PMax - priv->PT); - } - else - { - pressure = 511 * (pressure - priv->PT) / (priv->PMax - priv->PT); - button &= ~1; - if (pressure>0) button |=1; + DBG(6, ErrorF("hw-press=%d\ttip=%d\tbarrel=%d\tbarrel1=%d\tpush=%d\tpressure=%d\tPT=%d\tbuttons=%d\tf-key=%d\n",hw_pressure, priv->hypData[0] & TIP_BITS, barrel, barrel1, push, pressure, priv->PT, priv->hypData[0] & BUTTON_BITS,f_key)); - }; + device = local->dev; + /* coordonates are ready we can send events */ - if (pressure > 511) pressure = 511; - if (pressure < 0) pressure = 0; + if ((prox) && !(f_keys)) { + if (!(priv->hypOldProximity)) + xf86PostProximityEvent(device, 1, 0, 3, x, y, pressure); - - - push = button & 1; - barrel = button & 2; - barrel1 = button & 4; - - DBG(6, ErrorF("hw-press=%d\ttip=%d\tbarrel=%d\tbarrel1=%d\tpush=%d\tpressure=%d\tPT=%d\tbuttons=%d\tf-key=%d\n",hw_pressure, priv->hypData[0] & TIP_BITS, barrel, barrel1, push, pressure, priv->PT, priv->hypData[0] & BUTTON_BITS,f_key)); - - device = local->dev; - -/* coordonates are ready we can send events */ - - if ((prox) && !(f_keys)) { - if (!(priv->hypOldProximity)) - xf86PostProximityEvent(device, 1, 0, 3, x, y, pressure); - - if ((is_absolute && ((priv->hypOldX != x) || + if ((is_absolute && ((priv->hypOldX != x) || (priv->hypOldY != y) || (priv->hypOldZ != pressure))) - || (!is_absolute && (x || y))) { - if (is_absolute || priv->hypOldProximity) { - xf86PostMotionEvent(device, is_absolute, 0, 3, x, y, pressure); - } - } - + || (!is_absolute && (x || y))) { + if (is_absolute || priv->hypOldProximity) { + xf86PostMotionEvent(device, is_absolute, 0, 3, x, y, pressure); + } + } - if (priv->hypOldBarrel1 != barrel1) { - int delta; - delta = barrel1 - priv->hypOldBarrel1; - if (priv->hypOldBarrel1 != barrel1) { + if (priv->hypOldBarrel1 != barrel1) { + int delta; + delta = barrel1 - priv->hypOldBarrel1; + if (priv->hypOldBarrel1 != barrel1) { - xf86PostButtonEvent(device, is_absolute, 2, (delta > 0), 0, 3, x, y, pressure); - } - } - if (priv->hypOldBarrel != barrel) { - int delta; - delta = barrel - priv->hypOldBarrel; - if (priv->hypOldBarrel != barrel) { + xf86PostButtonEvent(device, is_absolute, 2, (delta > 0), 0, 3, x, y, pressure); + } + } - xf86PostButtonEvent(device, is_absolute, 3, (delta > 0), 0, 3, x, y, pressure); - } - } + if (priv->hypOldBarrel != barrel) { + int delta; + delta = barrel - priv->hypOldBarrel; + if (priv->hypOldBarrel != barrel) { - if ((priv->hypOldPush != push) && !barrel && !barrel1) { - int delta; - delta = push - priv->hypOldPush; - if (priv->hypOldPush != push) { + xf86PostButtonEvent(device, is_absolute, 3, (delta > 0), 0, 3, x, y, pressure); + } + } - xf86PostButtonEvent(device, is_absolute, 1, (delta > 0), 0, 3, x, y, pressure); - } - } + if ((priv->hypOldPush != push) && !barrel && !barrel1) { + int delta; + delta = push - priv->hypOldPush; + if (priv->hypOldPush != push) { - - priv->hypOldX = bx; - priv->hypOldY = by; - priv->hypOldPush = push; - priv->hypOldBarrel = barrel; - priv->hypOldBarrel1 = barrel1; - priv->hypOldProximity = prox; + xf86PostButtonEvent(device, is_absolute, 1, (delta > 0), 0, 3, x, y, pressure); + } + } + priv->hypOldX = bx; + priv->hypOldY = by; + priv->hypOldPush = push; + priv->hypOldBarrel = barrel; + priv->hypOldBarrel1 = barrel1; + priv->hypOldProximity = prox; - } else { /* !PROXIMITY */ -/* Any changes in buttons are ignored when !proximity */ + } else { /* !PROXIMITY */ + /* Any changes in buttons are ignored when !proximity */ if (priv->hypOldProximity) xf86PostProximityEvent(device, 0, 0, 3, x, y, pressure); - priv->hypOldProximity = 0; - } - } + priv->hypOldProximity = 0; + } + } } - - } /* ** xf86HypControlProc -** It really does do something. Honest! +** It really does do something. Honest! */ static void -xf86HypControlProc(DeviceIntPtr device, PtrCtrl *ctrl) +xf86HypControlProc(DeviceIntPtr device, PtrCtrl *ctrl) { DBG(2, ErrorF("xf86HypControlProc\n")); } @@ -483,34 +459,34 @@ xf86HypWriteAndRead(int fd, char *data, char *buffer, int len, int cr_term) SYSCALL(err = write(fd, data, strlen(data))); if (err == -1) { - Error("HyperPen write"); - return NULL; + Error("HyperPen write"); + return NULL; } while (numread < len) { - err = xf86WaitForInput(fd, 100000); - if (err == -1) { - Error("HyperPen select"); - return NULL; - } - if (!err) { - ErrorF("Timeout while reading HyperPen tablet. No tablet connected ???\n"); - return NULL; - } - - SYSCALL(err = read(fd, buffer + numread++, 1)); - if (err == -1) { - Error("HyperPen read"); - return NULL; - } - if (!err) { - --numread; - break; - } - if (cr_term && buffer[numread - 1] == '\r') { - buffer[numread - 1] = 0; - break; - } + err = xf86WaitForInput(fd, 100000); + if (err == -1) { + Error("HyperPen select"); + return NULL; + } + if (!err) { + ErrorF("Timeout while reading HyperPen tablet. No tablet connected ???\n"); + return NULL; + } + + SYSCALL(err = read(fd, buffer + numread++, 1)); + if (err == -1) { + Error("HyperPen read"); + return NULL; + } + if (!err) { + --numread; + break; + } + if (cr_term && buffer[numread - 1] == '\r') { + buffer[numread - 1] = 0; + break; + } } buffer[numread] = 0; return buffer; @@ -521,87 +497,85 @@ xf86HypWriteAndRead(int fd, char *data, char *buffer, int len, int cr_term) ** Open and initialize the tablet, as well as probe for any needed data. */ -#define WAIT(t) \ - err = xf86WaitForInput(-1, ((t) * 1000)); \ - if (err == -1) { \ - ErrorF("HyperPen select error : %s\n", strerror(errno)); \ - return !Success; \ +#define WAIT(t) \ + err = xf86WaitForInput(-1, ((t) * 1000)); \ + if (err == -1) { \ + ErrorF("HyperPen select error : %s\n", strerror(errno)); \ + return !Success; \ } static Bool xf86HypOpen(LocalDevicePtr local) { - char buffer[256]; - int err, idx; - int i, n; - double res100; - double sratio, tratio; - HyperPenDevicePtr priv = (HyperPenDevicePtr)local->private; + char buffer[256]; + int err, idx; + int i, n; + double res100; + double sratio, tratio; + HyperPenDevicePtr priv = (HyperPenDevicePtr)local->private; DBG(1, ErrorF("opening %s\n", priv->hypDevice)); local->fd = xf86OpenSerial(local->options); if (local->fd == -1) { - Error(priv->hypDevice); - return !Success; + Error(priv->hypDevice); + return !Success; } DBG(2, ErrorF("%s opened as fd %d\n", priv->hypDevice, local->fd)); - if (xf86SetSerialSpeed(local->fd, 9600) < 0) - return !Success; + if (xf86SetSerialSpeed(local->fd, 9600) < 0) + return !Success; DBG(1, ErrorF("initializing HyperPen tablet\n")); -/* Send reset to the tablet */ - - write(local->fd, SS_RESET, strlen(SS_RESET)); - WAIT(1000); - -/* Put it in prompt mode so it doesn't say anything before we're ready */ - SYSCALL(err = write(local->fd, SS_PROMPT_MODE, strlen(SS_PROMPT_MODE))); - if (err == -1) { - Error("HyperPen write"); - return !Success; - } -/* Clear any pending input */ + /* Send reset to the tablet */ + + write(local->fd, SS_RESET, strlen(SS_RESET)); + WAIT(1000); + + /* Put it in prompt mode so it doesn't say anything before we're ready */ + SYSCALL(err = write(local->fd, SS_PROMPT_MODE, strlen(SS_PROMPT_MODE))); + if (err == -1) { + Error("HyperPen write"); + return !Success; + } + /* Clear any pending input */ tcflush(local->fd, TCIFLUSH); - + DBG(2, ErrorF("reading model\n")); if (!xf86HypWriteAndRead(local->fd, SS_GETID, buffer, 1, 0)) - return !Success; - + return !Success; + priv->modelid=buffer[0]; for (n = -1, i = 0; models[i].id != 0; i++) - if (models[i].id == priv->modelid) - n = i; + if (models[i].id == priv->modelid) + n = i; if (xf86Verbose) - ErrorF("%s HyperPen Model: 0x%x (%s)\n", - XCONFIG_PROBED, priv->modelid, n==-1? "UNKNOWN":models[n].name); - + ErrorF("%s HyperPen Model: 0x%x (%s)\n", + XCONFIG_PROBED, priv->modelid, n==-1? "UNKNOWN":models[n].name); - /* enable F-Keys */ - SYSCALL(err = write(local->fd, SS_MACROKEY, strlen(SS_MACROKEY))); - if (err == -1) { - ErrorF("HyperPen write error : %s\n", strerror(errno)); - return !Success; - } - DBG(6, ErrorF("prepared F-keys\n")); - - /* start sequence depends on model ID */ - if (priv->modelid == 0x43) SYSCALL(err = write(local->fd, SS_MACRO_4K, strlen(SS_MACRO_4K))); else SYSCALL(err = write(local->fd, SS_MACRO_56K, strlen(SS_MACRO_56K))); + /* enable F-Keys */ + SYSCALL(err = write(local->fd, SS_MACROKEY, strlen(SS_MACROKEY))); + if (err == -1) { + ErrorF("HyperPen write error : %s\n", strerror(errno)); + return !Success; + } - if (err == -1) { - ErrorF("HyperPen write error : %s\n", strerror(errno)); - return !Success; - } + DBG(6, ErrorF("prepared F-keys\n")); - DBG(6, ErrorF("started F-keys\n")); + /* start sequence depends on model ID */ + if (priv->modelid == 0x43) SYSCALL(err = write(local->fd, SS_MACRO_4K, strlen(SS_MACRO_4K))); else SYSCALL(err = write(local->fd, SS_MACRO_56K, strlen(SS_MACRO_56K))); + if (err == -1) { + ErrorF("HyperPen write error : %s\n", strerror(errno)); + return !Success; + } + DBG(6, ErrorF("started F-keys\n")); priv->hypRes = 500; res100 = priv->hypRes / 100; @@ -609,104 +583,98 @@ xf86HypOpen(LocalDevicePtr local) DBG(2, ErrorF("reading max coordinates\n")); if (!xf86HypWriteAndRead(local->fd, SS_CONFIG, buffer, 5, 0)) - return !Success; - + return !Success; + priv->hypMaxX = (buffer[1] & 0x7f) | (buffer[2] << 7); priv->hypMaxY = (buffer[3] & 0x7f) | (buffer[4] << 7); priv->hypMaxZ = 512; - -if (xf86Verbose) - ErrorF("%s HyperPen max tablet size %d.%02dinx%d.%02din, %dx%d " - "lines of resolution\n", XCONFIG_PROBED, - priv->hypMaxX / priv->hypRes, - (priv->hypMaxX * 100 / priv->hypRes) % 100, - priv->hypMaxY / priv->hypRes, - (priv->hypMaxY * 100 / priv->hypRes) % 100, - priv->hypMaxX, priv->hypMaxY); + + if (xf86Verbose) + ErrorF("%s HyperPen max tablet size %d.%02dinx%d.%02din, %dx%d " + "lines of resolution\n", XCONFIG_PROBED, + priv->hypMaxX / priv->hypRes, + (priv->hypMaxX * 100 / priv->hypRes) % 100, + priv->hypMaxY / priv->hypRes, + (priv->hypMaxY * 100 / priv->hypRes) % 100, + priv->hypMaxX, priv->hypMaxY); if (priv->hypXOffset >= 0 && priv->hypYOffset >= 0) { - priv->hypXOffset *= res100; - priv->hypYOffset *= res100; - priv->hypMaxX -= priv->hypXOffset; - priv->hypMaxY -= priv->hypYOffset; + priv->hypXOffset *= res100; + priv->hypYOffset *= res100; + priv->hypMaxX -= priv->hypXOffset; + priv->hypMaxY -= priv->hypYOffset; } if (priv->hypXSize > 0 && priv->hypYSize > 0) { - if ((priv->hypXSize * res100) <= priv->hypMaxX && - (priv->hypYSize * res100) <= priv->hypMaxY) { - priv->hypXSize *= res100; - priv->hypYSize *= res100; - } else { - ErrorF("%s HyperPen active area bigger than tablet, " - "assuming maximum\n", XCONFIG_PROBED); - priv->hypXSize = priv->hypMaxX; - priv->hypYSize = priv->hypMaxY; - } + if ((priv->hypXSize * res100) <= priv->hypMaxX && + (priv->hypYSize * res100) <= priv->hypMaxY) { + priv->hypXSize *= res100; + priv->hypYSize *= res100; + } else { + ErrorF("%s HyperPen active area bigger than tablet, " + "assuming maximum\n", XCONFIG_PROBED); + priv->hypXSize = priv->hypMaxX; + priv->hypYSize = priv->hypMaxY; + } } else { - priv->hypXSize = priv->hypMaxX; - priv->hypYSize = priv->hypMaxY; + priv->hypXSize = priv->hypMaxX; + priv->hypYSize = priv->hypMaxY; } /* map tablet area by screen aspect ratio */ sratio = (double)screenInfo.screens[0]->height / - (double)screenInfo.screens[0]->width; + (double)screenInfo.screens[0]->width; tratio = (double)priv->hypMaxY / (double)priv->hypMaxX; - if (tratio <= 1.0) { /* tablet horizontal > vertical */ - priv->hypXSize = (double)priv->hypYSize / sratio; - if (priv->hypXSize > priv->hypMaxX) priv->hypXSize = priv->hypMaxX; - } - else { - priv->hypYSize = (double)priv->hypXSize / sratio; - if (priv->hypYSize > priv->hypMaxY) priv->hypYSize = priv->hypMaxY; + if (tratio <= 1.0) { /* tablet horizontal > vertical */ + priv->hypXSize = (double)priv->hypYSize / sratio; + if (priv->hypXSize > priv->hypMaxX) priv->hypXSize = priv->hypMaxX; + } else { + priv->hypYSize = (double)priv->hypXSize / sratio; + if (priv->hypYSize > priv->hypMaxY) priv->hypYSize = priv->hypMaxY; } ErrorF("%s HyperPen using tablet area %d by %d, at res %d lpi\n", - XCONFIG_PROBED, priv->hypXSize, priv->hypYSize, priv->hypRes); + XCONFIG_PROBED, priv->hypXSize, priv->hypYSize, priv->hypRes); if (priv->flags & BAUD_19200_FLAG) { -/* Send 19200 baud to the tablet */ + /* Send 19200 baud to the tablet */ SYSCALL(err = write(local->fd, SS_RATE, strlen(SS_RATE))); - if (err == -1) { - ErrorF("HyperPen write error : %s\n", strerror(errno)); - return !Success; - } + if (err == -1) { + ErrorF("HyperPen write error : %s\n", strerror(errno)); + return !Success; + } - DBG(6, ErrorF("tablet set to 19200 bps\n")); + DBG(6, ErrorF("tablet set to 19200 bps\n")); + /* Wait 10 mSecs */ + WAIT(10); - /* Wait 10 mSecs */ - WAIT(10); + /* Set the speed of the serial link to 19200 */ + if (xf86SetSerialSpeed(local->fd, 19200) < 0) { + return !Success; + } - /* Set the speed of the serial link to 19200 */ - if (xf86SetSerialSpeed(local->fd, 19200) < 0) { - return !Success; - } - - DBG(6, ErrorF("set serial speed to 19200\n")); + DBG(6, ErrorF("set serial speed to 19200\n")); } + /* Sets up the tablet mode to increment, stream, and such */ + for (idx = 0; ss_initstr[idx]; idx++) { + buffer[idx] = ss_initstr[idx]; + } - -/* Sets up the tablet mode to increment, stream, and such */ - for (idx = 0; ss_initstr[idx]; idx++) { - buffer[idx] = ss_initstr[idx]; - } - - buffer[idx] = 0; - - SYSCALL(err = write(local->fd, buffer, idx)); + buffer[idx] = 0; - + SYSCALL(err = write(local->fd, buffer, idx)); - if (err == -1) { - Error("HyperPen write"); - return !Success; - } + if (err == -1) { + Error("HyperPen write"); + return !Success; + } - if (err <= 0) { - SYSCALL(close(local->fd)); - return !Success; - } + if (err <= 0) { + SYSCALL(close(local->fd)); + return !Success; + } return Success; } @@ -717,50 +685,50 @@ if (xf86Verbose) static int xf86HypOpenDevice(DeviceIntPtr pHyp) { - LocalDevicePtr local = (LocalDevicePtr)pHyp->public.devicePrivate; - HyperPenDevicePtr priv = (HyperPenDevicePtr)PRIVATE(pHyp); + LocalDevicePtr local = (LocalDevicePtr)pHyp->public.devicePrivate; + HyperPenDevicePtr priv = (HyperPenDevicePtr)PRIVATE(pHyp); #if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7 Atom axis_labels[3] = { 0 }; #endif if (xf86HypOpen(local) != Success) { - if (local->fd >= 0) { - SYSCALL(close(local->fd)); - } - local->fd = -1; + if (local->fd >= 0) { + SYSCALL(close(local->fd)); + } + local->fd = -1; } -/* Set the real values */ + /* Set the real values */ InitValuatorAxisStruct(pHyp, - 0, + 0, #if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7 - axis_labels[0], + axis_labels[0], #endif - 0, /* min val */ - priv->hypXSize, /* max val */ - LPI2CPM(priv->hypRes), /* resolution */ - 0, /* min_res */ - LPI2CPM(priv->hypRes)); /* max_res */ + 0, /* min val */ + priv->hypXSize, /* max val */ + LPI2CPM(priv->hypRes), /* resolution */ + 0, /* min_res */ + LPI2CPM(priv->hypRes)); /* max_res */ InitValuatorAxisStruct(pHyp, - 1, + 1, #if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7 - axis_labels[1], + axis_labels[1], #endif - 0, /* min val */ - priv->hypYSize, /* max val */ - LPI2CPM(priv->hypRes), /* resolution */ - 0, /* min_res */ - LPI2CPM(priv->hypRes)); /* max_res */ + 0, /* min val */ + priv->hypYSize, /* max val */ + LPI2CPM(priv->hypRes), /* resolution */ + 0, /* min_res */ + LPI2CPM(priv->hypRes)); /* max_res */ InitValuatorAxisStruct(pHyp, - 2, + 2, #if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7 - axis_labels[2], + axis_labels[2], #endif - 0, /* min val */ - 511, /* max val */ - 512, /* resolution */ - 0, /* min_res */ - 512); /* max_res */ + 0, /* min val */ + 511, /* max val */ + 512, /* resolution */ + 0, /* min_res */ + 512); /* max_res */ return (local->fd != -1); } @@ -771,104 +739,104 @@ xf86HypOpenDevice(DeviceIntPtr pHyp) static int xf86HypProc(DeviceIntPtr pHyp, int what) { - CARD8 map[25]; - int nbaxes; - int nbbuttons; - int loop; - LocalDevicePtr local = (LocalDevicePtr)pHyp->public.devicePrivate; - HyperPenDevicePtr priv = (HyperPenDevicePtr)PRIVATE(pHyp); + CARD8 map[25]; + int nbaxes; + int nbbuttons; + int loop; + LocalDevicePtr local = (LocalDevicePtr)pHyp->public.devicePrivate; + HyperPenDevicePtr priv = (HyperPenDevicePtr)PRIVATE(pHyp); #if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7 Atom btn_labels[4] = { 0 }; Atom axis_labels[3] = { 0 }; #endif switch (what) { - case DEVICE_INIT: - DBG(1, ErrorF("xf86HypProc pHyp=%p what=INIT\n", (void *)pHyp)); + case DEVICE_INIT: + DBG(1, ErrorF("xf86HypProc pHyp=%p what=INIT\n", (void *)pHyp)); - nbaxes = 3; /* X, Y, Z */ - nbbuttons = (priv->flags & STYLUS_FLAG)? 3 : 4; + nbaxes = 3; /* X, Y, Z */ + nbbuttons = (priv->flags & STYLUS_FLAG)? 3 : 4; - for(loop=1; loop<=nbbuttons; loop++) map[loop] = loop; + for(loop=1; loop<=nbbuttons; loop++) map[loop] = loop; - if (InitButtonClassDeviceStruct(pHyp, - nbbuttons, + if (InitButtonClassDeviceStruct(pHyp, + nbbuttons, #if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7 - btn_labels, + btn_labels, #endif - map) == FALSE) { - ErrorF("unable to allocate Button class device\n"); - return !Success; - } - - if (InitFocusClassDeviceStruct(pHyp) == FALSE) { - ErrorF("unable to init Focus class device\n"); - return !Success; - } - - if (InitPtrFeedbackClassDeviceStruct(pHyp, - xf86HypControlProc) == FALSE) { - ErrorF("unable to init ptr feedback\n"); - return !Success; - } - - if (InitProximityClassDeviceStruct(pHyp) == FALSE) { - ErrorF("unable to init proximity class device\n"); - return !Success; - } - - if (InitValuatorClassDeviceStruct(pHyp, - nbaxes, + map) == FALSE) { + ErrorF("unable to allocate Button class device\n"); + return !Success; + } + + if (InitFocusClassDeviceStruct(pHyp) == FALSE) { + ErrorF("unable to init Focus class device\n"); + return !Success; + } + + if (InitPtrFeedbackClassDeviceStruct(pHyp, + xf86HypControlProc) == FALSE) { + ErrorF("unable to init ptr feedback\n"); + return !Success; + } + + if (InitProximityClassDeviceStruct(pHyp) == FALSE) { + ErrorF("unable to init proximity class device\n"); + return !Success; + } + + if (InitValuatorClassDeviceStruct(pHyp, + nbaxes, #if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7 - axis_labels, + axis_labels, #endif #if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 3 - xf86GetMotionEvents, + xf86GetMotionEvents, #endif - local->history_size, - (priv->flags & ABSOLUTE_FLAG)? Absolute: Relative) - == FALSE) { - ErrorF("unable to allocate Valuator class device\n"); - return !Success; - } -/* allocate the motion history buffer if needed */ - xf86MotionHistoryAllocate(local); -/* open the device to gather informations */ - xf86HypOpenDevice(pHyp); - break; - - case DEVICE_ON: - DBG(1, ErrorF("xf86HypProc pHyp=%p what=ON\n", (void *)pHyp)); - - if ((local->fd < 0) && (!xf86HypOpenDevice(pHyp))) { - return !Success; - } - xf86AddEnabledDevice(local); - pHyp->public.on = TRUE; - break; - - case DEVICE_OFF: - DBG(1, ErrorF("xf86HypProc pHyp=%p what=%s\n", (void *)pHyp, - (what == DEVICE_CLOSE) ? "CLOSE" : "OFF")); - if (local->fd >= 0) - xf86RemoveEnabledDevice(local); - pHyp->public.on = FALSE; - break; - - case DEVICE_CLOSE: - DBG(1, ErrorF("xf86HypProc pHyp=%p what=%s\n", (void *)pHyp, - (what == DEVICE_CLOSE) ? "CLOSE" : "OFF")); - SYSCALL(close(local->fd)); - local->fd = -1; - break; - - default: - ErrorF("unsupported mode=%d\n", what); - return !Success; - break; + local->history_size, + (priv->flags & ABSOLUTE_FLAG)? Absolute: Relative) + == FALSE) { + ErrorF("unable to allocate Valuator class device\n"); + return !Success; + } + /* allocate the motion history buffer if needed */ + xf86MotionHistoryAllocate(local); + /* open the device to gather informations */ + xf86HypOpenDevice(pHyp); + break; + + case DEVICE_ON: + DBG(1, ErrorF("xf86HypProc pHyp=%p what=ON\n", (void *)pHyp)); + + if ((local->fd < 0) && (!xf86HypOpenDevice(pHyp))) { + return !Success; + } + xf86AddEnabledDevice(local); + pHyp->public.on = TRUE; + break; + + case DEVICE_OFF: + DBG(1, ErrorF("xf86HypProc pHyp=%p what=%s\n", (void *)pHyp, + (what == DEVICE_CLOSE) ? "CLOSE" : "OFF")); + if (local->fd >= 0) + xf86RemoveEnabledDevice(local); + pHyp->public.on = FALSE; + break; + + case DEVICE_CLOSE: + DBG(1, ErrorF("xf86HypProc pHyp=%p what=%s\n", (void *)pHyp, + (what == DEVICE_CLOSE) ? "CLOSE" : "OFF")); + SYSCALL(close(local->fd)); + local->fd = -1; + break; + + default: + ErrorF("unsupported mode=%d\n", what); + return !Success; + break; } DBG(2, ErrorF("END xf86HypProc Success what=%d dev=%p priv=%p\n", - what, (void *)pHyp, (void *)priv)); + what, (void *)pHyp, (void *)priv)); return Success; } @@ -880,7 +848,7 @@ static void xf86HypClose(LocalDevicePtr local) { if (local->fd >= 0) { - SYSCALL(close(local->fd)); + SYSCALL(close(local->fd)); } local->fd = -1; } @@ -892,13 +860,13 @@ xf86HypClose(LocalDevicePtr local) static int xf86HypChangeControl(LocalDevicePtr local, xDeviceCtl *control) { - xDeviceResolutionCtl *res; + xDeviceResolutionCtl *res; res = (xDeviceResolutionCtl *)control; - + if ((control->control != DEVICE_RESOLUTION) || - (res->num_valuators < 1)) - return (BadMatch); + (res->num_valuators < 1)) + return (BadMatch); return(Success); } @@ -911,27 +879,27 @@ xf86HypChangeControl(LocalDevicePtr local, xDeviceCtl *control) static int xf86HypSwitchMode(ClientPtr client, DeviceIntPtr dev, int mode) { - LocalDevicePtr local = (LocalDevicePtr)dev->public.devicePrivate; - HyperPenDevicePtr priv = (HyperPenDevicePtr)(local->private); - char newmode; + LocalDevicePtr local = (LocalDevicePtr)dev->public.devicePrivate; + HyperPenDevicePtr priv = (HyperPenDevicePtr)(local->private); + char newmode; DBG(3, ErrorF("xf86HypSwitchMode dev=%p mode=%d\n", (void *)dev, mode)); switch(mode) { - case Absolute: - priv->flags |= ABSOLUTE_FLAG; + case Absolute: + priv->flags |= ABSOLUTE_FLAG; - break; + break; - case Relative: - priv->flags &= ~ABSOLUTE_FLAG; + case Relative: + priv->flags &= ~ABSOLUTE_FLAG; - break; + break; - default: - DBG(1, ErrorF("xf86HypSwitchMode dev=%p invalid mode=%d\n", - (void *)dev, mode)); - return BadMatch; + default: + DBG(1, ErrorF("xf86HypSwitchMode dev=%p invalid mode=%d\n", + (void *)dev, mode)); + return BadMatch; } SYSCALL(write(local->fd, &newmode, 1)); return Success; @@ -944,10 +912,10 @@ xf86HypSwitchMode(ClientPtr client, DeviceIntPtr dev, int mode) static LocalDevicePtr xf86HypAllocate(void) { - LocalDevicePtr local = xf86AllocateInput(hypDrv, 0); - HyperPenDevicePtr priv = (HyperPenDevicePtr)xalloc(sizeof(HyperPenDeviceRec)); + LocalDevicePtr local = xf86AllocateInput(hypDrv, 0); + HyperPenDevicePtr priv = (HyperPenDevicePtr)xalloc(sizeof(HyperPenDeviceRec)); #if defined (sun) && !defined(i386) - char *dev_name = getenv("HYPERPEN_DEV"); + char *dev_name = getenv("HYPERPEN_DEV"); #endif local->name = XI_NAME; @@ -969,28 +937,28 @@ xf86HypAllocate(void) #if defined(sun) && !defined(i386) if (dev_name) { - priv->hypDevice = (char *)xalloc(strlen(dev_name) + 1); - strcpy(priv->hypDevice, dev_name); - ErrorF("xf86HypOpen port changed to '%s'\n", priv->hypDevice); + priv->hypDevice = (char *)xalloc(strlen(dev_name) + 1); + strcpy(priv->hypDevice, dev_name); + ErrorF("xf86HypOpen port changed to '%s'\n", priv->hypDevice); } else { - priv->hypDevice = ""; + priv->hypDevice = ""; } #else - priv->hypDevice = ""; /* device file name */ + priv->hypDevice = ""; /* device file name */ #endif - priv->hypOldX = -1; /* previous X position */ - priv->hypOldY = -1; /* previous Y position */ - priv->hypOldProximity = 0; /* previous proximity */ - priv->hypOldButtons = 0; /* previous buttons state */ - priv->hypMaxX = -1; /* max X value */ - priv->hypMaxY = -1; /* max Y value */ - priv->hypXSize = -1; /* active area X */ - priv->hypXOffset = 0; /* active area X offset */ - priv->hypYSize = -1; /* active area Y */ - priv->hypYOffset = 0; /* active area Y offset */ - priv->flags = ABSOLUTE_FLAG; /* various flags -- default abs format */ - priv->hypIndex = 0; /* number of bytes read */ - priv->hypRes = 0; /* resolution */ + priv->hypOldX = -1; /* previous X position */ + priv->hypOldY = -1; /* previous Y position */ + priv->hypOldProximity = 0; /* previous proximity */ + priv->hypOldButtons = 0; /* previous buttons state */ + priv->hypMaxX = -1; /* max X value */ + priv->hypMaxY = -1; /* max Y value */ + priv->hypXSize = -1; /* active area X */ + priv->hypXOffset = 0; /* active area X offset */ + priv->hypYSize = -1; /* active area Y */ + priv->hypYOffset = 0; /* active area Y offset */ + priv->flags = ABSOLUTE_FLAG; /* various flags -- default abs format */ + priv->hypIndex = 0; /* number of bytes read */ + priv->hypRes = 0; /* resolution */ stylus=0; return local; @@ -1003,18 +971,18 @@ xf86HypAllocate(void) * called when the driver is unloaded. */ static void -xf86HypUninit(InputDriverPtr drv, - LocalDevicePtr local, - int flags) +xf86HypUninit(InputDriverPtr drv, + LocalDevicePtr local, + int flags) { - HyperPenDevicePtr priv = (HyperPenDevicePtr) local->private; - + HyperPenDevicePtr priv = (HyperPenDevicePtr) local->private; + DBG(1, ErrorF("xf86HypUninit\n")); - + xf86HypProc(local->dev, DEVICE_OFF); - + xfree (priv); - xf86DeleteInput(local, 0); + xf86DeleteInput(local, 0); } @@ -1024,38 +992,38 @@ xf86HypUninit(InputDriverPtr drv, * called when the module subsection is found in XF86Config */ static InputInfoPtr -xf86HypInit(InputDriverPtr drv, - IDevPtr dev, - int flags) +xf86HypInit(InputDriverPtr drv, + IDevPtr dev, + int flags) { - LocalDevicePtr local = NULL; - HyperPenDevicePtr priv = NULL; - char *s; + LocalDevicePtr local = NULL; + HyperPenDevicePtr priv = NULL; + char *s; hypDrv = drv; local = xf86HypAllocate(); local->conf_idev = dev; - xf86CollectInputOptions(local, default_options, NULL); + xf86CollectInputOptions(local, default_options, NULL); xf86OptionListReport( local->options ); if (local) - priv = (HyperPenDevicePtr) local->private; + priv = (HyperPenDevicePtr) local->private; if (!local || !priv) { - goto SetupProc_fail; + goto SetupProc_fail; } - + local->name = dev->identifier; priv->AutoPT = 1; - + /* Serial Device is mandatory */ priv->hypDevice = xf86FindOptionValue(local->options, "Device"); if (!priv->hypDevice) { - xf86Msg (X_ERROR, "%s: No Device specified.\n", dev->identifier); - goto SetupProc_fail; + xf86Msg (X_ERROR, "%s: No Device specified.\n", dev->identifier); + goto SetupProc_fail; } /* Process the common options. */ @@ -1064,115 +1032,104 @@ xf86HypInit(InputDriverPtr drv, /* Optional configuration */ xf86Msg(X_CONFIG, "%s serial device is %s\n", dev->identifier, - priv->hypDevice); + priv->hypDevice); debug_level = xf86SetIntOption(local->options, "DebugLevel", 0); if (debug_level > 0) { - xf86Msg(X_CONFIG, "%s: debug level set to %d\n", dev->identifier, debug_level); + xf86Msg(X_CONFIG, "%s: debug level set to %d\n", dev->identifier, debug_level); } - - s = xf86FindOptionValue(local->options, "Mode"); if (s && (xf86NameCmp(s, "absolute") == 0)) { - priv->flags = priv->flags | ABSOLUTE_FLAG; - } - else if (s && (xf86NameCmp(s, "relative") == 0)) { - priv->flags = priv->flags & ~ABSOLUTE_FLAG; - } - else if (s) { - xf86Msg(X_ERROR, "%s: invalid Mode (should be absolute or relative). " - "Using default.\n", dev->identifier); + priv->flags = priv->flags | ABSOLUTE_FLAG; + } else if (s && (xf86NameCmp(s, "relative") == 0)) { + priv->flags = priv->flags & ~ABSOLUTE_FLAG; + } else if (s) { + xf86Msg(X_ERROR, "%s: invalid Mode (should be absolute or relative). " + "Using default.\n", dev->identifier); } xf86Msg(X_CONFIG, "%s is in %s mode\n", local->name, - (priv->flags & ABSOLUTE_FLAG) ? "absolute" : "relative"); - + (priv->flags & ABSOLUTE_FLAG) ? "absolute" : "relative"); s = xf86FindOptionValue(local->options, "Cursor"); if (s && (xf86NameCmp(s, "stylus") == 0)) { - priv->flags = priv->flags | STYLUS_FLAG; - } - else if (s && (xf86NameCmp(s, "puck") == 0)) { - priv->flags = priv->flags & ~STYLUS_FLAG; - } - else if (s) { - xf86Msg(X_ERROR, "%s: invalid Cursor (should be stylus or puck). " - "Using default.\n", dev->identifier); + priv->flags = priv->flags | STYLUS_FLAG; + } else if (s && (xf86NameCmp(s, "puck") == 0)) { + priv->flags = priv->flags & ~STYLUS_FLAG; + } else if (s) { + xf86Msg(X_ERROR, "%s: invalid Cursor (should be stylus or puck). " + "Using default.\n", dev->identifier); } xf86Msg(X_CONFIG, "%s is in cursor-mode %s\n", local->name, - (priv->flags & STYLUS_FLAG) ? "cursor" : "puck"); + (priv->flags & STYLUS_FLAG) ? "cursor" : "puck"); priv->hypXSize = xf86SetIntOption(local->options, "XSize", 0); if (priv->hypXSize != 0) { - xf86Msg(X_CONFIG, "%s: XSize = %d\n", - dev->identifier, priv->hypXSize); + xf86Msg(X_CONFIG, "%s: XSize = %d\n", + dev->identifier, priv->hypXSize); } priv->hypYSize = xf86SetIntOption(local->options, "YSize", 0); if (priv->hypYSize != 0) { - xf86Msg(X_CONFIG, "%s: YSize = %d\n", - dev->identifier, priv->hypYSize); + xf86Msg(X_CONFIG, "%s: YSize = %d\n", + dev->identifier, priv->hypYSize); } priv->PT = xf86SetIntOption(local->options, "PMin", 0); if (priv->PT > 2) { - xf86Msg(X_CONFIG, "%s: PMin = %d\n", - dev->identifier, priv->PT); - priv->AutoPT = 0; - } - else - xf86Msg(X_ERROR, "%s: invalid PMin value (should be > 2)." - "Using default.\n", dev->identifier); - + xf86Msg(X_CONFIG, "%s: PMin = %d\n", + dev->identifier, priv->PT); + priv->AutoPT = 0; + } else + xf86Msg(X_ERROR, "%s: invalid PMin value (should be > 2)." + "Using default.\n", dev->identifier); priv->PMax = xf86SetIntOption(local->options, "PMax", 0); if (priv->PMax > 3) { - xf86Msg(X_CONFIG, "%s: PMax = %d\n", - dev->identifier, priv->PMax); - } - else - xf86Msg(X_ERROR, "%s: invalid PMax value (should be > 3)." - "Using default.\n", dev->identifier); - + xf86Msg(X_CONFIG, "%s: PMax = %d\n", + dev->identifier, priv->PMax); + } else + xf86Msg(X_ERROR, "%s: invalid PMax value (should be > 3)." + "Using default.\n", dev->identifier); priv->hypXOffset = xf86SetIntOption(local->options, "XOffset", 0); if (priv->hypXOffset != 0) { - xf86Msg(X_CONFIG, "%s: XOffset = %d\n", - dev->identifier, priv->hypXOffset); + xf86Msg(X_CONFIG, "%s: XOffset = %d\n", + dev->identifier, priv->hypXOffset); } priv->hypYOffset = xf86SetIntOption(local->options, "YOffset", 0); if (priv->hypYOffset != 0) { - xf86Msg(X_CONFIG, "%s: YOffset = %d\n", - dev->identifier, priv->hypYOffset); + xf86Msg(X_CONFIG, "%s: YOffset = %d\n", + dev->identifier, priv->hypYOffset); } if (xf86SetBoolOption(local->options, "InvX", FALSE)) { - priv->flags |= INVX_FLAG; - xf86Msg(X_CONFIG, "%s: InvX\n", dev->identifier); + priv->flags |= INVX_FLAG; + xf86Msg(X_CONFIG, "%s: InvX\n", dev->identifier); } if (xf86SetBoolOption(local->options, "InvY", FALSE)) { - priv->flags |= INVY_FLAG; - xf86Msg(X_CONFIG, "%s: InvY\n", dev->identifier); + priv->flags |= INVY_FLAG; + xf86Msg(X_CONFIG, "%s: InvY\n", dev->identifier); } { - int val; - val = xf86SetIntOption(local->options, "BaudRate", 0); - switch (val) { - case 19200: - priv->flags |= BAUD_19200_FLAG; - break; - case 9600: - priv->flags &= ~BAUD_19200_FLAG; - break; - default: - xf86Msg(X_CONFIG, "%s: Illegal speed value (must be 9600 or 19200)\n", dev->identifier); - break; - } + int val; + val = xf86SetIntOption(local->options, "BaudRate", 0); + switch (val) { + case 19200: + priv->flags |= BAUD_19200_FLAG; + break; + case 9600: + priv->flags &= ~BAUD_19200_FLAG; + break; + default: + xf86Msg(X_CONFIG, "%s: Illegal speed value (must be 9600 or 19200)\n", dev->identifier); + break; + } } /* mark the device configured */ @@ -1181,32 +1138,32 @@ xf86HypInit(InputDriverPtr drv, /* return the LocalDevice */ return (local); - SetupProc_fail: + SetupProc_fail: if (priv) - xfree(priv); + xfree(priv); if (local) - xfree(local); + xfree(local); return NULL; } _X_EXPORT InputDriverRec HYPERPEN = { - 1, /* driver version */ - "hyperpen", /* driver name */ - NULL, /* identify */ - xf86HypInit, /* pre-init */ - xf86HypUninit, /* un-init */ - NULL, /* module */ - 0 /* ref count */ + 1, /* driver version */ + "hyperpen", /* driver name */ + NULL, /* identify */ + xf86HypInit, /* pre-init */ + xf86HypUninit, /* un-init */ + NULL, /* module */ + 0 /* ref count */ }; /* - *************************************************************************** - * - * Dynamic loading functions - * - *************************************************************************** - */ +*************************************************************************** +* +* Dynamic loading functions +* +*************************************************************************** +*/ #ifdef XFree86LOADER /* * xf86HypUnplug -- @@ -1214,7 +1171,7 @@ _X_EXPORT InputDriverRec HYPERPEN = { * called when the module subsection is found in XF86Config */ static void -xf86HypUnplug(pointer p) +xf86HypUnplug(pointer p) { DBG(1, ErrorF("xf86HypUnplug\n")); } @@ -1225,32 +1182,32 @@ xf86HypUnplug(pointer p) * called when the module subsection is found in XF86Config */ static pointer -xf86HypPlug(pointer module, - pointer options, - int *errmaj, - int *errmin) +xf86HypPlug(pointer module, + pointer options, + int *errmaj, + int *errmin) { DBG(1, ErrorF("xf86HypPlug\n")); - + xf86AddInputDriver(&HYPERPEN, module, 0); return module; } static XF86ModuleVersionInfo xf86HypVersionRec = -{ - "hyperpen", - MODULEVENDORSTRING, - MODINFOSTRING1, - MODINFOSTRING2, - XORG_VERSION_CURRENT, - PACKAGE_VERSION_MAJOR, PACKAGE_VERSION_MINOR, PACKAGE_VERSION_PATCHLEVEL, - ABI_CLASS_XINPUT, - ABI_XINPUT_VERSION, - MOD_CLASS_XINPUT, - {0, 0, 0, 0} /* signature, to be patched into the file by */ - /* a tool */ -}; + { + "hyperpen", + MODULEVENDORSTRING, + MODINFOSTRING1, + MODINFOSTRING2, + XORG_VERSION_CURRENT, + PACKAGE_VERSION_MAJOR, PACKAGE_VERSION_MINOR, PACKAGE_VERSION_PATCHLEVEL, + ABI_CLASS_XINPUT, + ABI_XINPUT_VERSION, + MOD_CLASS_XINPUT, + {0, 0, 0, 0} /* signature, to be patched into the file by */ + /* a tool */ + }; _X_EXPORT XF86ModuleData hyperpenModuleData = { &xf86HypVersionRec, -- cgit v1.2.3