From 0d734ad8967eafab1fb058280a0db04e7470e569 Mon Sep 17 00:00:00 2001 From: steven_carr Date: Thu, 4 May 2006 19:19:13 +0000 Subject: Server Capability Encodings rfbEncodingSupportedEncodings - What encodings are supported? rfbEncodingSupportedMessages - What message types are supported? rfbEncodingServerIdentity - What is the servers version string? ie: "x11vnc: 0.8.1 lastmod: 2006-04-25 (LibVNCServer 0.9pre)" --- rfb/rfb.h | 7 +++++++ rfb/rfbproto.h | 41 ++++++++++++++++++++++++++++++++++++----- 2 files changed, 43 insertions(+), 5 deletions(-) (limited to 'rfb') diff --git a/rfb/rfb.h b/rfb/rfb.h index 23d64d4..39abe77 100644 --- a/rfb/rfb.h +++ b/rfb/rfb.h @@ -323,6 +323,9 @@ typedef struct _rfbScreenInfo /* handle as many input events as possible (default off) */ rfbBool handleEventsEagerly; + + /* rfbEncodingServerIdentity */ + char *versionString; } rfbScreenInfo, *rfbScreenInfoPtr; @@ -501,6 +504,9 @@ typedef struct _rfbClientRec { int lastKeyboardLedState; /* keep track of last value so we can send *change* events */ + rfbBool enableSupportedMessages; /* client supports SupportedMessages encoding */ + rfbBool enableSupportedEncodings; /* client supports SupportedEncodings encoding */ + rfbBool enableServerIdentity; /* client supports ServerIdentity encoding */ rfbBool enableKeyboardLedState; /* client supports KeyboardState encoding */ rfbBool enableLastRectEncoding; /* client supports LastRect encoding */ rfbBool enableCursorShapeUpdates; /* client supports cursor shape updates */ @@ -852,6 +858,7 @@ extern void rfbNewFramebuffer(rfbScreenInfoPtr rfbScreen,char *framebuffer, int bytesPerPixel); extern void rfbScreenCleanup(rfbScreenInfoPtr screenInfo); +extern void rfbSetServerVersionIdentity(rfbScreenInfoPtr screen, char *fmt, ...); /* functions to accept/refuse a client that has been put on hold by a NewClientHookPtr function. Must not be called in other diff --git a/rfb/rfbproto.h b/rfb/rfbproto.h index 7e9d9fd..c642f61 100644 --- a/rfb/rfbproto.h +++ b/rfb/rfbproto.h @@ -401,8 +401,8 @@ typedef struct { #define rfbEncodingZlib 6 #define rfbEncodingTight 7 #define rfbEncodingZlibHex 8 -#define rfbEncodingUltra 9 #endif +#define rfbEncodingUltra 9 #ifdef LIBVNCSERVER_HAVE_LIBZ #define rfbEncodingZRLE 16 #endif @@ -446,9 +446,12 @@ typedef struct { #define rfbEncodingRichCursor 0xFFFFFF11 #define rfbEncodingPointerPos 0xFFFFFF18 -#define rfbEncodingLastRect 0xFFFFFF20 -#define rfbEncodingNewFBSize 0xFFFFFF21 -#define rfbEncodingKeyboardLedState 0xFFFFFF22 +#define rfbEncodingLastRect 0xFFFFFF20 +#define rfbEncodingNewFBSize 0xFFFFFF21 +#define rfbEncodingKeyboardLedState 0xFFFFFF22 +#define rfbEncodingSupportedMessages 0xFFFFFF23 +#define rfbEncodingSupportedEncodings 0xFFFFFF24 +#define rfbEncodingServerIdentity 0xFFFFFF25 #define rfbEncodingQualityLevel0 0xFFFFFFE0 #define rfbEncodingQualityLevel1 0xFFFFFFE1 @@ -514,6 +517,34 @@ typedef struct { #define sz_rfbFramebufferUpdateRectHeader (sz_rfbRectangle + 4) +/*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + * Supported Messages Encoding. This encoding does not contain any pixel data. + * Instead, it contains 2 sets of bitflags. These bitflags indicate what messages + * are supported by the server. + * rect->w contains byte count + */ + +typedef struct { + uint8_t client2server[32]; /* maximum of 256 message types (256/8)=32 */ + uint8_t server2client[32]; /* maximum of 256 message types (256/8)=32 */ +} rfbSupportedMessages; + +#define sz_rfbSupportedMessages 64 + +/*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + * Supported Encodings Encoding. This encoding does not contain any pixel data. + * Instead, it contains a list of (uint32_t) Encodings supported by this server. + * rect->w contains byte count + * rect->h contains encoding count + */ + +/*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + * Server Identity Encoding. This encoding does not contain any pixel data. + * Instead, it contains a text string containing information about the server. + * ie: "x11vnc: 0.8.1 lastmod: 2006-04-25 (libvncserver 0.9pre)\0" + * rect->w contains byte count + */ + /*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * Raw Encoding. Pixels are sent in top-to-bottom scanline order, @@ -1244,7 +1275,7 @@ typedef struct _rfbSetScaleMsg { * client buffer. */ typedef struct { - uint8_t type; /* always rfbSetScaleFactor */ + uint8_t type; /* always rfbPalmVNCSetScaleFactor */ uint8_t scale; /* Scale factor (positive non-zero integer) */ uint16_t pad2; -- cgit v1.2.1