Lines Matching +full:wide +full:- +full:range

3  * Copyright © 2006-2007 Daniel Stone
27 * Peter Hutterer <peter.hutterer@who-t.net>
31 #include <dix-config.h>
96 SetBit(pDev->button->down, button); in set_button_down()
98 SetBit(pDev->button->postdown, button); in set_button_down()
105 ClearBit(pDev->button->down, button); in set_button_up()
107 ClearBit(pDev->button->postdown, button); in set_button_up()
116 ret = ret || BitIsOn(pDev->button->down, button); in button_is_down()
118 ret = ret || BitIsOn(pDev->button->postdown, button); in button_is_down()
127 SetBit(pDev->key->down, key_code); in set_key_down()
129 SetBit(pDev->key->postdown, key_code); in set_key_down()
136 ClearBit(pDev->key->down, key_code); in set_key_up()
138 ClearBit(pDev->key->postdown, key_code); in set_key_up()
147 ret = ret || BitIsOn(pDev->key->down, key_code); in key_is_down()
149 ret = ret || BitIsOn(pDev->key->postdown, key_code); in key_is_down()
157 return ! !(pDev->kbdfeed->ctrl.autoRepeats[key_code >> 3] & in key_autorepeats()
165 event->header = ET_Internal; in init_touch_ownership()
166 event->type = ET_TouchOwnership; in init_touch_ownership()
167 event->length = sizeof(TouchOwnershipEvent); in init_touch_ownership()
168 event->time = ms; in init_touch_ownership()
169 event->deviceid = dev->id; in init_touch_ownership()
176 event->header = ET_Internal; in init_raw()
177 event->length = sizeof(RawDeviceEvent); in init_raw()
180 event->type = ET_RawMotion; in init_raw()
183 event->type = ET_RawButtonPress; in init_raw()
186 event->type = ET_RawButtonRelease; in init_raw()
189 event->type = ET_RawKeyPress; in init_raw()
192 event->type = ET_RawKeyRelease; in init_raw()
195 event->type = ET_RawTouchBegin; in init_raw()
198 event->type = ET_RawTouchUpdate; in init_raw()
201 event->type = ET_RawTouchEnd; in init_raw()
204 event->time = ms; in init_raw()
205 event->deviceid = dev->id; in init_raw()
206 event->sourceid = dev->id; in init_raw()
207 event->detail.button = detail; in init_raw()
222 SetBit(event->valuators.mask, i); in set_raw_valuators()
243 SetBit(event->valuators.mask, i); in set_valuators()
245 SetBit(event->valuators.mode, i); in set_valuators()
246 event->valuators.data[i] = valuator_mask_get_double(mask, i); in set_valuators()
249 event->valuators.data[i] = dev->valuator->axisVal[i]; in set_valuators()
261 dce = &event->changed_event; in CreateClassesChangedEvent()
263 dce->deviceid = slave->id; in CreateClassesChangedEvent()
264 dce->masterid = master ? master->id : 0; in CreateClassesChangedEvent()
265 dce->header = ET_Internal; in CreateClassesChangedEvent()
266 dce->length = sizeof(DeviceChangedEvent); in CreateClassesChangedEvent()
267 dce->type = ET_DeviceChanged; in CreateClassesChangedEvent()
268 dce->time = ms; in CreateClassesChangedEvent()
269 dce->flags = flags; in CreateClassesChangedEvent()
270 dce->sourceid = slave->id; in CreateClassesChangedEvent()
272 if (slave->button) { in CreateClassesChangedEvent()
273 dce->buttons.num_buttons = slave->button->numButtons; in CreateClassesChangedEvent()
274 for (i = 0; i < dce->buttons.num_buttons; i++) in CreateClassesChangedEvent()
275 dce->buttons.names[i] = slave->button->labels[i]; in CreateClassesChangedEvent()
277 if (slave->valuator) { in CreateClassesChangedEvent()
278 dce->num_valuators = slave->valuator->numAxes; in CreateClassesChangedEvent()
279 for (i = 0; i < dce->num_valuators; i++) { in CreateClassesChangedEvent()
280 dce->valuators[i].min = slave->valuator->axes[i].min_value; in CreateClassesChangedEvent()
281 dce->valuators[i].max = slave->valuator->axes[i].max_value; in CreateClassesChangedEvent()
282 dce->valuators[i].resolution = slave->valuator->axes[i].resolution; in CreateClassesChangedEvent()
283 dce->valuators[i].mode = slave->valuator->axes[i].mode; in CreateClassesChangedEvent()
284 dce->valuators[i].name = slave->valuator->axes[i].label; in CreateClassesChangedEvent()
285 dce->valuators[i].scroll = slave->valuator->axes[i].scroll; in CreateClassesChangedEvent()
286 dce->valuators[i].value = slave->valuator->axisVal[i]; in CreateClassesChangedEvent()
289 if (slave->key) { in CreateClassesChangedEvent()
290 dce->keys.min_keycode = slave->key->xkbInfo->desc->min_key_code; in CreateClassesChangedEvent()
291 dce->keys.max_keycode = slave->key->xkbInfo->desc->max_key_code; in CreateClassesChangedEvent()
305 if (from && from->min_value < from->max_value) { in rescaleValuatorAxis()
306 fmin = from->min_value; in rescaleValuatorAxis()
307 fmax = from->max_value + 1; in rescaleValuatorAxis()
309 if (to && to->min_value < to->max_value) { in rescaleValuatorAxis()
310 tmin = to->min_value; in rescaleValuatorAxis()
311 tmax = to->max_value + 1; in rescaleValuatorAxis()
320 return (coord - fmin) * (tmax - tmin) / (fmax - fmin) + tmin; in rescaleValuatorAxis()
328 * pDev->last.valuators will be in absolute device coordinates after this
334 /* master->last.valuators[0]/[1] is in desktop-wide coords and the actual in updateSlaveDeviceCoords()
336 pDev->last.valuators[0] = master->last.valuators[0]; in updateSlaveDeviceCoords()
337 pDev->last.valuators[1] = master->last.valuators[1]; in updateSlaveDeviceCoords()
339 if (!pDev->valuator) in updateSlaveDeviceCoords()
343 if (pDev->valuator->numAxes > 0) { in updateSlaveDeviceCoords()
344 pDev->last.valuators[0] = rescaleValuatorAxis(pDev->last.valuators[0], in updateSlaveDeviceCoords()
346 pDev->valuator->axes + 0, in updateSlaveDeviceCoords()
350 if (pDev->valuator->numAxes > 1) { in updateSlaveDeviceCoords()
351 pDev->last.valuators[1] = rescaleValuatorAxis(pDev->last.valuators[1], in updateSlaveDeviceCoords()
353 pDev->valuator->axes + 1, in updateSlaveDeviceCoords()
358 /* other axes are left as-is */ in updateSlaveDeviceCoords()
369 free(pDev->valuator->motion); in AllocateMotionHistory()
371 if (pDev->valuator->numMotionEvents < 1) in AllocateMotionHistory()
375 * potential valuators, plus the respective range of the valuators. in AllocateMotionHistory()
381 ValuatorClassPtr v = pDev->valuator; in AllocateMotionHistory()
385 for (numAxes = 0; numAxes < v->numAxes; numAxes++) in AllocateMotionHistory()
393 pDev->valuator->motion = calloc(pDev->valuator->numMotionEvents, size); in AllocateMotionHistory()
394 pDev->valuator->first_motion = 0; in AllocateMotionHistory()
395 pDev->valuator->last_motion = 0; in AllocateMotionHistory()
396 if (!pDev->valuator->motion) in AllocateMotionHistory()
398 pDev->name, size * pDev->valuator->numMotionEvents); in AllocateMotionHistory()
424 if (!pDev->valuator || !pDev->valuator->numMotionEvents) in GetMotionHistory()
433 size = (sizeof(INT32) * pDev->valuator->numAxes) + sizeof(Time); in GetMotionHistory()
435 *buff = malloc(size * pDev->valuator->numMotionEvents); in GetMotionHistory()
440 for (i = pDev->valuator->first_motion; in GetMotionHistory()
441 i != pDev->valuator->last_motion; in GetMotionHistory()
442 i = (i + 1) % pDev->valuator->numMotionEvents) { in GetMotionHistory()
446 ibuff = (char *) pDev->valuator->motion + (i * size); in GetMotionHistory()
459 /* fetch x coordinate + range */ in GetMotionHistory()
466 to->max_value = pScreen->width; in GetMotionHistory()
468 rescaleValuatorAxis(coord, &from, to, 0, pScreen->width); in GetMotionHistory()
473 /* fetch y coordinate + range */ in GetMotionHistory()
478 to->max_value = pScreen->height; in GetMotionHistory()
480 rescaleValuatorAxis(coord, &from, to, 0, pScreen->height); in GetMotionHistory()
490 if (j >= pDev->valuator->numAxes) in GetMotionHistory()
499 pDev->valuator->numAxes) ? &pDev->valuator-> in GetMotionHistory()
502 /* x/y scaled to screen if no range is present */ in GetMotionHistory()
504 from.max_value = pScreen->width; in GetMotionHistory()
506 from.max_value = pScreen->height; in GetMotionHistory()
508 /* scale from stored range into current range */ in GetMotionHistory()
523 (sizeof(INT32) * pDev->valuator->numAxes) + sizeof(Time); in GetMotionHistory()
546 char *buff = (char *) pDev->valuator->motion; in updateMotionHistory()
550 if (!pDev->valuator->numMotionEvents) in updateMotionHistory()
553 v = pDev->valuator; in updateMotionHistory()
556 v->last_motion; in updateMotionHistory()
563 for (i = 0; i < v->numAxes; i++) { in updateMotionHistory()
573 memcpy(buff, &v->axes[i].min_value, sizeof(INT32)); in updateMotionHistory()
575 memcpy(buff, &v->axes[i].max_value, sizeof(INT32)); in updateMotionHistory()
584 buff += ((sizeof(INT32) * pDev->valuator->numAxes) + sizeof(CARD32)) * in updateMotionHistory()
585 pDev->valuator->last_motion; in updateMotionHistory()
590 memset(buff, 0, sizeof(INT32) * pDev->valuator->numAxes); in updateMotionHistory()
605 pDev->valuator->last_motion = (pDev->valuator->last_motion + 1) % in updateMotionHistory()
606 pDev->valuator->numMotionEvents; in updateMotionHistory()
608 if (pDev->valuator->first_motion == pDev->valuator->last_motion) in updateMotionHistory()
609 pDev->valuator->first_motion = (pDev->valuator->first_motion + 1) % in updateMotionHistory()
610 pDev->valuator->numMotionEvents; in updateMotionHistory()
642 if (axisNum >= pDev->valuator->numAxes) in clipAxis()
645 axis = pDev->valuator->axes + axisNum; in clipAxis()
647 /* If a value range is defined, clip. If not, do nothing */ in clipAxis()
648 if (axis->max_value <= axis->min_value) in clipAxis()
651 if (*val < axis->min_value) in clipAxis()
652 *val = axis->min_value; in clipAxis()
653 if (*val > axis->max_value) in clipAxis()
654 *val = axis->max_value; in clipAxis()
679 * @param events Pointer to a pre-allocated event array.
697 if (master && master->last.slave != dev) { in UpdateFromMaster()
702 master->last.numValuators = dev->last.numValuators; in UpdateFromMaster()
704 master->last.slave = dev; in UpdateFromMaster()
743 if ((value > 0 && v > INT_MAX - value) || (value < 0 && v < INT_MIN - value)) { in add_to_scroll_valuator()
747 valuator_mask_set_double(dev->last.scroll, valuator, 0); in add_to_scroll_valuator()
760 ValuatorClassPtr v = dev->valuator; in scale_for_device_resolution()
761 int xrange = v->axes[0].max_value - v->axes[0].min_value + 1; in scale_for_device_resolution()
762 int yrange = v->axes[1].max_value - v->axes[1].min_value + 1; in scale_for_device_resolution()
772 if (v->axes[0].resolution != 0 && v->axes[1].resolution != 0) in scale_for_device_resolution()
773 resolution_ratio = 1.0 * v->axes[0].resolution/v->axes[1].resolution; in scale_for_device_resolution()
783 * @param[in,out] mask Valuator data for this event, modified in-place.
790 ValuatorClassPtr v = dev->valuator; in moveRelative()
794 if ((flags & POINTER_ABSOLUTE) == 0 && v && v->numAxes > 1 && in moveRelative()
795 v->axes[0].min_value < v->axes[0].max_value && in moveRelative()
796 v->axes[1].min_value < v->axes[1].max_value) { in moveRelative()
802 double val = dev->last.valuators[i]; in moveRelative()
830 if (dev->valuator->accelScheme.AccelSchemeProc) in accelPointer()
831 dev->valuator->accelScheme.AccelSchemeProc(dev, valuators, ms); in accelPointer()
836 * device's coordinate range.
840 * to contain device coordinate range.
841 * @param flags If POINTER_SCREEN is set, mask is in per-screen coordinates.
853 scaled += scr->x; in scale_from_screen()
855 NULL, dev->valuator->axes + 0, in scale_from_screen()
862 scaled += scr->y; in scale_from_screen()
864 NULL, dev->valuator->axes + 1, in scale_from_screen()
878 * @param[out] devx x desktop-wide coordinate in device coordinate system
879 * @param[out] devy y desktop-wide coordinate in device coordinate system
890 BUG_WARN(dev->valuator && dev->valuator->numAxes < 2); in scale_to_desktop()
891 if (!dev->valuator || dev->valuator->numAxes < 2) { in scale_to_desktop()
894 *devx = *screenx = dev->last.valuators[0]; in scale_to_desktop()
895 *devy = *screeny = dev->last.valuators[1]; in scale_to_desktop()
902 x = dev->last.valuators[0]; in scale_to_desktop()
906 y = dev->last.valuators[1]; in scale_to_desktop()
909 *screenx = rescaleValuatorAxis(x, dev->valuator->axes + 0, NULL, in scale_to_desktop()
911 *screeny = rescaleValuatorAxis(y, dev->valuator->axes + 1, NULL, in scale_to_desktop()
936 * per-screen device coordinates after confinement
937 * @param[in,out] devx x desktop-wide coordinate in device coordinate system
938 * @param[in,out] devy y desktop-wide coordinate in device coordinate system
952 if (!dev->valuator || dev->valuator->numAxes < 2) in positionSprite()
968 *devx = rescaleValuatorAxis(*screenx, NULL, dev->valuator->axes + 0, in positionSprite()
972 *devy = rescaleValuatorAxis(*screeny, NULL, dev->valuator->axes + 1, in positionSprite()
975 /* Recalculate the per-screen device coordinates */ in positionSprite()
979 x = rescaleValuatorAxis(*screenx - scr->x, NULL, in positionSprite()
980 dev->valuator->axes + 0, 0, scr->width); in positionSprite()
986 y = rescaleValuatorAxis(*screeny - scr->y, NULL, in positionSprite()
987 dev->valuator->axes + 1, 0, scr->height); in positionSprite()
1005 if (!dev->valuator) in updateHistory()
1008 updateMotionHistory(dev, ms, mask, dev->last.valuators); in updateHistory()
1012 updateMotionHistory(master, ms, mask, dev->last.valuators); in updateHistory()
1028 event->root_x = trunc(x); in event_set_root_coordinates()
1029 event->root_y = trunc(y); in event_set_root_coordinates()
1030 event->root_x_frac = x - trunc(x); in event_set_root_coordinates()
1031 event->root_y_frac = y - trunc(y); in event_set_root_coordinates()
1076 XSERVER_INPUT_EVENT(pDev->id, type, key_code, 0, 0, in GetKeyboardEvents()
1090 if (!pDev->enabled) in GetKeyboardEvents()
1093 if (!events || !pDev->key || !pDev->focus || !pDev->kbdfeed || in GetKeyboardEvents()
1107 if (!pDev->kbdfeed->ctrl.autoRepeat || in GetKeyboardEvents()
1109 pDev->key->xkbInfo->desc->map->modmap[key_code]) in GetKeyboardEvents()
1116 raw = &events->raw_event; in GetKeyboardEvents()
1122 event = &events->device_event; in GetKeyboardEvents()
1124 event->detail.key = key_code; in GetKeyboardEvents()
1127 event->type = ET_KeyPress; in GetKeyboardEvents()
1131 event->type = ET_KeyRelease; in GetKeyboardEvents()
1187 transform(&dev->relative_transform, &x, &y); in transformRelative()
1224 ox = dev->last.valuators[0]; in transformAbsolute()
1225 oy = dev->last.valuators[1]; in transformAbsolute()
1227 pixman_f_transform_invert(&invert, &dev->scale_and_transform); in transformAbsolute()
1240 transform(&dev->scale_and_transform, &x, &y); in transformAbsolute()
1255 /* store desktop-wide in last.valuators */ in storeLastValuators()
1257 dev->last.valuators[0] = devx; in storeLastValuators()
1259 dev->last.valuators[1] = devy; in storeLastValuators()
1266 dev->last.valuators[i] = valuator_mask_get_double(mask, i); in storeLastValuators()
1304 * screenInfo.screens[n]->width/height added up. "screen" is ScreenRec, not
1308 * - relative events have a mask_in in relative coordinates, mapped to
1310 * - absolute events have a mask_in in absolute device coordinates in
1311 * device-specific range. This range is mapped to the desktop.
1312 * - POINTER_SCREEN absolute events (x86WarpCursor) are in screen-relative
1313 * screen coordinate range.
1314 * - rootx/rooty in events must be be relative to the current screen's
1316 * - XI2 valuators must be relative to the current screen's origin. On
1317 * the protocol the device min/max range maps to the current screen.
1322 * The device's last.valuator[] stores the last position in desktop-wide
1323 * coordinates (in device range for slave devices, desktop range for master
1326 * screen-relative device coordinates requires scaling: A device coordinate
1327 * x/y of range [n..m] that maps to positions Sx/Sy on Screen S must be
1328 * rescaled to match Sx/Sy for [n..m]. In the simplest example, x of (m/2-1)
1334 * [0..2048[. that gives us 2047.954 as desktop coord, or the per-screen
1335 * coordinate 1023.954. Scaling that back into the device coordinate range
1350 double devx = 0.0, devy = 0.0; /* desktop-wide in device coords */ in fill_pointer_events()
1358 if (!pDev->valuator) { in fill_pointer_events()
1360 pDev->id); in fill_pointer_events()
1368 if (!pDev->button || !buttons) in fill_pointer_events()
1370 if (mask_in && valuator_mask_size(mask_in) > 0 && !pDev->valuator) { in fill_pointer_events()
1373 pDev->id); in fill_pointer_events()
1384 raw = &events->raw_event; in fill_pointer_events()
1389 set_raw_valuators(raw, &mask, TRUE, raw->valuators.data_raw); in fill_pointer_events()
1394 /* valuators are in driver-native format (rel or abs) */ in fill_pointer_events()
1406 set_raw_valuators(raw, &mask, FALSE, raw->valuators.data); in fill_pointer_events()
1414 set_raw_valuators(raw, &mask, FALSE, raw->valuators.data); in fill_pointer_events()
1430 screenx = sx + scr->x; in fill_pointer_events()
1431 screeny = sy + scr->y; in fill_pointer_events()
1441 mask is in device coordinates per-screen (the event data) in fill_pointer_events()
1442 devx/devy is in device coordinate desktop-wide */ in fill_pointer_events()
1449 /* Update the MD's co-ordinates, which are always in desktop space. */ in fill_pointer_events()
1453 master->last.valuators[0] = screenx; in fill_pointer_events()
1454 master->last.valuators[1] = screeny; in fill_pointer_events()
1457 event = &events->device_event; in fill_pointer_events()
1461 event->type = ET_Motion; in fill_pointer_events()
1462 event->detail.button = 0; in fill_pointer_events()
1466 event->type = ET_ButtonPress; in fill_pointer_events()
1470 event->type = ET_ButtonRelease; in fill_pointer_events()
1473 event->detail.button = buttons; in fill_pointer_events()
1476 /* root_x and root_y must be in per-screen co-ordinates */ in fill_pointer_events()
1477 event_set_root_coordinates(event, screenx - scr->x, screeny - scr->y); in fill_pointer_events()
1481 raw->flags = XIPointerEmulated; in fill_pointer_events()
1482 event->flags = XIPointerEmulated; in fill_pointer_events()
1500 * in-place)
1521 if (dev->valuator->axes[axis].scroll.type == SCROLL_TYPE_NONE) in emulate_scroll_button_events()
1527 ax = &dev->valuator->axes[axis]; in emulate_scroll_button_events()
1528 incr = ax->scroll.increment; in emulate_scroll_button_events()
1530 BUG_WARN_MSG(incr == 0, "for device %s\n", dev->name); in emulate_scroll_button_events()
1541 valuator_mask_get_double(mask, axis) - valuator_mask_get_double(last, in emulate_scroll_button_events()
1544 b = (ax->scroll.type == SCROLL_TYPE_VERTICAL) ? 5 : 7; in emulate_scroll_button_events()
1547 b--; /* we're scrolling up or left → button 4 or 6 */ in emulate_scroll_button_events()
1553 delta -= fabs(incr); in emulate_scroll_button_events()
1580 total -= delta; in emulate_scroll_button_events()
1595 * events is not NULL-terminated; the return value is the number of events.
1605 * master->last.valuators[x] for x > 2 is undefined.
1620 XSERVER_INPUT_EVENT(pDev->id, type, buttons, flags, in GetPointerEvents()
1621 mask_in ? mask_in->last_bit + 1 : 0, in GetPointerEvents()
1622 mask_in ? mask_in->mask : NULL, in GetPointerEvents()
1623 mask_in ? mask_in->valuators : NULL); in GetPointerEvents()
1630 if (!pDev->enabled) in GetPointerEvents()
1641 /* Turn a scroll button press into a smooth-scrolling event if in GetPointerEvents()
1647 int h_scroll_axis = -1; in GetPointerEvents()
1648 int v_scroll_axis = -1; in GetPointerEvents()
1650 if (pDev->valuator) { in GetPointerEvents()
1651 h_scroll_axis = pDev->valuator->h_scroll_axis; in GetPointerEvents()
1652 v_scroll_axis = pDev->valuator->v_scroll_axis; in GetPointerEvents()
1658 adj = -1.0; in GetPointerEvents()
1666 adj = -1.0; in GetPointerEvents()
1675 axis = -1; in GetPointerEvents()
1679 if (adj != 0.0 && axis != -1) { in GetPointerEvents()
1680 adj *= pDev->valuator->axes[axis].scroll.increment; in GetPointerEvents()
1690 /* First fill out the original event set, with smooth-scrolling axes. */ in GetPointerEvents()
1698 /* Now turn the smooth-scrolling axes back into emulated button presses in GetPointerEvents()
1701 if ( !pDev->valuator || (i >= pDev->valuator->numAxes)) in GetPointerEvents()
1707 valuator_mask_set_double(&scroll, i, pDev->last.valuators[i]); in GetPointerEvents()
1711 pDev->last.scroll, ms, in GetPointerEvents()
1712 GetMaximumEventsNum() - num_events); in GetPointerEvents()
1760 XSERVER_INPUT_EVENT(pDev->id, type, 0, 0, in GetProximityEvents()
1761 mask_in ? mask_in->last_bit + 1 : 0, in GetProximityEvents()
1762 mask_in ? mask_in->mask : NULL, in GetProximityEvents()
1763 mask_in ? mask_in->valuators : NULL); in GetProximityEvents()
1768 if (!pDev->enabled) in GetProximityEvents()
1774 if (!pDev->valuator || !pDev->proximity) in GetProximityEvents()
1793 event = &events->device_event; in GetProximityEvents()
1795 event->type = (type == ProximityIn) ? ET_ProximityIn : ET_ProximityOut; in GetProximityEvents()
1809 TouchClassPtr t = pDev->touch; in GetTouchOwnershipEvents()
1813 if (!pDev->enabled || !t || !ti) in GetTouchOwnershipEvents()
1816 event = &events->touch_ownership_event; in GetTouchOwnershipEvents()
1819 event->touchid = ti->client_id; in GetTouchOwnershipEvents()
1820 event->sourceid = ti->sourceid; in GetTouchOwnershipEvents()
1821 event->resource = resource; in GetTouchOwnershipEvents()
1822 event->flags = flags; in GetTouchOwnershipEvents()
1823 event->reason = reason; in GetTouchOwnershipEvents()
1857 * events is not NULL-terminated; the return value is the number of events.
1872 ScreenPtr scr = dev->spriteInfo->sprite->hotPhys.pScreen; in GetTouchEvents()
1873 TouchClassPtr t = dev->touch; in GetTouchEvents()
1874 ValuatorClassPtr v = dev->valuator; in GetTouchEvents()
1879 double devx = 0.0, devy = 0.0; /* desktop-wide in device coords */ in GetTouchEvents()
1890 XSERVER_INPUT_EVENT(dev->id, type, ddx_touchid, flags, in GetTouchEvents()
1891 mask_in ? mask_in->last_bit + 1 : 0, in GetTouchEvents()
1892 mask_in ? mask_in->mask : NULL, in GetTouchEvents()
1893 mask_in ? mask_in->valuators : NULL); in GetTouchEvents()
1897 if (!dev->enabled || !t || !v) in GetTouchEvents()
1904 ErrorFSigSafe("[dix] %s: unable to %s touch point %u\n", dev->name, in GetTouchEvents()
1908 client_id = ti->client_id; in GetTouchEvents()
1910 emulate_pointer = ti->emulate_pointer; in GetTouchEvents()
1919 raw = &events->raw_event; in GetTouchEvents()
1923 set_raw_valuators(raw, &mask, TRUE, raw->valuators.data_raw); in GetTouchEvents()
1926 event = &events->device_event; in GetTouchEvents()
1933 event->type = ET_TouchBegin; in GetTouchEvents()
1934 /* If we're starting a touch, we must have x & y co-ordinates. */ in GetTouchEvents()
1939 "(driver bug)\n", dev->name); in GetTouchEvents()
1944 event->type = ET_TouchUpdate; in GetTouchEvents()
1947 dev->name); in GetTouchEvents()
1951 event->type = ET_TouchEnd; in GetTouchEvents()
1960 /* Get our screen event co-ordinates (root_x/root_y/event_x/event_y): in GetTouchEvents()
1963 if (t->mode == XIDirectTouch) { in GetTouchEvents()
1968 valuator_mask_set_double(ti->valuators, i, val); in GetTouchEvents()
1973 valuator_mask_fetch_double(ti->valuators, i, &val)) in GetTouchEvents()
1981 screenx = dev->spriteInfo->sprite->hotPhys.x; in GetTouchEvents()
1982 screeny = dev->spriteInfo->sprite->hotPhys.y; in GetTouchEvents()
1985 set_raw_valuators(raw, &mask, FALSE, raw->valuators.data); in GetTouchEvents()
1991 if (t->mode == XIDirectTouch) in GetTouchEvents()
2006 /* Update the MD's co-ordinates, which are always in desktop space. */ in GetTouchEvents()
2010 master->last.valuators[0] = screenx; in GetTouchEvents()
2011 master->last.valuators[1] = screeny; in GetTouchEvents()
2014 event->root = scr->root->drawable.id; in GetTouchEvents()
2016 event_set_root_coordinates(event, screenx - scr->x, screeny - scr->y); in GetTouchEvents()
2017 event->touchid = client_id; in GetTouchEvents()
2018 event->flags = flags; in GetTouchEvents()
2021 event->flags |= TOUCH_POINTER_EMULATED; in GetTouchEvents()
2022 event->detail.button = 1; in GetTouchEvents()
2026 for (i = 0; i < v->numAxes; i++) { in GetTouchEvents()
2028 v->axisVal[i] = valuator_mask_get(&mask, i); in GetTouchEvents()
2038 ScreenPtr scr = dev->spriteInfo->sprite->hotPhys.pScreen; in GetDixTouchEnd()
2039 DeviceEvent *event = &ievent->device_event; in GetDixTouchEnd()
2042 BUG_WARN(!dev->enabled); in GetDixTouchEnd()
2046 event->sourceid = ti->sourceid; in GetDixTouchEnd()
2047 event->type = ET_TouchEnd; in GetDixTouchEnd()
2049 event->root = scr->root->drawable.id; in GetDixTouchEnd()
2054 dev->last.valuators[0] - scr->x, in GetDixTouchEnd()
2055 dev->last.valuators[1] - scr->y); in GetDixTouchEnd()
2056 event->touchid = ti->client_id; in GetDixTouchEnd()
2057 event->flags = flags; in GetDixTouchEnd()
2060 event->flags |= TOUCH_POINTER_EMULATED; in GetDixTouchEnd()
2061 event->detail.button = 1; in GetDixTouchEnd()
2082 x += screenInfo.screens[0]->x - screenInfo.screens[screen]->x; in PostSyntheticMotion()
2083 y += screenInfo.screens[0]->y - screenInfo.screens[screen]->y; in PostSyntheticMotion()
2095 (*pDev->public.processInputProc) ((InternalEvent *) &ev, pDev); in PostSyntheticMotion()