Imported Upstream version 1.15.1
[deb_xorg-server.git] / hw / dmx / doc / DMXSpec.txt
CommitLineData
a09e091a
JB
1
2
3 Client-to-Server DMX Extension to the X Protocol
4
5 $Date$, $Revision$
6
7 Rickard E. (Rik) Faith (faith@redhat.com)
8 Kevin E. Martin (kem@redhat.com)
9
10 Copyright 2002-2004 Red Hat Inc., Raleigh, North Carolina.
11
12 Permission is hereby granted, free of charge, to any person
13 obtaining a copy of this software and associated documentation files
14 (the "Software"), to deal in the Software without restriction,
15 including without limitation on the rights to use, copy, modify,
16 merge, publish, distribute, sublicense, and/or sell copies of the
17 Software, and to permit persons to whom the Software is furnished to
18 do so, subject to the following conditions:
19
20 The above copyright notice and this permission notice (including the
21 next paragraph) shall be included in all copies or substantial
22 portions of the Software.
23
24 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
25 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
26 MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
27 NON-INFRINGEMENT. IN NO EVENT SHALL RED HAT AND/OR THEIR SUPPLIERS
28 BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
29 ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
30 CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
31 SOFTWARE.
32
33
34
351. Overview
36
37 The client-to-server DMX extension to the X protocol (DMX) provides
38 normal client applications with the ability to determine information
39 about the characteristics of the Xdmx server and the back-end X
40 servers that DMX is using.
41
42 The name for this extension is "DMX".
43
44
45
462. Syntactic conventions
47
48 This document uses the same syntactic conventions requests and data
49 types as [X11R6.4].
50
51
52
533. Data types
54
55 No new data types are defined by this extension. All data types
56 referenced in this document are defined in [X11R6.4].
57
58
59
604. Requests
61
62 DMXQueryVersion
63 ==>
64 majorVersion: CARD32
65 minorVersion: CARD32
66 patchVersion: CARD32
67
68 Errors: None
69
70 The protocol this extension actually supports is indicated by
71 majorVersion and minorVersion (patchVersion indicates the
72 patchlevel and is for informational purposes only).
73
74 Any incompatible changes to the protocol should be indicated by
75 incrementing majorVersion.
76
77 Small, upward-compatible changes should be indicated by incrementing
78 minorVersion.
79
80 Servers that support the protocol defined in this document will
81 return a majorVersion of 2 and a minorVersion of 2.
82
83 (Version 1.5 was the last version in the 1.x series; version 2.0 was
84 a testing version that was poorly defined.)
85
86
87
88 DMXSync
89 ==>
90 status: CARD32
91
92 Errors: None
93
94 This request was first supported in version 1.5 of this protocol.
95 The status field in the reply was introduced in version 2.0 of this
96 protocol. Since the status field is ignored, no changes to the
97 underlying protocol were required.
98
99 This request flushes all pending protocol requests between the Xdmx
100 server and each back-end X server. It is used by clients that
101 talk directly to back-end X servers to ensure that all pending Xdmx
102 requests have reached all back-end servers and have been processed
103 by those servers.
104
105 The value of status is always 0.
106
107
108
109 DMXForceWindowCreation
110 window: CARD32
111 ==>
112 status: CARD32
113
114 Errors: Window
115
116 This request was first supported in version 1.2 of this protocol.
117 This request was changed to have a reply in version 2.0 of this
118 protocol. The old version of this request was deprecated and will
119 return BadImplementation.
120
121 When using the lazy window creation optimization, windows are not
122 created on the back-end X servers until they are required. This
123 request forces the immediate creation of the window requested.
124
125 The value of status is always 0.
126
127
128
129
130 DMXGetScreenCount
131 ==>
132 screenCount: CARD32
133
134 Errors: None
135
136 This request returns the number of screens that the Xdmx server
137 controls. Since a DMX screen usually fills all of the available
138 area on a back-end server, there is usually a one-to-one
139 correspondence between DMX screens and backend servers. However, it
140 is also possible for a DMX screen to cover only part of the
141 available area on a back-end server, and for more than one DMX
142 screen to occupy different parts of the visible area on the same
143 back-end server.
144
145 A DMX screen may be managed as a regular X screen in the Xdmx server
146 or may be joined with other DMX screens using Xinerama.
147
148
149
150 DMXGetScreenAttributes
151 physicalScreen: CARD32
152 ==>
153 displayName: STRING8
154 logicalScreen: CARD32
155 screenWindowWidth: CARD16
156 screenWindowHeight: CARD16
157 screenWindowXoffset: INT16
158 screenWindowYoffset: INT16
159 rootWindowWidth: CARD16
160 rootWindowHeight: CARD16
161 rootWindowXoffset: INT16
162 rootWindowYoffset: INT16
163 rootWindowXorigin: INT16
164 rootWindowYorigin: INT16
165
166 Errors: Value
167
168 This request is new in version 2.0 of this protocol. The old
169 DMXGetScreenInformation request is deprecated and will now return
170 BadImplementation.
171
172 This request returns attributes about a single DMX screen.
173
174 The physicalScreen value is between 0 and screenCount-1, inclusive
175 (values outside this range will result in a Value error).
176
177 The displayname is the name used to open the display, either from
178 the Xdmx command-line or from the configuration file.
179
180 The logicalScreen value is the value of the screen that that Xdmx
181 server exports to clients. When Xinerama is in use, this value is
182 typically 0 for all values of physicalScreen. If Xinerama is in
183 use, the rootWindowXOrigin and rootWindowYOrigin values specify
184 where the physical screen is positioned in the global Xinerama
185 coordinate system. Otherwise, these values are set to 0.
186
187 The screenWindow values comprise a geometry specification (see
188 X(7x)) for the location of the DMX screen on the back-end screen.
189 The coordinant system of the back-end display is used.
190
191 The first four rootWindow values comprise a geometry specification
192 (see X(7x)) for the location of the root window on the screen
193 window. The coordinant system of the screen window is used. In
194 most cases, the root window will have the same geometry as the DMX
195 screen window, and will occupy the same area of the back-end
196 display. (This would not be the case, for example, if automatic
197 projector alignment is used.)
198
199
200
201 DMXChangeScreensAttributes
202 screenCount: CARD32
203 maskCount: CARD32
204 screens: LISTofCARD32
205 valueMasks: LISTofCARD32
206 valueList: LISTofVALUES
207 ==>
208 status: CARD32
209 errorScreen: CARD32
210
211 Errors: Length, Alloc
212
213 This request was first supported in version 2.0 of this protocol.
214 (A singular version of this request with the ability to change some
215 RootWindow attributes was supported in version 1.3 of this protocol,
216 has been deprecated, and will return BadImplementation.)
217
218 This request changes the geometries and positions of the DMX screen
219 and DMX root windows on the back-end X servers.
220
221 The valueMask and valueList specify which attributes are to be
222 changed. The possible values are:
223
224 Attribute Type
225
226 ScreenWindowWidth CARD16
227 ScreenWindowHeight CARD16
228 ScreenWindowXoffset INT16
229 ScreenWindowYoffset INT16
230 RootWindowWidth CARD16
231 RootWindowHeight CARD16
232 RootWindowXoffset INT16
233 RootWindowYoffset INT16
234 RootWindowXorigin INT16
235 RootWindowYorigin INT16
236
237 The attribute values have the same meaning as do the corresponding
238 values for DMXGetScreenAttributes.
239
240 Non-fatal errors will be returned in status (0 otherwise):
241 DmxBadXinerama: Xinerama is not active
242 DmxBadValue: The resulting position is not allowed
243 (e.g., one corner is outside the bounding box)
244 On error, errorScreen will contain the number of the screen that
245 caused the first error.
246
247
248
249 DMXAddScreen
250 displayName: STRING8
251 physicalScreen: CARD32
252 valueMask: CARD32
253 valueList: LISTofVALUES
254 ==>
255 status: CARD32
256 physicalScreen: CARD32
257
258 Errors: Length, Alloc, Value
259
260 This request was first supported in version 2.2 of this protocol.
261
262 This request re-attaches the back-end physicalScreen to the Xdmx
263 server. Only back-end screens that have been previously detached
264 with DMXRemoveScreen may be added. The name of the back-end display
265 is given in displayName, and this will replace the name of the
266 back-end screen that was detached. Both the displayName and
267 physicalScreen must be correct for this request to work.
268
269 The valueMask and valueList specify the attributes to be used. The
270 possible values are:
271
272 Attribute Type
273
274 ScreenWindowWidth CARD16
275 ScreenWindowHeight CARD16
276 ScreenWindowXoffset INT16
277 ScreenWindowYoffset INT16
278 RootWindowWidth CARD16
279 RootWindowHeight CARD16
280 RootWindowXoffset INT16
281 RootWindowYoffset INT16
282 RootWindowXorigin INT16
283 RootWindowYorigin INT16
284
285 The attribute values have the same meaning as do the corresponding
286 values for DMXGetScreenAttributes.
287
288 On success, status will be 0 and physicalScreen will contain the new
289 screen number. On failure, status will be non-zero. The status
290 will be 1 if any of the following occured:
291 * the -addremovescreens command-line option was not specified on
292 the Xdmx command line
293 * the value of physicalScreen is out of range
294 * physicalScreen has not been detached (with DMXRemoveScreen)
295 * displayName cannot be opened
296 * the visuals of displayname do not match the visuals that Xdmx
297 is using
298 * the screen data for displayName does not match the data for the
299 previously removed display
300 The status will be DmxBadValue if the attribute values are out of
301 range.
302
303
304
305 DMXRemoveScreen
306 physicalScreen: CARD32
307 ==>
308 status: CARD32
309
310 Errors: None
311
312 This request was first supported in version 2.2 of this protocol.
313
314 This request detaches the physicalScreen screen.
315
316 On success, status will be 0. On failure, the status will 1 if any
317 of the following occur:
318 * the -addremovescreens command-line option was not specified on
319 the Xdmx command line
320 * the value of physicalScreen is out of range
321 * the back-end screen has already been detached.
322
323
324
325 DMXGetWindowAttributes
326 window: CARD32
327 ==>
328 screenCount: CARD32
329 screens: LISTofCARD32
330 windows: LISTofCARD32
331 pos: LISTofRECTANGLE
332 vis: LISTofRECTANGLE
333
334 Errors: Window, Alloc
335
336 This request computes the return values incorrectly for version 1.0
337 of this protocol. Version 1.1 of this protocol conforms to this
338 description. In version 2.0, the name of this request was changed
339 from DMXGetWindowInformation. However, since the request itself did
340 not change, no changes to the underlying protocol were made.
341
342 Given a window ID on the Xdmx server, this request returns data
343 about how the window is represented on the back-end X servers. For
344 each back-end X server that displays a portion of the window, the
345 following information is returned:
346 1) the number of the physical screen containing that portion
347 (which can be used with the DMXGetScreenAttributes request
348 to obtain more information about the screen),
349 2) the window ID on the back-end X server of the window
350 containing that portion,
351 3) the position and dimensions of the window on the back-end, in
352 screen coordinates, and
353 4) the visible area of the window on the back-end, in
354 window-relative coordinates (all zeros for windows that are
355 not visible).
356 Note that DMX allows multiple back-end windows to overlap in their
357 view of the DMX logical window. Further, a logical window does not
358 have to be completely covered by back-end windows -- there may be
359 gaps.
360
361 As an example, consider a 500x500 window that spans the top two
362 1024x768 back-end displays (A and B) of a 2048x1536 DMX display
363 composed of 4 1024x768 back-end displays arranged in a cube:
364 A B
365 C D
366
367 In this case, the DMXGetWindowAttributes call would return the
368 following information for the 500x500 window:
369
370 display A: 500x500 window at 1024-250,0 (relative to back end)
371 with 250x500 visible at 0,0 (relative to window origin)
372
373 display B: 500x500 window at -250,0 (relative to back end)
374 with 250x500 visible at 250,0 (relative to window origin)
375
376 display C: 500x500 window at 1024-250,-768 with 0x0 visible at 0,0
377
378 display D: 500x500 window at -250,-768 with 0x0 visible at 0,0
379
380 Note that if the specified window has not yet been mapped when
381 DMXGetWindowAttributes is called, then a subsequent XMapWindow call
382 might be buffered in xlib while requests directly to the back-end X
383 servers are processed. This race condition can be solved by calling
384 DMXSync before talking directly to the back-end X servers.
385
386
387
388 DMXGetDesktopAttributes
389 ==>
390 width: INT16
391 height: INT16
392 shiftX: INT16
393 shiftY: INT16
394
395 Errors: None
396
397 This request was first supported in version 2.0 of this protocol.
398
399 This request returns the size of the bounding box of the whole
400 screen in width and height. The shiftX and shiftY values will
401 always be 0. The global bounding box is computed whether or not
402 Xinerama is active, and may be larger than the Xinerama screen size
403 because of information in the configuration file.
404
405
406
407 DMXChangeDesktopAttributes
408 valueMask: BITMASK
409 valueList: LISTofVALUE
410 ==>
411 status: CARD32
412
413 Errors: Length, Value
414
415 This request was first supported in version 2.0 of this protocol.
416
417 This request resizes the bounding box of the whole screen when using
418 the Xinerama extension. Otherwise, it has no effect on the screen
419 layout. The valueMask and valueList specify which attributes are to
420 be changed. The possible values are:
421
422 Attriubute Type
423
424 Width INT16
425 Height INT16
426 ShiftX INT16
427 ShiftY INT16
428
429 Width and Height specify the new width and height for the bounding
430 box. ShiftX and ShiftY specify where the Xinerama origin will be
431 placed with respect to the origin of the new bounding box. This
432 allows the left and upper edges of the bounding box to be changed
433 without changing the visual position of the windows on the desktop.
434 If Width or Height is not specified, the current values will be
435 used. If ShiftX or ShiftY is not specified, 0 will be used.
436
437 All coordinants are in the global DMX coordinant system. If
438 Xinerama is not active, this request is not useful.
439
440 Non-fatal errors will be returned in status (0 otherwise):
441 DmxBadXinerama: Xinerama is not active
442 DmxBadValue: The size of the bounding box is too large
443
444
445
446 DMXGetInputCount
447 ==>
448 inputCount: CARD32
449
450 This request was first supported in version 1.1 of this protocol.
451
452 This request returns the number of input devices connected to the
453 Xdmx server. This number is the same as that returned by
454 XListInputDevices, but is available even when the XInput extension
455 is not supported.
456
457
458
459 DMXGetInputAttributes
460 deviceId: CARD32
461 ==>
462 inputType: CARD32
463 physicalScreen: CARD32
464 physicalId: CARD32
465 isCore: BOOL
466 sendsCore: BOOL
467 detached: BOOL
468 name: STRING8
469
470 Errors: Value
471
472 This request was first supported in version 1.1 of this protocol.
473 In version 2.0, the name of this request was changed from
474 DMXGetInputInformation. However, since the request itself did not
475 change, no changes to the underlying protocol were made. In version
476 2.2, the name of detached was changed from reservation. There was
477 no change in underlying protocol.
478
479 This request returns information about the specified input device
480 that cannot be obtained from the XListInputDeivices call. The
481 deviceId is the same as that used by the XListInputDevices call, and
482 must be in the range 0 to inputCount-1, inclusive (values outside
483 this range will result in a Value error).
484
485 The value of inputType will always be valid, and will be one of the
486 following values:
487 0 for local (and dummy) devices,
488 1 for console devices, and
489 2 for back-end devices.
490
491 For local devices, all other fields returned, except isCore and
492 sendsCore, are invalid.
493
494 For console devices, the physicalScreen and physicalID will be
495 invalid, and the name will return the name of the X server on which
496 the console window is displayed.
497
498 For back-end devices, the physicalScreen will identify the back-end
499 display and can be used as an argument to DMXGetScreenAttributes to
500 obtain more information; the physicalId will be the XInput device id
501 on the back-end X server; and the name will be invalid (since it
502 does not provide any additional information that cannot be obtained
503 with DMXGetScreenAttributes).
504
505 If isCore is True, then this device is active as a true core input
506 device and will send core events. If sendsCore is True, then this
507 device is an XInput extension device, but sends core events instead
508 of extension events. Note that this behavior is different from that
509 of XFree86 or Xorg, where XInput extension devices may send both
510 extension events and core events.
511
512 If detached is True, then this device has been detached and is no
513 longer producing input events. The device may be reattached using
514 DMXAddInput.
515
516
517
518 DMXAddInput
519 displayName: STRING8
520 valueMask: CARD32
521 valueList: LISTofVALUES
522 ==>
523 status: CARD32
524 physicalId: CARD32
525
526 Errors: Value, Access
527
528 This request was first supported in version 2.2 of this protocol.
529
530 The valueMask and valueList specify the attributes to be used. The
531 possible values are:
532
533 Attribute Type
534
535 InputType CARD32
536 InputPhysicalScreen CARD32
537 InputSendsCore BOOL
538
539 This request attaches an input device to the Xdmx server. The value
540 of inputType will be one:
541 1 for console devices, and
542 2 for back-end devices.
543 Other values of InputType will return a BadValue error. Local
544 devices (inputType=0 in DMXGetInputAttributes) cannot be attached or
545 removed. For console devices, displayName will store the name of
546 the display to be used.
547
548 For back-end devices, InputPhysicalScreen will specify the screen
549 number. BadValue will be returned if the screen number is out of
550 range. BadAccess will be returned if the input has already been
551 attached or if the backend screen is currently detached.
552
553 If InputSendsCore is True, the new device will be added as a true
554 core device.
555
556 If a device was removed with DMXRemoveInput an attempt will be made
557 to reconnect the previous devices (InputSendsCore is ignored in this
558 case).
559
560
561
562 DMXRemoveInput
563 physicalId: CARD32
564 ==>
565 status: CARD32
566
567 Errors: Value, Access
568
569 This request was first supported in version 2.2 of this protocol.
570
571 This request detaches the input device with physicalId, and all
572 associated inputs (e.g., if the physicalId is a backend mouse, and a
573 keyboard is also attached to the backend, then both devices will be
574 detached). If the physicalId is outside the valid range (0 to one
575 less than the value returned by DMXInputCount), BadValue is
576 returned. If the physicalId has already been detached, BadAccess is
577 returned. The status is always 0.
578
579
580
5815. Events
582
583 No new events are defined by this extension.
584
585
586
5876. Errors
588
589 No new events are defined by this extension.
590
591
592
5937. Encoding
594
595 Deprecated DMX opcodes:
596 DMXGetScreenInformation 2
597 DMXForceWindowCreation 6
598 DMXReconfigureScreen 7
599
600 Valid DMX opcodes:
601 DMXQueryVersion 0
602 DMXSync 8
603 DMXForceWindowCreation 9
604
605 DMXGetScreenCount 1
606 DMXGetScreenAttributes 10
607 DMXChangeScreensAttributes 11
608 DMXAddScreen 12
609 DMXRemoveScreen 13
610
611 DMXGetWindowAttributes 3
612
613 DMXGetDesktopAttributes 14
614 DMXChangeDesktopAttributes 15
615
616 DMXGetInputCount 4
617 DMXGetInputAttributes 5
618 DMXAddInput 16
619 DMXRemoveInput 17
620
621 DMXQueryVersion
622 1 CARD8 opcode (X assigned)
623 1 0 DMX opcode (X_DMXQueryVersion)
624 2 1 request length
625 ==>
626 1 1 Reply
627 1 unused
628 2 CARD16 sequence number
629 4 0 reply length
630 4 CARD32 majorVersion
631 4 CARD32 minorVersion
632 4 CARD32 patchVersion
633 12 unused
634
635 DMXSync
636 1 CARD8 opcode (X assigned)
637 1 8 DMX opcode (X_DMXSync)
638 2 1 request length
639 ==>
640 1 1 Reply
641 1 unused
642 2 CARD16 sequence number
643 4 0 reply length
644 4 CARD32 status
645 20 unused
646
647 DMXForceWindowCreation
648 1 CARD8 opcode (X assigned)
649 1 9 DMX opcode (X_DMXForceWindowCreation)
650 2 2 request length
651 4 CARD32 window
652 ==>
653 1 1 Reply
654 1 unused
655 2 CARD16 sequence number
656 4 0 reply length
657 4 CARD32 status
658 20 unused
659
660
661 DMXGetScreenCount
662 1 CARD8 opcode (X assigned)
663 1 1 DMX opcode (X_DMXGetScreenCount)
664 2 1 request length
665 ==>
666 1 1 Reply
667 1 unused
668 2 CARD16 sequence number
669 4 0 reply length
670 4 CARD32 screenCount
671 20 unused
672
673 DMXGetScreenAttributes
674 1 CARD8 opcode (X assigned)
675 1 10 DMX opcode (X_DMXGetScreenAttributes)
676 2 2 request length
677 4 CARD32 physicalScreen
678 ==>
679 1 1 Reply
680 1 unused
681 2 CARD16 sequence number
682 4 1+(n+p)/4 reply length
683 4 n displayNameLength
684 4 CARD32 logicalScreen
685 2 CARD16 screenWindowWidth
686 2 CARD16 screenWindowHeight
687 2 INT16 screenWindowXoffset
688 2 INT16 screenWindowYoffset
689 2 CARD16 rootWindowWidth
690 2 CARD16 rootWindowHeight
691 2 INT16 rootWindowXoffset
692 2 INT16 rootWindowYoffset
693 2 INT16 rootWindowXorigin
694 2 INT16 rootWindowYorigin
695 n displayName
696 p pad(n)
697
698 DMXChangeScreensAttributes
699 1 CARD8 opcode (X assigned)
700 1 11 DMX opcode (X_DMXChangeScreenAttributes)
701 2 3+s+m+n request length
702 4 s screenCount
703 4 m maskCount
704 4s LISTofCARD32 screens
705 4m LISTofCARD32 valueMasks
706 4n LISTofVALUES valueList
707 ==>
708 1 1 Reply
709 1 unused
710 2 CARD16 sequence number
711 4 0 reply length
712 4 CARD32 status
713 4 CARD32 errorScreen
714 16 unused
715
716
717 DMXAddScreen
718 1 CARD8 opcode (X assigned)
719 1 12 DMX opcode (X_DMXAddScreen)
720 2 3+m+(n+p)/4 request length
721 4 n displayNameLength
722 4 CARD32 physicalScreen
723 4 CARD32 valueMask
724 4m LISTofVALUES valueList
725 n displayName
726 p pad(n)
727 ==>
728 1 1 Reply
729 1 unused
730 2 CARD16 sequence number
731 4 0 reply length
732 4 CARD32 status
733 4 CARD32 physicalScreen
734 16 unused
735
736 DMXRemoveScreen
737 1 CARD8 opcode (X assigned)
738 1 13 DMX opcode (X_DMXRemoveScreen)
739 2 2 request length
740 4 CARD32 physicalScreen
741 ==>
742 1 1 Reply
743 1 unused
744 2 CARD16 sequence number
745 4 0 reply length
746 4 CARD32 status
747 20 unused
748
749 DMXGetWindowAttributes
750 1 CARD8 opcode (X assigned)
751 1 3 DMX opcode (X_DMXGetWindowAttributes)
752 2 2 request length
753 4 CARD32 window
754 ==>
755 1 1 Reply
756 1 unused
757 2 CARD16 sequence number
758 4 n*6 reply length
759 4 n screenCount
760 20 unused
761 n*4 LISTofCARD32 screens
762 n*4 LISTofCARD32 windows
763 n*8 LISTofRECTANGLE pos
764 n*8 LISTofRECTANGLE vis
765
766 DMXGetDesktopAttributes
767 1 CARD8 opcode (X assigned)
768 1 14 DMX opcode (X_DMXGetDesktopAttributes)
769 2 1 request length
770 ==>
771 1 1 Reply
772 1 unused
773 2 CARD16 sequence number
774 4 0 reply length
775 2 INT16 width
776 2 INT16 height
777 2 INT16 shiftX
778 2 INT16 shiftY
779 16 unused
780
781 DMXChangeDesktopAttributes
782 1 CARD8 opcode (X assigned)
783 1 15 DMX opcode (X_DMXChangeDesktopAttributes)
784 2 2+n request length
785 4 BITMASK valueMask
786 4n LISTofVALUES valueList
787 ==>
788 1 1 Reply
789 1 unused
790 2 CARD16 sequence number
791 4 0 reply length
792 4 CARD32 status
793 20 unused
794
795 DMXGetInputCount
796 1 CARD8 opcode (X assigned)
797 1 4 DMX opcode (X_DMXGetInputCount)
798 2 1 request length
799 ==>
800 1 1 Reply
801 1 unused
802 2 CARD16 sequence number
803 4 0 reply length
804 4 CARD32 inputCount
805 20 unused
806
807 DMXGetInputAttributes
808 1 CARD8 opcode (X assigned)
809 1 5 DMX opcode (X_DMXGetInputAttributes)
810 2 2 request length
811 4 CARD32 deviceId
812 ==>
813 1 1 Reply
814 1 unused
815 2 CARD16 sequence number
816 4 (n+p)/4 reply length
817 4 CARD32 inputType
818 4 CARD32 physicalScreen
819 4 CARD32 physicalId
820 4 n nameLength
821 1 BOOL isCore
822 1 BOOL sendsCore
823 1 BOOL detached
824 5 unused
825 n name
826 p pad(n)
827
828 DMXAddInput
829 1 CARD8 opcode (X assigned)
830 1 16 DMX opcode (X_DMXAddInput)
831 2 3+m+(n+p)/4 request length
832 4 n displayNameLength
833 4 CARD32 valueMask
834 4m LISTofVALUES valueList
835 n displayName
836 p pad(n)
837 ==>
838 1 1 Reply
839 1 unused
840 2 CARD16 sequence number
841 4 0 reply length
842 4 CARD32 status
843 4 CARD32 physicalId
844 16 unused
845
846 DMXRemoveInput
847 1 CARD8 opcode (X assigned)
848 1 17 DMX opcode (X_DMXRemoveInput)
849 2 3 request length
850 4 CARD32 physicalId
851 ==>
852 1 1 Reply
853 1 unused
854 2 CARD16 sequence number
855 4 0 reply length
856 4 CARD32 status
857 20 unused
858
859
8608. Changes to existing requests/replies/events
861
862 No changes to existing requests, replies, or events are necessitated
863 by this extension.
864
865
866
8679. Acknowledgments
868
869
870
87110. References
872
873 [X11R6.4] Robert W. Sheifler. X Window System Protocol, X Consortium
874 Standard, X Version 11, Release 6.4. Available from
875 xc/doc/specs/XProtocol and xc/doc/hardcopy/XProtocol.