Signed-off-by: Peter Hutterer <[email protected]>
---
 configure.ac                    |    2 +-
 include/X11/extensions/record.h |  183 +++++++++++++++++++++++++++++++++++++++
 src/Makefile.am                 |    3 +-
 src/XRecord.c                   |    1 +
 4 files changed, 187 insertions(+), 2 deletions(-)
 create mode 100644 include/X11/extensions/record.h

diff --git a/configure.ac b/configure.ac
index f37b120..5cdd8eb 100644
--- a/configure.ac
+++ b/configure.ac
@@ -44,7 +44,7 @@ AC_PATH_PROG([XMLTO], [xmlto])
 AM_CONDITIONAL([HAVE_XMLTO], [test "x$XMLTO" != "x"])
 
 # Check for dependencies
-PKG_CHECK_MODULES(XTST, x11 xext xi recordproto [xextproto >= 7.0.99.3] 
inputproto)
+PKG_CHECK_MODULES(XTST, x11 xext xi [recordproto >= 1.0.99.1] [xextproto >= 
7.0.99.3] inputproto)
 XTST_CFLAGS="$CWARNFLAGS $XTST_CFLAGS"
 AC_SUBST(XTST_CFLAGS)
 AC_SUBST(XTST_LIBS)
diff --git a/include/X11/extensions/record.h b/include/X11/extensions/record.h
new file mode 100644
index 0000000..e82b06c
--- /dev/null
+++ b/include/X11/extensions/record.h
@@ -0,0 +1,183 @@
+/***************************************************************************
+ * Copyright 1995 Network Computing Devices
+ *
+ * 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 Network Computing Devices
+ * not be used in advertising or publicity pertaining to distribution
+ * of the software without specific, written prior permission.
+ *
+ * NETWORK COMPUTING DEVICES DISCLAIMs ALL WARRANTIES WITH REGARD TO
+ * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS, IN NO EVENT SHALL NETWORK COMPUTING DEVICES 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.
+ **************************************************************************/
+
+#ifndef _RECORD_H_
+#define _RECORD_H_
+
+#include <X11/extensions/recordconst.h>
+
+typedef unsigned long   XRecordClientSpec;
+typedef unsigned long  XRecordContext;
+
+typedef struct
+{
+    unsigned char      first;
+    unsigned char      last;
+} XRecordRange8;
+
+typedef struct
+{
+    unsigned short     first;
+    unsigned short     last;
+} XRecordRange16;
+
+typedef struct
+{
+    XRecordRange8      ext_major;
+    XRecordRange16     ext_minor;
+} XRecordExtRange;
+
+typedef struct
+{
+    XRecordRange8     core_requests;   /* core X requests */
+    XRecordRange8     core_replies;    /* core X replies */
+    XRecordExtRange   ext_requests;    /* extension requests */
+    XRecordExtRange   ext_replies;     /* extension replies */
+    XRecordRange8     delivered_events;        /* delivered core and ext 
events */
+    XRecordRange8     device_events;   /* all core and ext device events */
+    XRecordRange8     errors;          /* core X and ext errors */
+    Bool             client_started;   /* connection setup reply */
+    Bool              client_died;     /* notice of client disconnect */
+} XRecordRange;
+
+typedef struct
+{
+    XRecordClientSpec  client;
+    unsigned long      nranges;
+    XRecordRange       **ranges;
+} XRecordClientInfo;
+
+typedef struct
+{
+    Bool               enabled;
+    int                        datum_flags;
+    unsigned long      nclients;
+    XRecordClientInfo  **client_info;
+} XRecordState;
+
+typedef struct
+{
+    XID                id_base;
+    Time               server_time;
+    unsigned long      client_seq;
+    int                        category;
+    Bool               client_swapped;
+    unsigned char      *data;
+    unsigned long      data_len;       /* in 4-byte units */
+} XRecordInterceptData;
+
+_XFUNCPROTOBEGIN
+
+/*********************************************************
+ *
+ * Prototypes
+ *
+ */
+
+XID XRecordIdBaseMask(
+    Display *dpy
+);
+
+extern Status XRecordQueryVersion(
+    Display*                   /* dpy */,
+    int*                       /* cmajor_return */,
+    int*                       /* cminor_return */
+);
+
+extern XRecordContext XRecordCreateContext(
+    Display*                   /* dpy */,
+    int                                /* datum_flags */,
+    XRecordClientSpec*         /* clients */,
+    int                                /* nclients */,
+    XRecordRange**              /* ranges */,
+    int                                /* nranges */
+);
+
+extern XRecordRange *XRecordAllocRange(
+    void
+);
+
+extern Status XRecordRegisterClients(
+    Display*                   /* dpy */,
+    XRecordContext             /* context */,
+    int                                /* datum_flags */,
+    XRecordClientSpec*         /* clients */,
+    int                                /* nclients */,
+    XRecordRange**             /* ranges */,
+    int                                /* nranges */
+);
+
+extern Status XRecordUnregisterClients(
+    Display*                   /* dpy */,
+    XRecordContext             /* context */,
+    XRecordClientSpec*         /* clients */,
+    int                                /* nclients */
+);
+
+extern Status XRecordGetContext(
+    Display*                   /* dpy */,
+    XRecordContext             /* context */,
+    XRecordState**             /* state_return */
+);
+
+extern void XRecordFreeState(
+XRecordState*                  /* state */
+);
+
+typedef void (*XRecordInterceptProc) (
+    XPointer                   /* closure */,
+    XRecordInterceptData*      /* recorded_data */
+);
+
+extern Status XRecordEnableContext(
+    Display*                   /* dpy */,
+    XRecordContext             /* context */,
+    XRecordInterceptProc       /* callback */,
+    XPointer                   /* closure */
+);
+
+extern Status XRecordEnableContextAsync(
+    Display*                   /* dpy */,
+    XRecordContext             /* context */,
+    XRecordInterceptProc       /* callback */,
+    XPointer                   /* closure */
+);
+
+extern void XRecordProcessReplies(
+    Display*                   /* dpy */
+);
+
+extern void XRecordFreeData(
+XRecordInterceptData*  /* data */
+);
+
+extern Status XRecordDisableContext(
+    Display*                   /* dpy */,
+    XRecordContext             /* context */
+);
+
+extern Status XRecordFreeContext(
+    Display*                   /* dpy */,
+    XRecordContext             /* context */
+);
+
+_XFUNCPROTOEND
+
+#endif
diff --git a/src/Makefile.am b/src/Makefile.am
index e8594c7..a2f3db0 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -14,7 +14,8 @@ AM_CFLAGS=\
 libXtst_la_LDFLAGS = -version-number 6:1:0 -no-undefined
 
 libXtstincludedir = $(includedir)/X11/extensions
-libXtstinclude_HEADERS = $(top_srcdir)/include/X11/extensions/XTest.h
+libXtstinclude_HEADERS = $(top_srcdir)/include/X11/extensions/XTest.h \
+                         $(top_srcdir)/include/X11/extensions/record.h
 
 if LINT
 ALL_LINT_FLAGS=$(LINT_FLAGS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
diff --git a/src/XRecord.c b/src/XRecord.c
index 2d76f5c..fe733ff 100644
--- a/src/XRecord.c
+++ b/src/XRecord.c
@@ -60,6 +60,7 @@ from The Open Group.
 #include <X11/extensions/Xext.h>
 #include <X11/extensions/extutil.h>
 #include <X11/extensions/recordstr.h>
+#include <X11/extensions/record.h>
 
 static XExtensionInfo _xrecord_info_data;
 static XExtensionInfo *xrecord_info = &_xrecord_info_data;
-- 
1.6.3.rc1.2.g0164.dirty

_______________________________________________
xorg-devel mailing list
[email protected]
http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to