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

流媒体/Mpeg4/MP4

开发平台:

Visual C++

  1. /*
  2.  * Copyright © 2000 Compaq Computer Corporation
  3.  * Copyright © 2002 Hewlett-Packard Company
  4.  * Copyright © 2006 Intel Corporation
  5.  *
  6.  * Permission to use, copy, modify, distribute, and sell this software and its
  7.  * documentation for any purpose is hereby granted without fee, provided that
  8.  * the above copyright notice appear in all copies and that both that copyright
  9.  * notice and this permission notice appear in supporting documentation, and
  10.  * that the name of the copyright holders not be used in advertising or
  11.  * publicity pertaining to distribution of the software without specific,
  12.  * written prior permission.  The copyright holders make no representations
  13.  * about the suitability of this software for any purpose.  It is provided "as
  14.  * is" without express or implied warranty.
  15.  *
  16.  * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
  17.  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
  18.  * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  19.  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
  20.  * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  21.  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
  22.  * OF THIS SOFTWARE.
  23.  *
  24.  * Author:  Jim Gettys, Hewlett-Packard Company, Inc.
  25.  *     Keith Packard, Intel Corporation
  26.  */
  27. /* note that RANDR 1.0 is incompatible with version 0.0, or 0.1 */
  28. /* V1.0 removes depth switching from the protocol */
  29. #ifndef _XRANDRP_H_
  30. #define _XRANDRP_H_
  31. #include <X11/extensions/randr.h>
  32. #define Window CARD32
  33. #define Drawable CARD32
  34. #define Font CARD32
  35. #define Pixmap CARD32
  36. #define Cursor CARD32
  37. #define Colormap CARD32
  38. #define GContext CARD32
  39. #define Atom CARD32
  40. #define Time CARD32
  41. #define KeyCode CARD8
  42. #define KeySym CARD32
  43. #define RROutput CARD32
  44. #define RRMode CARD32
  45. #define RRCrtc CARD32
  46. #define RRModeFlags CARD32
  47. #define Rotation CARD16
  48. #define SizeID CARD16
  49. #define SubpixelOrder CARD16
  50. /*
  51.  * data structures
  52.  */
  53. typedef struct {
  54.     CARD16 widthInPixels B16;
  55.     CARD16 heightInPixels B16;
  56.     CARD16 widthInMillimeters B16;
  57.     CARD16 heightInMillimeters B16;
  58. } xScreenSizes;
  59. #define sz_xScreenSizes 8
  60. /* 
  61.  * requests and replies
  62.  */
  63. typedef struct {
  64.     CARD8   reqType;
  65.     CARD8   randrReqType;
  66.     CARD16  length B16;
  67.     CARD32  majorVersion B32;
  68.     CARD32  minorVersion B32;
  69. } xRRQueryVersionReq;
  70. #define sz_xRRQueryVersionReq   12
  71. typedef struct {
  72.     BYTE    type;   /* X_Reply */
  73.     BYTE    pad1;
  74.     CARD16  sequenceNumber B16;
  75.     CARD32  length B32;
  76.     CARD32  majorVersion B32;
  77.     CARD32  minorVersion B32;
  78.     CARD32  pad2 B32;
  79.     CARD32  pad3 B32;
  80.     CARD32  pad4 B32;
  81.     CARD32  pad5 B32;
  82. } xRRQueryVersionReply;
  83. #define sz_xRRQueryVersionReply 32
  84. typedef struct {
  85.     CARD8   reqType;
  86.     CARD8   randrReqType;
  87.     CARD16  length B16;
  88.     Window  window B32;
  89. } xRRGetScreenInfoReq;
  90. #define sz_xRRGetScreenInfoReq   8
  91. /* 
  92.  * the xRRScreenInfoReply structure is followed by:
  93.  *
  94.  * the size information
  95.  */
  96. typedef struct {
  97.     BYTE    type;   /* X_Reply */
  98.     BYTE    setOfRotations;
  99.     CARD16  sequenceNumber B16;
  100.     CARD32  length B32;
  101.     Window  root B32;
  102.     Time    timestamp B32;
  103.     Time    configTimestamp B32;
  104.     CARD16  nSizes B16;
  105.     SizeID  sizeID B16;
  106.     Rotation  rotation B16;
  107.     CARD16  rate B16;
  108.     CARD16  nrateEnts B16;
  109.     CARD16  pad B16;
  110. } xRRGetScreenInfoReply;
  111. #define sz_xRRGetScreenInfoReply 32
  112. typedef struct {
  113.     CARD8    reqType;
  114.     CARD8    randrReqType;
  115.     CARD16   length B16;
  116.     Drawable drawable B32;
  117.     Time     timestamp B32;
  118.     Time     configTimestamp B32;
  119.     SizeID   sizeID B16;
  120.     Rotation rotation B16;
  121. } xRR1_0SetScreenConfigReq;
  122. #define sz_xRR1_0SetScreenConfigReq   20
  123. typedef struct {
  124.     CARD8    reqType;
  125.     CARD8    randrReqType;
  126.     CARD16   length B16;
  127.     Drawable drawable B32;
  128.     Time     timestamp B32;
  129.     Time     configTimestamp B32;
  130.     SizeID   sizeID B16;
  131.     Rotation rotation B16;
  132.     CARD16   rate B16;
  133.     CARD16   pad B16;
  134. } xRRSetScreenConfigReq;
  135. #define sz_xRRSetScreenConfigReq   24
  136. typedef struct {
  137.     BYTE    type;   /* X_Reply */
  138.     CARD8   status;
  139.     CARD16  sequenceNumber B16;
  140.     CARD32  length B32;
  141.     Time    newTimestamp B32;  
  142.     Time    newConfigTimestamp B32;
  143.     Window  root;
  144.     CARD16  subpixelOrder B16;
  145.     CARD16  pad4 B16;
  146.     CARD32  pad5 B32;
  147.     CARD32  pad6 B32;
  148. } xRRSetScreenConfigReply;
  149. #define sz_xRRSetScreenConfigReply 32
  150. typedef struct {
  151.     CARD8   reqType;
  152.     CARD8   randrReqType;
  153.     CARD16  length B16;
  154.     Window  window B32;
  155.     CARD16  enable B16;
  156.     CARD16  pad2 B16;
  157. } xRRSelectInputReq;
  158. #define sz_xRRSelectInputReq   12
  159. /*
  160.  * Additions for version 1.2
  161.  */
  162. typedef struct _xRRModeInfo {
  163.     RRMode id B32;
  164.     CARD16 width B16;
  165.     CARD16 height B16;
  166.     CARD32 dotClock B32;
  167.     CARD16 hSyncStart B16;
  168.     CARD16 hSyncEnd B16;
  169.     CARD16 hTotal B16;
  170.     CARD16 hSkew B16;
  171.     CARD16 vSyncStart B16;
  172.     CARD16 vSyncEnd B16;
  173.     CARD16 vTotal B16;
  174.     CARD16 nameLength B16;
  175.     RRModeFlags modeFlags B32;
  176. } xRRModeInfo;
  177. #define sz_xRRModeInfo     32
  178. typedef struct {
  179.     CARD8   reqType;
  180.     CARD8   randrReqType;
  181.     CARD16  length B16;
  182.     Window  window B32;
  183. } xRRGetScreenSizeRangeReq;
  184. #define sz_xRRGetScreenSizeRangeReq 8
  185. typedef struct {
  186.     BYTE    type;   /* X_Reply */
  187.     CARD8   pad;
  188.     CARD16  sequenceNumber B16;
  189.     CARD32  length B32;
  190.     CARD16  minWidth B16;
  191.     CARD16  minHeight B16;
  192.     CARD16  maxWidth B16;
  193.     CARD16  maxHeight B16;
  194.     CARD32  pad0 B32;
  195.     CARD32  pad1 B32;
  196.     CARD32  pad2 B32;
  197.     CARD32  pad3 B32;
  198. } xRRGetScreenSizeRangeReply;
  199. #define sz_xRRGetScreenSizeRangeReply 32
  200. typedef struct {
  201.     CARD8   reqType;
  202.     CARD8   randrReqType;
  203.     CARD16  length B16;
  204.     Window  window B32;
  205.     CARD16  width B16;
  206.     CARD16  height B16;
  207.     CARD32  widthInMillimeters B32;
  208.     CARD32  heightInMillimeters B32;
  209. } xRRSetScreenSizeReq;
  210. #define sz_xRRSetScreenSizeReq     20
  211. typedef struct {
  212.     CARD8   reqType;
  213.     CARD8   randrReqType;
  214.     CARD16  length B16;
  215.     Window  window B32;
  216. } xRRGetScreenResourcesReq;
  217. #define sz_xRRGetScreenResourcesReq 8
  218. typedef struct {
  219.     BYTE type;
  220.     CARD8 pad;
  221.     CARD16 sequenceNumber B16;
  222.     CARD32 length B32;
  223.     Time timestamp B32;
  224.     Time configTimestamp B32;
  225.     CARD16 nCrtcs B16;
  226.     CARD16 nOutputs B16;
  227.     CARD16 nModes B16;
  228.     CARD16 nbytesNames B16;
  229.     CARD32 pad1 B32;
  230.     CARD32 pad2 B32;
  231. } xRRGetScreenResourcesReply;
  232. #define sz_xRRGetScreenResourcesReply 32
  233. typedef struct {
  234.     CARD8 reqType;
  235.     CARD8 randrReqType;
  236.     CARD16 length B16;
  237.     RROutput output B32;
  238.     Time configTimestamp B32;
  239. } xRRGetOutputInfoReq;
  240. #define sz_xRRGetOutputInfoReq 12
  241. typedef struct {
  242.     BYTE type;
  243.     CARD8 status;
  244.     CARD16 sequenceNumber B16;
  245.     CARD32 length B32;
  246.     Time timestamp B32;
  247.     RRCrtc crtc B32;
  248.     CARD32 mmWidth B32;
  249.     CARD32 mmHeight B32;
  250.     CARD8 connection;
  251.     CARD8 subpixelOrder;
  252.     CARD16 nCrtcs B16;
  253.     CARD16 nModes B16;
  254.     CARD16 nPreferred B16;
  255.     CARD16 nClones B16;
  256.     CARD16 nameLength B16;
  257. } xRRGetOutputInfoReply;
  258. #define sz_xRRGetOutputInfoReply 36
  259. typedef struct {
  260.     CARD8 reqType;
  261.     CARD8 randrReqType;
  262.     CARD16 length B16;
  263.     RROutput output B32;
  264. } xRRListOutputPropertiesReq; 
  265. #define sz_xRRListOutputPropertiesReq 8
  266. typedef struct {
  267.     BYTE type;
  268.     CARD8 pad0;
  269.     CARD16 sequenceNumber B16;
  270.     CARD32 length B32;
  271.     CARD16 nAtoms B16;
  272.     CARD16 pad1 B16;
  273.     CARD32 pad2 B32;
  274.     CARD32 pad3 B32;
  275.     CARD32 pad4 B32;
  276.     CARD32 pad5 B32;
  277.     CARD32 pad6 B32;
  278. } xRRListOutputPropertiesReply;
  279. #define sz_xRRListOutputPropertiesReply 32
  280. typedef struct {
  281.     CARD8 reqType;
  282.     CARD8 randrReqType;
  283.     CARD16 length B16;
  284.     RROutput output B32;
  285.     Atom property B32;
  286. } xRRQueryOutputPropertyReq; 
  287. #define sz_xRRQueryOutputPropertyReq 12
  288. typedef struct {
  289.     BYTE type;
  290.     BYTE pad0;
  291.     CARD16 sequenceNumber B16;
  292.     CARD32 length B32;
  293.     BOOL pending;
  294.     BOOL range;
  295.     BOOL immutable;
  296.     BYTE pad1;
  297.     CARD32 pad2 B32;
  298.     CARD32 pad3 B32;
  299.     CARD32 pad4 B32;
  300.     CARD32 pad5 B32;
  301.     CARD32 pad6 B32;
  302. } xRRQueryOutputPropertyReply;
  303. #define sz_xRRQueryOutputPropertyReply 32
  304. typedef struct {
  305.     CARD8 reqType;
  306.     CARD8 randrReqType;
  307.     CARD16 length B16;
  308.     RROutput output B32;
  309.     Atom property B32;
  310.     BOOL pending;
  311.     BOOL range;
  312.     CARD16 pad B16;
  313. } xRRConfigureOutputPropertyReq; 
  314. #define sz_xRRConfigureOutputPropertyReq 16
  315. typedef struct {
  316.     CARD8 reqType;
  317.     CARD8 randrReqType;
  318.     CARD16 length B16;
  319.     RROutput output B32;
  320.     Atom property B32;
  321.     Atom type B32;
  322.     CARD8 format;
  323.     CARD8 mode;
  324.     CARD16 pad;
  325.     CARD32 nUnits B32;
  326. } xRRChangeOutputPropertyReq;
  327. #define sz_xRRChangeOutputPropertyReq 24
  328. typedef struct {
  329.     CARD8 reqType;
  330.     CARD8 randrReqType;
  331.     CARD16 length B16;
  332.     RROutput output B32;
  333.     Atom property B32;
  334. } xRRDeleteOutputPropertyReq;
  335. #define sz_xRRDeleteOutputPropertyReq 12
  336. typedef struct {
  337.     CARD8 reqType;
  338.     CARD8 randrReqType;
  339.     CARD16 length B16;
  340.     RROutput output B32;
  341.     Atom property B32;
  342.     Atom type B32;
  343.     CARD32 longOffset B32;
  344.     CARD32 longLength B32;
  345. #ifdef __cplusplus
  346.     BOOL _delete;
  347. #else
  348.     BOOL delete;
  349. #endif
  350.     BOOL pending;
  351.     CARD16 pad1 B16;
  352. } xRRGetOutputPropertyReq;
  353. #define sz_xRRGetOutputPropertyReq 28
  354. typedef struct {
  355.     BYTE type;
  356.     CARD8 format;
  357.     CARD16 sequenceNumber B16;
  358.     CARD32 length B32;
  359.     Atom propertyType B32;
  360.     CARD32 bytesAfter B32;
  361.     CARD32 nItems B32;
  362.     CARD32 pad1 B32;
  363.     CARD32 pad2 B32;
  364.     CARD32 pad3 B32;
  365. } xRRGetOutputPropertyReply;
  366. #define sz_xRRGetOutputPropertyReply 32
  367. typedef struct {
  368.     CARD8 reqType;
  369.     CARD8 randrReqType;
  370.     CARD16 length B16;
  371.     Window window B32;
  372.     xRRModeInfo modeInfo;
  373. } xRRCreateModeReq; 
  374. #define sz_xRRCreateModeReq 40
  375. typedef struct {
  376.     BYTE type;
  377.     CARD8 pad0;
  378.     CARD16 sequenceNumber B16;
  379.     CARD32 length B32;
  380.     RRMode mode B32;
  381.     CARD32 pad1 B32;
  382.     CARD32 pad2 B32;
  383.     CARD32 pad3 B32;
  384.     CARD32 pad4 B32;
  385.     CARD32 pad5 B32;
  386. } xRRCreateModeReply;
  387. #define sz_xRRCreateModeReply 32
  388. typedef struct {
  389.     CARD8 reqType;
  390.     CARD8 randrReqType;
  391.     CARD16 length B16;
  392.     RRMode mode B32;
  393. } xRRDestroyModeReq;
  394. #define sz_xRRDestroyModeReq 8
  395. typedef struct {
  396.     CARD8 reqType;
  397.     CARD8 randrReqType;
  398.     CARD16 length B16;
  399.     RROutput output B32;
  400.     RRMode mode B32;
  401. } xRRAddOutputModeReq;
  402. #define sz_xRRAddOutputModeReq 12
  403. typedef struct {
  404.     CARD8 reqType;
  405.     CARD8 randrReqType;
  406.     CARD16 length B16;
  407.     RROutput output B32;
  408.     RRMode mode B32;
  409. } xRRDeleteOutputModeReq;
  410. #define sz_xRRDeleteOutputModeReq 12
  411. typedef struct {
  412.     CARD8 reqType;
  413.     CARD8 randrReqType;
  414.     CARD16 length B16;
  415.     RRCrtc crtc B32;
  416.     Time configTimestamp B32;
  417. } xRRGetCrtcInfoReq; 
  418. #define sz_xRRGetCrtcInfoReq 12
  419. typedef struct {
  420.     BYTE type;
  421.     CARD8 status;
  422.     CARD16 sequenceNumber B16;
  423.     CARD32 length B32;
  424.     Time timestamp B32;
  425.     INT16 x B16;
  426.     INT16 y B16;
  427.     CARD16 width B16;
  428.     CARD16 height B16;
  429.     RRMode mode B32;
  430.     Rotation rotation B16;
  431.     Rotation rotations B16;
  432.     CARD16 nOutput B16;
  433.     CARD16 nPossibleOutput B16;
  434. } xRRGetCrtcInfoReply;
  435. #define sz_xRRGetCrtcInfoReply 32
  436. typedef struct {
  437.     CARD8 reqType;
  438.     CARD8 randrReqType;
  439.     CARD16 length B16;
  440.     RRCrtc crtc B32;
  441.     Time timestamp B32;
  442.     Time     configTimestamp B32;
  443.     INT16 x B16;
  444.     INT16 y B16;
  445.     RRMode mode B32;
  446.     Rotation rotation B16;
  447.     CARD16 pad B16;
  448. } xRRSetCrtcConfigReq; 
  449. #define sz_xRRSetCrtcConfigReq 28
  450. typedef struct {
  451.     BYTE type;
  452.     CARD8 status;
  453.     CARD16 sequenceNumber B16;
  454.     CARD32 length B32;
  455.     Time newTimestamp B32;
  456.     CARD32 pad1 B32;
  457.     CARD32 pad2 B16;
  458.     CARD32 pad3 B32;
  459.     CARD32 pad4 B32;
  460.     CARD32 pad5 B32;
  461. } xRRSetCrtcConfigReply;
  462. #define sz_xRRSetCrtcConfigReply 32
  463. typedef struct {
  464.     CARD8 reqType;
  465.     CARD8 randrReqType;
  466.     CARD16 length B16;
  467.     RRCrtc crtc B32;
  468. } xRRGetCrtcGammaSizeReq; 
  469. #define sz_xRRGetCrtcGammaSizeReq 8
  470. typedef struct {
  471.     BYTE type;
  472.     CARD8 status;
  473.     CARD16 sequenceNumber B16;
  474.     CARD32 length B32;
  475.     CARD16 size B16;
  476.     CARD16 pad1 B16;
  477.     CARD32 pad2 B32;
  478.     CARD32 pad3 B32;
  479.     CARD32 pad4 B32;
  480.     CARD32 pad5 B32;
  481.     CARD32 pad6 B32;
  482. } xRRGetCrtcGammaSizeReply;
  483. #define sz_xRRGetCrtcGammaSizeReply 32
  484. typedef struct {
  485.     CARD8 reqType;
  486.     CARD8 randrReqType;
  487.     CARD16 length B16;
  488.     RRCrtc crtc B32;
  489. } xRRGetCrtcGammaReq; 
  490. #define sz_xRRGetCrtcGammaReq 8
  491. typedef struct {
  492.     BYTE type;
  493.     CARD8 status;
  494.     CARD16 sequenceNumber B16;
  495.     CARD32 length B32;
  496.     CARD16 size B16;
  497.     CARD16 pad1 B16;
  498.     CARD32 pad2 B32;
  499.     CARD32 pad3 B32;
  500.     CARD32 pad4 B32;
  501.     CARD32 pad5 B32;
  502.     CARD32 pad6 B32;
  503. } xRRGetCrtcGammaReply;
  504. #define sz_xRRGetCrtcGammaReply 32
  505. typedef struct {
  506.     CARD8 reqType;
  507.     CARD8 randrReqType;
  508.     CARD16 length B16;
  509.     RRCrtc crtc B32;
  510.     CARD16 size B16;
  511.     CARD16 pad1 B16;
  512. } xRRSetCrtcGammaReq;
  513. #define sz_xRRSetCrtcGammaReq 12
  514. /*
  515.  * event
  516.  */
  517. typedef struct {
  518.     CARD8 type; /* always evBase + ScreenChangeNotify */
  519.     CARD8 rotation; /* new rotation */
  520.     CARD16 sequenceNumber B16;
  521.     Time timestamp B32; /* time screen was changed */
  522.     Time configTimestamp B32; /* time config data was changed */
  523.     Window root B32; /* root window */
  524.     Window window B32; /* window requesting notification */
  525.     SizeID sizeID B16; /* new size ID */
  526.     CARD16 subpixelOrder B16; /* subpixel order */
  527.     CARD16 widthInPixels B16; /* new size */
  528.     CARD16 heightInPixels B16;
  529.     CARD16 widthInMillimeters B16;
  530.     CARD16 heightInMillimeters B16;
  531. } xRRScreenChangeNotifyEvent;
  532. #define sz_xRRScreenChangeNotifyEvent 32
  533. typedef struct {
  534.     CARD8 type; /* always evBase + RRNotify */
  535.     CARD8 subCode; /* RRNotify_CrtcChange */
  536.     CARD16 sequenceNumber B16;
  537.     Time timestamp B32; /* time crtc was changed */
  538.     Window window B32; /* window requesting notification */
  539.     RRCrtc crtc B32; /* affected CRTC */
  540.     RRMode mode B32; /* current mode */
  541.     CARD16 rotation B16; /* rotation and reflection */
  542.     CARD16 pad1 B16; /* unused */
  543.     INT16 x B16; /* new location */
  544.     INT16 y B16;
  545.     CARD16 width B16; /* new size */
  546.     CARD16 height B16;
  547. } xRRCrtcChangeNotifyEvent;
  548. #define sz_xRRCrtcChangeNotifyEvent 32
  549. typedef struct {
  550.     CARD8 type; /* always evBase + RRNotify */
  551.     CARD8 subCode; /* RRNotify_OutputChange */
  552.     CARD16 sequenceNumber B16;
  553.     Time timestamp B32; /* time crtc was changed */
  554.     Time configTimestamp B32; /* time crtc was changed */
  555.     Window window B32; /* window requesting notification */
  556.     RROutput output B32; /* affected output */
  557.     RRCrtc crtc B32; /* current crtc */
  558.     RRMode mode B32; /* current mode */
  559.     CARD16 rotation B16; /* rotation and reflection */
  560.     CARD8 connection; /* connection status */
  561.     CARD8 subpixelOrder; /* subpixel order */
  562. } xRROutputChangeNotifyEvent;
  563. #define sz_xRROutputChangeNotifyEvent 32
  564. typedef struct {
  565.     CARD8 type; /* always evBase + RRNotify */
  566.     CARD8 subCode; /* RRNotify_OutputProperty */
  567.     CARD16 sequenceNumber B16;
  568.     Window window B32; /* window requesting notification */
  569.     RROutput output B32; /* affected output */
  570.     Atom atom B32; /* property name */
  571.     Time timestamp B32; /* time crtc was changed */
  572.     CARD8 state; /* NewValue or Deleted */
  573.     CARD8 pad1;
  574.     CARD16 pad2 B16;
  575.     CARD32 pad3 B32;
  576.     CARD32 pad4 B32;
  577. } xRROutputPropertyNotifyEvent;
  578. #define sz_xRROutputPropertyNotifyEvent 32
  579. #undef RRModeFlags
  580. #undef RRCrtc
  581. #undef RRMode
  582. #undef RROutput
  583. #undef RRMode
  584. #undef RRCrtc
  585. #undef Drawable
  586. #undef Window
  587. #undef Font
  588. #undef Pixmap
  589. #undef Cursor
  590. #undef Colormap
  591. #undef GContext
  592. #undef Atom
  593. #undef Time
  594. #undef KeyCode
  595. #undef KeySym
  596. #undef Rotation
  597. #undef SizeID
  598. #undef SubpixelOrder
  599. #endif /* _XRANDRP_H_ */