📄 vnc.h
字号:
#include <u.h>#include <libc.h>#include <bio.h>#include <draw.h>#include <memdraw.h>typedef struct Pixfmt Pixfmt;typedef struct Colorfmt Colorfmt;typedef struct Vnc Vnc;struct Colorfmt { int max; int shift;};struct Pixfmt { int bpp; int depth; int bigendian; int truecolor; Colorfmt red; Colorfmt green; Colorfmt blue;};struct Vnc { QLock; int datafd; /* for network connection */ int ctlfd; /* control for network connection */ Biobuf in; Biobuf out; Point dim; Pixfmt; char *name; /* client only */};enum { /* authentication negotiation */ AFailed = 0, ANoAuth, AVncAuth, /* vnc auth negotiation */ VncAuthOK = 0, VncAuthFailed, VncAuthTooMany, VncChalLen = 16, /* server to client */ MFrameUpdate = 0, MSetCmap, MBell, MSCut, MSAck, /* client to server */ MPixFmt = 0, MFixCmap, MSetEnc, MFrameReq, MKey, MMouse, MCCut, /* image encoding methods */ EncRaw = 0, EncCopyRect = 1, EncRre = 2, EncCorre = 4, EncHextile = 5, EncZlib = 6, /* 6,7,8 have been used by others */ EncTight = 7, EncZHextile = 8, EncMouseWarp = 9, /* paramaters for hextile encoding */ HextileDim = 16, HextileRaw = 1, HextileBack = 2, HextileFore = 4, HextileRects = 8, HextileCols = 16};/* * we're only using the ulong as a place to store bytes, * and as something to compare against. * the bytes are stored in little-endian format. */typedef ulong Color;/* auth.c */extern int vncauth(Vnc*, char*);extern int vnchandshake(Vnc*);extern int vncsrvauth(Vnc*);extern int vncsrvhandshake(Vnc*);/* proto.c */extern Vnc* vncinit(int, int, Vnc*);extern uchar vncrdchar(Vnc*);extern ushort vncrdshort(Vnc*);extern ulong vncrdlong(Vnc*);extern Point vncrdpoint(Vnc*);extern Rectangle vncrdrect(Vnc*);extern Rectangle vncrdcorect(Vnc*);extern Pixfmt vncrdpixfmt(Vnc*);extern void vncrdbytes(Vnc*, void*, int);extern char* vncrdstring(Vnc*);extern char* vncrdstringx(Vnc*);extern void vncwrstring(Vnc*, char*);extern void vncgobble(Vnc*, long);extern void vncflush(Vnc*);extern void vncterm(Vnc*);extern void vncwrbytes(Vnc*, void*, int);extern void vncwrlong(Vnc*, ulong);extern void vncwrshort(Vnc*, ushort);extern void vncwrchar(Vnc*, uchar);extern void vncwrpixfmt(Vnc*, Pixfmt*);extern void vncwrrect(Vnc*, Rectangle);extern void vncwrpoint(Vnc*, Point);extern void vnclock(Vnc*); /* for writing */extern void vncunlock(Vnc*);extern void hexdump(void*, int);/* implemented by clients of the io library */extern void vnchungup(Vnc*);extern int verbose;extern char* serveraddr;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -