summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2010-11-17 09:40:01 +1000
committerPeter Hutterer <peter.hutterer@who-t.net>2010-11-17 09:43:07 +1000
commit0a03c1fd0600ee9b7e08efd0dfb6726836ca3c82 (patch)
tree39893c07f9cb1f996209d667ff6258074281cac3
parenta72d2fce7547ae1d206896ce391d9cf7ada21c61 (diff)
Adjust to new PreInit prototype for ABI 12.HEADmaster
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
-rw-r--r--src/xf86HyperPen.c144
1 files changed, 64 insertions, 80 deletions
diff --git a/src/xf86HyperPen.c b/src/xf86HyperPen.c
index 86c0fe6..d4f71ae 100644
--- a/src/xf86HyperPen.c
+++ b/src/xf86HyperPen.c
@@ -81,8 +81,6 @@ static char *default_options[] = {
NULL
};
-static InputDriverPtr hypDrv;
-
/*
@@ -794,6 +792,7 @@ xf86HypSwitchMode(ClientPtr client, DeviceIntPtr dev, int mode)
return Success;
}
+#if 0
/*
** xf86HypAllocate
** Allocates the device structures for the HyperPen.
@@ -802,52 +801,22 @@ static InputInfoPtr
xf86HypAllocate(void)
{
InputInfoPtr pInfo = xf86AllocateInput(hypDrv, 0);
- HyperPenDevicePtr priv = (HyperPenDevicePtr)malloc(sizeof(HyperPenDeviceRec));
#if defined (sun) && !defined(i386)
char *dev_name = getenv("HYPERPEN_DEV");
#endif
pInfo->type_name = "STYLUS"
pInfo->flags = 0; /*XI86_NO_OPEN_ON_INIT;*/
- pInfo->device_control = xf86HypProc;
- pInfo->read_input = xf86HypReadInput;
- pInfo->control_proc = xf86HypChangeControl;
- pInfo->switch_mode = xf86HypSwitchMode;
- pInfo->fd = -1;
pInfo->atom = 0;
pInfo->dev = NULL;
pInfo->private = priv;
pInfo->private_flags = 0;
pInfo->history_size = 0;
-#if defined(sun) && !defined(i386)
- if (dev_name) {
- priv->hypDevice = (char *)alloc(strlen(dev_name) + 1);
- strcpy(priv->hypDevice, dev_name);
- ErrorF("xf86HypOpen port changed to '%s'\n", priv->hypDevice);
- } else {
- priv->hypDevice = "";
- }
-#else
- 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 */
- stylus=0;
return pInfo;
}
+#endif
/*
@@ -876,52 +845,71 @@ xf86HypUninit(InputDriverPtr drv,
*
* called when the module subsection is found in XF86Config
*/
-static InputInfoPtr
-xf86HypInit(InputDriverPtr drv,
- IDevPtr dev,
- int flags)
+static int
+xf86HypInit(InputDriverPtr drv,
+ InputInfoPtr pInfo,
+ int flags)
{
- InputInfoPtr pInfo = NULL;
- HyperPenDevicePtr priv = NULL;
- char *s;
-
- hypDrv = drv;
-
- pInfo = xf86HypAllocate();
- pInfo->conf_idev = dev;
-
- xf86CollectInputOptions(pInfo, default_options, NULL);
- xf86OptionListReport( pInfo->options );
-
- if (pInfo)
- priv = (HyperPenDevicePtr) pInfo->private;
+ HyperPenDevicePtr priv = malloc(sizeof(HyperPenDeviceRec));
+ char *s;
+ int rc = Success;
- if (!pInfo || !priv) {
+ if (!priv) {
+ rc = BadAlloc;
goto SetupProc_fail;
}
- pInfo->name = dev->identifier;
- priv->AutoPT = 1;
-
/* Serial Device is mandatory */
priv->hypDevice = xf86FindOptionValue(pInfo->options, "Device");
if (!priv->hypDevice) {
- xf86Msg (X_ERROR, "%s: No Device specified.\n", dev->identifier);
+ xf86Msg (X_ERROR, "%s: No Device specified.\n", pInfo->name);
+ rc = BadMatch;
goto SetupProc_fail;
}
- /* Process the common options. */
- xf86ProcessCommonOptions(pInfo, pInfo->options);
+ pInfo->private = priv;
+ pInfo->device_control = xf86HypProc;
+ pInfo->read_input = xf86HypReadInput;
+ pInfo->control_proc = xf86HypChangeControl;
+ pInfo->switch_mode = xf86HypSwitchMode;
+ pInfo->fd = -1;
+ priv->AutoPT = 1;
- /* Optional configuration */
+#if defined(sun) && !defined(i386)
+ if (dev_name) {
+ priv->hypDevice = (char *)alloc(strlen(dev_name) + 1);
+ strcpy(priv->hypDevice, dev_name);
+ ErrorF("xf86HypOpen port changed to '%s'\n", priv->hypDevice);
+ } else {
+ priv->hypDevice = "";
+ }
+#else
+ 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 = 1; /* 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;
- xf86Msg(X_CONFIG, "%s serial device is %s\n", dev->identifier,
+ /* Optional configuration */
+ xf86Msg(X_CONFIG, "%s serial device is %s\n", pInfo->name,
priv->hypDevice);
debug_level = xf86SetIntOption(pInfo->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", pInfo->name, debug_level);
}
s = xf86FindOptionValue(pInfo->options, "Mode");
@@ -932,7 +920,7 @@ xf86HypInit(InputDriverPtr drv,
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);
+ "Using default.\n", pInfo->name);
}
xf86Msg(X_CONFIG, "%s is in %s mode\n", pInfo->name,
(priv->flags & ABSOLUTE_FLAG) ? "absolute" : "relative");
@@ -945,7 +933,7 @@ xf86HypInit(InputDriverPtr drv,
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);
+ "Using default.\n", pInfo->name);
}
xf86Msg(X_CONFIG, "%s is in cursor-mode %s\n", pInfo->name,
(priv->flags & STYLUS_FLAG) ? "cursor" : "puck");
@@ -953,52 +941,52 @@ xf86HypInit(InputDriverPtr drv,
priv->hypXSize = xf86SetIntOption(pInfo->options, "XSize", 0);
if (priv->hypXSize != 0) {
xf86Msg(X_CONFIG, "%s: XSize = %d\n",
- dev->identifier, priv->hypXSize);
+ pInfo->name, priv->hypXSize);
}
priv->hypYSize = xf86SetIntOption(pInfo->options, "YSize", 0);
if (priv->hypYSize != 0) {
xf86Msg(X_CONFIG, "%s: YSize = %d\n",
- dev->identifier, priv->hypYSize);
+ pInfo->name, priv->hypYSize);
}
priv->PT = xf86SetIntOption(pInfo->options, "PMin", 0);
if (priv->PT > 2) {
xf86Msg(X_CONFIG, "%s: PMin = %d\n",
- dev->identifier, priv->PT);
+ pInfo->name, priv->PT);
priv->AutoPT = 0;
} else
xf86Msg(X_ERROR, "%s: invalid PMin value (should be > 2)."
- "Using default.\n", dev->identifier);
+ "Using default.\n", pInfo->name);
priv->PMax = xf86SetIntOption(pInfo->options, "PMax", 0);
if (priv->PMax > 3) {
xf86Msg(X_CONFIG, "%s: PMax = %d\n",
- dev->identifier, priv->PMax);
+ pInfo->name, priv->PMax);
} else
xf86Msg(X_ERROR, "%s: invalid PMax value (should be > 3)."
- "Using default.\n", dev->identifier);
+ "Using default.\n", pInfo->name);
priv->hypXOffset = xf86SetIntOption(pInfo->options, "XOffset", 0);
if (priv->hypXOffset != 0) {
xf86Msg(X_CONFIG, "%s: XOffset = %d\n",
- dev->identifier, priv->hypXOffset);
+ pInfo->name, priv->hypXOffset);
}
priv->hypYOffset = xf86SetIntOption(pInfo->options, "YOffset", 0);
if (priv->hypYOffset != 0) {
xf86Msg(X_CONFIG, "%s: YOffset = %d\n",
- dev->identifier, priv->hypYOffset);
+ pInfo->name, priv->hypYOffset);
}
if (xf86SetBoolOption(pInfo->options, "InvX", FALSE)) {
priv->flags |= INVX_FLAG;
- xf86Msg(X_CONFIG, "%s: InvX\n", dev->identifier);
+ xf86Msg(X_CONFIG, "%s: InvX\n", pInfo->name);
}
if (xf86SetBoolOption(pInfo->options, "InvY", FALSE)) {
priv->flags |= INVY_FLAG;
- xf86Msg(X_CONFIG, "%s: InvY\n", dev->identifier);
+ xf86Msg(X_CONFIG, "%s: InvY\n", pInfo->name);
}
{
@@ -1012,23 +1000,19 @@ xf86HypInit(InputDriverPtr drv,
priv->flags &= ~BAUD_19200_FLAG;
break;
default:
- xf86Msg(X_CONFIG, "%s: Illegal speed value (must be 9600 or 19200)\n", dev->identifier);
+ xf86Msg(X_CONFIG, "%s: Illegal speed value (must be 9600 or 19200)\n", pInfo->name);
break;
}
}
- /* mark the device configured */
- pInfo->flags |= XI86_POINTER_CAPABLE | XI86_CONFIGURED;
-
- /* return the pInfoDevice */
- return (pInfo);
+ return rc;
SetupProc_fail:
if (priv)
free(priv);
if (pInfo)
free(pInfo);
- return NULL;
+ return rc;
}
_X_EXPORT InputDriverRec HYPERPEN = {