master
ブランチ master
ShaderPlayground / deps / xlibre / include / X11 / extensions / record.h
4.6 KB、183行 生 Blame 履歴
1/***************************************************************************
2 * Copyright 1995 Network Computing Devices
3 *
4 * Permission to use, copy, modify, distribute, and sell this software and
5 * its documentation for any purpose is hereby granted without fee, provided
6 * that the above copyright notice appear in all copies and that both that
7 * copyright notice and this permission notice appear in supporting
8 * documentation, and that the name of Network Computing Devices
9 * not be used in advertising or publicity pertaining to distribution
10 * of the software without specific, written prior permission.
11 *
12 * NETWORK COMPUTING DEVICES DISCLAIMs ALL WARRANTIES WITH REGARD TO
13 * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
14 * AND FITNESS, IN NO EVENT SHALL NETWORK COMPUTING DEVICES BE LIABLE
15 * FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
16 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
17 * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
18 * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
19 **************************************************************************/
20
21#ifndef _RECORD_H_
22#define _RECORD_H_
23
24#include <X11/extensions/recordconst.h>
25
26typedef unsigned long XRecordClientSpec;
27typedef unsigned long XRecordContext;
28
29typedef struct
30{
31 unsigned char first;
32 unsigned char last;
33} XRecordRange8;
34
35typedef struct
36{
37 unsigned short first;
38 unsigned short last;
39} XRecordRange16;
40
41typedef struct
42{
43 XRecordRange8 ext_major;
44 XRecordRange16 ext_minor;
45} XRecordExtRange;
46
47typedef struct
48{
49 XRecordRange8 core_requests; /* core X requests */
50 XRecordRange8 core_replies; /* core X replies */
51 XRecordExtRange ext_requests; /* extension requests */
52 XRecordExtRange ext_replies; /* extension replies */
53 XRecordRange8 delivered_events; /* delivered core and ext events */
54 XRecordRange8 device_events; /* all core and ext device events */
55 XRecordRange8 errors; /* core X and ext errors */
56 Bool client_started; /* connection setup reply */
57 Bool client_died; /* notice of client disconnect */
58} XRecordRange;
59
60typedef struct
61{
62 XRecordClientSpec client;
63 unsigned long nranges;
64 XRecordRange **ranges;
65} XRecordClientInfo;
66
67typedef struct
68{
69 Bool enabled;
70 int datum_flags;
71 unsigned long nclients;
72 XRecordClientInfo **client_info;
73} XRecordState;
74
75typedef struct
76{
77 XID id_base;
78 Time server_time;
79 unsigned long client_seq;
80 int category;
81 Bool client_swapped;
82 unsigned char *data;
83 unsigned long data_len; /* in 4-byte units */
84} XRecordInterceptData;
85
86_XFUNCPROTOBEGIN
87
88/*********************************************************
89 *
90 * Prototypes
91 *
92 */
93
94XID XRecordIdBaseMask(
95 Display *dpy
96);
97
98extern Status XRecordQueryVersion(
99 Display* /* dpy */,
100 int* /* cmajor_return */,
101 int* /* cminor_return */
102);
103
104extern XRecordContext XRecordCreateContext(
105 Display* /* dpy */,
106 int /* datum_flags */,
107 XRecordClientSpec* /* clients */,
108 int /* nclients */,
109 XRecordRange** /* ranges */,
110 int /* nranges */
111);
112
113extern XRecordRange *XRecordAllocRange(
114 void
115);
116
117extern Status XRecordRegisterClients(
118 Display* /* dpy */,
119 XRecordContext /* context */,
120 int /* datum_flags */,
121 XRecordClientSpec* /* clients */,
122 int /* nclients */,
123 XRecordRange** /* ranges */,
124 int /* nranges */
125);
126
127extern Status XRecordUnregisterClients(
128 Display* /* dpy */,
129 XRecordContext /* context */,
130 XRecordClientSpec* /* clients */,
131 int /* nclients */
132);
133
134extern Status XRecordGetContext(
135 Display* /* dpy */,
136 XRecordContext /* context */,
137 XRecordState** /* state_return */
138);
139
140extern void XRecordFreeState(
141XRecordState* /* state */
142);
143
144typedef void (*XRecordInterceptProc) (
145 XPointer /* closure */,
146 XRecordInterceptData* /* recorded_data */
147);
148
149extern Status XRecordEnableContext(
150 Display* /* dpy */,
151 XRecordContext /* context */,
152 XRecordInterceptProc /* callback */,
153 XPointer /* closure */
154);
155
156extern Status XRecordEnableContextAsync(
157 Display* /* dpy */,
158 XRecordContext /* context */,
159 XRecordInterceptProc /* callback */,
160 XPointer /* closure */
161);
162
163extern void XRecordProcessReplies(
164 Display* /* dpy */
165);
166
167extern void XRecordFreeData(
168XRecordInterceptData* /* data */
169);
170
171extern Status XRecordDisableContext(
172 Display* /* dpy */,
173 XRecordContext /* context */
174);
175
176extern Status XRecordFreeContext(
177 Display* /* dpy */,
178 XRecordContext /* context */
179);
180
181_XFUNCPROTOEND
182
183#endif