summaryrefslogtreecommitdiff
path: root/hw/xfree86/common/xf86Xinput.h
diff options
context:
space:
mode:
Diffstat (limited to 'hw/xfree86/common/xf86Xinput.h')
-rw-r--r--hw/xfree86/common/xf86Xinput.h280
1 files changed, 280 insertions, 0 deletions
diff --git a/hw/xfree86/common/xf86Xinput.h b/hw/xfree86/common/xf86Xinput.h
new file mode 100644
index 000000000..b2bb8832f
--- /dev/null
+++ b/hw/xfree86/common/xf86Xinput.h
@@ -0,0 +1,280 @@
+/* $Xorg: xf86Xinput.h,v 1.3 2000/08/17 19:50:31 cpqbld Exp $ */
+/*
+ * Copyright 1995,1996 by Frederic Lepied, France. <fred@sugix.frmug.fr.net>
+ *
+ * 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, and that the name of Frederic Lepied not be used in
+ * advertising or publicity pertaining to distribution of the software without
+ * specific, written prior permission. Frederic Lepied makes no
+ * representations about the suitability of this software for any purpose. It
+ * is provided "as is" without express or implied warranty.
+ *
+ * FREDERIC LEPIED DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+ * EVENT SHALL FREDERIC LEPIED 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/xfree86/common/xf86Xinput.h,v 3.14.2.1 1997/05/12 12:52:29 hohndel Exp $ */
+
+#ifndef _xf86Xinput_h
+#define _xf86Xinput_h
+
+#ifndef NEED_EVENTS
+#define NEED_EVENTS
+#endif
+#include "X.h"
+#include "Xproto.h"
+#include "inputstr.h"
+#include "XI.h"
+#include "XIproto.h"
+#include "XIstubs.h"
+
+#define XI86_NO_OPEN_ON_INIT 1 /* open the device only when needed */
+#define XI86_CONFIGURED 2 /* the device has been configured */
+#define XI86_ALWAYS_CORE 4 /* the device always controls the pointer */
+
+#ifdef PRIVATE
+#undef PRIVATE
+#endif
+#define PRIVATE(dev) (((LocalDevicePtr)((dev)->public.devicePrivate))->private)
+
+#ifdef HAS_MOTION_HISTORY
+#undef HAS_MOTION_HISTORY
+#endif
+#define HAS_MOTION_HISTORY(local) ((local)->dev->valuator && (local)->dev->valuator->numMotionEvents)
+
+typedef struct _LocalDeviceRec {
+ char *name;
+ int flags;
+ Bool (*device_config)(
+#if NeedNestedPrototypes
+ struct _LocalDeviceRec** /*array*/,
+ int /*index*/,
+ int /*max*/,
+ LexPtr /*val*/
+#endif
+ );
+ Bool (*device_control)(
+#if NeedNestedPrototypes
+ DeviceIntPtr /*device*/,
+ int /*what*/
+#endif
+ );
+ void (*read_input)(
+#if NeedNestedPrototypes
+ struct _LocalDeviceRec* /*local*/
+#endif
+ );
+ int (*control_proc)(
+#if NeedNestedPrototypes
+ struct _LocalDeviceRec* /*local*/,
+ xDeviceCtl* /* control */
+#endif
+ );
+ void (*close_proc)(
+#if NeedNestedPrototypes
+ struct _LocalDeviceRec* /*local*/
+#endif
+ );
+ int (*switch_mode)(
+#if NeedNestedPrototypes
+ ClientPtr /*client*/,
+ DeviceIntPtr /*dev*/,
+ int /*mode*/
+#endif
+ );
+ int fd;
+ Atom atom;
+ DeviceIntPtr dev;
+ pointer private;
+ int private_flags;
+ pointer motion_history;
+ ValuatorMotionProcPtr motion_history_proc;
+ unsigned int history_size; /* only for configuration purpose */
+ unsigned int first;
+ unsigned int last;
+ char *type_name;
+ IntegerFeedbackPtr always_core_feedback;
+} LocalDeviceRec, *LocalDevicePtr;
+
+typedef struct _DeviceAssocRec
+{
+ char *config_section_name;
+ LocalDevicePtr (*device_allocate)(
+#if NeedNestedPrototypes
+ void
+#endif
+);
+} DeviceAssocRec, *DeviceAssocPtr;
+
+extern int DeviceKeyPress;
+extern int DeviceKeyRelease;
+extern int DeviceButtonPress;
+extern int DeviceButtonRelease;
+extern int DeviceMotionNotify;
+extern int DeviceValuator;
+extern int ProximityIn;
+extern int ProximityOut;
+
+extern int
+xf86IsCorePointer(
+#if NeedFunctionPrototypes
+ DeviceIntPtr /*dev*/
+#endif
+);
+
+extern int
+xf86IsCoreKeyboard(
+#if NeedFunctionPrototypes
+ DeviceIntPtr /*dev*/
+#endif
+);
+
+extern void
+xf86AlwaysCore(
+#if NeedFunctionPrototypes
+ LocalDevicePtr /*local*/,
+ Bool /*always*/
+#endif
+);
+
+void
+xf86configExtendedInputSection(
+#ifdef NeedFunctionPrototypes
+ LexPtr /* val */
+#endif
+);
+
+void
+xf86AddDeviceAssoc(
+#ifdef NeedFunctionPrototypes
+ DeviceAssocPtr /* assoc */
+#endif
+);
+
+void
+InitExtInput(
+#ifdef NeedFunctionPrototypes
+ void
+#endif
+);
+
+Bool
+xf86eqInit (
+#ifdef NeedFunctionPrototypes
+ DevicePtr /* pKbd */,
+ DevicePtr /* pPtr */
+#endif
+);
+
+void
+xf86eqEnqueue (
+#ifdef NeedFunctionPrototypes
+ struct _xEvent * /*event */
+#endif
+);
+
+void
+xf86eqProcessInputEvents (
+#ifdef NeedFunctionPrototypes
+ void
+#endif
+);
+
+void
+xf86PostMotionEvent(
+#if NeedVarargsPrototypes
+ DeviceIntPtr /*device*/,
+ int /*is_absolute*/,
+ int /*first_valuator*/,
+ int /*num_valuators*/,
+ ...
+#endif
+);
+
+void
+xf86PostProximityEvent(
+#if NeedVarargsPrototypes
+ DeviceIntPtr /*device*/,
+ int /*is_in*/,
+ int /*first_valuator*/,
+ int /*num_valuators*/,
+ ...
+#endif
+);
+
+void
+xf86PostButtonEvent(
+#if NeedVarargsPrototypes
+ DeviceIntPtr /*device*/,
+ int /*is_absolute*/,
+ int /*button*/,
+ int /*is_down*/,
+ int /*first_valuator*/,
+ int /*num_valuators*/,
+ ...
+#endif
+);
+
+void
+xf86PostKeyEvent(
+#if NeedVarargsPrototypes
+ DeviceIntPtr device,
+ unsigned int key_code,
+ int is_down,
+ int is_absolute,
+ int first_valuator,
+ int num_valuators,
+ ...
+#endif
+);
+
+void
+xf86AddDeviceAssoc(
+#if NeedFunctionPrototypes
+ DeviceAssocPtr /*assoc*/
+#endif
+);
+
+void
+xf86MotionHistoryAllocate(
+#if NeedFunctionPrototypes
+ LocalDevicePtr local
+#endif
+);
+
+int
+xf86GetMotionEvents(
+#if NeedFunctionPrototypes
+ DeviceIntPtr dev,
+ xTimecoord *buff,
+ unsigned long start,
+ unsigned long stop,
+ ScreenPtr pScreen
+#endif
+);
+
+void
+xf86XinputFinalizeInit(
+#if NeedFunctionPrototypes
+ DeviceIntPtr dev
+#endif
+);
+
+Bool
+xf86CheckButton(
+#if NeedFunctionPrototypes
+ int button,
+ int down
+#endif
+);
+
+#endif /* _xf86Xinput_h */