X-Git-Url: https://git.sesse.net/?p=rdpsrv;a=blobdiff_plain;f=Xserver%2Finclude%2Fextensions%2Frecord.h;fp=Xserver%2Finclude%2Fextensions%2Frecord.h;h=05c7d6e6749ba829fe62bd39e513ca538f67d20c;hp=0000000000000000000000000000000000000000;hb=b6e6afccf37f4ad0515ef2a698f714fdf1bf23b3;hpb=e3340a110a3b01756b8e67531395a33b40a17d37 diff --git a/Xserver/include/extensions/record.h b/Xserver/include/extensions/record.h new file mode 100644 index 0000000..05c7d6e --- /dev/null +++ b/Xserver/include/extensions/record.h @@ -0,0 +1,239 @@ +/* +$XConsortium: record.h /main/4 1996/01/31 20:28:22 dpw $ +*/ + +/*************************************************************************** + * 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_ */