Logo Search packages:      
Sourcecode: x11proto-record version File versions  Download package

record.h

/* 
$Xorg: record.h,v 1.3 2000/08/18 04:05:46 coskrey Exp $
*/

/***************************************************************************
 * Copyright 1995 Network Computing Devices
 *
 * Permission to use, copy, modify, distribute, and sell this software and
 * its documentation for any purpose is hereby granted without fee, provided
 * that the above copyright notice appear in all copies and that both that
 * copyright notice and this permission notice appear in supporting
 * documentation, and that the name of Network Computing Devices 
 * not be used in advertising or publicity pertaining to distribution
 * of the software without specific, written prior permission.
 *
 * NETWORK COMPUTING DEVICES DISCLAIMs ALL WARRANTIES WITH REGARD TO 
 * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY 
 * AND FITNESS, IN NO EVENT SHALL NETWORK COMPUTING DEVICES BE LIABLE 
 * FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 
 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN 
 * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING 
 * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 **************************************************************************/
/* $XFree86$ */

#ifndef _RECORD_H_
#define _RECORD_H_

#define XRecordBadContext       0   /* Not a valid RC */

/*
 * Constants for arguments of various requests
 */
#define     XRecordFromServerTime         0x01
#define     XRecordFromClientTime         0x02
#define     XRecordFromClientSequence     0x04

#define XRecordCurrentClients       1
#define XRecordFutureClients        2
#define XRecordAllClients           3

#define XRecordFromServer                 0
#define XRecordFromClient               1
#define XRecordClientStarted              2
#define XRecordClientDied               3
#define XRecordStartOfData          4
#define XRecordEndOfData            5

typedef unsigned long   XRecordClientSpec;

#ifndef _XRECORD_SERVER_

typedef unsigned long   XRecordContext;

00055 typedef struct
{
    unsigned char       first;
    unsigned char       last;
} XRecordRange8;

00061 typedef struct
{
    unsigned short      first;
    unsigned short      last;
} XRecordRange16; 

00067 typedef struct
{
    XRecordRange8 ext_major;
    XRecordRange16      ext_minor; 
} XRecordExtRange; 

00073 typedef struct
{
    XRecordRange8     core_requests;      /* core X requests */
    XRecordRange8     core_replies; /* core X replies */
    XRecordExtRange   ext_requests; /* extension requests */
    XRecordExtRange   ext_replies;  /* extension replies */
    XRecordRange8     delivered_events;   /* delivered core and ext events */
    XRecordRange8     device_events;      /* all core and ext device events */
    XRecordRange8     errors;       /* core X and ext errors */
    Bool          client_started;   /* connection setup reply */
    Bool              client_died;  /* notice of client disconnect */    
} XRecordRange;

00086 typedef struct
{
    XRecordClientSpec   client;
    unsigned long       nranges; 
    XRecordRange  **ranges;
} XRecordClientInfo;

00093 typedef struct
{
    Bool          enabled;
    int                 datum_flags; 
    unsigned long       nclients; 
    XRecordClientInfo   **client_info;
} XRecordState;

00101 typedef struct
{
    XID           id_base;
    Time          server_time; 
    unsigned long       client_seq;
    int                 category; 
    Bool          client_swapped;
    unsigned char       *data;
    unsigned long       data_len;   /* in 4-byte units */
} XRecordInterceptData;

_XFUNCPROTOBEGIN

/*********************************************************
 *
 * Prototypes 
 *
 */

XID XRecordIdBaseMask(
    Display *dpy
);

extern Status XRecordQueryVersion(
    Display*                  /* dpy */,
    int*                /* cmajor_return */, 
    int*                /* cminor_return */  
);

extern XRecordContext XRecordCreateContext(
    Display*                  /* dpy */, 
    int                       /* datum_flags */, 
    XRecordClientSpec*        /* clients */,
    int                       /* nclients */,     
    XRecordRange**              /* ranges */,
    int                       /* nranges */
);

extern XRecordRange *XRecordAllocRange(
    void
);

extern Status XRecordRegisterClients(
    Display*                  /* dpy */, 
    XRecordContext            /* context */, 
    int                       /* datum_flags */,
    XRecordClientSpec*        /* clients */,
    int                       /* nclients */, 
    XRecordRange**            /* ranges */,  
    int                       /* nranges */
);

extern Status XRecordUnregisterClients(
    Display*                  /* dpy */, 
    XRecordContext            /* context */, 
    XRecordClientSpec*        /* clients */,
    int                       /* nclients */ 
);

extern Status XRecordGetContext(
    Display*                  /* dpy */,
    XRecordContext            /* context */, 
    XRecordState**            /* state_return */ 
);

extern void XRecordFreeState(
XRecordState*                 /* state */
); 

typedef void (*XRecordInterceptProc) (
    XPointer                  /* closure */, 
    XRecordInterceptData*     /* recorded_data */
);

extern Status XRecordEnableContext(
    Display*                  /* dpy */,
    XRecordContext            /* context */, 
    XRecordInterceptProc      /* callback */,
    XPointer                  /* closure */
); 

extern Status XRecordEnableContextAsync(
    Display*                  /* dpy */,
    XRecordContext            /* context */, 
    XRecordInterceptProc      /* callback */,
    XPointer                  /* closure */
); 

extern void XRecordProcessReplies(
    Display*                  /* dpy */
); 

extern void XRecordFreeData(
XRecordInterceptData*   /* data */
); 

extern Status XRecordDisableContext(
    Display*                  /* dpy */,
    XRecordContext            /* context */
); 

extern Status XRecordFreeContext(
    Display*                  /* dpy */, 
    XRecordContext            /* context */
);

_XFUNCPROTOEND

#endif /* _XRECORD_SERVER_ */

#endif /* _RECORD_H_ */

Generated by  Doxygen 1.6.0   Back to index