Merge remote-tracking branch 'whot/for-keith'
This commit is contained in:
		
						commit
						a22486f848
					
				
							
								
								
									
										72
									
								
								Xi/chgdctl.c
								
								
								
								
							
							
						
						
									
										72
									
								
								Xi/chgdctl.c
								
								
								
								
							|  | @ -76,8 +76,6 @@ SProcXChangeDeviceControl(ClientPtr client) | |||
| { | ||||
|     char n; | ||||
|     xDeviceCtl *ctl; | ||||
|     xDeviceAbsCalibCtl *calib; | ||||
|     xDeviceAbsAreaCtl *area; | ||||
| 
 | ||||
|     REQUEST(xChangeDeviceControlReq); | ||||
|     swaps(&stuff->length, n); | ||||
|  | @ -88,26 +86,7 @@ SProcXChangeDeviceControl(ClientPtr client) | |||
|     swaps(&ctl->length, n); | ||||
|     switch(stuff->control) { | ||||
|         case DEVICE_ABS_CALIB: | ||||
|             calib = (xDeviceAbsCalibCtl*)ctl; | ||||
|             swaps(&calib->length, n); | ||||
|             swapl(&calib->min_x, n); | ||||
|             swapl(&calib->max_x, n); | ||||
|             swapl(&calib->min_y, n); | ||||
|             swapl(&calib->max_y, n); | ||||
|             swapl(&calib->flip_x, n); | ||||
|             swapl(&calib->flip_y, n); | ||||
|             swapl(&calib->rotation, n); | ||||
|             swapl(&calib->button_threshold, n); | ||||
|             break; | ||||
|         case DEVICE_ABS_AREA: | ||||
|             area = (xDeviceAbsAreaCtl*)ctl; | ||||
|             swapl(&area->offset_x, n); | ||||
|             swapl(&area->offset_y, n); | ||||
|             swapl(&area->width, n); | ||||
|             swapl(&area->height, n); | ||||
|             swapl(&area->screen, n); | ||||
|             swapl(&area->following, n); | ||||
|             break; | ||||
|         case DEVICE_CORE: | ||||
|         case DEVICE_ENABLE: | ||||
|         case DEVICE_RESOLUTION: | ||||
|  | @ -134,8 +113,6 @@ ProcXChangeDeviceControl(ClientPtr client) | |||
|     xChangeDeviceControlReply rep; | ||||
|     AxisInfoPtr a; | ||||
|     CARD32 *resolution; | ||||
|     xDeviceAbsCalibCtl *calib; | ||||
|     xDeviceAbsAreaCtl *area; | ||||
|     xDeviceEnableCtl *e; | ||||
|     devicePresenceNotify dpn; | ||||
| 
 | ||||
|  | @ -193,53 +170,10 @@ ProcXChangeDeviceControl(ClientPtr client) | |||
| 	} | ||||
| 	break; | ||||
|     case DEVICE_ABS_CALIB: | ||||
|         calib = (xDeviceAbsCalibCtl *)&stuff[1]; | ||||
| 
 | ||||
|         if (calib->button_threshold < 0 || calib->button_threshold > 255) { | ||||
|             ret = BadValue; | ||||
|             goto out; | ||||
|         } | ||||
| 
 | ||||
|         status = ChangeDeviceControl(client, dev, (xDeviceCtl *) calib); | ||||
| 
 | ||||
|         if (status == Success) { | ||||
|             dev->absolute->min_x = calib->min_x; | ||||
|             dev->absolute->max_x = calib->max_x; | ||||
|             dev->absolute->min_y = calib->min_y; | ||||
|             dev->absolute->max_y = calib->max_y; | ||||
|             dev->absolute->flip_x = calib->flip_x; | ||||
|             dev->absolute->flip_y = calib->flip_y; | ||||
|             dev->absolute->rotation = calib->rotation; | ||||
|             dev->absolute->button_threshold = calib->button_threshold; | ||||
|             ret = Success; | ||||
|         } else if (status == DeviceBusy || status == BadValue) { | ||||
|             rep.status = status; | ||||
|             ret = Success; | ||||
|         } else { | ||||
|             ret = BadMatch; | ||||
|         } | ||||
| 
 | ||||
|         break; | ||||
|     case DEVICE_ABS_AREA: | ||||
|         area = (xDeviceAbsAreaCtl *)&stuff[1]; | ||||
| 
 | ||||
|         status = ChangeDeviceControl(client, dev, (xDeviceCtl *) area); | ||||
| 
 | ||||
|         if (status == Success) { | ||||
|             dev->absolute->offset_x = area->offset_x; | ||||
|             dev->absolute->offset_y = area->offset_y; | ||||
|             dev->absolute->width = area->width; | ||||
|             dev->absolute->height = area->height; | ||||
|             dev->absolute->screen = area->screen; | ||||
|             dev->absolute->following = area->following; | ||||
|             ret = Success; | ||||
|         } else if (status == DeviceBusy || status == BadValue) { | ||||
|             rep.status = status; | ||||
|             ret = Success; | ||||
|         } else { | ||||
|             ret = Success; | ||||
|         } | ||||
| 
 | ||||
|         /* Calibration is now done through properties, and never had any effect
 | ||||
|          * on anything (in the open-source world). Thus, be honest. */ | ||||
|         ret = BadMatch; | ||||
|         break; | ||||
|     case DEVICE_CORE: | ||||
|         /* Sorry, no device core switching no more. If you want a device to
 | ||||
|  |  | |||
|  | @ -626,30 +626,6 @@ DeepCopyPointerClasses(DeviceIntPtr from, DeviceIntPtr to) | |||
|         classes->proximity = to->proximity; | ||||
|         to->proximity      = NULL; | ||||
|     } | ||||
| 
 | ||||
|     if (from->absolute) | ||||
|     { | ||||
|         if (!to->absolute) | ||||
|         { | ||||
|             classes = to->unused_classes; | ||||
|             to->absolute = classes->absolute; | ||||
|             if (!to->absolute) | ||||
|             { | ||||
|                 to->absolute = calloc(1, sizeof(AbsoluteClassRec)); | ||||
|                 if (!to->absolute) | ||||
|                     FatalError("[Xi] no memory for class shift.\n"); | ||||
|             } else | ||||
|                 classes->absolute = NULL; | ||||
|         } | ||||
|         memcpy(to->absolute, from->absolute, sizeof(AbsoluteClassRec)); | ||||
|         to->absolute->sourceid = from->id; | ||||
|     } else if (to->absolute) | ||||
|     { | ||||
|         ClassesPtr classes; | ||||
|         classes = to->unused_classes; | ||||
|         classes->absolute = to->absolute; | ||||
|         to->absolute      = NULL; | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| /**
 | ||||
|  |  | |||
							
								
								
									
										73
									
								
								Xi/getdctl.c
								
								
								
								
							
							
						
						
									
										73
									
								
								Xi/getdctl.c
								
								
								
								
							|  | @ -118,64 +118,6 @@ CopySwapDeviceResolution(ClientPtr client, ValuatorClassPtr v, char *buf, | |||
|     } | ||||
| } | ||||
| 
 | ||||
| static void CopySwapDeviceAbsCalib (ClientPtr client, AbsoluteClassPtr dts, | ||||
|                                 char *buf) | ||||
| { | ||||
|     char n; | ||||
|     xDeviceAbsCalibState *calib = (xDeviceAbsCalibState *) buf; | ||||
| 
 | ||||
|     calib->control = DEVICE_ABS_CALIB; | ||||
|     calib->length = sizeof(xDeviceAbsCalibState); | ||||
|     calib->min_x = dts->min_x; | ||||
|     calib->max_x = dts->max_x; | ||||
|     calib->min_y = dts->min_y; | ||||
|     calib->max_y = dts->max_y; | ||||
|     calib->flip_x = dts->flip_x; | ||||
|     calib->flip_y = dts->flip_y; | ||||
|     calib->rotation = dts->rotation; | ||||
|     calib->button_threshold = dts->button_threshold; | ||||
| 
 | ||||
|     if (client->swapped) { | ||||
|         swaps(&calib->control, n); | ||||
|         swaps(&calib->length, n); | ||||
|         swapl(&calib->min_x, n); | ||||
|         swapl(&calib->max_x, n); | ||||
|         swapl(&calib->min_y, n); | ||||
|         swapl(&calib->max_y, n); | ||||
|         swapl(&calib->flip_x, n); | ||||
|         swapl(&calib->flip_y, n); | ||||
|         swapl(&calib->rotation, n); | ||||
|         swapl(&calib->button_threshold, n); | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| static void CopySwapDeviceAbsArea (ClientPtr client, AbsoluteClassPtr dts, | ||||
|                                 char *buf) | ||||
| { | ||||
|     char n; | ||||
|     xDeviceAbsAreaState *area = (xDeviceAbsAreaState *) buf; | ||||
| 
 | ||||
|     area->control = DEVICE_ABS_AREA; | ||||
|     area->length = sizeof(xDeviceAbsAreaState); | ||||
|     area->offset_x = dts->offset_x; | ||||
|     area->offset_y = dts->offset_y; | ||||
|     area->width = dts->width; | ||||
|     area->height = dts->height; | ||||
|     area->screen = dts->screen; | ||||
|     area->following = dts->following; | ||||
| 
 | ||||
|     if (client->swapped) { | ||||
|         swaps(&area->control, n); | ||||
|         swaps(&area->length, n); | ||||
|         swapl(&area->offset_x, n); | ||||
|         swapl(&area->offset_y, n); | ||||
|         swapl(&area->width, n); | ||||
|         swapl(&area->height, n); | ||||
|         swapl(&area->screen, n); | ||||
|         swapl(&area->following, n); | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| static void CopySwapDeviceCore (ClientPtr client, DeviceIntPtr dev, char *buf) | ||||
| { | ||||
|     char n; | ||||
|  | @ -260,17 +202,8 @@ ProcXGetDeviceControl(ClientPtr client) | |||
| 	    (3 * sizeof(int) * dev->valuator->numAxes); | ||||
| 	break; | ||||
|     case DEVICE_ABS_CALIB: | ||||
|         if (!dev->absolute) | ||||
| 	    return BadMatch; | ||||
| 
 | ||||
|         total_length = sizeof(xDeviceAbsCalibState); | ||||
|         break; | ||||
|     case DEVICE_ABS_AREA: | ||||
|         if (!dev->absolute) | ||||
|         return BadMatch; | ||||
| 
 | ||||
|         total_length = sizeof(xDeviceAbsAreaState); | ||||
|         break; | ||||
|     case DEVICE_CORE: | ||||
|         total_length = sizeof(xDeviceCoreState); | ||||
|         break; | ||||
|  | @ -290,12 +223,6 @@ ProcXGetDeviceControl(ClientPtr client) | |||
|     case DEVICE_RESOLUTION: | ||||
| 	CopySwapDeviceResolution(client, dev->valuator, buf, total_length); | ||||
| 	break; | ||||
|     case DEVICE_ABS_CALIB: | ||||
|         CopySwapDeviceAbsCalib(client, dev->absolute, buf); | ||||
|         break; | ||||
|     case DEVICE_ABS_AREA: | ||||
|         CopySwapDeviceAbsArea(client, dev->absolute, buf); | ||||
|         break; | ||||
|     case DEVICE_CORE: | ||||
|         CopySwapDeviceCore(client, dev, buf); | ||||
|         break; | ||||
|  |  | |||
							
								
								
									
										10
									
								
								Xi/stubs.c
								
								
								
								
							
							
						
						
									
										10
									
								
								Xi/stubs.c
								
								
								
								
							|  | @ -115,17 +115,7 @@ int | |||
| ChangeDeviceControl(ClientPtr client, DeviceIntPtr dev, | ||||
| 		    xDeviceCtl * control) | ||||
| { | ||||
|     switch (control->control) { | ||||
|     case DEVICE_RESOLUTION: | ||||
|     return BadMatch; | ||||
|     case DEVICE_ABS_CALIB: | ||||
|     case DEVICE_ABS_AREA: | ||||
|         return BadMatch; | ||||
|     case DEVICE_CORE: | ||||
|         return BadMatch; | ||||
|     default: | ||||
| 	return BadMatch; | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -255,6 +255,10 @@ wakeup_handler(pointer data, int err, pointer read_mask) | |||
|                 device_added(udev_device); | ||||
|             else if (!strcmp(action, "remove")) | ||||
|                 device_removed(udev_device); | ||||
|             else if (!strcmp(action, "change")) { | ||||
|                 device_removed(udev_device); | ||||
|                 device_added(udev_device); | ||||
|             } | ||||
|         } | ||||
|         udev_device_unref(udev_device); | ||||
|     } | ||||
|  |  | |||
|  | @ -1336,34 +1336,10 @@ InitPointerAccelerationScheme(DeviceIntPtr dev, | |||
| Bool | ||||
| InitAbsoluteClassDeviceStruct(DeviceIntPtr dev) | ||||
| { | ||||
|     AbsoluteClassPtr abs; | ||||
| 
 | ||||
|     abs = malloc(sizeof(AbsoluteClassRec)); | ||||
|     if (!abs) | ||||
|     /* This is an API-preserving noop. Instructions: Kill when no more drivers
 | ||||
|      * call it. The infrastructure behind hasn't really been used, so any calls | ||||
|      * are likely just a declaration that the device is absolute. */ | ||||
|     return FALSE; | ||||
| 
 | ||||
|     /* we don't do anything sensible with these, but should */ | ||||
|     abs->min_x = NO_AXIS_LIMITS; | ||||
|     abs->min_y = NO_AXIS_LIMITS; | ||||
|     abs->max_x = NO_AXIS_LIMITS; | ||||
|     abs->max_y = NO_AXIS_LIMITS; | ||||
|     abs->flip_x = 0; | ||||
|     abs->flip_y = 0; | ||||
|     abs->rotation = 0; | ||||
|     abs->button_threshold = 0; | ||||
| 
 | ||||
|     abs->offset_x = 0; | ||||
|     abs->offset_y = 0; | ||||
|     abs->width = NO_AXIS_LIMITS; | ||||
|     abs->height = NO_AXIS_LIMITS; | ||||
|     abs->following = 0; | ||||
|     abs->screen = 0; | ||||
| 
 | ||||
|     abs->sourceid = dev->id; | ||||
| 
 | ||||
|     dev->absolute = abs; | ||||
| 
 | ||||
|     return TRUE; | ||||
| } | ||||
| 
 | ||||
| Bool | ||||
|  |  | |||
|  | @ -477,7 +477,6 @@ KdPointerProc(DeviceIntPtr pDevice, int onoff) | |||
|         free(axes_labels); | ||||
| 
 | ||||
|         if (pi->inputClass == KD_TOUCHSCREEN) { | ||||
|             InitAbsoluteClassDeviceStruct(pDevice); | ||||
|             xiclass = AtomFromName(XI_TOUCHSCREEN); | ||||
|         } | ||||
|         else { | ||||
|  | @ -2204,8 +2203,6 @@ ChangeDeviceControl(register ClientPtr client, DeviceIntPtr pDev, | |||
| 
 | ||||
|     case DEVICE_ABS_CALIB: | ||||
|     case DEVICE_ABS_AREA: | ||||
|         return Success; | ||||
| 
 | ||||
|     case DEVICE_CORE: | ||||
|         return BadMatch; | ||||
|     case DEVICE_ENABLE: | ||||
|  |  | |||
|  | @ -405,10 +405,10 @@ ChangeDeviceControl (ClientPtr client, DeviceIntPtr dev, xDeviceCtl *control) | |||
|   if (!pInfo->control_proc) { | ||||
|       switch (control->control) { | ||||
|       case DEVICE_CORE: | ||||
|           return BadMatch; | ||||
|       case DEVICE_RESOLUTION: | ||||
|       case DEVICE_ABS_CALIB: | ||||
|       case DEVICE_ABS_AREA: | ||||
|           return BadMatch; | ||||
|       case DEVICE_RESOLUTION: | ||||
|       case DEVICE_ENABLE: | ||||
|         return Success; | ||||
|       default: | ||||
|  | @ -775,6 +775,8 @@ xf86NewInputDevice(InputInfoPtr pInfo, DeviceIntPtr *pdev, BOOL enable) | |||
|         goto unwind; | ||||
|     } | ||||
| 
 | ||||
|     xf86Msg(X_INFO, "Using input driver '%s' for '%s'\n", drv->driverName, pInfo->name); | ||||
| 
 | ||||
|     if (!drv->PreInit) { | ||||
|         xf86Msg(X_ERROR, | ||||
|                 "Input driver `%s' has no PreInit function (ignoring)\n", | ||||
|  |  | |||
|  | @ -314,7 +314,6 @@ static int DarwinMouseProc(DeviceIntPtr pPointer, int what) { | |||
|                                     (PtrCtrlProcPtr)NoopDDA, | ||||
|                                     GetMotionHistorySize(), NAXES, | ||||
|                                     axes_labels); | ||||
|             InitAbsoluteClassDeviceStruct(pPointer); | ||||
| //            InitValuatorAxisStruct(pPointer, 0, 0, XQUARTZ_VALUATOR_LIMIT, 1, 0, 1, Absolute);
 | ||||
| //            InitValuatorAxisStruct(pPointer, 1, 0, XQUARTZ_VALUATOR_LIMIT, 1, 0, 1, Absolute);
 | ||||
|             break; | ||||
|  | @ -362,7 +361,6 @@ static int DarwinTabletProc(DeviceIntPtr pPointer, int what) { | |||
|                                     GetMotionHistorySize(), NAXES, | ||||
|                                     axes_labels); | ||||
|             InitProximityClassDeviceStruct(pPointer); | ||||
| 			InitAbsoluteClassDeviceStruct(pPointer); | ||||
| 
 | ||||
|             InitValuatorAxisStruct(pPointer, 0, axes_labels[0], 0, XQUARTZ_VALUATOR_LIMIT, 1, 0, 1, Absolute); | ||||
|             InitValuatorAxisStruct(pPointer, 1, axes_labels[1], 0, XQUARTZ_VALUATOR_LIMIT, 1, 0, 1, Absolute); | ||||
|  |  | |||
|  | @ -117,17 +117,7 @@ ChangeDeviceControl(ClientPtr client, DeviceIntPtr dev, | |||
| { | ||||
| 
 | ||||
|   DEBUG_LOG("ChangeDeviceControl(%p, %p, %p)\n", client, dev, control); | ||||
|     switch (control->control) { | ||||
|     case DEVICE_RESOLUTION: | ||||
|   return BadMatch; | ||||
|     case DEVICE_ABS_CALIB: | ||||
|     case DEVICE_ABS_AREA: | ||||
|         return BadMatch; | ||||
|     case DEVICE_CORE: | ||||
|         return BadMatch; | ||||
|     default: | ||||
| 	return BadMatch; | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -311,7 +311,10 @@ extern _X_EXPORT Bool InitPointerAccelerationScheme( | |||
|     DeviceIntPtr /*dev*/, | ||||
|     int /*scheme*/); | ||||
| 
 | ||||
| extern _X_EXPORT Bool InitAbsoluteClassDeviceStruct( | ||||
| /**
 | ||||
|  * This is not implemented and just returns FALSE. | ||||
|  */ | ||||
| extern _X_EXPORT _X_DEPRECATED Bool InitAbsoluteClassDeviceStruct( | ||||
|     DeviceIntPtr /*device*/); | ||||
| 
 | ||||
| extern _X_EXPORT Bool InitFocusClassDeviceStruct( | ||||
|  |  | |||
|  | @ -317,27 +317,6 @@ typedef struct _ProximityClassRec { | |||
|     char	in_proximity; | ||||
| } ProximityClassRec, *ProximityClassPtr; | ||||
| 
 | ||||
| typedef struct _AbsoluteClassRec { | ||||
|     int         sourceid; | ||||
|     /* Calibration. */ | ||||
|     int         min_x; | ||||
|     int         max_x; | ||||
|     int         min_y; | ||||
|     int         max_y; | ||||
|     int         flip_x; | ||||
|     int         flip_y; | ||||
|     int		rotation; | ||||
|     int         button_threshold; | ||||
| 
 | ||||
|     /* Area. */ | ||||
|     int         offset_x; | ||||
|     int         offset_y; | ||||
|     int         width; | ||||
|     int         height; | ||||
|     int         screen; | ||||
|     XID		following; | ||||
| } AbsoluteClassRec, *AbsoluteClassPtr; | ||||
| 
 | ||||
| typedef struct _KbdFeedbackClassRec *KbdFeedbackPtr; | ||||
| typedef struct _PtrFeedbackClassRec *PtrFeedbackPtr; | ||||
| typedef struct _IntegerFeedbackClassRec *IntegerFeedbackPtr; | ||||
|  | @ -392,7 +371,7 @@ typedef struct _ClassesRec { | |||
|     ButtonClassPtr	button; | ||||
|     FocusClassPtr	focus; | ||||
|     ProximityClassPtr	proximity; | ||||
|     AbsoluteClassPtr    absolute; | ||||
|     void*               _pad0; /* keep ABI during AbsoluteClass removal */ | ||||
|     KbdFeedbackPtr	kbdfeed; | ||||
|     PtrFeedbackPtr	ptrfeed; | ||||
|     IntegerFeedbackPtr	intfeed; | ||||
|  | @ -517,7 +496,7 @@ typedef struct _DeviceIntRec { | |||
|     ButtonClassPtr	button; | ||||
|     FocusClassPtr	focus; | ||||
|     ProximityClassPtr	proximity; | ||||
|     AbsoluteClassPtr    absolute; | ||||
|     void*               _pad0;          /* keep ABI, was pointer to abs class */ | ||||
|     KbdFeedbackPtr	kbdfeed; | ||||
|     PtrFeedbackPtr	ptrfeed; | ||||
|     IntegerFeedbackPtr	intfeed; | ||||
|  |  | |||
|  | @ -2,10 +2,10 @@ if ENABLE_UNIT_TESTS | |||
| if HAVE_GLIB | ||||
| if HAVE_LD_WRAP | ||||
| SUBDIRS= . xi2 | ||||
| check_PROGRAMS = xkb input xtest list | ||||
| noinst_PROGRAMS = xkb input xtest list | ||||
| check_LTLIBRARIES = libxservertest.la | ||||
| 
 | ||||
| TESTS=$(check_PROGRAMS) | ||||
| TESTS=$(noinst_PROGRAMS) | ||||
| 
 | ||||
| AM_CFLAGS = $(DIX_CFLAGS) $(GLIB_CFLAGS) @XORG_CFLAGS@ | ||||
| INCLUDES = @XORG_INCS@ | ||||
|  |  | |||
|  | @ -1,7 +1,7 @@ | |||
| if ENABLE_UNIT_TESTS | ||||
| if HAVE_GLIB | ||||
| if HAVE_LD_WRAP | ||||
| check_PROGRAMS =  \
 | ||||
| noinst_PROGRAMS =  \
 | ||||
| 	protocol-xiqueryversion \
 | ||||
| 	protocol-xiquerydevice \
 | ||||
| 	protocol-xiselectevents \
 | ||||
|  | @ -12,7 +12,7 @@ check_PROGRAMS =  \ | |||
|         protocol-xiwarppointer \
 | ||||
|         protocol-eventconvert | ||||
| 
 | ||||
| TESTS=$(check_PROGRAMS) | ||||
| TESTS=$(noinst_PROGRAMS) | ||||
| 
 | ||||
| AM_CFLAGS = $(DIX_CFLAGS) $(GLIB_CFLAGS) @XORG_CFLAGS@ | ||||
| INCLUDES = @XORG_INCS@ | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue