diff options
-rw-r--r-- | configure.ac | 2 | ||||
-rw-r--r-- | include/X11/extensions/record.h | 183 | ||||
-rw-r--r-- | src/Makefile.am | 3 | ||||
-rw-r--r-- | src/XRecord.c | 1 |
4 files changed, 187 insertions, 2 deletions
diff --git a/configure.ac b/configure.ac index f37b120..2287275 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.13.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; |