/* XDPSproto.h -- protocol requests constants and alignment values, analogous to Xproto.h Copyright 1988-1994 Adobe Systems Incorporated. Portions Copyright 1988, 1989 Digital Equipment Corporation. Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the above copyright notices appear in all copies and that both those copyright notices and this permission notice appear in supporting documentation, and that the names of Adobe Systems Incorporated and Digital Equipment Corporation not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. Adobe Systems Incorporated and Digital Equipment Corporation make no representations about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty. ADOBE SYSTEMS INCORPORATED AND DIGITAL EQUIPMENT CORPORATION DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL ADOBE SYSTEMS INCORPORATED AND DIGITAL EQUIPMENT CORPORATION 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. Author: Adobe Systems Incorporated and Digital Equipment Corporation */ #ifndef _XDPSproto_h #define _XDPSproto_h #include /* For the purpose of the structure definitions in this file, we must redefine the following types in terms of Xmd.h's types, which may include bit fields. All of these are #undef'd at the end of this file, restoring the typedefs in X.h. */ #define Window CARD32 #define Drawable CARD32 #define Font CARD32 #define Pixmap CARD32 #define Cursor CARD32 #define Colormap CARD32 #define GContext CARD32 #define Atom CARD32 #define VisualID CARD32 #define Time CARD32 #define KeyCode CARD8 #define KeySym CARD32 /* NOTE: The Digital UWS 2.2 DECWindows/DPS server uses "DPSExtension" for the name of the extension. The name registered with the X Consortium is "Adobe-DPS-Extension". Your client should query both names. */ #define DPSNAME "Adobe-DPS-Extension" #define DECDPSNAME "DPSExtension" #define DPSPROTO_V09 9 /* L2-DPS Rel 1.0 */ #define DPSPROTO_V08 8 /* L1-DPS */ #define DPSPROTO_OLDEST DPSPROTO_V08 #ifndef DPSPROTOCOLVERSION #define DPSPROTOCOLVERSION DPSPROTO_V09 #endif #define CONTEXTXID CARD32 #define SPACEXID CARD32 #ifndef BYTESPEROUTPUTEVENT #define BYTESPEROUTPUTEVENT 24 #endif /* Might be fewer for wide architectures with messy padding */ /* * Requests: */ #define X_PSInit 1 #define X_PSCreateContext 2 #define X_PSCreateSpace 3 #define X_PSGiveInput 4 #define X_PSGetStatus 5 #define X_PSDestroySpace 6 #define X_PSReset 7 #define X_PSNotifyContext 8 #define X_PSCreateContextFromID 9 #define X_PSXIDFromContext 10 #define X_PSContextFromXID 11 #define X_PSSetStatusMask 12 #define X_PSCreateSecureContext 13 /* L2-DPS/PROTO 9 addition */ #define X_PSNotifyWhenReady 14 /* L2-DPS/PROTO 9 addition */ #define PSLASTREQUEST X_PSNotifyWhenReady #define PSLASTREQUEST_P8 X_PSSetStatusMask typedef struct _PSInit { CARD8 reqType; /* always DPSReqCode */ CARD8 dpsReqType; /* always X_PSInit */ CARD16 length B16; /* length of request */ CARD32 libraryversion B32; /* version of protocol implementation */ } xPSInitReq; #define sz_xPSInitReq 8 typedef struct _PSCreateContext { CARD8 reqType; /* always DPSReqCode */ CARD8 dpsReqType; /* always X_PSCreateContext */ CARD16 length B16; /* length of request */ CONTEXTXID cxid B32; /* XID for context */ SPACEXID sxid B32; /* XID for Space to use for new context */ Drawable drawable B32; /* Drawable for new context */ GContext gc B32; /* GC for new context */ INT16 x B16; /* x, initial origin of context's device */ INT16 y B16; /* y, initial origin of context's device */ CARD32 eventmask B32; /* events that context is interested in */ Colormap cmap B32; /* colormap for this context */ CARD32 redmax B32; /* color cube */ CARD32 redmult B32; CARD32 greenmax B32; CARD32 greenmult B32; CARD32 bluemax B32; CARD32 bluemult B32; CARD32 colorbase B32; CARD32 graymax B32; /* gray ramp */ CARD32 graymult B32; CARD32 graybase B32; CARD32 actual B32; /* actual colors, if any */ } xPSCreateContextReq; #define sz_xPSCreateContextReq 76 typedef struct _PSCreateSpace { CARD8 reqType; /* always DPSReqCode */ CARD8 dpsReqType; /* always X_PSCreateSpace */ CARD16 length B16; SPACEXID sxid B32; /* Space to be created */ } xPSCreateSpaceReq; #define sz_xPSCreateSpaceReq 8 typedef struct _PSGiveInput { CARD8 reqType; /* always DPSReqCode */ CARD8 dpsReqType; /* always X_PSGiveInput */ CARD16 length B16; /* length of request */ CARD16 nunits B16; /* number of bytes in following string */ CARD16 pad B16; CONTEXTXID cxid B32; /* Context for input. */ } xPSGiveInputReq; #define sz_xPSGiveInputReq 12 typedef struct _PSGetStatus { CARD8 reqType; /* always DPSReqCode */ CARD8 dpsReqType; /* always X_PSGetStatus */ CARD16 length B16; CONTEXTXID cxid B32; CARD32 notifyIfChange B32; /* unused */ } xPSGetStatusReq; #define sz_xPSGetStatusReq 12 typedef struct _PSDestroySpace { CARD8 reqType; /* always DPSReqCode */ CARD8 dpsReqType; /* always X_PSDestroySpace */ CARD16 length B16; SPACEXID sxid B32; } xPSDestroySpaceReq; #define sz_xPSDestroySpaceReq 8 typedef struct _PSReset { CARD8 reqType; /* always DPSReqCode */ CARD8 dpsReqType; /* always X_PSReset */ CARD16 length B16; CONTEXTXID cxid B32; } xPSResetReq; #define sz_xPSResetReq 8 typedef struct _PSNotifyContext { CARD8 reqType; /* always DPSReqCode */ CARD8 dpsReqType; /* always X_PSNotifyContext */ CARD16 length B16; CONTEXTXID cxid B32; CARD8 notifyType; /* see XDPS.h */ CARD8 pad1; CARD8 pad2; CARD8 pad3; } xPSNotifyContextReq; #define sz_xPSNotifyContextReq 12 typedef struct _PSCreateContextFromID { CARD8 reqType; /* always DPSReqCode */ CARD8 dpsReqType; /* always X_PSCreateContextFromID */ CARD16 length B16; CARD32 cpsid B32; /* the PostScript context ID */ CONTEXTXID cxid B32; /* resource ID to associate with cpsid */ } xPSCreateContextFromIDReq; #define sz_xPSCreateContextFromIDReq 12 typedef struct _PSXIDFromContext { CARD8 reqType; /* always DPSReqCode */ CARD8 dpsReqType; /* always X_PSXIDFromContext */ CARD16 length B16; CARD32 cpsid B32; } xPSXIDFromContextReq; #define sz_xPSXIDFromContextReq 8 typedef struct _PSContextFromXID { CARD8 reqType; /* always DPSReqCode */ CARD8 dpsReqType; /* always X_PSContextFromXID */ CARD16 length B16; CONTEXTXID cxid B32; } xPSContextFromXIDReq; #define sz_xPSContextFromXIDReq 8 typedef struct _PSSetStatusMask { CARD8 reqType; /* always DPSReqCode */ CARD8 dpsReqType; /* always X_PSContextFromXID */ CARD16 length B16; CONTEXTXID cxid B32; CARD32 enableMask B32; CARD32 disableMask B32; CARD32 nextMask B32; } xPSSetStatusMaskReq; #define sz_xPSSetStatusMaskReq 20 /* L2-DPS/PROTO 9 addition */ typedef struct _PSCreateContext xPSCreateSecureContextReq; #define sz_xPSCreateSecureContextReq sz_xPSCreateContextReq /* L2-DPS/PROTO 9 addition */ typedef struct _PSNotifyWhenReady { CARD8 reqType; /* always DPSReqCode */ CARD8 dpsReqType; /* always X_PSNotifyWhenReady */ CARD16 length B16; CONTEXTXID cxid B32; INT32 val1 B32; INT32 val2 B32; INT32 val3 B32; INT32 val4 B32; } xPSNotifyWhenReadyReq; #define sz_xPSNotifyWhenReadyReq 24 /* * Replies: */ typedef struct { BYTE type; /* X_Reply */ BYTE pad; CARD16 sequenceNumber B16; /* of last request received by server */ CARD32 length B32; /* 4 byte quantities beyond size of GenericReply */ CARD32 cpsid B32; CARD32 pad1 B32; CARD32 pad2 B32; CARD32 pad3 B32; CARD32 pad4 B32; CARD32 pad5 B32; } xPSCreateContextReply; /* use same reply for CreateSecureContext */ typedef struct { BYTE type; /* X_Reply */ BYTE status; /* see XDPS.h */ CARD16 sequenceNumber B16; /* of last request received by server */ CARD32 length B32; /* 4 byte quantities beyond size of GenericReply */ CARD32 pad0 B32; CARD32 pad1 B32; CARD32 pad2 B32; CARD32 pad3 B32; CARD32 pad4 B32; CARD32 pad5 B32; } xPSGetStatusReply; typedef struct { BYTE type; /* X_Reply */ BYTE pad; CARD16 sequenceNumber B16; /* of last request received by server */ CARD32 length B32; /* 4 byte quantities beyond size of GenericReply */ SPACEXID sxid B32; CARD32 pad1 B32; CARD32 pad2 B32; CARD32 pad3 B32; CARD32 pad4 B32; CARD32 pad5 B32; } xPSCreateContextFromIDReply; typedef struct { BYTE type; /* X_Reply */ BYTE pad; CARD16 sequenceNumber B16; /* of last request received by server */ CARD32 length B32; /* 4 byte quantities beyond size of GenericReply */ CONTEXTXID cxid B32; SPACEXID sxid B32; CARD32 pad2 B32; CARD32 pad3 B32; CARD32 pad4 B32; CARD32 pad5 B32; } xPSXIDFromContextReply; typedef struct { BYTE type; /* X_Reply */ BYTE pad; CARD16 sequenceNumber B16; /* of last request received by server */ CARD32 length B32; /* 4 byte quantities beyond size of GenericReply */ CARD32 cpsid B32; CARD32 pad1 B32; CARD32 pad2 B32; CARD32 pad3 B32; CARD32 pad4 B32; CARD32 pad5 B32; } xPSContextFromXIDReply; typedef struct { BYTE type; /* X_Reply */ BYTE pad; CARD16 sequenceNumber B16; /* of last request received by server */ CARD32 length B32; /* 4 byte quantities beyond size of GenericReply */ CARD32 serverversion B32; /* version of protocol implementation */ CARD32 preferredNumberFormat B32; /* that the server wants to use */ CARD32 floatingNameLength B32; /* length of name of native floating fmt */ CARD32 pad1 B32; CARD32 pad2 B32; CARD32 pad3 B32; } xPSInitReply; /* Followed by name of native floating fmt. */ /* * Events: */ /* NOTE: The useful data in DPS extension events must fit inside of the data portion of a ClientMessage event for the sake of DPS NX */ typedef struct { BYTE type; CARD8 length; CARD16 sequenceNumber B16; CONTEXTXID cxid B32; CARD8 data[BYTESPEROUTPUTEVENT]; } PSOutputEvent; typedef struct { BYTE type; BYTE status; /* see XDPS.h */ CARD16 sequenceNumber B16; CONTEXTXID cxid B32; CARD32 pad1 B32; CARD32 pad2 B32; CARD32 pad3 B32; CARD32 pad4 B32; CARD32 pad5 B32; CARD32 pad6 B32; } PSStatusEvent; /* L2-DPS/PROTO 9 addition */ typedef struct { BYTE type; BYTE pad; CARD16 sequenceNumber B16; CONTEXTXID cxid B32; INT32 val1 B32; INT32 val2 B32; INT32 val3 B32; INT32 val4 B32; CARD32 pad1 B32; CARD32 pad2 B32; } PSReadyEvent; /* restore these definitions back to the typedefs in X.h */ #undef Window #undef Drawable #undef Font #undef Pixmap #undef Cursor #undef Colormap #undef GContext #undef Atom #undef VisualID #undef Time #undef KeyCode #undef KeySym #endif /* _XDPSproto_h */