|
version 3.22, 1999/04/04 07:03:22
|
version 3.23, 1999/05/07 02:56:14
|
|
|
|
| * | * |
| */ | */ |
| | |
| /* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Xinput.h,v 3.21 1999/04/04 05:47:05 dawes Exp $ */ |
/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Xinput.h,v 3.22 1999/04/04 07:03:22 dawes Exp $ */ |
| | |
| #ifndef _xf86Xinput_h | #ifndef _xf86Xinput_h |
| #define _xf86Xinput_h | #define _xf86Xinput_h |
|
|
|
| #endif | #endif |
| #include "X.h" | #include "X.h" |
| #include "Xproto.h" | #include "Xproto.h" |
| |
#ifdef XINPUT |
| #include "inputstr.h" | #include "inputstr.h" |
| #include "XI.h" | #include "XI.h" |
| #include "XIproto.h" | #include "XIproto.h" |
| #include "XIstubs.h" | #include "XIstubs.h" |
| |
#endif |
| | |
| #define XI86_NO_OPEN_ON_INIT 1 /* open the device only when needed */ |
/* Input device flags */ |
| #define XI86_CONFIGURED 2 /* the device has been configured */ |
#define XI86_NO_OPEN_ON_INIT 0x01 /* open the device only when needed */ |
| #define XI86_ALWAYS_CORE 4 /* the device always controls the pointer */ |
#define XI86_CONFIGURED 0x02 /* the device has been configured */ |
| |
#define XI86_ALWAYS_CORE 0x04 /* device always controls the pointer */ |
| /* the device sends Xinput and core pointer events */ | /* the device sends Xinput and core pointer events */ |
| #define XI86_SEND_CORE_EVENTS 4 |
#define XI86_SEND_CORE_EVENTS XI86_ALWAYS_CORE |
| /* if the device is the core pointer or is sending core events, and | /* if the device is the core pointer or is sending core events, and |
| * SEND_DRAG_EVENTS is false, and a buttons is done, then no motion events | * SEND_DRAG_EVENTS is false, and a buttons is done, then no motion events |
| * (mouse drag action) are sent. This is mainly to allow a touch screen to be | * (mouse drag action) are sent. This is mainly to allow a touch screen to be |
|
|
|
| * moves between button down and button up. With a touch screen, this motion | * moves between button down and button up. With a touch screen, this motion |
| * is common due to the user's finger moving slightly. | * is common due to the user's finger moving slightly. |
| */ | */ |
| #define XI86_SEND_DRAG_EVENTS 8 |
#define XI86_SEND_DRAG_EVENTS 0x08 |
| |
#define XI86_CORE_POINTER 0x10 /* device is the core pointer */ |
| |
#define XI86_CORE_KEYBOARD 0x20 /* device is the core keyboard */ |
| | |
| #define XI_PRIVATE(dev) \ | #define XI_PRIVATE(dev) \ |
| (((LocalDevicePtr)((dev)->public.devicePrivate))->private) | (((LocalDevicePtr)((dev)->public.devicePrivate))->private) |
|
|
|
| #endif | #endif |
| #define HAS_MOTION_HISTORY(local) ((local)->dev->valuator && (local)->dev->valuator->numMotionEvents) | #define HAS_MOTION_HISTORY(local) ((local)->dev->valuator && (local)->dev->valuator->numMotionEvents) |
| | |
| |
|
| |
/* This is to input devices what the ScrnInfoRec is to screens. */ |
| |
|
| typedef struct _LocalDeviceRec { | typedef struct _LocalDeviceRec { |
| |
struct _LocalDeviceRec *next; |
| char *name; | char *name; |
| int flags; | int flags; |
| | |
| Bool (*device_control)(DeviceIntPtr /*device*/, int /*what*/); |
Bool (*device_control)(DeviceIntPtr device, int what); |
| void (*read_input)(struct _LocalDeviceRec* /*local*/); |
void (*read_input)(struct _LocalDeviceRec *local); |
| int (*control_proc)(struct _LocalDeviceRec* /*local*/, xDeviceCtl* /* control */); |
int (*control_proc)(struct _LocalDeviceRec *local, |
| void (*close_proc)(struct _LocalDeviceRec* /*local*/); |
xDeviceCtl *control); |
| int (*switch_mode)(ClientPtr /*client*/, DeviceIntPtr /*dev*/, int /*mode*/); |
void (*close_proc)(struct _LocalDeviceRec *local); |
| Bool (*conversion_proc)(struct _LocalDeviceRec* /*local*/, int /* first */, |
int (*switch_mode)(ClientPtr client, DeviceIntPtr dev, |
| int /* num */, int /* v0 */, int /* v1 */, int /* v2 */, |
int mode); |
| int /* v3 */, int /* v4 */, int /* v5 */, int* /* x */, |
Bool (*conversion_proc)(struct _LocalDeviceRec *local, |
| int* /* y */); |
int first, int num, int v0, |
| |
int v1, int v2, int v3, int v4, |
| |
int v5, int *x, int *y); |
| | |
| int fd; | int fd; |
| Atom atom; | Atom atom; |
|
|
|
| int old_y; | int old_y; |
| char *type_name; | char *type_name; |
| IntegerFeedbackPtr always_core_feedback; | IntegerFeedbackPtr always_core_feedback; |
| Bool (*reverse_conversion_proc)(struct _LocalDeviceRec* /*local*/, |
Bool (*reverse_conversion_proc)( |
| int /* x */, int /* y */, |
struct _LocalDeviceRec *local, |
| int* /* valuators */); |
int x, int y, int *valuators); |
| |
InputDriverPtr drv; |
| |
pointer module; |
| pointer options; | pointer options; |
| struct _LocalDeviceRec *next; |
} LocalDeviceRec, *LocalDevicePtr, InputInfoRec, *InputInfoPtr; |
| } LocalDeviceRec, *LocalDevicePtr; |
|
| | |
| typedef struct _DeviceAssocRec | typedef struct _DeviceAssocRec |
| { | { |
|
|
|
| LocalDevicePtr (*device_allocate)(void); | LocalDevicePtr (*device_allocate)(void); |
| } DeviceAssocRec, *DeviceAssocPtr; | } DeviceAssocRec, *DeviceAssocPtr; |
| | |
| int |
/* xf86Globals.c */ |
| xf86IsCorePointer(DeviceIntPtr /*dev*/); |
extern InputInfoPtr xf86InputDevs; |
| |
|
| int |
|
| xf86IsCoreKeyboard(DeviceIntPtr /*dev*/); |
|
| | |
| void |
/* xf86Xinput.c */ |
| xf86XInputSetSendCoreEvents(LocalDevicePtr /*local*/, Bool /*always*/); |
int xf86IsCorePointer(DeviceIntPtr dev); |
| |
int xf86IsCoreKeyboard(DeviceIntPtr dev); |
| |
void xf86XInputSetSendCoreEvents(LocalDevicePtr local, Bool always); |
| #define xf86AlwaysCore(a,b) xf86XInputSetSendCoreEvents(a,b) | #define xf86AlwaysCore(a,b) xf86XInputSetSendCoreEvents(a,b) |
| | |
| void |
void InitExtInput(void); |
| InitExtInput(void); |
Bool xf86eqInit(DevicePtr pKbd, DevicePtr pPtr); |
| |
void xf86eqEnqueue(struct _xEvent *event); |
| Bool |
void xf86eqProcessInputEvents (void); |
| xf86eqInit(DevicePtr /* pKbd */, DevicePtr /* pPtr */); |
void xf86eqSwitchScreen(ScreenPtr pScreen, Bool fromDIX); |
| |
void xf86PostMotionEvent(DeviceIntPtr device, int is_absolute, |
| void |
int first_valuator, int num_valuators, ...); |
| xf86eqEnqueue (struct _xEvent * /*event */); |
void xf86PostProximityEvent(DeviceIntPtr device, int is_in, |
| |
int first_valuator, int num_valuators, ...); |
| void |
void xf86PostButtonEvent(DeviceIntPtr device, int is_absolute, int button, |
| xf86eqProcessInputEvents (void); |
int is_down, int first_valuator, int num_valuators, |
| |
|
| void |
|
| xf86eqSwitchScreen(ScreenPtr /* pScreen */, Bool /* fromDIX */); |
|
| |
|
| void |
|
| xf86PostMotionEvent(DeviceIntPtr /*device*/, |
|
| int /*is_absolute*/, |
|
| int /*first_valuator*/, |
|
| int /*num_valuators*/, |
|
| ...); |
|
| |
|
| void |
|
| xf86PostProximityEvent(DeviceIntPtr /*device*/, |
|
| int /*is_in*/, |
|
| int /*first_valuator*/, |
|
| int /*num_valuators*/, |
|
| ...); |
|
| |
|
| void |
|
| xf86PostButtonEvent(DeviceIntPtr /*device*/, |
|
| int /*is_absolute*/, |
|
| int /*button*/, |
|
| int /*is_down*/, |
|
| int /*first_valuator*/, |
|
| int /*num_valuators*/, |
|
| ...); | ...); |
| |
void xf86PostKeyEvent(DeviceIntPtr device, unsigned int key_code, int is_down, |
| void |
int is_absolute, int first_valuator, int num_valuators, |
| xf86PostKeyEvent(DeviceIntPtr /* device */, |
|
| unsigned int /* key_code */, |
|
| int /* is_down */, |
|
| int /* is_absolute */, |
|
| int /* first_valuator */, |
|
| int /* num_valuators */, |
|
| ...); | ...); |
| |
void xf86MotionHistoryAllocate(LocalDevicePtr local); |
| void |
int xf86GetMotionEvents(DeviceIntPtr dev, xTimecoord *buff, |
| xf86MotionHistoryAllocate(LocalDevicePtr /* local */); |
unsigned long start, unsigned long stop, |
| |
ScreenPtr pScreen); |
| int |
void xf86XinputFinalizeInit(DeviceIntPtr dev); |
| xf86GetMotionEvents(DeviceIntPtr /* dev */, |
Bool xf86CheckButton(int button, int down); |
| xTimecoord */* buff */, |
void xf86SwitchCoreDevice(LocalDevicePtr device, DeviceIntPtr core); |
| unsigned long /* start */, |
void xf86AddLocalDevice(LocalDevicePtr device, pointer options); |
| unsigned long /* stop */, |
Bool xf86RemoveLocalDevice(LocalDevicePtr device); |
| ScreenPtr /* pScreen */); |
LocalDevicePtr xf86FirstLocalDevice(void); |
| |
int xf86ScaleAxis(int Cx, int Sxhigh, int Sxlow, int Rxhigh, int Rxlow); |
| void |
void xf86XInputSetScreen(LocalDevicePtr local, int screen_number, int x, int y); |
| xf86XinputFinalizeInit(DeviceIntPtr /* dev */); |
|
| |
/* xf86Helper.c */ |
| Bool |
void xf86AddInputDriver(InputDriverPtr driver, pointer module, int flags); |
| xf86CheckButton(int /* button */, int /* down */); |
void xf86DeleteInputDriver(int drvIndex); |
| |
InputInfoPtr xf86AllocateInput(InputDriverPtr drv, int flags); |
| void |
void xf86DeleteInput(InputInfoPtr pInp, int flags); |
| xf86SwitchCoreDevice(LocalDevicePtr /* device */, DeviceIntPtr /* core */); |
|
| |
|
| void |
|
| xf86AddLocalDevice( LocalDevicePtr /* device */, |
|
| pointer /* options */); |
|
| |
|
| Bool |
|
| xf86RemoveLocalDevice(LocalDevicePtr /* device */); |
|
| |
|
| LocalDevicePtr |
|
| xf86FirstLocalDevice(void); |
|
| |
|
| int |
|
| xf86ScaleAxis(int /* Cx */, |
|
| int /* Sxhigh */, |
|
| int /* Sxlow */, |
|
| int /* Rxhigh */, |
|
| int /* Rxlow */); |
|
| |
|
| void |
|
| xf86XInputSetScreen(LocalDevicePtr /* local */, |
|
| int /* screen_number */, |
|
| int /* x */, |
|
| int /* y */); |
|
| | |
| #endif /* _xf86Xinput_h */ | #endif /* _xf86Xinput_h */ |