diff options
author | Keith Packard <keithp@keithp.com> | 2001-06-08 00:32:52 +0000 |
---|---|---|
committer | Alan Coopersmith <alan.coopersmith@sun.com> | 2009-05-04 18:13:07 -0700 |
commit | 062412a066cc62635c1d1eb99999ee774775ca6f (patch) | |
tree | 3a72f748e101900c292cf242055862ecce4bccb7 /decode_lbx.c | |
parent | 306057f2475b216fb73686bcb0003355cf88944a (diff) | |
download | xscope-062412a066cc62635c1d1eb99999ee774775ca6f.tar.gz |
Import xscope bits into keithp.com CVS
Diffstat (limited to 'decode_lbx.c')
-rw-r--r-- | decode_lbx.c | 149 |
1 files changed, 149 insertions, 0 deletions
diff --git a/decode_lbx.c b/decode_lbx.c new file mode 100644 index 0000000..5aced31 --- /dev/null +++ b/decode_lbx.c @@ -0,0 +1,149 @@ +/* + * $NCDId$ + * + * Copyright 1992 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 NCD. not be used in advertising or + * publicity pertaining to distribution of the software without specific, + * written prior permission. NCD. makes no representations about the + * suitability of this software for any purpose. It is provided "as is" + * without express or implied warranty. + * + * NCD. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL NCD. + * 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: Keith Packard, Network Computing Devices + */ + +#include <stdio.h> +#include <X11/X.h> +#include <X11/Xproto.h> +#define _XLBX_SERVER_ +#include "scope.h" +#include "x11.h" +#include "lbxscope.h" + +unsigned char LookForLBXFlag; + +unsigned char LBXRequest, LBXEvent, LBXError; + +lbx_decode_req(fd, buf) +FD fd; +unsigned char *buf; +{ + short Major = IByte (&buf[0]); + short Minor = IByte (&buf[1]); + + switch (Minor) { + case 0: + LbxQueryVersion (fd, buf); + ExtendedReplyExpected (fd, Major, Minor); + break; + case 1: + LbxStartProxy (fd, buf); + break; + case 2: + LbxStopProxy (fd, buf); + break; + case 3: + LbxSwitch (fd, buf); + break; + case 4: + LbxNewClient(fd, buf); + break; + case 5: + LbxCloseClient (fd, buf); + break; + case 6: + LbxModifySequence (fd, buf); + break; + default: + break; + } +} + +lbx_decode_reply(fd, buf, RequestMinor) + FD fd; + unsigned char *buf; + short RequestMinor; +{ + switch (RequestMinor) { + case 0: + LbxQueryVersionReply (fd, buf); + break; + default: + break; + } +} + +lbx_decode_error(fd, buf) + FD fd; + unsigned char *buf; +{ + short error = IByte(&buf[1]) - LBXError; + + switch (error) { + case 0: + break; + default: + break; + } +} + +lbx_decode_event (fd, buf) + FD fd; + unsigned char *buf; +{ + short event = IByte(&buf[0]) - LBXEvent; + + switch (event) { + case 0: + LbxSwitchEvent (fd, buf); + break; + case 1: + LbxCloseEvent (fd, buf); + break; + default: + break; + } +} + +InitializeLBX(buf) + unsigned char *buf; +{ + TYPE p, DefineType (); + + LBXRequest = (unsigned char)(buf[9]); + LBXEvent = (unsigned char)(buf[10]); + LBXError = (unsigned char)(buf[11]); + LookForLBXFlag = 0; + + DefineEValue (&TD[REQUEST], (unsigned long) LBXRequest, "LbxRequest"); + DefineEValue (&TD[REPLY], (unsigned long) LBXRequest, "LbxReply"); + DefineEValue (&TD[EVENT], (unsigned long) LBXEvent, "LbxEvent"); + DefineEValue (&TD[ERROR], (unsigned long) LBXError, "LbxError"); + + p = DefineType(LBXREQUEST, ENUMERATED, "LBXREQUEST", PrintENUMERATED); + DefineEValue(p, 0L, "QueryVersion"); + DefineEValue(p, 1L, "StartProxy"); + DefineEValue(p, 2L, "StopProxy"); + DefineEValue(p, 3L, "Switch"); + DefineEValue(p, 4L, "NewClient"); + DefineEValue(p, 5L, "CloseClient"); + DefineEValue(p, 6L, "ModifySequence"); + + p = DefineType(LBXREPLY, ENUMERATED, "LBXREPLY", PrintENUMERATED); + DefineEValue (p, 0L, "QueryVersion"); + + p = DefineType(LBXEVENT, ENUMERATED, "LBXEVENT", PrintENUMERATED); + DefineEValue (p, 0L, "SwitchEvent"); + DefineEValue (p, 1L, "CloseEvent"); +} |