lbxstr.h
上传用户:lctgjx
上传日期:2022-06-04
资源大小:8887k
文件大小:24k
源码类别:

流媒体/Mpeg4/MP4

开发平台:

Visual C++

  1. /* $Xorg: lbxstr.h,v 1.4 2001/02/13 20:14:04 pookie Exp $ */
  2. /*
  3.  * Copyright 1992 Network Computing Devices
  4.  *
  5.  * Permission to use, copy, modify, distribute, and sell this software and its
  6.  * documentation for any purpose is hereby granted without fee, provided that
  7.  * the above copyright notice appear in all copies and that both that
  8.  * copyright notice and this permission notice appear in supporting
  9.  * documentation, and that the name of NCD. not be used in advertising or
  10.  * publicity pertaining to distribution of the software without specific,
  11.  * written prior permission.  NCD. makes no representations about the
  12.  * suitability of this software for any purpose.  It is provided "as is"
  13.  * without express or implied warranty.
  14.  *
  15.  * NCD. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
  16.  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL NCD.
  17.  * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
  18.  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
  19.  * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN 
  20.  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  21.  *
  22.  */
  23. /* $XFree86: xc/include/extensions/lbxstr.h,v 1.2 2001/08/01 00:44:35 tsi Exp $ */
  24.  
  25. #ifndef _LBXSTR_H_
  26. #define _LBXSTR_H_
  27. #include <X11/extensions/XLbx.h>
  28. #define LBXNAME "LBX"
  29. #define LBX_MAJOR_VERSION 1
  30. #define LBX_MINOR_VERSION 0
  31. /*
  32.  * Redefine some basic types used by structures defined herein.  This removes
  33.  * any possibility on 64-bit architectures of one entity viewing communicated
  34.  * data as 32-bit quantities and another entity viewing the same data as 64-bit
  35.  * quantities.
  36.  */
  37. #define XID CARD32
  38. #define Atom CARD32
  39. #define Colormap CARD32
  40. #define Drawable CARD32
  41. #define VisualID CARD32
  42. #define Window CARD32
  43. typedef struct {
  44.     BOOL success; /* TRUE */
  45.     BOOL changeType;
  46.     CARD16 majorVersion B16,
  47. minorVersion B16;
  48.     CARD16 length B16; /* 1/4 additional bytes in setup info */
  49.     CARD32 tag B32;
  50. } xLbxConnSetupPrefix;
  51. typedef struct _LbxQueryVersion {
  52.     CARD8 reqType; /* always LbxReqCode */
  53.     CARD8 lbxReqType; /* always X_LbxQueryVersion */
  54.     CARD16 length B16;
  55. } xLbxQueryVersionReq;
  56. #define sz_xLbxQueryVersionReq 4
  57. typedef struct {
  58.     BYTE type; /* X_Reply */
  59.     CARD8 unused;
  60.     CARD16 sequenceNumber B16;
  61.     CARD32 length B32;
  62.     CARD16 majorVersion B16; /* major version of LBX protocol */
  63.     CARD16 minorVersion B16; /* minor version of LBX protocol */
  64.     CARD32 pad0 B32;
  65.     CARD32 pad1 B32;
  66.     CARD32 pad2 B32;
  67.     CARD32 pad3 B32;
  68.     CARD32 pad4 B32;
  69. } xLbxQueryVersionReply;
  70. #define sz_xLbxQueryVersionReply 32
  71. typedef struct _LbxStartProxy {
  72.     CARD8 reqType; /* always LbxReqCode */
  73.     CARD8 lbxReqType; /* always X_LbxStartProxy */
  74.     CARD16 length B16;
  75. } xLbxStartProxyReq;
  76. #define sz_xLbxStartProxyReq     4
  77. typedef struct _LbxStopProxy {
  78.     CARD8 reqType; /* always LbxReqCode */
  79.     CARD8 lbxReqType; /* always X_LbxStopProxy */
  80.     CARD16 length B16;
  81. } xLbxStopProxyReq;
  82. #define sz_xLbxStopProxyReq     4
  83. typedef struct _LbxSwitch {
  84.     CARD8 reqType; /* always LbxReqCode */
  85.     CARD8 lbxReqType; /* always X_LbxSwitch */
  86.     CARD16 length B16;
  87.     CARD32 client B32; /* new client */
  88. } xLbxSwitchReq;
  89. #define sz_xLbxSwitchReq 8
  90. typedef struct _LbxNewClient {
  91.     CARD8 reqType; /* always LbxReqCode */
  92.     CARD8 lbxReqType; /* always X_LbxNewClient */
  93.     CARD16 length B16;
  94.     CARD32 client B32; /* new client */
  95. } xLbxNewClientReq;
  96. #define sz_xLbxNewClientReq 8
  97. typedef struct _LbxCloseClient {
  98.     CARD8 reqType; /* always LbxReqCode */
  99.     CARD8 lbxReqType; /* always X_LbxCloseClient */
  100.     CARD16 length B16;
  101.     CARD32 client B32; /* new client */
  102. } xLbxCloseClientReq;
  103. #define sz_xLbxCloseClientReq 8
  104. typedef struct _LbxModifySequence {
  105.     CARD8 reqType; /* always LbxReqCode */
  106.     CARD8 lbxReqType; /* always X_LbxModifySequence */
  107.     CARD16 length B16;
  108.     CARD32 adjust B32;
  109. } xLbxModifySequenceReq;
  110. #define sz_xLbxModifySequenceReq    8
  111.     
  112. typedef struct _LbxAllowMotion {
  113.     CARD8 reqType; /* always LbxReqCode */
  114.     CARD8 lbxReqType; /* always X_LbxAllowMotion */
  115.     CARD16 length B16;
  116.     CARD32 num B32;
  117. } xLbxAllowMotionReq;
  118. #define sz_xLbxAllowMotionReq    8
  119.     
  120. typedef struct {
  121.     CARD8 reqType; /* always LbxReqCode */
  122.     CARD8 lbxReqType; /* always X_LbxGrabCmap */
  123.     CARD16 length B16;
  124.     Colormap cmap B32;
  125. } xLbxGrabCmapReq;    
  126. #define sz_xLbxGrabCmapReq 8
  127. #define LBX_SMART_GRAB 0x80
  128. #define LBX_AUTO_RELEASE 0x40
  129. #define LBX_3CHANNELS 0x20
  130. #define LBX_2BYTE_PIXELS 0x10
  131. #define LBX_RGB_BITS_MASK 0x0f
  132. #define LBX_LIST_END 0
  133. #define LBX_PIXEL_PRIVATE 1
  134. #define LBX_PIXEL_SHARED 2
  135. #define LBX_PIXEL_RANGE_PRIVATE 3
  136. #define LBX_PIXEL_RANGE_SHARED 4
  137. #define LBX_NEXT_CHANNEL 5
  138. typedef struct {
  139.     BYTE type; /* X_Reply */
  140.     CARD8 flags;
  141.     CARD16 sequenceNumber B16;
  142.     CARD32 length B32;
  143.     CARD32 pad0 B16;
  144.     CARD32 pad1 B32;
  145.     CARD32 pad2 B32;
  146.     CARD32 pad3 B32;
  147.     CARD32 pad4 B32;
  148.     CARD32 pad5 B16;
  149. } xLbxGrabCmapReply;
  150. #define sz_xLbxGrabCmapReply 32
  151. #define sz_xLbxGrabCmapReplyHdr 8
  152. typedef struct {
  153.     CARD8 reqType; /* always LbxReqCode */
  154.     CARD8 lbxReqType; /* always X_LbxReleaseCmap */
  155.     CARD16 length B16;
  156.     Colormap cmap B32;
  157. } xLbxReleaseCmapReq;    
  158. #define sz_xLbxReleaseCmapReq 8
  159. typedef struct {
  160.     CARD8 reqType; /* always LbxReqCode */
  161.     CARD8 lbxReqType; /* always X_LbxAllocColor */
  162.     CARD16 length B16;
  163.     Colormap cmap B32;
  164.     CARD32 pixel B32;
  165.     CARD16 red B16, green B16, blue B16;
  166.     CARD16 pad B16;
  167. } xLbxAllocColorReq;    
  168. #define sz_xLbxAllocColorReq 20
  169. typedef struct _LbxIncrementPixel {
  170.     CARD8 reqType; /* always LbxReqCode */
  171.     CARD8 lbxReqType; /* always X_LbxIncrementPixel */
  172.     CARD16 length B16;
  173.     CARD32 cmap B32;
  174.     CARD32 pixel B32;
  175. } xLbxIncrementPixelReq;
  176. #define sz_xLbxIncrementPixelReq    12
  177. typedef struct _LbxDelta {
  178.     CARD8 reqType; /* always LbxReqCode */
  179.     CARD8 lbxReqType; /* always X_LbxDelta */
  180.     CARD16 length B16;
  181.     CARD8 diffs; /* number of diffs */
  182.     CARD8 cindex; /* cache index */
  183. /* list of diffs follows */
  184. } xLbxDeltaReq;
  185. #define sz_xLbxDeltaReq    6
  186. typedef struct _LbxGetModifierMapping {
  187.     CARD8 reqType; /* always LbxReqCode */
  188.     CARD8 lbxReqType; /* always X_LbxGetModifierMapping */
  189.     CARD16 length B16;
  190. } xLbxGetModifierMappingReq;
  191. #define sz_xLbxGetModifierMappingReq 4
  192. typedef struct {
  193.     BYTE type; /* X_Reply */
  194.     CARD8 keyspermod;
  195.     CARD16 sequenceNumber B16;
  196.     CARD32 length B32;
  197.     CARD32 tag B32;
  198.     CARD32 pad0 B32;
  199.     CARD32 pad1 B32;
  200.     CARD32 pad2 B32;
  201.     CARD32 pad3 B32;
  202.     CARD32 pad4 B32;
  203. } xLbxGetModifierMappingReply;
  204. #define sz_xLbxGetModifierMappingReply 32
  205. typedef struct _LbxGetKeyboardMapping {
  206.     CARD8 reqType; /* always LbxReqCode */
  207.     CARD8 lbxReqType; /* always X_LbxGetKeyboardMapping */
  208.     CARD16 length B16;
  209.     KeyCode firstKeyCode;
  210.     CARD8 count;
  211.     CARD16 pad1 B16;
  212. } xLbxGetKeyboardMappingReq;
  213. #define sz_xLbxGetKeyboardMappingReq 8
  214. typedef struct {
  215.     BYTE type; /* X_Reply */
  216.     CARD8 keysperkeycode;
  217.     CARD16 sequenceNumber B16;
  218.     CARD32 length B32;
  219.     CARD32 tag B32;
  220.     CARD32 pad0 B32;
  221.     CARD32 pad1 B32;
  222.     CARD32 pad2 B32;
  223.     CARD32 pad3 B32;
  224.     CARD32 pad4 B32;
  225. } xLbxGetKeyboardMappingReply;
  226. #define sz_xLbxGetKeyboardMappingReply 32
  227. typedef struct _LbxQueryFont {
  228.     CARD8 reqType; /* always LbxReqCode */
  229.     CARD8 lbxReqType; /* always X_LbxQueryFont */
  230.     CARD16 length B16;
  231.     CARD32 fid B32;
  232. } xLbxQueryFontReq;
  233. #define sz_xLbxQueryFontReq 8
  234. typedef struct _LbxInternAtoms {
  235.     CARD8 reqType; /* always LbxReqCode */
  236.     CARD8 lbxReqType; /* always X_LbxInternAtoms */
  237.     CARD16 length B16;
  238.     CARD16 num B16;
  239. } xLbxInternAtomsReq;
  240. #define sz_xLbxInternAtomsReq 6  
  241. typedef struct {
  242.     BYTE type; /* X_Reply */
  243.     CARD8 unused;
  244.     CARD16 sequenceNumber B16;
  245.     CARD32 length B32;
  246.     CARD32 atomsStart B32;
  247.     CARD32 pad0 B32;
  248.     CARD32 pad1 B32;
  249.     CARD32 pad2 B32;
  250.     CARD32 pad3 B32;
  251.     CARD32 pad4 B32;
  252. } xLbxInternAtomsReply;
  253. #define sz_xLbxInternAtomsReply 32
  254. #define sz_xLbxInternAtomsReplyHdr 8
  255. typedef struct _LbxGetWinAttrAndGeom {
  256.     CARD8 reqType; /* always LbxReqCode */
  257.     CARD8 lbxReqType; /* always X_LbxGetWinAttrAndGeom */
  258.     CARD16 length B16;
  259.     CARD32 id B32; /* window id */
  260. } xLbxGetWinAttrAndGeomReq;
  261. #define sz_xLbxGetWinAttrAndGeomReq 8
  262. typedef struct {
  263.     BYTE type;  /* X_Reply */
  264.     CARD8 backingStore;
  265.     CARD16 sequenceNumber B16;
  266.     CARD32 length B32; /* NOT 0; this is an extra-large reply */
  267.     VisualID visualID B32;
  268. #if defined(__cplusplus) || defined(c_plusplus)
  269.     CARD16 c_class B16;
  270. #else
  271.     CARD16 class B16;
  272. #endif
  273.     CARD8 bitGravity;
  274.     CARD8 winGravity;
  275.     CARD32 backingBitPlanes B32;
  276.     CARD32 backingPixel B32;
  277.     BOOL saveUnder;
  278.     BOOL mapInstalled;
  279.     CARD8 mapState;
  280.     BOOL override;
  281.     Colormap colormap B32;
  282.     CARD32 allEventMasks B32;
  283.     CARD32 yourEventMask B32;
  284.     CARD16 doNotPropagateMask B16;
  285.     CARD16 pad1 B16;
  286.     Window root B32;
  287.     INT16 x B16, y B16;
  288.     CARD16 width B16, height B16;
  289.     CARD16 borderWidth B16;
  290.     CARD8 depth;
  291.     CARD8 pad2;
  292. } xLbxGetWinAttrAndGeomReply;
  293. #define sz_xLbxGetWinAttrAndGeomReply 60
  294. typedef struct {
  295.     CARD8 reqType; /* always LbxReqCode */
  296.     CARD8 lbxReqType; /* always X_LbxSync */
  297.     CARD16 length B16;
  298. } xLbxSyncReq;
  299. #define sz_xLbxSyncReq 4
  300. typedef struct {
  301.     BYTE type; /* X_Reply */
  302.     CARD8 pad0;
  303.     CARD16 sequenceNumber B16;
  304.     CARD32 length B32;
  305.     CARD32 pad1 B32;
  306.     CARD32 pad2 B32;
  307.     CARD32 pad3 B32;
  308.     CARD32 pad4 B32;
  309.     CARD32 pad5 B32;
  310.     CARD32 pad6 B32;
  311. } xLbxSyncReply;
  312. #define sz_xLbxSyncReply 32
  313. /* an LBX squished charinfo packs the data in a CARD32 as follows */
  314. #define LBX_WIDTH_SHIFT 26
  315. #define LBX_LEFT_SHIFT 20
  316. #define LBX_RIGHT_SHIFT 13
  317. #define LBX_ASCENT_SHIFT 7
  318. #define LBX_DESCENT_SHIFT 0
  319. #define LBX_WIDTH_BITS 6
  320. #define LBX_LEFT_BITS 6
  321. #define LBX_RIGHT_BITS 7
  322. #define LBX_ASCENT_BITS 6
  323. #define LBX_DESCENT_BITS 7
  324. #define LBX_WIDTH_MASK 0xfc000000
  325. #define LBX_LEFT_MASK 0x03f00000
  326. #define LBX_RIGHT_MASK 0x000fe000
  327. #define LBX_ASCENT_MASK 0x00001f80
  328. #define LBX_DESCENT_MASK 0x0000007f
  329. #define LBX_MASK_BITS(val, n) ((unsigned int) ((val) & ((1 << (n)) - 1)))
  330. typedef struct {
  331.     CARD32 metrics B32;
  332. } xLbxCharInfo;
  333. /* note that this is identical to xQueryFontReply except for missing 
  334.  * first 2 words
  335.  */
  336. typedef struct {
  337.     xCharInfo minBounds; 
  338. /* XXX do we need to leave this gunk? */
  339. #ifndef WORD64
  340.     CARD32 walign1 B32;
  341. #endif
  342.     xCharInfo maxBounds; 
  343. #ifndef WORD64
  344.     CARD32 walign2 B32;
  345. #endif
  346.     CARD16 minCharOrByte2 B16, maxCharOrByte2 B16;
  347.     CARD16 defaultChar B16;
  348.     CARD16 nFontProps B16;  /* followed by this many xFontProp structures */
  349.     CARD8 drawDirection;
  350.     CARD8 minByte1, maxByte1;
  351.     BOOL allCharsExist;
  352.     INT16 fontAscent B16, fontDescent B16;
  353.     CARD32 nCharInfos B32; /* followed by this many xLbxCharInfo structures */
  354. } xLbxFontInfo;
  355. typedef struct {
  356.     BYTE type; /* X_Reply */
  357.     CARD8 compression;
  358.     CARD16 sequenceNumber B16;
  359.     CARD32 length B32;
  360.     CARD32 tag B32;
  361.     CARD32 pad0 B32;
  362.     CARD32 pad1 B32;
  363.     CARD32 pad2 B32;
  364.     CARD32 pad3 B32;
  365.     CARD32 pad4 B32;
  366.     /* X_QueryFont sticks much of the data in the base reply packet,
  367.      * but we hope that it won't be needed, (and it won't fit in 32 bytes
  368.      * with the tag anyways)
  369.      *
  370.      * if any additional data is needed, its sent in a xLbxFontInfo
  371.      */
  372. } xLbxQueryFontReply;
  373. #define sz_xLbxQueryFontReply 32
  374. typedef struct _LbxChangeProperty {
  375.     CARD8 reqType; /* always LbxReqCode */
  376.     CARD8 lbxReqType; /* always X_LbxChangeProperty */
  377.     CARD16 length B16;
  378.     Window window B32;
  379.     Atom property B32;
  380.     Atom type B32;
  381.     CARD8 format;
  382.     CARD8 mode;
  383.     BYTE pad[2];
  384.     CARD32 nUnits B32;
  385. } xLbxChangePropertyReq;
  386. #define sz_xLbxChangePropertyReq 24
  387. typedef struct {
  388.     BYTE type; /* X_Reply */
  389.     CARD8 pad;
  390.     CARD16 sequenceNumber B16;
  391.     CARD32 length B32;
  392.     CARD32 tag B32;
  393.     CARD32 pad0 B32;
  394.     CARD32 pad1 B32;
  395.     CARD32 pad2 B32;
  396.     CARD32 pad3 B32;
  397.     CARD32 pad4 B32;
  398. } xLbxChangePropertyReply;
  399. #define sz_xLbxChangePropertyReply 32
  400. typedef struct _LbxGetProperty {
  401.     CARD8 reqType; /* always LbxReqCode */
  402.     CARD8 lbxReqType; /* always X_LbxGetProperty */
  403.     CARD16 length B16;
  404.     Window window B32;
  405.     Atom property B32;
  406.     Atom type B32;
  407.     CARD8 delete;
  408.     BYTE pad[3];
  409.     CARD32 longOffset B32;
  410.     CARD32 longLength B32;
  411. } xLbxGetPropertyReq;
  412. #define sz_xLbxGetPropertyReq 28
  413. typedef struct {
  414.     BYTE type; /* X_Reply */
  415.     CARD8 format;
  416.     CARD16 sequenceNumber B16;
  417.     CARD32 length B32;
  418.     Atom propertyType B32;
  419.     CARD32 bytesAfter B32;
  420.     CARD32 nItems B32;
  421.     CARD32 tag B32;
  422.     CARD32 pad1 B32;
  423.     CARD32 pad2 B32;
  424. } xLbxGetPropertyReply;
  425. #define sz_xLbxGetPropertyReply 32
  426. typedef struct _LbxTagData {
  427.     CARD8 reqType; /* always LbxReqCode */
  428.     CARD8 lbxReqType; /* always X_LbxTagData */
  429.     CARD16 length B16;
  430.     XID tag B32;
  431.     CARD32 real_length B32;
  432.     /* data */
  433. } xLbxTagDataReq;
  434. #define sz_xLbxTagDataReq 12
  435. typedef struct _LbxInvalidateTag {
  436.     CARD8 reqType; /* always LbxReqCode */
  437.     CARD8 lbxReqType; /* always X_LbxInvalidateTag */
  438.     CARD16 length B16;
  439.     CARD32 tag B32;
  440. } xLbxInvalidateTagReq;
  441. #define sz_xLbxInvalidateTagReq 8
  442. typedef struct _LbxPutImage {
  443.     CARD8 reqType; /* always LbxReqCode */
  444.     CARD8 lbxReqType; /* always X_LbxPutImage */
  445.     CARD16 length B16;
  446.     CARD8 compressionMethod;
  447.     CARD8 cacheEnts;
  448.     CARD8 bitPacked;
  449.     /* rest is variable */
  450. } xLbxPutImageReq;
  451. #define sz_xLbxPutImageReq 7
  452. typedef struct {
  453.     CARD8 reqType; /* always LbxReqCode */
  454.     CARD8 lbxReqType; /* always X_LbxGetImage */
  455.     CARD16 length B16;
  456.     Drawable drawable B32;
  457.     INT16 x B16, y B16;
  458.     CARD16 width B16, height B16;
  459.     CARD32 planeMask B32;
  460.     CARD8 format;
  461.     CARD8 pad1;
  462.     CARD16 pad2 B16;
  463. } xLbxGetImageReq;    
  464. #define sz_xLbxGetImageReq 24
  465. typedef struct {
  466.     BYTE type; /* X_Reply */
  467.     CARD8 depth;
  468.     CARD16 sequenceNumber B16;
  469.     CARD32 lbxLength B32;
  470.     CARD32 xLength B32;
  471.     VisualID visual B32;
  472.     CARD8 compressionMethod;
  473.     CARD8 pad1;
  474.     CARD16 pad2 B16;
  475.     CARD32 pad3 B32;
  476.     CARD32 pad4 B32;
  477.     CARD32 pad5 B32;
  478. } xLbxGetImageReply;
  479. #define sz_xLbxGetImageReply 32
  480.   
  481. /* Following used for LbxPolyPoint, LbxPolyLine, LbxPolySegment,
  482.    LbxPolyRectangle, LbxPolyArc, LbxPolyFillRectangle and LbxPolyFillArc */
  483. #define GFX_CACHE_SIZE  15
  484. #define GFXdCacheEnt(e)     ((e) & 0xf)
  485. #define GFXgCacheEnt(e)     (((e) >> 4) & 0xf)
  486. #define GFXCacheEnts(d,g)   (((d) & 0xf) | (((g) & 0xf) << 4))
  487. #define GFXCacheNone   0xf
  488. typedef struct _LbxPolyPoint {
  489.     CARD8 reqType; /* always LbxReqCode */
  490.     CARD8 lbxReqType;
  491.     CARD16 length B16;
  492.     CARD8 cacheEnts;
  493.     CARD8 padBytes;
  494. } xLbxPolyPointReq;
  495. #define sz_xLbxPolyPointReq 6
  496. typedef xLbxPolyPointReq xLbxPolyLineReq;
  497. typedef xLbxPolyPointReq xLbxPolySegmentReq;
  498. typedef xLbxPolyPointReq xLbxPolyRectangleReq;
  499. typedef xLbxPolyPointReq xLbxPolyArcReq;
  500. typedef xLbxPolyPointReq xLbxPolyFillRectangleReq;
  501. typedef xLbxPolyPointReq xLbxPolyFillArcReq;
  502. #define sz_xLbxPolyLineReq sz_xLbxPolyPointReq
  503. #define sz_xLbxPolySegmentReq sz_xLbxPolyPointReq
  504. #define sz_xLbxPolyRectangleReq sz_xLbxPolyPointReq
  505. #define sz_xLbxPolyArcReq sz_xLbxPolyPointReq
  506. #define sz_xLbxPolyFillRectangleReq sz_xLbxPolyPointReq
  507. #define sz_xLbxPolyFillArc sz_xLbxPolyPointReq
  508. typedef struct _LbxFillPoly {
  509.     CARD8 reqType; /* always LbxReqCode */
  510.     CARD8 lbxReqType;
  511.     CARD16 length B16;
  512.     CARD8 cacheEnts;
  513.     BYTE shape;
  514.     CARD8 padBytes;
  515. } xLbxFillPolyReq;
  516. #define sz_xLbxFillPolyReq 7
  517. typedef struct _LbxCopyArea {
  518.     CARD8 reqType; /* always LbxReqCode */
  519.     CARD8 lbxReqType;
  520.     CARD16 length B16;
  521.     CARD8 srcCache; /* source drawable */
  522.     CARD8 cacheEnts; /* dest drawable and gc */
  523.     /* followed by encoded src x, src y, dst x, dst y, width, height */
  524. } xLbxCopyAreaReq;
  525.     
  526. #define sz_xLbxCopyAreaReq  6
  527. typedef struct _LbxCopyPlane {
  528.     CARD8 reqType; /* always LbxReqCode */
  529.     CARD8 lbxReqType;
  530.     CARD16 length B16;
  531.     CARD32 bitPlane B32;
  532.     CARD8 srcCache; /* source drawable */
  533.     CARD8 cacheEnts; /* dest drawable and gc */
  534.     /* followed by encoded src x, src y, dst x, dst y, width, height */
  535. } xLbxCopyPlaneReq;
  536.     
  537. #define sz_xLbxCopyPlaneReq  10
  538. typedef struct _LbxPolyText {
  539.     CARD8 reqType; /* always LbxReqCode */
  540.     CARD8 lbxReqType;
  541.     CARD16 length B16;
  542.     CARD8 cacheEnts;
  543.     /* followed by encoded src x, src y coordinates and text elts */
  544. } xLbxPolyTextReq;
  545. #define sz_xLbxPolyTextReq  5
  546. typedef xLbxPolyTextReq xLbxPolyText8Req;
  547. typedef xLbxPolyTextReq xLbxPolyText16Req;
  548.     
  549. #define sz_xLbxPolyTextReq 5
  550. #define sz_xLbxPolyText8Req 5
  551. #define sz_xLbxPolyText16Req 5
  552. typedef struct _LbxImageText {
  553.     CARD8 reqType; /* always LbxReqCode */
  554.     CARD8 lbxReqType;
  555.     CARD16 length B16;
  556.     CARD8 cacheEnts;
  557.     CARD8 nChars;
  558.     /* followed by encoded src x, src y coordinates and string */
  559. } xLbxImageTextReq;
  560.     
  561. typedef xLbxImageTextReq xLbxImageText8Req;
  562. typedef xLbxImageTextReq xLbxImageText16Req;
  563.     
  564. #define sz_xLbxImageTextReq 6
  565. #define sz_xLbxImageText8Req 6
  566. #define sz_xLbxImageText16Req 6
  567. typedef struct {
  568.     CARD8       offset;
  569.     CARD8       diff;
  570. } xLbxDiffItem;
  571. #define sz_xLbxDiffItem    2
  572. typedef struct {
  573.     BYTE type; /* X_Reply */
  574.     CARD8 nOpts;
  575.     CARD16 sequenceNumber B16;
  576.     CARD32 length B32;
  577.     CARD32 optDataStart B32;
  578.     CARD32 pad0 B32;
  579.     CARD32 pad1 B32;
  580.     CARD32 pad2 B32;
  581.     CARD32 pad3 B32;
  582.     CARD32 pad4 B32;
  583. } xLbxStartReply;
  584. #define sz_xLbxStartReply 32
  585. #define sz_xLbxStartReplyHdr 8
  586. typedef struct _LbxQueryExtension {
  587.     CARD8 reqType; /* always LbxReqCode */
  588.     CARD8 lbxReqType; /* always X_LbxQueryExtension */
  589.     CARD16 length B16;
  590.     CARD32 nbytes B32;
  591. } xLbxQueryExtensionReq;
  592. #define sz_xLbxQueryExtensionReq 8
  593. typedef struct _LbxQueryExtensionReply {
  594.     BYTE type; /* X_Reply */
  595.     CARD8 numReqs;
  596.     CARD16 sequenceNumber B16;
  597.     CARD32 length B32;
  598.     BOOL present;
  599.     CARD8 major_opcode;
  600.     CARD8 first_event;
  601.     CARD8 first_error;
  602.     CARD32 pad0 B32;
  603.     CARD32 pad1 B32;
  604.     CARD32 pad2 B32;
  605.     CARD32 pad3 B32;
  606.     CARD32 pad4 B32;
  607.     /* reply & event generating requests */
  608. } xLbxQueryExtensionReply;
  609. #define sz_xLbxQueryExtensionReply 32
  610. typedef struct _LbxBeginLargeRequest {
  611.     CARD8 reqType; /* always LbxReqCode */
  612.     CARD8 lbxReqType; /* always X_LbxBeginLargeRequest */
  613.     CARD16 length B16;
  614.     CARD32 largeReqLength B32;
  615. } xLbxBeginLargeRequestReq;
  616. #define sz_BeginLargeRequestReq 8
  617. typedef struct _LbxLargeRequestData {
  618.     CARD8 reqType; /* always LbxReqCode */
  619.     CARD8 lbxReqType; /* always X_LbxLargeRequestData */
  620.     CARD16 length B16;
  621.     /* followed by LISTofCARD8 data */
  622. } xLbxLargeRequestDataReq;
  623. #define sz_LargeRequestDataReq 4
  624. typedef struct _LbxEndLargeRequest {
  625.     CARD8 reqType; /* always LbxReqCode */
  626.     CARD8 lbxReqType; /* always X_LbxEndLargeRequest */
  627.     CARD16 length B16;
  628. } xLbxEndLargeRequestReq;
  629. #define sz_EndLargeRequestReq 4
  630. typedef struct _LbxSwitchEvent {
  631.     BYTE type; /* always eventBase + LbxEvent */
  632.     BYTE lbxType; /* LbxSwitchEvent */
  633.     CARD16 pad B16;
  634.     CARD32 client B32;
  635. } xLbxSwitchEvent;
  636. #define sz_xLbxSwitchEvent 8
  637. typedef struct _LbxCloseEvent {
  638.     BYTE type; /* always eventBase + LbxEvent */
  639.     BYTE lbxType; /* LbxCloseEvent */
  640.     CARD16 sequenceNumber B16;
  641.     CARD32 client B32;
  642.     CARD32 pad1 B32;
  643.     CARD32 pad2 B32;
  644.     CARD32 pad3 B32;
  645.     CARD32 pad4 B32;
  646.     CARD32 pad5 B32;
  647.     CARD32 pad6 B32;
  648. } xLbxCloseEvent;
  649. #define sz_xLbxCloseEvent 32
  650. typedef struct _LbxInvalidateTagEvent {
  651.     BYTE type; /* always eventBase + LbxEvent */
  652.     BYTE lbxType; /* LbxInvalidateTagEvent */
  653.     CARD16 sequenceNumber B16;
  654.     CARD32 tag B32;
  655.     CARD32 tagType B32;
  656.     CARD32 pad1 B32;
  657.     CARD32 pad2 B32;
  658.     CARD32 pad3 B32;
  659.     CARD32 pad4 B32;
  660.     CARD32 pad5 B32;
  661. } xLbxInvalidateTagEvent;
  662. #define sz_xLbxInvalidateTagEvent 32
  663. typedef struct _LbxSendTagDataEvent {
  664.     BYTE type; /* always eventBase + LbxEvent */
  665.     BYTE lbxType; /* LbxSendTagDataEvent */
  666.     CARD16 sequenceNumber B16;
  667.     CARD32 tag B32;
  668.     CARD32 tagType B32;
  669.     CARD32 pad1 B32;
  670.     CARD32 pad2 B32;
  671.     CARD32 pad3 B32;
  672.     CARD32 pad4 B32;
  673.     CARD32 pad5 B32;
  674. } xLbxSendTagDataEvent;
  675. #define sz_xLbxSendTagDataEvent 32
  676. typedef struct _LbxListenToOneEvent {
  677.     BYTE type; /* always eventBase + LbxEvent */
  678.     BYTE lbxType; /* LbxListenToOneEvent */
  679.     CARD16 sequenceNumber B16;
  680.     CARD32 client B32;
  681.     CARD32 pad1 B32;
  682.     CARD32 pad2 B32;
  683.     CARD32 pad3 B32;
  684.     CARD32 pad4 B32;
  685.     CARD32 pad5 B32;
  686.     CARD32 pad6 B32;
  687. } xLbxListenToOneEvent;
  688. #define sz_xLbxListenToOneEvent 32
  689. typedef struct _LbxListenToAllEvent {
  690.     BYTE type; /* always eventBase + LbxEvent */
  691.     BYTE lbxType; /* LbxListenToAllEvent */
  692.     CARD16 sequenceNumber B16;
  693.     CARD32 pad1 B32;
  694.     CARD32 pad2 B32;
  695.     CARD32 pad3 B32;
  696.     CARD32 pad4 B32;
  697.     CARD32 pad5 B32;
  698.     CARD32 pad6 B32;
  699.     CARD32 pad7 B32;
  700. } xLbxListenToAllEvent;
  701. #define sz_xLbxListenToOneEvent 32
  702. typedef struct _LbxReleaseCmapEvent {
  703.     BYTE type; /* always eventBase + LbxEvent */
  704.     BYTE lbxType; /* LbxReleaseCmapEvent */
  705.     CARD16 sequenceNumber B16;
  706.     Colormap colormap B32;
  707.     CARD32 pad1 B32;
  708.     CARD32 pad2 B32;
  709.     CARD32 pad3 B32;
  710.     CARD32 pad4 B32;
  711.     CARD32 pad5 B32;
  712.     CARD32 pad6 B32;
  713. } xLbxReleaseCmapEvent;
  714. #define sz_xLbxReleaseCmapEvent 32
  715. typedef struct _LbxFreeCellsEvent {
  716.     BYTE type; /* always eventBase + LbxEvent */
  717.     BYTE lbxType; /* LbxFreeCellsEvent */
  718.     CARD16 sequenceNumber B16;
  719.     Colormap colormap B32;
  720.     CARD32 pixelStart B32;
  721.     CARD32 pixelEnd B32;
  722.     CARD32 pad1 B32;
  723.     CARD32 pad2 B32;
  724.     CARD32 pad3 B32;
  725.     CARD32 pad4 B32;
  726. } xLbxFreeCellsEvent;
  727. #define sz_xLbxFreeCellsEvent 32
  728. /*
  729.  * squished X event sizes.  If these change, be sure to update lbxquish.c
  730.  * and unsquish.c appropriately
  731.  *
  732.  * lbxsz_* is the padded squished length
  733.  * lbxupsz_* is the unpadded squished length
  734.  */
  735. #define   lbxsz_KeyButtonEvent 32
  736. #define lbxupsz_KeyButtonEvent 31
  737. #define   lbxsz_EnterLeaveEvent 32
  738. #define lbxupsz_EnterLeaveEvent 32
  739. #define   lbxsz_FocusEvent 12
  740. #define lbxupsz_FocusEvent 9
  741. #define   lbxsz_KeymapEvent 32
  742. #define lbxupsz_KeymapEvent 32
  743. #define   lbxsz_ExposeEvent 20
  744. #define lbxupsz_ExposeEvent 18
  745. #define   lbxsz_GfxExposeEvent 24
  746. #define lbxupsz_GfxExposeEvent 21
  747. #define   lbxsz_NoExposeEvent 12
  748. #define lbxupsz_NoExposeEvent 11
  749. #define   lbxsz_VisibilityEvent 12
  750. #define lbxupsz_VisibilityEvent 9
  751. #define   lbxsz_CreateNotifyEvent 24
  752. #define lbxupsz_CreateNotifyEvent 23
  753. #define   lbxsz_DestroyNotifyEvent 12
  754. #define lbxupsz_DestroyNotifyEvent 12
  755. #define   lbxsz_UnmapNotifyEvent 16
  756. #define lbxupsz_UnmapNotifyEvent 13
  757. #define   lbxsz_MapNotifyEvent 16
  758. #define lbxupsz_MapNotifyEvent 13
  759. #define   lbxsz_MapRequestEvent 12
  760. #define lbxupsz_MapRequestEvent 12
  761. #define   lbxsz_ReparentEvent 24
  762. #define lbxupsz_ReparentEvent 21
  763. #define   lbxsz_ConfigureNotifyEvent 28
  764. #define lbxupsz_ConfigureNotifyEvent 27
  765. #define   lbxsz_ConfigureRequestEvent 28
  766. #define lbxupsz_ConfigureRequestEvent 28
  767. #define   lbxsz_GravityEvent 16
  768. #define lbxupsz_GravityEvent 16
  769. #define   lbxsz_ResizeRequestEvent 12
  770. #define lbxupsz_ResizeRequestEvent 12
  771. #define   lbxsz_CirculateEvent 20
  772. #define lbxupsz_CirculateEvent 17
  773. #define   lbxsz_PropertyEvent 20
  774. #define lbxupsz_PropertyEvent 17
  775. #define   lbxsz_SelectionClearEvent 16
  776. #define lbxupsz_SelectionClearEvent 16
  777. #define   lbxsz_SelectionRequestEvent 28
  778. #define lbxupsz_SelectionRequestEvent 28
  779. #define   lbxsz_SelectionNotifyEvent 24
  780. #define lbxupsz_SelectionNotifyEvent 24
  781. #define   lbxsz_ColormapEvent 16
  782. #define lbxupsz_ColormapEvent 14
  783. #define   lbxsz_MappingNotifyEvent 8
  784. #define lbxupsz_MappingNotifyEvent 7
  785. #define   lbxsz_ClientMessageEvent 32
  786. #define lbxupsz_ClientMessageEvent 32
  787. #define lbxsz_UnknownEvent 32
  788. #ifdef DEBUG
  789. #define DBG_SWITCH 0x00000001
  790. #define DBG_CLOSE 0x00000002
  791. #define DBG_IO 0x00000004
  792. #define DBG_READ_REQ 0x00000008
  793. #define DBG_LEN 0x00000010
  794. #define DBG_BLOCK 0x00000020
  795. #define DBG_CLIENT 0x00000040
  796. #define DBG_DELTA 0x00000080
  797. extern int lbxDebug;
  798. #define DBG(n,m)    if (lbxDebug & (n)) { fprintf m; } else
  799. #else
  800. #define DBG(n,m)
  801. #endif
  802. /*
  803.  * Cancel the previous redefinition of the basic types, thus restoring their
  804.  * X.h definitions.
  805.  */
  806. #undef XID
  807. #undef Atom
  808. #undef Colormap
  809. #undef Drawable
  810. #undef VisualID
  811. #undef Window
  812. #endif /* _LBXSTR_H_ */