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

流媒体/Mpeg4/MP4

开发平台:

Visual C++

  1. /*
  2. #ifndef lint
  3. $Xorg: recordstr.h,v 1.3 2000/08/18 04:05:46 coskrey Exp $
  4. static char sccsid[ ] = "@(#) recordstr.h 1.5 6/5/95 12:37:44";
  5. #endif
  6. */
  7. /***************************************************************************
  8.  * Copyright 1995 Network Computing Devices
  9.  *
  10.  * Permission to use, copy, modify, distribute, and sell this software and
  11.  * its documentation for any purpose is hereby granted without fee, provided
  12.  * that the above copyright notice appear in all copies and that both that
  13.  * copyright notice and this permission notice appear in supporting
  14.  * documentation, and that the name of Network Computing Devices
  15.  * not be used in advertising or publicity pertaining to distribution
  16.  * of the software without specific, written prior permission.
  17.  *
  18.  * NETWORK COMPUTING DEVICES DISCLAIMs ALL WARRANTIES WITH REGARD TO
  19.  * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
  20.  * AND FITNESS, IN NO EVENT SHALL NETWORK COMPUTING DEVICES BE LIABLE
  21.  * FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
  22.  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
  23.  * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
  24.  * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  25.  **************************************************************************/
  26. /* $XFree86$ */
  27. #ifndef _RECORDSTR_H_
  28. #define _RECORDSTR_H_
  29. #include <X11/extensions/record.h>
  30. #define RECORD_NAME "RECORD"
  31. #define RECORD_MAJOR_VERSION 1
  32. #define RECORD_MINOR_VERSION 13
  33. #define RECORD_LOWEST_MAJOR_VERSION 1
  34. #define RECORD_LOWEST_MINOR_VERSION 12
  35. /* only difference between 1.12 and 1.13 is byte order of device events,
  36.    which the library doesn't deal with. */
  37. /*********************************************************
  38.  *
  39.  * Protocol request constants
  40.  *
  41.  */
  42. #define X_RecordQueryVersion    0     /* First request from client */
  43. #define X_RecordCreateContext   1     /* Create client RC */
  44. #define X_RecordRegisterClients 2     /* Add to client RC */
  45. #define X_RecordUnregisterClients 3   /* Delete from client RC */
  46. #define X_RecordGetContext      4     /* Query client RC */
  47. #define X_RecordEnableContext   5     /* Enable interception and reporting */
  48. #define X_RecordDisableContext  6     /* Disable interception and reporting */
  49. #define X_RecordFreeContext     7     /* Free client RC */
  50. #define RecordNumErrors         (XRecordBadContext + 1) 
  51. #define RecordNumEvents       0L
  52. #define sz_XRecordRange 32
  53. #define sz_XRecordClientInfo  12
  54. #define sz_XRecordState  16
  55. #define sz_XRecordDatum  32
  56. #define XRecordGlobaldef
  57. #define XRecordGlobalref extern
  58. #define RecordMaxEvent      (128L-1L)
  59. #define RecordMinDeviceEvent (2L)
  60. #define RecordMaxDeviceEvent (6L)
  61. #define RecordMaxError          (256L-1L)
  62. #define RecordMaxCoreRequest    (128L-1L)
  63. #define RecordMaxExtRequest     (256L-1L)
  64. #define RecordMinExtRequest     (129L-1L)
  65. #define RECORD_RC  CARD32
  66. #define RECORD_XIDBASE CARD32
  67. #define RECORD_CLIENTSPEC CARD32
  68. #define RECORD_ELEMENT_HEADER CARD8
  69. typedef RECORD_CLIENTSPEC RecordClientSpec, *RecordClientSpecPtr;
  70. typedef struct
  71. {
  72.     CARD8 first;
  73.     CARD8 last;
  74. } RECORD_RANGE8;
  75. typedef struct
  76. {
  77.     CARD16 first B16;
  78.     CARD16 last B16;
  79. } RECORD_RANGE16;
  80. typedef struct
  81. {
  82.     RECORD_RANGE8 majorCode;
  83.     RECORD_RANGE16 minorCode;
  84. } RECORD_EXTRANGE;
  85. typedef struct
  86. {
  87.     RECORD_RANGE8 coreRequests;
  88.     RECORD_RANGE8 coreReplies;
  89.     RECORD_EXTRANGE extRequests;
  90.     RECORD_EXTRANGE extReplies;
  91.     RECORD_RANGE8 deliveredEvents;
  92.     RECORD_RANGE8 deviceEvents;
  93.     RECORD_RANGE8 errors;
  94.     BOOL clientStarted;
  95.     BOOL clientDied;
  96. } RECORDRANGE;
  97. #define sz_RECORDRANGE  24
  98. /* typedef RECORDRANGE xRecordRange, *xRecordRangePtr;
  99. #define sz_xRecordRange 24 */
  100. /* Cannot have structures within structures going over the wire */
  101. typedef struct
  102. {
  103.     CARD8        coreRequestsFirst;
  104.     CARD8        coreRequestsLast;
  105.     CARD8        coreRepliesFirst;
  106.     CARD8        coreRepliesLast;
  107.     CARD8   extRequestsMajorFirst;
  108.     CARD8 extRequestsMajorLast;
  109.     CARD16   extRequestsMinorFirst B16;
  110.     CARD16   extRequestsMinorLast B16;
  111.     CARD8   extRepliesMajorFirst;
  112.     CARD8 extRepliesMajorLast;
  113.     CARD16   extRepliesMinorFirst B16;
  114.     CARD16   extRepliesMinorLast B16;
  115.     CARD8        deliveredEventsFirst;
  116.     CARD8        deliveredEventsLast;
  117.     CARD8 deviceEventsFirst;
  118.     CARD8 deviceEventsLast;
  119.     CARD8        errorsFirst;
  120.     CARD8        errorsLast;
  121.     BOOL                clientStarted;
  122.     BOOL clientDied;
  123. } xRecordRange;
  124. #define sz_xRecordRange 24
  125. typedef struct
  126. {
  127.     RECORD_CLIENTSPEC clientResource B32;
  128.     CARD32 nRanges B32;
  129. /* LISTofRECORDRANGE */
  130. } RECORD_CLIENT_INFO;
  131. typedef RECORD_CLIENT_INFO xRecordClientInfo;
  132. /*
  133.  * Initialize
  134.  */
  135. typedef struct {
  136.     CARD8       reqType;
  137.     CARD8       recordReqType;
  138.     CARD16      length B16;
  139.     CARD16      majorVersion B16;
  140.     CARD16      minorVersion B16;
  141. } xRecordQueryVersionReq;
  142. #define sz_xRecordQueryVersionReq  8
  143. typedef struct
  144. {
  145.     CARD8   type;
  146.     CARD8   pad0;
  147.     CARD16  sequenceNumber B16;
  148.     CARD32  length  B32;
  149.     CARD16  majorVersion B16;
  150.     CARD16  minorVersion B16;
  151.     CARD32  pad1  B32;
  152.     CARD32  pad2  B32;
  153.     CARD32  pad3  B32;
  154.     CARD32  pad4  B32;
  155.     CARD32  pad5  B32;
  156.  } xRecordQueryVersionReply;
  157. #define sz_xRecordQueryVersionReply   32
  158. /*
  159.  * Create RC
  160.  */
  161. typedef struct
  162. {
  163.     CARD8      reqType;
  164.     CARD8      recordReqType;
  165.     CARD16     length B16;
  166.     RECORD_RC context B32;
  167.     RECORD_ELEMENT_HEADER elementHeader;
  168.     CARD8 pad;
  169.     CARD16 pad0 B16;
  170.     CARD32 nClients B32;
  171.     CARD32              nRanges B32;
  172. /* LISTofRECORD_CLIENTSPEC */
  173. /* LISTofRECORDRANGE */
  174. } xRecordCreateContextReq;
  175. #define sz_xRecordCreateContextReq  20
  176. /*
  177.  * Add to  RC
  178.  */
  179. typedef struct
  180. {
  181.     CARD8      reqType;
  182.     CARD8      recordReqType;
  183.     CARD16     length B16;
  184.     RECORD_RC context B32;
  185.     RECORD_ELEMENT_HEADER elementHeader;
  186.     CARD8 pad;
  187.     CARD16 pad0 B16;
  188.     CARD32 nClients B32;
  189.     CARD32              nRanges B32;
  190. /* LISTofRECORD_CLIENTSPEC */
  191. /* LISTofRECORDRANGE */
  192. } xRecordRegisterClientsReq;
  193. #define sz_xRecordRegisterClientsReq  20
  194. /*
  195.  * Delete from RC
  196.  */
  197. typedef struct
  198. {
  199.     CARD8      reqType;
  200.     CARD8      recordReqType;
  201.     CARD16     length B16;
  202.     RECORD_RC context B32;
  203.     CARD32 nClients B32;
  204. /* LISTofRECORD_CLIENTSPEC */
  205. } xRecordUnregisterClientsReq;
  206. #define sz_xRecordUnregisterClientsReq  12
  207. /*
  208.  * Query RC
  209.  */
  210. typedef struct
  211. {
  212.     CARD8      reqType;
  213.     CARD8      recordReqType;
  214.     CARD16     length B16;
  215.     RECORD_RC context B32;
  216. } xRecordGetContextReq;
  217. #define sz_xRecordGetContextReq  8
  218. typedef struct
  219. {
  220.     CARD8    type;
  221.     BOOL     enabled;
  222.     CARD16   sequenceNumber B16;
  223.     CARD32   length  B32;
  224.     RECORD_ELEMENT_HEADER  elementHeader;
  225.     CARD8 pad;
  226.     CARD16 pad0 B16;
  227.     CARD32   nClients B32;
  228.     CARD32   pad1 B32;
  229.     CARD32   pad2 B32;
  230.     CARD32   pad3 B32;
  231.     CARD32   pad4 B32;
  232. /* LISTofCLIENT_INFO */  /* intercepted-clients */
  233. } xRecordGetContextReply;
  234. #define sz_xRecordGetContextReply   32
  235. /*
  236.  * Enable data interception
  237.  */
  238. typedef struct
  239. {
  240.     CARD8      reqType;
  241.     CARD8      recordReqType;
  242.     CARD16     length B16;
  243.     RECORD_RC context B32;
  244. } xRecordEnableContextReq;
  245. #define sz_xRecordEnableContextReq  8
  246. typedef struct
  247. {
  248.     CARD8 type;
  249.     CARD8 category;
  250.     CARD16 sequenceNumber B16;
  251.     CARD32 length B32;
  252.     RECORD_ELEMENT_HEADER  elementHeader;
  253.     BOOL clientSwapped;
  254.     CARD16 pad1 B16;
  255.     RECORD_XIDBASE  idBase B32;
  256.     CARD32 serverTime B32;
  257.     CARD32 recordedSequenceNumber B32;
  258.     CARD32 pad3 B32;
  259.     CARD32 pad4 B32;
  260.     /* BYTE data; */
  261. } xRecordEnableContextReply;
  262. #define sz_xRecordEnableContextReply  32
  263. /*
  264.  * Disable data interception
  265.  */
  266. typedef struct
  267. {
  268.     CARD8      reqType;
  269.     CARD8      recordReqType;
  270.     CARD16     length B16;
  271.     RECORD_RC  context B32;
  272. } xRecordDisableContextReq;
  273. #define sz_xRecordDisableContextReq 8
  274. /*
  275.  * Free RC
  276.  */
  277. typedef struct
  278. {
  279.     CARD8      reqType;
  280.     CARD8      recordReqType;
  281.     CARD16     length B16;
  282.     RECORD_RC  context B32;
  283. } xRecordFreeContextReq;
  284. #define sz_xRecordFreeContextReq  8
  285. #undef RECORD_RC
  286. #undef RECORD_XIDBASE
  287. #undef RECORD_ELEMENT_HEADER
  288. #undef RECORD_CLIENTSPEC
  289. #endif