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

流媒体/Mpeg4/MP4

开发平台:

Visual C++

  1. /* 
  2. $Xorg: record.h,v 1.3 2000/08/18 04:05:46 coskrey Exp $
  3. */
  4. /***************************************************************************
  5.  * Copyright 1995 Network Computing Devices
  6.  *
  7.  * Permission to use, copy, modify, distribute, and sell this software and
  8.  * its documentation for any purpose is hereby granted without fee, provided
  9.  * that the above copyright notice appear in all copies and that both that
  10.  * copyright notice and this permission notice appear in supporting
  11.  * documentation, and that the name of Network Computing Devices 
  12.  * not be used in advertising or publicity pertaining to distribution
  13.  * of the software without specific, written prior permission.
  14.  *
  15.  * NETWORK COMPUTING DEVICES DISCLAIMs ALL WARRANTIES WITH REGARD TO 
  16.  * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY 
  17.  * AND FITNESS, IN NO EVENT SHALL NETWORK COMPUTING DEVICES BE LIABLE 
  18.  * FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 
  19.  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN 
  20.  * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING 
  21.  * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  22.  **************************************************************************/
  23. /* $XFree86$ */
  24. #ifndef _RECORD_H_
  25. #define _RECORD_H_
  26. #define XRecordBadContext       0 /* Not a valid RC */
  27. /*
  28.  * Constants for arguments of various requests
  29.  */
  30. #define XRecordFromServerTime 0x01
  31. #define XRecordFromClientTime 0x02
  32. #define XRecordFromClientSequence 0x04
  33. #define XRecordCurrentClients 1
  34. #define XRecordFutureClients 2
  35. #define XRecordAllClients 3
  36. #define XRecordFromServer            0
  37. #define XRecordFromClient               1
  38. #define XRecordClientStarted            2
  39. #define XRecordClientDied               3
  40. #define XRecordStartOfData 4
  41. #define XRecordEndOfData 5
  42. typedef unsigned long   XRecordClientSpec;
  43. #ifndef _XRECORD_SERVER_
  44. typedef unsigned long  XRecordContext;
  45. typedef struct
  46. {
  47.     unsigned char  first;
  48.     unsigned char  last;
  49. } XRecordRange8;
  50. typedef struct
  51. {
  52.     unsigned short  first;
  53.     unsigned short  last;
  54. } XRecordRange16; 
  55. typedef struct
  56. {
  57.     XRecordRange8 ext_major;
  58.     XRecordRange16  ext_minor; 
  59. } XRecordExtRange; 
  60. typedef struct
  61. {
  62.     XRecordRange8     core_requests; /* core X requests */
  63.     XRecordRange8     core_replies; /* core X replies */
  64.     XRecordExtRange   ext_requests; /* extension requests */
  65.     XRecordExtRange   ext_replies; /* extension replies */
  66.     XRecordRange8     delivered_events; /* delivered core and ext events */
  67.     XRecordRange8     device_events;  /* all core and ext device events */
  68.     XRecordRange8     errors; /* core X and ext errors */
  69.     Bool       client_started; /* connection setup reply */
  70.     Bool              client_died;  /* notice of client disconnect */    
  71. } XRecordRange;
  72. typedef struct
  73. {
  74.     XRecordClientSpec  client;
  75.     unsigned long  nranges; 
  76.     XRecordRange  **ranges;
  77. } XRecordClientInfo;
  78. typedef struct
  79. {
  80.     Bool  enabled;
  81.     int datum_flags; 
  82.     unsigned long  nclients; 
  83.     XRecordClientInfo  **client_info;
  84. } XRecordState;
  85. typedef struct
  86. {
  87.     XID  id_base;
  88.     Time server_time; 
  89.     unsigned long  client_seq;
  90.     int category; 
  91.     Bool  client_swapped;
  92.     unsigned char  *data;
  93.     unsigned long  data_len; /* in 4-byte units */
  94. } XRecordInterceptData;
  95. _XFUNCPROTOBEGIN
  96. /*********************************************************
  97.  *
  98.  * Prototypes 
  99.  *
  100.  */
  101. XID XRecordIdBaseMask(
  102.     Display *dpy
  103. );
  104. extern Status XRecordQueryVersion(
  105.     Display*  /* dpy */,
  106.     int*  /* cmajor_return */, 
  107.     int* /* cminor_return */  
  108. );
  109. extern XRecordContext XRecordCreateContext(
  110.     Display* /* dpy */, 
  111.     int /* datum_flags */, 
  112.     XRecordClientSpec* /* clients */,
  113.     int /* nclients */,     
  114.     XRecordRange**              /* ranges */,
  115.     int /* nranges */
  116. );
  117. extern XRecordRange *XRecordAllocRange(
  118.     void
  119. );
  120. extern Status XRecordRegisterClients(
  121.     Display*  /* dpy */, 
  122.     XRecordContext  /* context */, 
  123.     int /* datum_flags */,
  124.     XRecordClientSpec* /* clients */,
  125.     int /* nclients */, 
  126.     XRecordRange**  /* ranges */,  
  127.     int /* nranges */
  128. );
  129. extern Status XRecordUnregisterClients(
  130.     Display*  /* dpy */, 
  131.     XRecordContext  /* context */, 
  132.     XRecordClientSpec* /* clients */,
  133.     int /* nclients */ 
  134. );
  135. extern Status XRecordGetContext(
  136.     Display* /* dpy */,
  137.     XRecordContext  /* context */, 
  138.     XRecordState**  /* state_return */ 
  139. );
  140. extern void XRecordFreeState(
  141. XRecordState* /* state */
  142. ); 
  143. typedef void (*XRecordInterceptProc) (
  144.     XPointer /* closure */, 
  145.     XRecordInterceptData* /* recorded_data */
  146. );
  147. extern Status XRecordEnableContext(
  148.     Display* /* dpy */,
  149.     XRecordContext  /* context */, 
  150.     XRecordInterceptProc /* callback */,
  151.     XPointer /* closure */
  152. ); 
  153. extern Status XRecordEnableContextAsync(
  154.     Display* /* dpy */,
  155.     XRecordContext  /* context */, 
  156.     XRecordInterceptProc /* callback */,
  157.     XPointer /* closure */
  158. ); 
  159. extern void XRecordProcessReplies(
  160.     Display* /* dpy */
  161. ); 
  162. extern void XRecordFreeData(
  163. XRecordInterceptData* /* data */
  164. ); 
  165. extern Status XRecordDisableContext(
  166.     Display* /* dpy */,
  167.     XRecordContext  /* context */
  168. ); 
  169. extern Status XRecordFreeContext(
  170.     Display*  /* dpy */, 
  171.     XRecordContext  /* context */
  172. );
  173. _XFUNCPROTOEND
  174. #endif /* _XRECORD_SERVER_ */
  175. #endif /* _RECORD_H_ */