13 KB、445行 生 Blame 履歴
1/*
2 * Copyright 2002-2004 Red Hat Inc., Durham, North Carolina.
3 *
4 * All Rights Reserved.
5 *
6 * Permission is hereby granted, free of charge, to any person obtaining
7 * a copy of this software and associated documentation files (the
8 * "Software"), to deal in the Software without restriction, including
9 * without limitation on the rights to use, copy, modify, merge,
10 * publish, distribute, sublicense, and/or sell copies of the Software,
11 * and to permit persons to whom the Software is furnished to do so,
12 * subject to the following conditions:
13 *
14 * The above copyright notice and this permission notice (including the
15 * next paragraph) shall be included in all copies or substantial
16 * portions of the Software.
17 *
18 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
19 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
20 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
21 * NON-INFRINGEMENT. IN NO EVENT SHALL RED HAT AND/OR THEIR SUPPLIERS
22 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
23 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
24 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
25 * SOFTWARE.
26 */
27
28/*
29 * Authors:
30 * Rickard E. (Rik) Faith <faith@redhat.com>
31 *
32 */
33
34/** \file
35 * This file describes the structures necessary to implement the wire
36 * protocol for the DMX protocol extension. It should be included only
37 * in files that implement the client-side (or server-side) part of the
38 * protocol (i.e., client-side applications should \b not include this
39 * file). */
40
41#ifndef _DMXSTR_H_
42#define _DMXSTR_H_
43
44#define DMX_EXTENSION_NAME "DMX"
45#define DMX_EXTENSION_MAJOR 2
46#define DMX_EXTENSION_MINOR 2
47#define DMX_EXTENSION_PATCH 20040604
48
49/* These values must be larger than LastExtensionError.
50 The values in dmxext.h and dmxproto.h *MUST* match. */
51#define DMX_BAD_XINERAMA 1001
52#define DMX_BAD_VALUE 1002
53
54#define X_DMXQueryVersion 0
55#define X_DMXGetScreenCount 1
56#define X_DMXGetScreenInformationDEPRECATED 2
57#define X_DMXGetWindowAttributes 3
58#define X_DMXGetInputCount 4
59#define X_DMXGetInputAttributes 5
60#define X_DMXForceWindowCreationDEPRECATED 6
61#define X_DMXReconfigureScreenDEPRECATED 7
62#define X_DMXSync 8
63#define X_DMXForceWindowCreation 9
64#define X_DMXGetScreenAttributes 10
65#define X_DMXChangeScreensAttributes 11
66#define X_DMXAddScreen 12
67#define X_DMXRemoveScreen 13
68#define X_DMXGetDesktopAttributes 14
69#define X_DMXChangeDesktopAttributes 15
70#define X_DMXAddInput 16
71#define X_DMXRemoveInput 17
72
73/** Wire-level description of DMXQueryVersion protocol request. */
74typedef struct {
75 CARD8 reqType; /* dmxcode */
76 CARD8 dmxReqType; /* X_DMXQueryVersion */
77 CARD16 length;
78} xDMXQueryVersionReq;
79#define sz_xDMXQueryVersionReq 4
80
81/** Wire-level description of DMXQueryVersion protocol reply. */
82typedef struct {
83 BYTE type; /* X_Reply */
84 CARD8 ununsed;
85 CARD16 sequenceNumber;
86 CARD32 length;
87 CARD32 majorVersion;
88 CARD32 minorVersion;
89 CARD32 patchVersion;
90 CARD32 pad0;
91 CARD32 pad1;
92 CARD32 pad2;
93} xDMXQueryVersionReply;
94#define sz_xDMXQueryVersionReply 32
95
96/** Wire-level description of DMXSync protocol request. */
97typedef struct {
98 CARD8 reqType; /* DMXCode */
99 CARD8 dmxReqType; /* X_DMXSync */
100 CARD16 length;
101} xDMXSyncReq;
102#define sz_xDMXSyncReq 4
103
104/** Wire-level description of DMXSync protocol reply. */
105typedef struct {
106 BYTE type; /* X_Reply */
107 CARD8 unused;
108 CARD16 sequenceNumber;
109 CARD32 length;
110 CARD32 status;
111 CARD32 pad0;
112 CARD32 pad1;
113 CARD32 pad2;
114 CARD32 pad3;
115 CARD32 pad4;
116} xDMXSyncReply;
117#define sz_xDMXSyncReply 32
118
119/** Wire-level description of DMXForceWindowCreation protocol request. */
120typedef struct {
121 CARD8 reqType; /* DMXCode */
122 CARD8 dmxReqType; /* X_DMXForceWindowCreation */
123 CARD16 length;
124 CARD32 window;
125} xDMXForceWindowCreationReq;
126#define sz_xDMXForceWindowCreationReq 8
127
128/** Wire-level description of DMXForceWindowCreation protocol reply. */
129typedef struct {
130 BYTE type; /* X_Reply */
131 CARD8 unused;
132 CARD16 sequenceNumber;
133 CARD32 length;
134 CARD32 status;
135 CARD32 pad0;
136 CARD32 pad1;
137 CARD32 pad2;
138 CARD32 pad3;
139 CARD32 pad4;
140} xDMXForceWindowCreationReply;
141#define sz_xDMXForceWindowCreationReply 32
142
143/** Wire-level description of DMXGetScreenCount protocol request. */
144typedef struct {
145 CARD8 reqType; /* DMXCode */
146 CARD8 dmxReqType; /* X_DMXGetScreenCount */
147 CARD16 length;
148} xDMXGetScreenCountReq;
149#define sz_xDMXGetScreenCountReq 4
150
151/** Wire-level description of DMXGetScreenCount protocol reply. */
152typedef struct {
153 BYTE type; /* X_Reply */
154 CARD8 unused;
155 CARD16 sequenceNumber;
156 CARD32 length;
157 CARD32 screenCount;
158 CARD32 pad0;
159 CARD32 pad1;
160 CARD32 pad2;
161 CARD32 pad3;
162 CARD32 pad4;
163} xDMXGetScreenCountReply;
164#define sz_xDMXGetScreenCountReply 32
165
166/** Wire-level description of DMXGetScreenAttributes protocol request. */
167typedef struct {
168 CARD8 reqType; /* DMXCode */
169 CARD8 dmxReqType; /* X_DMXGetScreenAttributes */
170 CARD16 length;
171 CARD32 physicalScreen;
172} xDMXGetScreenAttributesReq;
173#define sz_xDMXGetScreenAttributesReq 8
174
175/** Wire-level description of DMXGetScreenAttributes protocol reply. */
176typedef struct {
177 BYTE type; /* X_Reply */
178 CARD8 unused;
179 CARD16 sequenceNumber;
180 CARD32 length;
181 CARD32 displayNameLength;
182 CARD32 logicalScreen;
183
184 CARD16 screenWindowWidth;
185 CARD16 screenWindowHeight;
186 INT16 screenWindowXoffset;
187 INT16 screenWindowYoffset;
188
189 CARD16 rootWindowWidth;
190 CARD16 rootWindowHeight;
191 INT16 rootWindowXoffset;
192 INT16 rootWindowYoffset;
193 INT16 rootWindowXorigin;
194 INT16 rootWindowYorigin;
195} xDMXGetScreenAttributesReply;
196#define sz_xDMXGetScreenAttributesReply 36
197
198/** Wire-level description of DMXChangeScreensAttributes protocol request. */
199typedef struct {
200 CARD8 reqType; /* DMXCode */
201 CARD8 dmxReqType; /* X_DMXChangeScreensAttributes */
202 CARD16 length;
203 CARD32 screenCount;
204 CARD32 maskCount;
205} xDMXChangeScreensAttributesReq;
206#define sz_xDMXChangeScreensAttributesReq 12
207
208/** Wire-level description of DMXChangeScreensAttributes protocol reply. */
209typedef struct {
210 BYTE type; /* X_Reply */
211 CARD8 unused;
212 CARD16 sequenceNumber;
213 CARD32 length;
214 CARD32 status;
215 CARD32 errorScreen;
216 CARD32 pad0;
217 CARD32 pad1;
218 CARD32 pad2;
219 CARD32 pad3;
220} xDMXChangeScreensAttributesReply;
221#define sz_xDMXChangeScreensAttributesReply 32
222
223/** Wire-level description of DMXAddScreen protocol request. */
224typedef struct {
225 CARD8 reqType; /* DMXCode */
226 CARD8 dmxReqType; /* X_DMXAddScreen */
227 CARD16 length;
228 CARD32 displayNameLength;
229 CARD32 physicalScreen;
230 CARD32 valueMask;
231} xDMXAddScreenReq;
232#define sz_xDMXAddScreenReq 16
233
234/** Wire-level description of DMXAddScreen protocol reply. */
235typedef struct {
236 BYTE type; /* X_Reply */
237 CARD8 unused;
238 CARD16 sequenceNumber;
239 CARD32 length;
240 CARD32 status;
241 CARD32 physicalScreen;
242 CARD32 pad0;
243 CARD32 pad1;
244 CARD32 pad2;
245 CARD32 pad3;
246} xDMXAddScreenReply;
247#define sz_xDMXAddScreenReply 32
248
249/** Wire-level description of DMXRemoveScreen protocol request. */
250typedef struct {
251 CARD8 reqType; /* DMXCode */
252 CARD8 dmxReqType; /* X_DMXRemoveScreen */
253 CARD16 length;
254 CARD32 physicalScreen;
255} xDMXRemoveScreenReq;
256#define sz_xDMXRemoveScreenReq 8
257
258/** Wire-level description of DMXRemoveScreen protocol reply. */
259typedef struct {
260 BYTE type; /* X_Reply */
261 CARD8 unused;
262 CARD16 sequenceNumber;
263 CARD32 length;
264 CARD32 status;
265 CARD32 pad0;
266 CARD32 pad1;
267 CARD32 pad2;
268 CARD32 pad3;
269 CARD32 pad4;
270} xDMXRemoveScreenReply;
271#define sz_xDMXRemoveScreenReply 32
272
273/** Wire-level description of DMXGetWindowAttributes protocol request. */
274typedef struct {
275 CARD8 reqType; /* DMXCode */
276 CARD8 dmxReqType; /* X_DMXGetWindowAttributes */
277 CARD16 length;
278 CARD32 window;
279} xDMXGetWindowAttributesReq;
280#define sz_xDMXGetWindowAttributesReq 8
281
282/** Wire-level description of DMXGetWindowAttributes protocol reply. */
283typedef struct {
284 BYTE type; /* X_Reply */
285 CARD8 unused;
286 CARD16 sequenceNumber;
287 CARD32 length;
288 CARD32 screenCount;
289 CARD32 pad0;
290 CARD32 pad1;
291 CARD32 pad2;
292 CARD32 pad3;
293 CARD32 pad4;
294} xDMXGetWindowAttributesReply;
295#define sz_xDMXGetWindowAttributesReply 32
296
297/** Wire-level description of DMXGetDesktopAttributes protocol request. */
298typedef struct {
299 CARD8 reqType; /* DMXCode */
300 CARD8 dmxReqType; /* X_DMXGetDesktopAttributes */
301 CARD16 length;
302} xDMXGetDesktopAttributesReq;
303#define sz_xDMXGetDesktopAttributesReq 4
304
305/** Wire-level description of DMXGetDesktopAttributes protocol reply. */
306typedef struct {
307 BYTE type; /* X_Reply */
308 CARD8 unused;
309 CARD16 sequenceNumber;
310 CARD32 length;
311 INT16 width;
312 INT16 height;
313 INT16 shiftX;
314 INT16 shiftY;
315 CARD32 pad0;
316 CARD32 pad1;
317 CARD32 pad2;
318 CARD32 pad3;
319} xDMXGetDesktopAttributesReply;
320#define sz_xDMXGetDesktopAttributesReply 32
321
322/** Wire-level description of DMXChangeDesktopAttributes protocol request. */
323typedef struct {
324 CARD8 reqType; /* DMXCode */
325 CARD8 dmxReqType; /* X_DMXChangeDesktopAttributes */
326 CARD16 length;
327 CARD32 valueMask;
328} xDMXChangeDesktopAttributesReq;
329#define sz_xDMXChangeDesktopAttributesReq 8
330
331/** Wire-level description of DMXChangeDesktopAttributes protocol reply. */
332typedef struct {
333 BYTE type; /* X_Reply */
334 CARD8 unused;
335 CARD16 sequenceNumber;
336 CARD32 length;
337 CARD32 status;
338 CARD32 pad0;
339 CARD32 pad1;
340 CARD32 pad2;
341 CARD32 pad3;
342 CARD32 pad4;
343} xDMXChangeDesktopAttributesReply;
344#define sz_xDMXChangeDesktopAttributesReply 32
345
346/** Wire-level description of DMXGetInputCount protocol request. */
347typedef struct {
348 CARD8 reqType; /* DMXCode */
349 CARD8 dmxReqType; /* X_DMXGetInputCount */
350 CARD16 length;
351} xDMXGetInputCountReq;
352#define sz_xDMXGetInputCountReq 4
353
354/** Wire-level description of DMXGetInputCount protocol reply. */
355typedef struct {
356 BYTE type; /* X_Reply */
357 CARD8 unused;
358 CARD16 sequenceNumber;
359 CARD32 length;
360 CARD32 inputCount;
361 CARD32 pad0;
362 CARD32 pad1;
363 CARD32 pad2;
364 CARD32 pad3;
365 CARD32 pad4;
366} xDMXGetInputCountReply;
367#define sz_xDMXGetInputCountReply 32
368
369/** Wire-level description of DMXGetInputAttributes protocol request. */
370typedef struct {
371 CARD8 reqType; /* DMXCode */
372 CARD8 dmxReqType; /* X_DMXGetInputAttributes */
373 CARD16 length;
374 CARD32 deviceId;
375} xDMXGetInputAttributesReq;
376#define sz_xDMXGetInputAttributesReq 8
377
378/** Wire-level description of DMXGetInputAttributes protocol reply. */
379typedef struct {
380 BYTE type; /* X_Reply */
381 CARD8 unused;
382 CARD16 sequenceNumber;
383 CARD32 length;
384 CARD32 inputType;
385 CARD32 physicalScreen;
386 CARD32 physicalId;
387 CARD32 nameLength;
388 BOOL isCore;
389 BOOL sendsCore;
390 BOOL detached;
391 CARD8 pad0;
392 CARD32 pad1;
393} xDMXGetInputAttributesReply;
394#define sz_xDMXGetInputAttributesReply 32
395
396/** Wire-level description of DMXAddInput protocol request. */
397typedef struct {
398 CARD8 reqType; /* DMXCode */
399 CARD8 dmxReqType; /* X_DMXAddInput */
400 CARD16 length;
401 CARD32 displayNameLength;
402 CARD32 valueMask;
403} xDMXAddInputReq;
404#define sz_xDMXAddInputReq 12
405
406/** Wire-level description of DMXAddInput protocol reply. */
407typedef struct {
408 BYTE type; /* X_Reply */
409 CARD8 unused;
410 CARD16 sequenceNumber;
411 CARD32 length;
412 CARD32 status;
413 CARD32 physicalId;
414 CARD32 pad0;
415 CARD32 pad1;
416 CARD32 pad2;
417 CARD32 pad3;
418} xDMXAddInputReply;
419#define sz_xDMXAddInputReply 32
420
421/** Wire-level description of DMXRemoveInput protocol request. */
422typedef struct {
423 CARD8 reqType; /* DMXCode */
424 CARD8 dmxReqType; /* X_DMXRemoveInput */
425 CARD16 length;
426 CARD32 physicalId;
427} xDMXRemoveInputReq;
428#define sz_xDMXRemoveInputReq 8
429
430/** Wire-level description of DMXRemoveInput protocol reply. */
431typedef struct {
432 BYTE type;
433 CARD8 unused;
434 CARD16 sequenceNumber;
435 CARD32 length;
436 CARD32 status;
437 CARD32 pad0;
438 CARD32 pad1;
439 CARD32 pad2;
440 CARD32 pad3;
441 CARD32 pad4;
442} xDMXRemoveInputReply;
443#define sz_xDMXRemoveInputReply 32
444
445#endif