summaryrefslogtreecommitdiff
path: root/record.h
diff options
context:
space:
mode:
Diffstat (limited to 'record.h')
-rw-r--r--record.h239
1 files changed, 239 insertions, 0 deletions
diff --git a/record.h b/record.h
new file mode 100644
index 0000000..9234404
--- /dev/null
+++ b/record.h
@@ -0,0 +1,239 @@
+/*
+$Xorg: record.h,v 1.3 2000/08/18 04:05:46 coskrey Exp $
+*/
+
+/***************************************************************************
+ * 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_
+
+#define XRecordBadContext 0 /* Not a valid RC */
+
+/*
+ * Constants for arguments of various requests
+ */
+#define XRecordFromServerTime 0x01
+#define XRecordFromClientTime 0x02
+#define XRecordFromClientSequence 0x04
+
+#define XRecordCurrentClients 1
+#define XRecordFutureClients 2
+#define XRecordAllClients 3
+
+#define XRecordFromServer 0
+#define XRecordFromClient 1
+#define XRecordClientStarted 2
+#define XRecordClientDied 3
+#define XRecordStartOfData 4
+#define XRecordEndOfData 5
+
+typedef unsigned long XRecordClientSpec;
+
+#ifndef _XRECORD_SERVER_
+
+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(
+#if NeedFunctionPrototypes
+ Display *dpy
+#endif
+);
+
+extern Status XRecordQueryVersion(
+#if NeedFunctionPrototypes
+ Display* /* dpy */,
+ int* /* cmajor_return */,
+ int* /* cminor_return */
+#endif
+);
+
+extern XRecordContext XRecordCreateContext(
+#if NeedFunctionPrototypes
+ Display* /* dpy */,
+ int /* datum_flags */,
+ XRecordClientSpec* /* clients */,
+ int /* nclients */,
+ XRecordRange** /* ranges */,
+ int /* nranges */
+#endif
+);
+
+extern XRecordRange *XRecordAllocRange(
+#if NeedFunctionPrototypes
+ void
+#endif
+);
+
+extern Status XRecordRegisterClients(
+#if NeedFunctionPrototypes
+ Display* /* dpy */,
+ XRecordContext /* context */,
+ int /* datum_flags */,
+ XRecordClientSpec* /* clients */,
+ int /* nclients */,
+ XRecordRange** /* ranges */,
+ int /* nranges */
+#endif
+);
+
+extern Status XRecordUnregisterClients(
+#if NeedFunctionPrototypes
+ Display* /* dpy */,
+ XRecordContext /* context */,
+ XRecordClientSpec* /* clients */,
+ int /* nclients */
+#endif
+);
+
+extern Status XRecordGetContext(
+#if NeedFunctionPrototypes
+ Display* /* dpy */,
+ XRecordContext /* context */,
+ XRecordState** /* state_return */
+#endif
+);
+
+extern void XRecordFreeState(
+#if NeedFunctionPrototypes
+XRecordState* /* state */
+#endif
+);
+
+typedef void (*XRecordInterceptProc) (
+#if NeedFunctionPrototypes
+ XPointer /* closure */,
+ XRecordInterceptData* /* recorded_data */
+#endif
+);
+
+extern Status XRecordEnableContext(
+#if NeedFunctionPrototypes
+ Display* /* dpy */,
+ XRecordContext /* context */,
+ XRecordInterceptProc /* callback */,
+ XPointer /* closure */
+#endif
+);
+
+extern Status XRecordEnableContextAsync(
+#if NeedFunctionPrototypes
+ Display* /* dpy */,
+ XRecordContext /* context */,
+ XRecordInterceptProc /* callback */,
+ XPointer /* closure */
+#endif
+);
+
+extern void XRecordProcessReplies(
+#if NeedFunctionPrototypes
+ Display* /* dpy */
+#endif
+);
+
+extern void XRecordFreeData(
+#if NeedFunctionPrototypes
+XRecordInterceptData* /* data */
+#endif
+);
+
+extern Status XRecordDisableContext(
+#if NeedFunctionPrototypes
+ Display* /* dpy */,
+ XRecordContext /* context */
+#endif
+);
+
+extern Status XRecordFreeContext(
+#if NeedFunctionPrototypes
+ Display* /* dpy */,
+ XRecordContext /* context */
+#endif
+);
+
+_XFUNCPROTOEND
+
+#endif /* _XRECORD_SERVER_ */
+
+#endif /* _RECORD_H_ */