Add initial Xinput support for XDarwin (Greg Parker).
This commit is contained in:
		
							parent
							
								
									41641c11ec
								
							
						
					
					
						commit
						d380647739
					
				| 
						 | 
					@ -29,7 +29,7 @@
 | 
				
			||||||
 * holders shall not be used in advertising or otherwise to promote the sale,
 | 
					 * holders shall not be used in advertising or otherwise to promote the sale,
 | 
				
			||||||
 * use or other dealings in this Software without prior written authorization.
 | 
					 * use or other dealings in this Software without prior written authorization.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
/* $XdotOrg: xc/programs/Xserver/hw/darwin/darwin.c,v 1.1.4.2.4.1.6.3 2004/04/20 03:27:08 gisburn Exp $ */
 | 
					/* $XdotOrg: xc/programs/Xserver/hw/darwin/darwin.c,v 1.2 2004/04/23 19:06:15 eich Exp $ */
 | 
				
			||||||
/* $XFree86: xc/programs/Xserver/hw/darwin/darwin.c,v 1.55 2003/11/15 00:07:09 torrey Exp $ */
 | 
					/* $XFree86: xc/programs/Xserver/hw/darwin/darwin.c,v 1.55 2003/11/15 00:07:09 torrey Exp $ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "X.h"
 | 
					#include "X.h"
 | 
				
			||||||
| 
						 | 
					@ -48,6 +48,13 @@
 | 
				
			||||||
#include "xf86Date.h"
 | 
					#include "xf86Date.h"
 | 
				
			||||||
#include "dix.h"
 | 
					#include "dix.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef XINPUT
 | 
				
			||||||
 | 
					# include "XI.h"
 | 
				
			||||||
 | 
					# include "XIproto.h"
 | 
				
			||||||
 | 
					# include "exevents.h"
 | 
				
			||||||
 | 
					# include "extinit.h"
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <sys/types.h>
 | 
					#include <sys/types.h>
 | 
				
			||||||
#include <sys/time.h>
 | 
					#include <sys/time.h>
 | 
				
			||||||
#include <sys/syslimits.h>
 | 
					#include <sys/syslimits.h>
 | 
				
			||||||
| 
						 | 
					@ -404,6 +411,22 @@ static int DarwinMouseProc(
 | 
				
			||||||
                        miPointerGetMotionEvents,
 | 
					                        miPointerGetMotionEvents,
 | 
				
			||||||
                        DarwinChangePointerControl,
 | 
					                        DarwinChangePointerControl,
 | 
				
			||||||
                        0 );
 | 
					                        0 );
 | 
				
			||||||
 | 
					#ifdef XINPUT
 | 
				
			||||||
 | 
					            InitValuatorAxisStruct( pPointer,
 | 
				
			||||||
 | 
					                                    0,     // X axis
 | 
				
			||||||
 | 
					                                    0,     // min value
 | 
				
			||||||
 | 
					                                    16000, // max value (fixme screen size?)
 | 
				
			||||||
 | 
					                                    1,     // resolution (fixme ?)
 | 
				
			||||||
 | 
					                                    1,     // min resolution
 | 
				
			||||||
 | 
					                                    1 );   // max resolution
 | 
				
			||||||
 | 
					            InitValuatorAxisStruct( pPointer,
 | 
				
			||||||
 | 
					                                    1,     // X axis
 | 
				
			||||||
 | 
					                                    0,     // min value
 | 
				
			||||||
 | 
					                                    16000, // max value (fixme screen size?)
 | 
				
			||||||
 | 
					                                    1,     // resolution (fixme ?)
 | 
				
			||||||
 | 
					                                    1,     // min resolution
 | 
				
			||||||
 | 
					                                    1 );   // max resolution
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
            break;
 | 
					            break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        case DEVICE_ON:
 | 
					        case DEVICE_ON:
 | 
				
			||||||
| 
						 | 
					@ -697,13 +720,18 @@ void OsVendorInit(void)
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* ddxInitGlobals - called by |InitGlobals| from os/util.c */
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * ddxInitGlobals
 | 
				
			||||||
 | 
					 *  Called by InitGlobals() from os/util.c.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
void ddxInitGlobals(void)
 | 
					void ddxInitGlobals(void)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
 * ddxProcessArgument --
 | 
					 * ddxProcessArgument
 | 
				
			||||||
 *  Process device-dependent command line args. Returns 0 if argument is
 | 
					 *  Process device-dependent command line args. Returns 0 if argument is
 | 
				
			||||||
 *  not device dependent, otherwise Count of number of elements of argv
 | 
					 *  not device dependent, otherwise Count of number of elements of argv
 | 
				
			||||||
 *  that are part of a device dependent commandline option.
 | 
					 *  that are part of a device dependent commandline option.
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,310 @@
 | 
				
			||||||
 | 
					/* $Xorg: stubs.c,v 1.4 2001/02/09 02:04:35 xorgcvs Exp $ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * X server support of the XINPUT extension for Darwin
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This is currently a copy of mi/stubs.c, but eventually this
 | 
				
			||||||
 | 
					 * should include more complete XINPUT support.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/************************************************************
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Copyright 1989, 1998  The Open Group
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Permission to use, copy, modify, distribute, and sell this software and its
 | 
				
			||||||
 | 
					documentation for any purpose is hereby granted without fee, provided that
 | 
				
			||||||
 | 
					the above copyright notice appear in all copies and that both that
 | 
				
			||||||
 | 
					copyright notice and this permission notice appear in supporting
 | 
				
			||||||
 | 
					documentation.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The above copyright notice and this permission notice shall be included in
 | 
				
			||||||
 | 
					all copies or substantial portions of the Software.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 | 
				
			||||||
 | 
					IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 | 
				
			||||||
 | 
					FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
 | 
				
			||||||
 | 
					OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
 | 
				
			||||||
 | 
					AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
 | 
				
			||||||
 | 
					CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Except as contained in this notice, the name of The Open Group shall not be
 | 
				
			||||||
 | 
					used in advertising or otherwise to promote the sale, use or other dealings
 | 
				
			||||||
 | 
					in this Software without prior written authorization from The Open Group.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Copyright 1989 by Hewlett-Packard Company, Palo Alto, California.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								All Rights Reserved
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Permission to use, copy, modify, and distribute this software and its
 | 
				
			||||||
 | 
					documentation for any purpose and without fee is hereby granted,
 | 
				
			||||||
 | 
					provided that the above copyright notice appear in all copies and that
 | 
				
			||||||
 | 
					both that copyright notice and this permission notice appear in
 | 
				
			||||||
 | 
					supporting documentation, and that the name of Hewlett-Packard not be
 | 
				
			||||||
 | 
					used in advertising or publicity pertaining to distribution of the
 | 
				
			||||||
 | 
					software without specific, written prior permission.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					HEWLETT-PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
 | 
				
			||||||
 | 
					ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
 | 
				
			||||||
 | 
					HEWLETT-PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
 | 
				
			||||||
 | 
					ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
 | 
				
			||||||
 | 
					WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
 | 
				
			||||||
 | 
					ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
 | 
				
			||||||
 | 
					SOFTWARE.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					********************************************************/
 | 
				
			||||||
 | 
					/* $XFree86: xc/programs/Xserver/hw/darwin/darwinXinput.c,v 1.1 2004/05/28 07:44:00 torrey Exp $ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	 NEED_EVENTS
 | 
				
			||||||
 | 
					#include "X.h"
 | 
				
			||||||
 | 
					#include "Xproto.h"
 | 
				
			||||||
 | 
					#include "inputstr.h"
 | 
				
			||||||
 | 
					#include "XI.h"
 | 
				
			||||||
 | 
					#include "XIproto.h"
 | 
				
			||||||
 | 
					#include "XIstubs.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/***********************************************************************
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Caller:	ProcXChangeKeyboardDevice
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This procedure does the implementation-dependent portion of the work
 | 
				
			||||||
 | 
					 * needed to change the keyboard device.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * The X keyboard device has a FocusRec.  If the device that has been 
 | 
				
			||||||
 | 
					 * made into the new X keyboard did not have a FocusRec, 
 | 
				
			||||||
 | 
					 * ProcXChangeKeyboardDevice will allocate one for it.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * If you do not want clients to be able to focus the old X keyboard
 | 
				
			||||||
 | 
					 * device, call DeleteFocusClassDeviceStruct to free the FocusRec.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * If you support input devices with keys that you do not want to be 
 | 
				
			||||||
 | 
					 * used as the X keyboard, you need to check for them here and return 
 | 
				
			||||||
 | 
					 * a BadDevice error.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * The default implementation is to do nothing (assume you do want
 | 
				
			||||||
 | 
					 * clients to be able to focus the old X keyboard).  The commented-out
 | 
				
			||||||
 | 
					 * sample code shows what you might do if you don't want the default.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int
 | 
				
			||||||
 | 
					ChangeKeyboardDevice (old_dev, new_dev)
 | 
				
			||||||
 | 
					    DeviceIntPtr	old_dev;
 | 
				
			||||||
 | 
					    DeviceIntPtr	new_dev;
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					    /***********************************************************************
 | 
				
			||||||
 | 
					     DeleteFocusClassDeviceStruct(old_dev);	 * defined in xchgptr.c *
 | 
				
			||||||
 | 
					    **********************************************************************/
 | 
				
			||||||
 | 
					    return BadMatch;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/***********************************************************************
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Caller:	ProcXChangePointerDevice
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This procedure does the implementation-dependent portion of the work
 | 
				
			||||||
 | 
					 * needed to change the pointer device.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * The X pointer device does not have a FocusRec.  If the device that
 | 
				
			||||||
 | 
					 * has been made into the new X pointer had a FocusRec, 
 | 
				
			||||||
 | 
					 * ProcXChangePointerDevice will free it.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * If you want clients to be able to focus the old pointer device that
 | 
				
			||||||
 | 
					 * has now become accessible through the input extension, you need to 
 | 
				
			||||||
 | 
					 * add a FocusRec to it here.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * The XChangePointerDevice protocol request also allows the client
 | 
				
			||||||
 | 
					 * to choose which axes of the new pointer device are used to move 
 | 
				
			||||||
 | 
					 * the X cursor in the X- and Y- directions.  If the axes are different
 | 
				
			||||||
 | 
					 * than the default ones, you need to keep track of that here.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * If you support input devices with valuators that you do not want to be 
 | 
				
			||||||
 | 
					 * used as the X pointer, you need to check for them here and return a 
 | 
				
			||||||
 | 
					 * BadDevice error.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * The default implementation is to do nothing (assume you don't want
 | 
				
			||||||
 | 
					 * clients to be able to focus the old X pointer).  The commented-out
 | 
				
			||||||
 | 
					 * sample code shows what you might do if you don't want the default.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int
 | 
				
			||||||
 | 
					ChangePointerDevice (
 | 
				
			||||||
 | 
					    DeviceIntPtr	old_dev,
 | 
				
			||||||
 | 
					    DeviceIntPtr	new_dev,
 | 
				
			||||||
 | 
					    unsigned char	x,
 | 
				
			||||||
 | 
					    unsigned char	y)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					    /***********************************************************************
 | 
				
			||||||
 | 
					    InitFocusClassDeviceStruct(old_dev);	* allow focusing old ptr*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    x_axis = x;					* keep track of new x-axis*
 | 
				
			||||||
 | 
					    y_axis = y;					* keep track of new y-axis*
 | 
				
			||||||
 | 
					    if (x_axis != 0 || y_axis != 1)
 | 
				
			||||||
 | 
						axes_changed = TRUE;			* remember axes have changed*
 | 
				
			||||||
 | 
					    else
 | 
				
			||||||
 | 
						axes_changed = FALSE;
 | 
				
			||||||
 | 
					    *************************************************************************/
 | 
				
			||||||
 | 
					    return BadMatch;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/***********************************************************************
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Caller:	ProcXCloseDevice
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Take care of implementation-dependent details of closing a device.
 | 
				
			||||||
 | 
					 * Some implementations may actually close the device, others may just
 | 
				
			||||||
 | 
					 * remove this clients interest in that device.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * The default implementation is to do nothing (assume all input devices
 | 
				
			||||||
 | 
					 * are initialized during X server initialization and kept open).
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void
 | 
				
			||||||
 | 
					CloseInputDevice (d, client)
 | 
				
			||||||
 | 
					    DeviceIntPtr d;
 | 
				
			||||||
 | 
					    ClientPtr client;
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/***********************************************************************
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Caller:	ProcXListInputDevices
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This is the implementation-dependent routine to initialize an input 
 | 
				
			||||||
 | 
					 * device to the point that information about it can be listed.
 | 
				
			||||||
 | 
					 * Some implementations open all input devices when the server is first
 | 
				
			||||||
 | 
					 * initialized, and never close them.  Other implementations open only
 | 
				
			||||||
 | 
					 * the X pointer and keyboard devices during server initialization,
 | 
				
			||||||
 | 
					 * and only open other input devices when some client makes an
 | 
				
			||||||
 | 
					 * XOpenDevice request.  If some other process has the device open, the
 | 
				
			||||||
 | 
					 * server may not be able to get information about the device to list it.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This procedure should be used by implementations that do not initialize
 | 
				
			||||||
 | 
					 * all input devices at server startup.  It should do device-dependent
 | 
				
			||||||
 | 
					 * initialization for any devices not previously initialized, and call
 | 
				
			||||||
 | 
					 * AddInputDevice for each of those devices so that a DeviceIntRec will be 
 | 
				
			||||||
 | 
					 * created for them.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * The default implementation is to do nothing (assume all input devices
 | 
				
			||||||
 | 
					 * are initialized during X server initialization and kept open).
 | 
				
			||||||
 | 
					 * The commented-out sample code shows what you might do if you don't want 
 | 
				
			||||||
 | 
					 * the default.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void
 | 
				
			||||||
 | 
					AddOtherInputDevices ()
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					    /**********************************************************************
 | 
				
			||||||
 | 
					     for each uninitialized device, do something like: 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    DeviceIntPtr dev;
 | 
				
			||||||
 | 
					    DeviceProc deviceProc;
 | 
				
			||||||
 | 
					    pointer private;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    dev = (DeviceIntPtr) AddInputDevice(deviceProc, TRUE);
 | 
				
			||||||
 | 
					    dev->public.devicePrivate = private;
 | 
				
			||||||
 | 
					    RegisterOtherDevice(dev);
 | 
				
			||||||
 | 
					    dev->inited = ((*dev->deviceProc)(dev, DEVICE_INIT) == Success);
 | 
				
			||||||
 | 
					    ************************************************************************/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/***********************************************************************
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Caller:	ProcXOpenDevice
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This is the implementation-dependent routine to open an input device.
 | 
				
			||||||
 | 
					 * Some implementations open all input devices when the server is first
 | 
				
			||||||
 | 
					 * initialized, and never close them.  Other implementations open only
 | 
				
			||||||
 | 
					 * the X pointer and keyboard devices during server initialization,
 | 
				
			||||||
 | 
					 * and only open other input devices when some client makes an
 | 
				
			||||||
 | 
					 * XOpenDevice request.  This entry point is for the latter type of 
 | 
				
			||||||
 | 
					 * implementation.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * If the physical device is not already open, do it here.  In this case,
 | 
				
			||||||
 | 
					 * you need to keep track of the fact that one or more clients has the
 | 
				
			||||||
 | 
					 * device open, and physically close it when the last client that has
 | 
				
			||||||
 | 
					 * it open does an XCloseDevice.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * The default implementation is to do nothing (assume all input devices
 | 
				
			||||||
 | 
					 * are opened during X server initialization and kept open).
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void
 | 
				
			||||||
 | 
					OpenInputDevice (dev, client, status)
 | 
				
			||||||
 | 
					    DeviceIntPtr dev;
 | 
				
			||||||
 | 
					    ClientPtr client;
 | 
				
			||||||
 | 
					    int *status;
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/****************************************************************************
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Caller:	ProcXSetDeviceMode
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Change the mode of an extension device.
 | 
				
			||||||
 | 
					 * This function is used to change the mode of a device from reporting
 | 
				
			||||||
 | 
					 * relative motion to reporting absolute positional information, and
 | 
				
			||||||
 | 
					 * vice versa.
 | 
				
			||||||
 | 
					 * The default implementation below is that no such devices are supported.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int
 | 
				
			||||||
 | 
					SetDeviceMode (client, dev, mode)
 | 
				
			||||||
 | 
					    register	ClientPtr	client;
 | 
				
			||||||
 | 
					    DeviceIntPtr dev;
 | 
				
			||||||
 | 
					    int		mode;
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					    return BadMatch;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/****************************************************************************
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Caller:	ProcXSetDeviceValuators
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Set the value of valuators on an extension input device.
 | 
				
			||||||
 | 
					 * This function is used to set the initial value of valuators on
 | 
				
			||||||
 | 
					 * those input devices that are capable of reporting either relative
 | 
				
			||||||
 | 
					 * motion or an absolute position, and allow an initial position to be set.
 | 
				
			||||||
 | 
					 * The default implementation below is that no such devices are supported.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int
 | 
				
			||||||
 | 
					SetDeviceValuators (client, dev, valuators, first_valuator, num_valuators)
 | 
				
			||||||
 | 
					    register	ClientPtr	client;
 | 
				
			||||||
 | 
					    DeviceIntPtr dev;
 | 
				
			||||||
 | 
					    int		*valuators;
 | 
				
			||||||
 | 
					    int		first_valuator;
 | 
				
			||||||
 | 
					    int		num_valuators;
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					    return BadMatch;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/****************************************************************************
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Caller:	ProcXChangeDeviceControl
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Change the specified device controls on an extension input device.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int
 | 
				
			||||||
 | 
					ChangeDeviceControl (client, dev, control)
 | 
				
			||||||
 | 
					    register	ClientPtr	client;
 | 
				
			||||||
 | 
					    DeviceIntPtr dev;
 | 
				
			||||||
 | 
					    xDeviceCtl	*control;
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					    switch (control->control)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
						case DEVICE_RESOLUTION:
 | 
				
			||||||
 | 
						    return (BadMatch);
 | 
				
			||||||
 | 
						default:
 | 
				
			||||||
 | 
						    return (BadMatch);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
		Loading…
	
		Reference in New Issue