diff options
author | steven_carr <steven_carr> | 2006-05-04 19:19:13 +0000 |
---|---|---|
committer | steven_carr <steven_carr> | 2006-05-04 19:19:13 +0000 |
commit | 0d734ad8967eafab1fb058280a0db04e7470e569 (patch) | |
tree | 9e90c2eedda6bee6f5db4e177651df63730802ca /rfb | |
parent | 2eded94f7b46a33a290da74cff8e8c8ff4bdbe77 (diff) | |
download | libtdevnc-0d734ad8967eafab1fb058280a0db04e7470e569.tar.gz libtdevnc-0d734ad8967eafab1fb058280a0db04e7470e569.zip |
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)"
Diffstat (limited to 'rfb')
-rw-r--r-- | rfb/rfb.h | 7 | ||||
-rw-r--r-- | rfb/rfbproto.h | 41 |
2 files changed, 43 insertions, 5 deletions
@@ -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; |