/* ** xf86HypConfig ** Reads the HyperPen section from the XF86Config file */ static Bool xf86HypConfig(LocalDevicePtr *array, int inx, int max, LexPtr val) { LocalDevicePtr dev = array[inx]; HyperPenDevicePtr priv = (HyperPenDevicePtr)(dev->private); int token; int mtoken; DBG(1, ErrorF("xf86HypConfig\n")); priv->AutoPT=1; priv->PMax=1000; while ((token = xf86GetToken(HypTab)) != ENDSUBSECTION) { switch(token) { case DEVICENAME: if (xf86GetToken(NULL) != STRING) xf86ConfigError("Option string expected"); else { dev->name = strdup(val->str); if (xf86Verbose) ErrorF("%s HyperPen X device name is %s\n", XCONFIG_GIVEN, dev->name); } break; case PORT: if (xf86GetToken(NULL) != STRING) xf86ConfigError("Option string expected"); else { priv->hypDevice = strdup(val->str); if (xf86Verbose) ErrorF("%s HyperPen port is %s\n", XCONFIG_GIVEN, priv->hypDevice); } break; case THE_MODE: mtoken = xf86GetToken(HypModeTabRec); if ((mtoken == EOF) || (mtoken == STRING) || (mtoken == NUMBER)) xf86ConfigError("Mode type token expected"); else { switch (mtoken) { case ABSOLUTE: priv->flags |= ABSOLUTE_FLAG; break; case RELATIVE: priv->flags &= ~ABSOLUTE_FLAG; break; default: xf86ConfigError("Illegal Mode type"); break; } } break; case CURSOR: mtoken = xf86GetToken(HypPointTabRec); if ((mtoken == EOF) || (mtoken == STRING) || (mtoken == NUMBER)) xf86ConfigError("Cursor token expected"); else { switch (mtoken) { case STYLUS: priv->flags |= STYLUS_FLAG; break; case PUCK: priv->flags &= ~STYLUS_FLAG; break; default: xf86ConfigError("Illegal cursor type"); break; } } break; case DEBUG_LEVEL: if (xf86GetToken(NULL) != NUMBER) xf86ConfigError("Option number expected"); debug_level = val->num; if (xf86Verbose) { #if DEBUG ErrorF("%s HyperPen debug level set to %d\n", XCONFIG_GIVEN, debug_level); #else ErrorF("%s HyperPen debug level not set to %d because" " debugging is not compiled with the xf86HyperPen driver\n", XCONFIG_GIVEN, debug_level); #endif } break; case HISTORY_SIZE: if (xf86GetToken(NULL) != NUMBER) xf86ConfigError("Option number expected"); dev->history_size = val->num; if (xf86Verbose) ErrorF("%s HyperPen Motion history size is %d\n", XCONFIG_GIVEN, dev->history_size); break; case ALWAYS_CORE: xf86AlwaysCore(dev, TRUE); if (xf86Verbose) ErrorF("%s HyperPen device always stays core pointer\n", XCONFIG_GIVEN); break; case ACTIVE_AREA: if (xf86GetToken(NULL) != NUMBER) xf86ConfigError("Option number expected"); priv->hypXSize = val->realnum * 100; if (xf86GetToken(NULL) != NUMBER) xf86ConfigError("Option number expected"); priv->hypYSize = val->realnum * 100; if (xf86Verbose) ErrorF("%s HyperPen active area: %d.%02dx%d.%02d" " inches\n", XCONFIG_GIVEN, priv->hypXSize / 100, priv->hypXSize % 100, priv->hypYSize / 100, priv->hypYSize % 100); break; case ACTIVE_OFFSET: if (xf86GetToken(NULL) != NUMBER) xf86ConfigError("Option number expected"); priv->hypXOffset = val->realnum * 100; if (xf86GetToken(NULL) != NUMBER) xf86ConfigError("Option number expected"); priv->hypYOffset = val->realnum * 100; if (xf86Verbose) ErrorF("%s HyperPen active area offsets: %d.%02d %d.%02d" " inches\n", XCONFIG_GIVEN, priv->hypXOffset / 100, priv->hypXOffset % 100, priv->hypYOffset / 100, priv->hypYOffset % 100); break; case INVX: priv->flags |= INVX_FLAG; break; case INVY: priv->flags |= INVY_FLAG; break; case BAUD_RATE: if (xf86GetToken(NULL) != NUMBER) xf86ConfigError("Option number expected"); switch (val->num) { case 19200: priv->flags |= BAUD_19200_FLAG; break; case 9600: priv->flags &= ~BAUD_19200_FLAG; break; default: xf86ConfigError("Illegal speed value"); break; } break; case PMIN: if (xf86GetToken(NULL) != NUMBER) xf86ConfigError("Option number expected"); if (val->num < 2) xf86ConfigError("Illegal minimum pressure"); else { priv->AutoPT = 0; /* desactivate auto threshold adjustment*/ priv->PT = val->num; }; break; case PMAX: if (xf86GetToken(NULL) != NUMBER) xf86ConfigError("Option number expected"); if (val->num < 3) xf86ConfigError("Illegal maximum pressure"); else priv->PMax = val->num; break; case EOF: FatalError("Unexpected EOF (missing EndSubSection)"); break; default: xf86ConfigError("HyperPen subsection keyword expected"); break; } } DBG(1, ErrorF("xf86HypConfig name=%s\n", priv->hypDevice)); return Success; }
/* * xf86Ps2padConfig -- * Configure the device. */ static Bool xf86Ps2padConfig(LocalDevicePtr *array, int index, int max, LexPtr val) { LocalDevicePtr dev = array[index]; Ps2PadDevPtr priv = (Ps2PadDevPtr)(dev->private); int token; DBG(1, ErrorF("xf86Ps2padConfig\n")); /* Set defaults */ priv->saveX = 0; priv->saveY = 0; priv->saveButton = 0xffff; priv->padFd = -1; priv->padTimeout = 16; while ((token = xf86GetToken(Ps2padTab)) != ENDSUBSECTION) { switch(token) { case DEVICENAME: if (xf86GetToken(NULL) != STRING) xf86ConfigError("Option string expected"); dev->name = strdup(val->str); break; case PORT: if (xf86GetToken(NULL) != STRING) xf86ConfigError("Option string expected"); priv->padDevice = strdup(val->str); break; case TIMEOUT: if (xf86GetToken(NULL) != NUMBER) xf86ConfigError("Ps2Pad Timeout expected"); priv->padTimeout = val->num; break; case MSBUTTON1: if ((token = xf86GetToken(Ps2padButtonTab)) == ERROR_TOKEN) xf86ConfigError("Ps2Pad Button1 expected"); priv->button1 = token; break; case MSBUTTON2: if ((token = xf86GetToken(Ps2padButtonTab)) == ERROR_TOKEN) xf86ConfigError("Ps2Pad Button2 expected"); priv->button2 = token; break; case MSBUTTON3: if ((token = xf86GetToken(Ps2padButtonTab)) == ERROR_TOKEN) xf86ConfigError("Ps2Pad Button3 expected"); priv->button3 = token; break; case CENTERX: if (xf86GetToken(NULL) != NUMBER) xf86ConfigError("Ps2Pad CenterX expected"); priv->CenterX = val->num; break; case CENTERY: if (xf86GetToken(NULL) != NUMBER) xf86ConfigError("Ps2Pad CenterY expected"); priv->CenterY = val->num; break; case DEADZONE: if (xf86GetToken(NULL) != NUMBER) xf86ConfigError("Ps2Pad DeadZone expected"); priv->DeadZone = val->num; break; case DGTCOUNT: if (xf86GetToken(NULL) != NUMBER) xf86ConfigError("Ps2Pad DgtCount expected"); priv->DgtCount = val->num; break; case SCALE: if (xf86GetToken(NULL) != NUMBER) xf86ConfigError("Ps2Pad Scale expected"); priv->Scale = val->realnum; break; case DEBUG_LEVEL: if (xf86GetToken(NULL) != NUMBER) xf86ConfigError("Option number expected"); debug_level = val->num; if (xf86Verbose) { #if DEBUG ErrorF("%s Ps2Pad debug level sets to %d\n", XCONFIG_GIVEN, debug_level); #else ErrorF("%s Ps2Pad debug level not sets to %d because debugging is not compiled\n", XCONFIG_GIVEN, debug_level); #endif } break; case ALWAYS_CORE: xf86AlwaysCore(dev, TRUE); if (xf86Verbose) ErrorF("%s Ps2Pad device always stays core pointer\n", XCONFIG_GIVEN); break; case EOF: FatalError("Unexpected EOF (missing EndSubSection)"); break; /* :-) */ default: xf86ConfigError("Ps2Pad subsection keyword expected"); break; } } /* if (xf86Verbose) { ErrorF("%s %s: timeout=%d port=%s maxx=%d maxy=%d minx=%d miny=%d\n" "\tcenterx=%d centery=%d delta=%d\n", XCONFIG_GIVEN, dev->name, priv->padTimeout, priv->padDevice, priv->padMaxX, priv->padMaxY, priv->padMinX, priv->padMinY, priv->padCenterX, priv->padCenterY, priv->padDelta); }*/ return Success; }