Lines Matching +full:ext +full:- +full:32 +full:k

2  * Copyright 2001-2003 Red Hat Inc., Durham, North Carolina.
21 * NON-INFRINGEMENT. IN NO EVENT SHALL RED HAT AND/OR THEIR SUPPLIERS
42 #include <dmx-config.h>
89 for (i = 1; i < 32; i++) { in dmxCommonKbdSetAR()
111 for (i = 0; i < 32; i++) { in dmxCommonKbdSetLeds()
124 if (!old || old->click != new->click || old->autoRepeat != new->autoRepeat) { in dmxCommonKbdSetCtrl()
126 kc.key_click_percent = new->click; in dmxCommonKbdSetCtrl()
127 kc.auto_repeat_mode = new->autoRepeat; in dmxCommonKbdSetCtrl()
132 dmxCommonKbdSetLeds(display, new->leds); in dmxCommonKbdSetCtrl()
133 dmxCommonKbdSetAR(display, old ? old->autoRepeats : NULL, new->autoRepeats); in dmxCommonKbdSetCtrl()
142 || old->num != new->num in dmxCommonMouSetCtrl()
143 || old->den != new->den || old->threshold != new->threshold) { in dmxCommonMouSetCtrl()
144 do_accel = (new->num > 0 && new->den > 0); in dmxCommonMouSetCtrl()
145 do_threshold = (new->threshold > 0); in dmxCommonMouSetCtrl()
148 new->num, new->den, new->threshold); in dmxCommonMouSetCtrl()
159 if (!priv->stateSaved && priv->be) in dmxCommonKbdCtrl()
161 if (!priv->display || !priv->stateSaved) in dmxCommonKbdCtrl()
163 dmxCommonKbdSetCtrl(priv->display, in dmxCommonKbdCtrl()
164 priv->kctrlset ? &priv->kctrl : NULL, ctrl); in dmxCommonKbdCtrl()
165 priv->kctrl = *ctrl; in dmxCommonKbdCtrl()
166 priv->kctrlset = 1; in dmxCommonKbdCtrl()
182 if (priv->be) { in dmxCommonMouCtrl()
183 dmxCommonMouSetCtrl(priv->display, in dmxCommonMouCtrl()
184 priv->mctrlset ? &priv->mctrl : NULL, ctrl); in dmxCommonMouCtrl()
185 priv->mctrl = *ctrl; in dmxCommonMouCtrl()
186 priv->mctrlset = 1; in dmxCommonMouCtrl()
200 if (!priv->be) in dmxCommonKbdBell()
201 XGetKeyboardControl(priv->display, &ks); in dmxCommonKbdBell()
205 XChangeKeyboardControl(priv->display, mask, &kc); in dmxCommonKbdBell()
206 XBell(priv->display, percent); in dmxCommonKbdBell()
207 if (!priv->be) { in dmxCommonKbdBell()
211 XChangeKeyboardControl(priv->display, mask, &kc); in dmxCommonKbdBell()
229 * compiler warning on 64-bit machines. in dmxCommonKbdGetMap()
230 * We assume pointers to 32-bit and in dmxCommonKbdGetMap()
231 * 64-bit ints are the same. */ in dmxCommonKbdGetMap()
232 XDisplayKeycodes(priv->display, &min_keycode, &max_keycode); in dmxCommonKbdGetMap()
233 keyboard_mapping = (KeySym *) XGetKeyboardMapping(priv->display, in dmxCommonKbdGetMap()
236 - min_keycode + 1, in dmxCommonKbdGetMap()
238 pKeySyms->minKeyCode = min_keycode; in dmxCommonKbdGetMap()
239 pKeySyms->maxKeyCode = max_keycode; in dmxCommonKbdGetMap()
240 pKeySyms->mapWidth = map_width; in dmxCommonKbdGetMap()
241 pKeySyms->map = keyboard_mapping; in dmxCommonKbdGetMap()
244 modifier_mapping = XGetModifierMapping(priv->display); in dmxCommonKbdGetMap()
248 int max_keypermod = modifier_mapping->max_keypermod; in dmxCommonKbdGetMap()
252 modifier_mapping->modifiermap[j * max_keypermod + i]; in dmxCommonKbdGetMap()
270 if (priv->xkb) { in dmxCommonKbdGetInfo()
272 priv->xkb->names->x ? XGetAtomName(priv->display,priv->xkb->names->x) : NULL in dmxCommonKbdGetInfo()
273 info->names.keycodes = NAME(keycodes); in dmxCommonKbdGetInfo()
274 info->names.types = NAME(types); in dmxCommonKbdGetInfo()
275 info->names.compat = NAME(compat); in dmxCommonKbdGetInfo()
276 info->names.symbols = NAME(symbols); in dmxCommonKbdGetInfo()
277 info->names.geometry = NAME(geometry); in dmxCommonKbdGetInfo()
278 info->freenames = 1; in dmxCommonKbdGetInfo()
281 "XKEYBOARD: keycodes = %s\n", info->names.keycodes); in dmxCommonKbdGetInfo()
283 "XKEYBOARD: symbols = %s\n", info->names.symbols); in dmxCommonKbdGetInfo()
285 "XKEYBOARD: geometry = %s\n", info->names.geometry); in dmxCommonKbdGetInfo()
286 if ((pt = strchr(info->names.keycodes, '+'))) in dmxCommonKbdGetInfo()
297 if (priv->be) in dmxCommonKbdOn()
299 priv->eventMask |= DMX_KEYBOARD_EVENT_MASK; in dmxCommonKbdOn()
300 XSelectInput(priv->display, priv->window, priv->eventMask); in dmxCommonKbdOn()
301 if (priv->be) in dmxCommonKbdOn()
302 XSetInputFocus(priv->display, priv->window, RevertToPointerRoot, in dmxCommonKbdOn()
304 return -1; in dmxCommonKbdOn()
312 priv->eventMask &= ~DMX_KEYBOARD_EVENT_MASK; in dmxCommonKbdOff()
313 XSelectInput(priv->display, priv->window, priv->eventMask); in dmxCommonKbdOff()
329 type(priv->xi, event_type[count], event_list[count]); \ in dmxCommonOthOn()
336 DMX_MAX_XINPUT_EVENT_TYPES, dmxInput->name); \ in dmxCommonOthOn()
339 if (!(priv->xi = XOpenDevice(priv->display, dmxLocal->deviceId))) { in dmxCommonOthOn()
341 dmxLocal->deviceName ? dmxLocal->deviceName : "(unknown)", in dmxCommonOthOn()
342 (int) dmxLocal->deviceId, dmxInput->name); in dmxCommonOthOn()
343 return -1; in dmxCommonOthOn()
357 XSelectExtensionEvent(priv->display, priv->window, event_list, count); in dmxCommonOthOn()
359 return -1; in dmxCommonOthOn()
368 if (priv->xi) in dmxCommonOthOff()
369 XCloseDevice(priv->display, priv->xi); in dmxCommonOthOff()
370 priv->xi = NULL; in dmxCommonOthOff()
380 XExtensionVersion *ext; in dmxCommonOthGetInfo() local
382 Display *display = priv->display; in dmxCommonOthGetInfo()
384 int i, j, k; in dmxCommonOthGetInfo() local
387 if (!display && !(display = XOpenDisplay(dmxInput->name))) in dmxCommonOthGetInfo()
392 ext = XGetExtensionVersion(display, INAME); in dmxCommonOthGetInfo()
395 if (ext && ext != (XExtensionVersion *) NoSuchExtension) { in dmxCommonOthGetInfo()
396 XFree(ext); in dmxCommonOthGetInfo()
399 if (devices[i].id == (XID) dmxLocal->deviceId) { in dmxCommonOthGetInfo()
407 any = (XAnyClassPtr) ((char *) any + any->length), j++) { in dmxCommonOthGetInfo()
408 switch (any->class) { in dmxCommonOthGetInfo()
411 info->keyboard = 1; in dmxCommonOthGetInfo()
412 info->keyClass = 1; in dmxCommonOthGetInfo()
413 info->keySyms.minKeyCode = ki->min_keycode; in dmxCommonOthGetInfo()
414 info->keySyms.maxKeyCode = ki->max_keycode; in dmxCommonOthGetInfo()
415 info->kbdFeedbackClass = 1; in dmxCommonOthGetInfo()
419 info->buttonClass = 1; in dmxCommonOthGetInfo()
420 info->numButtons = bi->num_buttons; in dmxCommonOthGetInfo()
421 info->ptrFeedbackClass = 1; in dmxCommonOthGetInfo()
427 info->valuatorClass = 1; in dmxCommonOthGetInfo()
428 if (vi->mode == Absolute) in dmxCommonOthGetInfo()
429 info->numAbsAxes = vi->num_axes; in dmxCommonOthGetInfo()
431 info->numRelAxes = vi->num_axes; in dmxCommonOthGetInfo()
432 for (k = 0; k < vi->num_axes; k++) { in dmxCommonOthGetInfo()
433 info->res[k] = vi->axes[k].resolution; in dmxCommonOthGetInfo()
434 info->minres[k] = vi->axes[k].resolution; in dmxCommonOthGetInfo()
435 info->maxres[k] = vi->axes[k].resolution; in dmxCommonOthGetInfo()
436 info->minval[k] = vi->axes[k].min_value; in dmxCommonOthGetInfo()
437 info->maxval[k] = vi->axes[k].max_value; in dmxCommonOthGetInfo()
445 info->proximityClass = 1; in dmxCommonOthGetInfo()
448 info->focusClass = 1; in dmxCommonOthGetInfo()
458 if (display != priv->display) in dmxCommonOthGetInfo()
469 *nButtons = XGetPointerMapping(priv->display, map, DMX_MAX_BUTTONS); in dmxCommonMouGetMap()
479 XSelectInput(dmxScreen->beDisplay, dmxScreen->scrnWin, priv->eventMask); in dmxCommonXSelect()
495 SetNotifyFd(XConnectionNumber(dmxScreen->beDisplay), dmxCommonFdNotify, X_NOTIFY_READ, closure); in dmxCommonAddEnabledDevice()
502 RemoveNotifyFd(XConnectionNumber(dmxScreen->beDisplay)); in dmxCommonRemoveEnabledDevice()
513 priv->eventMask |= DMX_POINTER_EVENT_MASK; in dmxCommonMouOn()
514 if (!priv->be) { in dmxCommonMouOn()
515 XSelectInput(priv->display, priv->window, priv->eventMask); in dmxCommonMouOn()
516 SetNotifyFd(XConnectionNumber(priv->display), dmxCommonFdNotify,X_NOTIFY_READ, pDev); in dmxCommonMouOn()
519 dmxPropertyIterate(priv->be, dmxCommonXSelect, priv); in dmxCommonMouOn()
520 dmxPropertyIterate(priv->be, dmxCommonAddEnabledDevice, dmxInput); in dmxCommonMouOn()
523 return -1; in dmxCommonMouOn()
533 priv->eventMask &= ~DMX_POINTER_EVENT_MASK; in dmxCommonMouOff()
534 if (!priv->be) { in dmxCommonMouOff()
535 RemoveNotifyFd(XConnectionNumber(priv->display)); in dmxCommonMouOff()
536 XSelectInput(priv->display, priv->window, priv->eventMask); in dmxCommonMouOff()
539 dmxPropertyIterate(priv->be, dmxCommonRemoveEnabledDevice, dmxInput); in dmxCommonMouOff()
540 dmxPropertyIterate(priv->be, dmxCommonXSelect, priv); in dmxCommonMouOff()
546 * not on any screen, return -1. The number returned is an index into
547 * \a dmxScreenInfo and is between -1 and \a dmxNumScreens - 1,
557 if (x >= pScreen->x && x < pScreen->x + pScreen->width && in dmxFindPointerScreen()
558 y >= pScreen->y && y < pScreen->y + pScreen->height) in dmxFindPointerScreen()
561 return -1; in dmxFindPointerScreen()
574 DMXInputInfo *dmxInput = &dmxInputs[dmxLocal->inputIdx]; in dmxCommonCopyPrivate()
577 for (i = 0; i < dmxInput->numDevs; i++) in dmxCommonCopyPrivate()
578 if (dmxInput->devs[i] == dmxLocal && i) in dmxCommonCopyPrivate()
579 return dmxInput->devs[i - 1]->private; in dmxCommonCopyPrivate()
585 * - the modifier map is saved and set to 0 (so DMX controls the LEDs)
586 * - the key click, bell, led, and repeat masks are saved and set to the
591 * active or not active (for a full-screen window, this only happens at
602 if (dmxInput->console) in dmxCommonSaveState()
603 priv = dmxInput->devs[0]->private; in dmxCommonSaveState()
604 if (!priv->display || priv->stateSaved) in dmxCommonSaveState()
607 if (dmxUseXKB && (priv->xkb = XkbAllocKeyboard())) { in dmxCommonSaveState()
608 if (XkbGetIndicatorMap(priv->display, XkbAllIndicatorsMask, priv->xkb) in dmxCommonSaveState()
609 || XkbGetNames(priv->display, XkbAllNamesMask, priv->xkb)) { in dmxCommonSaveState()
611 XkbFreeKeyboard(priv->xkb, 0, True); in dmxCommonSaveState()
612 priv->xkb = NULL; in dmxCommonSaveState()
615 if (priv->xkb->indicators) { in dmxCommonSaveState()
616 priv->savedIndicators = *priv->xkb->indicators; in dmxCommonSaveState()
618 if (priv->xkb->indicators->phys_indicators & (1 << i)) { in dmxCommonSaveState()
619 priv->xkb->indicators->maps[i].flags in dmxCommonSaveState()
622 XkbSetIndicatorMap(priv->display, ~0, priv->xkb); in dmxCommonSaveState()
627 XGetKeyboardControl(priv->display, &ks); in dmxCommonSaveState()
628 priv->savedKctrl.click = ks.key_click_percent; in dmxCommonSaveState()
629 priv->savedKctrl.bell = ks.bell_percent; in dmxCommonSaveState()
630 priv->savedKctrl.bell_pitch = ks.bell_pitch; in dmxCommonSaveState()
631 priv->savedKctrl.bell_duration = ks.bell_duration; in dmxCommonSaveState()
632 priv->savedKctrl.leds = ks.led_mask; in dmxCommonSaveState()
633 priv->savedKctrl.autoRepeat = ks.global_auto_repeat; in dmxCommonSaveState()
634 for (i = 0; i < 32; i++) in dmxCommonSaveState()
635 priv->savedKctrl.autoRepeats[i] = ks.auto_repeats[i]; in dmxCommonSaveState()
637 dmxCommonKbdSetCtrl(priv->display, &priv->savedKctrl, in dmxCommonSaveState()
638 &priv->dmxLocal->kctrl); in dmxCommonSaveState()
640 priv->savedModMap = XGetModifierMapping(priv->display); in dmxCommonSaveState()
643 XSetModifierMapping(priv->display, modmap); in dmxCommonSaveState()
644 if (dmxInput->scrnIdx != -1) in dmxCommonSaveState()
645 dmxSync(&dmxScreens[dmxInput->scrnIdx], TRUE); in dmxCommonSaveState()
648 priv->stateSaved = 1; in dmxCommonSaveState()
656 int retcode = -1; in dmxCommonRestoreState()
659 if (dmxInput->console) in dmxCommonRestoreState()
660 priv = dmxInput->devs[0]->private; in dmxCommonRestoreState()
661 if (!priv->stateSaved) in dmxCommonRestoreState()
663 priv->stateSaved = 0; in dmxCommonRestoreState()
666 if (priv->xkb) { in dmxCommonRestoreState()
667 *priv->xkb->indicators = priv->savedIndicators; in dmxCommonRestoreState()
668 XkbSetIndicatorMap(priv->display, ~0, priv->xkb); in dmxCommonRestoreState()
669 XkbFreeKeyboard(priv->xkb, 0, True); in dmxCommonRestoreState()
670 priv->xkb = 0; in dmxCommonRestoreState()
673 for (start = GetTimeInMillis(); GetTimeInMillis() - start < 5000;) { in dmxCommonRestoreState()
676 retcode = XSetModifierMapping(priv->display, priv->savedModMap); in dmxCommonRestoreState()
685 for (tmp = GetTimeInMillis(); GetTimeInMillis() - tmp < 250;) { in dmxCommonRestoreState()
697 XFreeModifiermap(priv->savedModMap); in dmxCommonRestoreState()
698 priv->savedModMap = NULL; in dmxCommonRestoreState()
700 dmxCommonKbdSetCtrl(priv->display, NULL, &priv->savedKctrl); in dmxCommonRestoreState()
701 priv->kctrlset = 0; /* Invalidate copy */ in dmxCommonRestoreState()