Lines Matching +full:low +full:- +full:vt
2 * Copyright 2002-2003 Red Hat Inc., Durham, North Carolina.
21 * NON-INFRINGEMENT. IN NO EVENT SHALL RED HAT AND/OR THEIR SUPPLIERS
36 * the low-level input drivers. */
39 #include <dmx-config.h>
93 for (i = 0; i < dmxInput->numDevs; i += dmxInput->devs[i]->binding) in dmxApplyFunctions()
94 if (dmxInput->devs[i]->functions) in dmxApplyFunctions()
95 rc += dmxInput->devs[i]->functions(dmxInput->devs[i]->private, f); in dmxApplyFunctions()
102 DMXInputInfo *dmxInput = &dmxInputs[dmxLocal->inputIdx]; in dmxCheckFunctionKeys()
104 #if 1 /* hack to detect ctrl-alt-q, etc */ in dmxCheckFunctionKeys()
125 if (dmxLocal->sendsCore) in dmxCheckFunctionKeys()
126 state = dmxLocalCoreKeyboard->pDevice->key->state; in dmxCheckFunctionKeys()
127 else if (dmxLocal->pDevice->key) in dmxCheckFunctionKeys()
128 state = dmxLocal->pDevice->key->state; in dmxCheckFunctionKeys()
147 if (type == KeyPress && dmxLocal->sendsCore) in dmxCheckFunctionKeys()
179 DeviceIntPtr p = dmxLocal->pDevice; in enqueueMotion()
218 dmxGlobalX = dmxGlobalWidth + delta - 1; in dmxCoreMotion()
220 dmxGlobalY = dmxGlobalHeight + delta - 1; in dmxCoreMotion()
223 localX = dmxGlobalX - dmxScreen->rootXOrigin; in dmxCoreMotion()
224 localY = dmxGlobalY - dmxScreen->rootYOrigin; in dmxCoreMotion()
226 && pScreen->myNum == dmxScreen->index) { in dmxCoreMotion()
238 pScreen->myNum, dmxScreen->index, localX, localY); in dmxCoreMotion()
242 miPointerSetScreen(inputInfo.pointer, dmxScreen->index, in dmxCoreMotion()
253 dmxGlobalX = localX + dmxScreens[pScreen->myNum].rootXOrigin; in dmxCoreMotion()
254 dmxGlobalY = localY + dmxScreens[pScreen->myNum].rootYOrigin; in dmxCoreMotion()
260 dmxScreen ? dmxScreen->index : -1, pScreen->myNum, in dmxCoreMotion()
270 for (j = 0; j < dmxInput->numDevs; j += dmxInput->devs[j]->binding) in dmxCoreMotion()
271 if (!dmxInput->detached in dmxCoreMotion()
272 && dmxInput->devs[j]->sendsCore in dmxCoreMotion()
273 && dmxInput->devs[j]->update_position) in dmxCoreMotion()
274 dmxInput->devs[j]->update_position(dmxInput->devs[j]->private, in dmxCoreMotion()
287 DeviceIntPtr pDevice = dmxLocal->pDevice; in dmxExtMotion()
307 thisX = -v[0]; in dmxExtMotion()
308 thisY = -v[1]; in dmxExtMotion()
309 dmxLocal->lastX += thisX; in dmxExtMotion()
310 dmxLocal->lastY += thisY; in dmxExtMotion()
311 if (dmxLocal->update_position) in dmxExtMotion()
312 dmxLocal->update_position(dmxLocal->private, in dmxExtMotion()
313 dmxLocal->lastX, dmxLocal->lastY); in dmxExtMotion()
316 if (dmxLocal->lastX || dmxLocal->lastY) { in dmxExtMotion()
317 thisX = v[0] - dmxLocal->lastX; in dmxExtMotion()
318 thisY = v[1] - dmxLocal->lastY; in dmxExtMotion()
320 dmxLocal->lastX = v[0]; in dmxExtMotion()
321 dmxLocal->lastY = v[1]; in dmxExtMotion()
330 xev->time = GetTimeInMillis(); in dmxExtMotion()
331 xev->type = DeviceMotionNotify; in dmxExtMotion()
332 xev->detail = 0; in dmxExtMotion()
333 xev->deviceid = pDevice->id | MORE_EVENTS; in dmxExtMotion()
335 xv->type = DeviceValuator; in dmxExtMotion()
336 xv->deviceid = pDevice->id; in dmxExtMotion()
337 xv->num_valuators = axesCount; in dmxExtMotion()
338 xv->first_valuator = firstAxis; in dmxExtMotion()
339 switch (xv->num_valuators) { in dmxExtMotion()
341 xv->valuator5 = v[5]; in dmxExtMotion()
343 xv->valuator4 = v[4]; in dmxExtMotion()
345 xv->valuator3 = v[3]; in dmxExtMotion()
347 xv->valuator2 = v[2]; in dmxExtMotion()
349 xv->valuator1 = v[1]; in dmxExtMotion()
351 xv->valuator0 = v[0]; in dmxExtMotion()
359 xev->time = GetTimeInMillis(); in dmxExtMotion()
360 xev->type = DeviceMotionNotify; in dmxExtMotion()
361 xev->detail = 0; in dmxExtMotion()
362 xev->deviceid = pDevice->id | MORE_EVENTS; in dmxExtMotion()
365 xv->type = DeviceValuator; in dmxExtMotion()
366 xv->deviceid = pDevice->id; in dmxExtMotion()
367 xv->num_valuators = (i + 6 >= axesCount ? axesCount - i : 6); in dmxExtMotion()
368 xv->first_valuator = firstAxis + i; in dmxExtMotion()
369 switch (xv->num_valuators) { in dmxExtMotion()
371 xv->valuator5 = v[i + 5]; in dmxExtMotion()
373 xv->valuator4 = v[i + 4]; in dmxExtMotion()
375 xv->valuator3 = v[i + 3]; in dmxExtMotion()
377 xv->valuator2 = v[i + 2]; in dmxExtMotion()
379 xv->valuator1 = v[i + 1]; in dmxExtMotion()
381 xv->valuator0 = v[i + 0]; in dmxExtMotion()
402 int event = -1; in dmxTranslateAndEnqueueExtEvent()
405 DeviceIntPtr pDevice = dmxLocal->pDevice; in dmxTranslateAndEnqueueExtEvent()
410 return -1; /* No extended event passed, cannot handle */ in dmxTranslateAndEnqueueExtEvent()
412 if ((XID) dmxLocal->deviceId != ke->deviceid) { in dmxTranslateAndEnqueueExtEvent()
418 DMXInputInfo *dmxInput = &dmxInputs[dmxLocal->inputIdx]; in dmxTranslateAndEnqueueExtEvent()
420 for (i = 0; i < dmxInput->numDevs; i++) { in dmxTranslateAndEnqueueExtEvent()
421 dmxLocal = dmxInput->devs[i]; in dmxTranslateAndEnqueueExtEvent()
422 if ((XID) dmxLocal->deviceId == ke->deviceid) in dmxTranslateAndEnqueueExtEvent()
427 if ((XID) dmxLocal->deviceId != ke->deviceid in dmxTranslateAndEnqueueExtEvent()
428 || (type = dmxMapLookup(dmxLocal, e->type)) < 0) in dmxTranslateAndEnqueueExtEvent()
429 return -1; /* No mapping, so this event is unhandled */ in dmxTranslateAndEnqueueExtEvent()
480 valuators[0] = ke->axis_data[0]; \ in dmxTranslateAndEnqueueExtEvent()
481 valuators[1] = ke->axis_data[1]; \ in dmxTranslateAndEnqueueExtEvent()
482 valuators[2] = ke->axis_data[2]; \ in dmxTranslateAndEnqueueExtEvent()
483 valuators[3] = ke->axis_data[3]; \ in dmxTranslateAndEnqueueExtEvent()
484 valuators[4] = ke->axis_data[4]; \ in dmxTranslateAndEnqueueExtEvent()
485 valuators[5] = ke->axis_data[5]; \ in dmxTranslateAndEnqueueExtEvent()
492 QueueKeyboardEvents(pDevice, event, ke->keycode); in dmxTranslateAndEnqueueExtEvent()
499 valuator_mask_set_range(&mask, ke->first_axis, ke->axes_count, in dmxTranslateAndEnqueueExtEvent()
503 QueuePointerEvents(pDevice, event, ke->keycode, in dmxTranslateAndEnqueueExtEvent()
511 valuator_mask_set_range(&mask, ke->first_axis, ke->axes_count, in dmxTranslateAndEnqueueExtEvent()
523 dmxExtMotion(dmxLocal, me->axis_data, me->first_axis, me->axes_count, in dmxTranslateAndEnqueueExtEvent()
544 "XInput extension event (remote=%d -> zero-based=%d)" in dmxTranslateAndEnqueueExtEvent()
545 " not supported yet\n", e->type, type); in dmxTranslateAndEnqueueExtEvent()
546 return -1; in dmxTranslateAndEnqueueExtEvent()
554 ButtonClassPtr b = dmxLocal->pDevice->button; in dmxGetButtonMapping()
556 if (button > b->numButtons) { /* This shouldn't happen. */ in dmxGetButtonMapping()
558 button, b->numButtons); in dmxGetButtonMapping()
561 return b->map[button]; in dmxGetButtonMapping()
596 if (!dmxLocal->sendsCore) { in dmxMotion()
603 dmxCoreMotion(pDev, dmxGlobalX - v[0], dmxGlobalY - v[1], 0, block); in dmxMotion()
609 dmxCoreMotion(pDev, v[0], v[1], -1, block); in dmxMotion()
622 if (!dmxLocal || !dmxLocal->pDevice || !dmxLocal->pDevice->key) in dmxKeyCodeToKeySym()
625 xkbi = dmxLocal->pDevice->key->xkbInfo; in dmxKeyCodeToKeySym()
626 effectiveGroup = XkbGetEffectiveGroup(xkbi, &xkbi->state, keyCode); in dmxKeyCodeToKeySym()
628 if (effectiveGroup == -1) in dmxKeyCodeToKeySym()
631 keysym = XkbKeySym(xkbi->desc, keyCode, effectiveGroup); in dmxKeyCodeToKeySym()
645 XkbSrvInfoPtr xkbi = dmxLocal->pDevice->key->xkbInfo; in dmxKeySymToKeyCode()
646 KeySymsPtr pKeySyms = XkbGetCoreMap(dmxLocal->pDevice); in dmxKeySymToKeyCode()
650 if (XkbKeycodeInRange(xkbi->desc, tryFirst) in dmxKeySymToKeyCode()
651 && pKeySyms->map[(tryFirst - xkbi->desc->min_key_code) in dmxKeySymToKeyCode()
652 * pKeySyms->mapWidth] == keySym) in dmxKeySymToKeyCode()
655 for (i = pKeySyms->minKeyCode; i <= pKeySyms->maxKeyCode; i++) { in dmxKeySymToKeyCode()
656 if (pKeySyms->map[(i - pKeySyms->minKeyCode) in dmxKeySymToKeyCode()
657 * pKeySyms->mapWidth] == keySym) { in dmxKeySymToKeyCode()
673 if (!dmxLocal->pDevice->key) { in dmxFixup()
675 dmxLocal->pDevice->name); in dmxFixup()
700 DeviceIntPtr p = dmxLocal->pDevice; in dmxEnqueue()
713 if (dmxLocal->sendsCore && dmxLocal != dmxLocalCoreKeyboard) in dmxEnqueue()
728 valuators[0] = e->xmotion.x; in dmxEnqueue()
729 valuators[1] = e->xmotion.y; in dmxEnqueue()
730 valuators[2] = e->xmotion.state; /* FIXME: WTF?? */ in dmxEnqueue()
746 if (dmxLocal->sendsCore) in dmxEnqueue()
763 /** A pointer to this routine is passed to low-level input drivers so
766 * requested termination of the DMX server, -1 is returned. If the user
767 * has requested a switch to a VT, then the (1-based) number of that VT
773 int vt = 0; in dmxCheckSpecialKeys() local
776 if (dmxLocal->sendsCore) in dmxCheckSpecialKeys()
778 XkbStateFieldFromRec(&dmxLocalCoreKeyboard->pDevice->key->xkbInfo-> in dmxCheckSpecialKeys()
780 else if (dmxLocal->pDevice->key) in dmxCheckSpecialKeys()
781 state = XkbStateFieldFromRec(&dmxLocal->pDevice->key->xkbInfo->state); in dmxCheckSpecialKeys()
783 if (!dmxLocal->sendsCore) in dmxCheckSpecialKeys()
802 vt = keySym - XK_F1 + 1; in dmxCheckSpecialKeys()
807 vt = keySym - XK_F11 + 11; in dmxCheckSpecialKeys()
816 return -1; /* Terminate */ in dmxCheckSpecialKeys()
819 if (vt) { in dmxCheckSpecialKeys()
820 dmxLog(dmxInfo, "Request to switch to VT %d\n", vt); in dmxCheckSpecialKeys()
821 dmxInput->vt_switch_pending = vt; in dmxCheckSpecialKeys()
822 return vt; in dmxCheckSpecialKeys()