⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rfb.h

📁 远程桌面连接工具
💻 H
📖 第 1 页 / 共 2 页
字号:
 * This macro creates an empty region (ie. a region with no areas) if it is * given a rectangle with a width or height of zero. It appears that  * REGION_INTERSECT does not quite do the right thing with zero-width * rectangles, but it should with completely empty regions. */#define SAFE_REGION_INIT(pscreen, preg, rect, size)          \{                                                            \      if ( ( (rect) ) &&                                     \           ( ( (rect)->x2 == (rect)->x1 ) ||                 \	     ( (rect)->y2 == (rect)->y1 ) ) ) {              \	  REGION_INIT( (pscreen), (preg), NullBox, 0 );      \      } else {                                               \	  REGION_INIT( (pscreen), (preg), (rect), (size) );  \      }                                                      \}/* * An rfbGCRec is where we store the pointers to the original GC funcs and ops * which we wrap (NULL means not wrapped). */typedef struct {    GCFuncs *wrapFuncs;    GCOps *wrapOps;} rfbGCRec, *rfbGCPtr;/* * Macros for endian swapping. */#define Swap16(s) ((((s) & 0xff) << 8) | (((s) >> 8) & 0xff))#define Swap32(l) (((l) >> 24) | \		   (((l) & 0x00ff0000) >> 8)  | \		   (((l) & 0x0000ff00) << 8)  | \		   ((l) << 24))static const int rfbEndianTest = 1;#define Swap16IfLE(s) (*(const char *)&rfbEndianTest ? Swap16(s) : (s))#define Swap32IfLE(l) (*(const char *)&rfbEndianTest ? Swap32(l) : (l))/* * Macro to fill in an rfbCapabilityInfo structure (protocol 3.7t). * Normally, using macros is no good, but this macro saves us from * writing constants twice -- it constructs signature names from codes. * Note that "code_sym" argument should be a single symbol, not an expression. */#define SetCapInfo(cap_ptr, code_sym, vendor)		\{							\    rfbCapabilityInfo *pcap;				\    pcap = (cap_ptr);					\    pcap->code = Swap32IfLE(code_sym);			\    memcpy(pcap->vendorSignature, (vendor),		\	   sz_rfbCapabilityInfoVendor);			\    memcpy(pcap->nameSignature, sig_##code_sym,		\	   sz_rfbCapabilityInfoName);			\}/* init.c */extern char *desktopName;extern char rfbThisHost[];extern Atom VNC_LAST_CLIENT_ID;extern rfbScreenInfo rfbScreen;extern int rfbGCIndex;extern int inetdSock;extern struct in_addr interface;extern int rfbBitsPerPixel(int depth);extern void rfbLog(char *format, ...);extern void rfbLogPerror(char *str);/* sockets.c */extern int rfbMaxClientWait;extern int udpPort;extern int udpSock;extern Bool udpSockConnected;extern int rfbPort;extern int rfbListenSock;extern void rfbInitSockets();extern void rfbDisconnectUDPSock();extern void rfbCloseSock();extern void rfbCheckFds();extern void rfbWaitForClient(int sock);extern int rfbConnect(char *host, int port);extern int ReadExact(int sock, char *buf, int len);extern int WriteExact(int sock, char *buf, int len);extern int ListenOnTCPPort(int port);extern int ListenOnUDPPort(int port);extern int ConnectToTcpAddr(char *host, int port);/* cmap.c */extern ColormapPtr rfbInstalledColormap;extern int rfbListInstalledColormaps(ScreenPtr pScreen, Colormap *pmaps);extern void rfbInstallColormap(ColormapPtr pmap);extern void rfbUninstallColormap(ColormapPtr pmap);extern void rfbStoreColors(ColormapPtr pmap, int ndef, xColorItem *pdefs);/* draw.c */extern int rfbDeferUpdateTime;extern Bool rfbCloseScreen(int,ScreenPtr);extern Bool rfbCreateGC(GCPtr);extern void rfbPaintWindowBackground(WindowPtr, RegionPtr, int what);extern void rfbPaintWindowBorder(WindowPtr, RegionPtr, int what);extern void rfbCopyWindow(WindowPtr, DDXPointRec, RegionPtr);extern void rfbClearToBackground(WindowPtr, int x, int y, int w,				 int h, Bool generateExposures);extern RegionPtr rfbRestoreAreas(WindowPtr, RegionPtr);/* cutpaste.c */extern void rfbSetXCutText(char *str, int len);extern void rfbGotXCutText(char *str, int len);/* kbdptr.c */extern Bool compatibleKbd;extern unsigned char ptrAcceleration;extern void PtrDeviceInit();extern void PtrDeviceOn();extern void PtrDeviceOff();extern void PtrDeviceControl();extern void PtrAddEvent(int buttonMask, int x, int y, rfbClientPtr cl);extern void KbdDeviceInit();extern void KbdDeviceOn();extern void KbdDeviceOff();extern void KbdAddEvent(Bool down, KeySym keySym, rfbClientPtr cl);extern void KbdReleaseAllKeys();/* rfbserver.c *//* * UPDATE_BUF_SIZE must be big enough to send at least one whole line of the * framebuffer.  So for a max screen width of say 2K with 32-bit pixels this * means 8K minimum. */#define UPDATE_BUF_SIZE 30000extern char updateBuf[UPDATE_BUF_SIZE];extern int ublen;extern rfbClientPtr rfbClientHead;extern rfbClientPtr pointerClient;extern Bool rfbAlwaysShared;extern Bool rfbNeverShared;extern Bool rfbDontDisconnect;extern Bool rfbViewOnly; /* run server in view-only mode - Ehud Karni SW */extern void rfbNewClientConnection(int sock);extern rfbClientPtr rfbReverseConnection(char *host, int port);extern void rfbClientConnectionGone(int sock);extern void rfbProcessClientMessage(int sock);extern void rfbNewUDPConnection(int sock);extern void rfbProcessUDPInput(int sock);extern Bool rfbSendFramebufferUpdate(rfbClientPtr cl);extern Bool rfbSendRectEncodingRaw(rfbClientPtr cl, int x,int y,int w,int h);extern Bool rfbSendUpdateBuf(rfbClientPtr cl);extern Bool rfbSendSetColourMapEntries(rfbClientPtr cl, int firstColour,				       int nColours);extern void rfbSendBell();extern void rfbSendServerCutText(char *str, int len);/* translate.c */extern Bool rfbEconomicTranslate;extern rfbPixelFormat rfbServerFormat;extern void rfbTranslateNone(char *table, rfbPixelFormat *in,			     rfbPixelFormat *out,			     char *iptr, char *optr,			     int bytesBetweenInputLines,			     int width, int height);extern Bool rfbSetTranslateFunction(rfbClientPtr cl);extern void rfbSetClientColourMaps(int firstColour, int nColours);extern Bool rfbSetClientColourMap(rfbClientPtr cl, int firstColour,				  int nColours);/* httpd.c */extern int httpPort;extern char *httpDir;extern void httpInitSockets();extern void httpCheckFds();/* auth.c */extern char *rfbAuthPasswdFile;extern void rfbAuthNewClient(rfbClientPtr cl);extern void rfbProcessClientSecurityType(rfbClientPtr cl);extern void rfbProcessClientTunnelingType(rfbClientPtr cl);extern void rfbProcessClientAuthType(rfbClientPtr cl);extern void rfbVncAuthProcessResponse(rfbClientPtr cl);extern void rfbClientConnFailed(rfbClientPtr cl, char *reason);extern void rfbClientAuthFailed(rfbClientPtr cl, char *reason);extern void rfbClientAuthSucceeded(rfbClientPtr cl, CARD32 authType);/* Functions to prevent too many successive authentication failures */extern Bool rfbAuthConsiderBlocking(void);extern void rfbAuthUnblock(void);extern Bool rfbAuthIsBlocked(void);/* rre.c */extern Bool rfbSendRectEncodingRRE(rfbClientPtr cl, int x,int y,int w,int h);/* corre.c */extern Bool rfbSendRectEncodingCoRRE(rfbClientPtr cl, int x,int y,int w,int h);/* hextile.c */extern Bool rfbSendRectEncodingHextile(rfbClientPtr cl, int x, int y, int w,				       int h);/* zlib.c *//* Minimum zlib rectangle size in bytes.  Anything smaller will * not compress well due to overhead. */#define VNC_ENCODE_ZLIB_MIN_COMP_SIZE (17)/* Set maximum zlib rectangle size in pixels.  Always allow at least * two scan lines. */#define ZLIB_MAX_RECT_SIZE (128*256)#define ZLIB_MAX_SIZE(min) ((( min * 2 ) > ZLIB_MAX_RECT_SIZE ) ? \			    ( min * 2 ) : ZLIB_MAX_RECT_SIZE )extern Bool rfbSendRectEncodingZlib(rfbClientPtr cl, int x, int y, int w,				    int h);/* tight.c */#define TIGHT_DEFAULT_COMPRESSION  6extern Bool rfbTightDisableGradient;extern int rfbNumCodedRectsTight(rfbClientPtr cl, int x,int y,int w,int h);extern Bool rfbSendRectEncodingTight(rfbClientPtr cl, int x,int y,int w,int h);/* cursor.c */extern Bool rfbSendCursorShape(rfbClientPtr cl, ScreenPtr pScreen);extern Bool rfbSendCursorPos(rfbClientPtr cl, ScreenPtr pScreen);/* stats.c */extern void rfbResetStats(rfbClientPtr cl);extern void rfbPrintStats(rfbClientPtr cl);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -