File indexing completed on 2025-03-13 09:29:37
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021 #ifndef _RECORD_H_
0022 #define _RECORD_H_
0023
0024 #include <X11/extensions/recordconst.h>
0025
0026 typedef unsigned long XRecordClientSpec;
0027 typedef unsigned long XRecordContext;
0028
0029 typedef struct
0030 {
0031 unsigned char first;
0032 unsigned char last;
0033 } XRecordRange8;
0034
0035 typedef struct
0036 {
0037 unsigned short first;
0038 unsigned short last;
0039 } XRecordRange16;
0040
0041 typedef struct
0042 {
0043 XRecordRange8 ext_major;
0044 XRecordRange16 ext_minor;
0045 } XRecordExtRange;
0046
0047 typedef struct
0048 {
0049 XRecordRange8 core_requests;
0050 XRecordRange8 core_replies;
0051 XRecordExtRange ext_requests;
0052 XRecordExtRange ext_replies;
0053 XRecordRange8 delivered_events;
0054 XRecordRange8 device_events;
0055 XRecordRange8 errors;
0056 Bool client_started;
0057 Bool client_died;
0058 } XRecordRange;
0059
0060 typedef struct
0061 {
0062 XRecordClientSpec client;
0063 unsigned long nranges;
0064 XRecordRange **ranges;
0065 } XRecordClientInfo;
0066
0067 typedef struct
0068 {
0069 Bool enabled;
0070 int datum_flags;
0071 unsigned long nclients;
0072 XRecordClientInfo **client_info;
0073 } XRecordState;
0074
0075 typedef struct
0076 {
0077 XID id_base;
0078 Time server_time;
0079 unsigned long client_seq;
0080 int category;
0081 Bool client_swapped;
0082 unsigned char *data;
0083 unsigned long data_len;
0084 } XRecordInterceptData;
0085
0086 _XFUNCPROTOBEGIN
0087
0088
0089
0090
0091
0092
0093
0094 XID XRecordIdBaseMask(
0095 Display *dpy
0096 );
0097
0098 extern Status XRecordQueryVersion(
0099 Display* ,
0100 int* ,
0101 int*
0102 );
0103
0104 extern XRecordContext XRecordCreateContext(
0105 Display* ,
0106 int ,
0107 XRecordClientSpec* ,
0108 int ,
0109 XRecordRange** ,
0110 int
0111 );
0112
0113 extern XRecordRange *XRecordAllocRange(
0114 void
0115 );
0116
0117 extern Status XRecordRegisterClients(
0118 Display* ,
0119 XRecordContext ,
0120 int ,
0121 XRecordClientSpec* ,
0122 int ,
0123 XRecordRange** ,
0124 int
0125 );
0126
0127 extern Status XRecordUnregisterClients(
0128 Display* ,
0129 XRecordContext ,
0130 XRecordClientSpec* ,
0131 int
0132 );
0133
0134 extern Status XRecordGetContext(
0135 Display* ,
0136 XRecordContext ,
0137 XRecordState**
0138 );
0139
0140 extern void XRecordFreeState(
0141 XRecordState*
0142 );
0143
0144 typedef void (*XRecordInterceptProc) (
0145 XPointer ,
0146 XRecordInterceptData*
0147 );
0148
0149 extern Status XRecordEnableContext(
0150 Display* ,
0151 XRecordContext ,
0152 XRecordInterceptProc ,
0153 XPointer
0154 );
0155
0156 extern Status XRecordEnableContextAsync(
0157 Display* ,
0158 XRecordContext ,
0159 XRecordInterceptProc ,
0160 XPointer
0161 );
0162
0163 extern void XRecordProcessReplies(
0164 Display*
0165 );
0166
0167 extern void XRecordFreeData(
0168 XRecordInterceptData*
0169 );
0170
0171 extern Status XRecordDisableContext(
0172 Display* ,
0173 XRecordContext
0174 );
0175
0176 extern Status XRecordFreeContext(
0177 Display* ,
0178 XRecordContext
0179 );
0180
0181 _XFUNCPROTOEND
0182
0183 #endif