summaryrefslogtreecommitdiffstats
path: root/rfb
diff options
context:
space:
mode:
authorsteven_carr <steven_carr>2006-05-04 19:19:13 +0000
committersteven_carr <steven_carr>2006-05-04 19:19:13 +0000
commit0d734ad8967eafab1fb058280a0db04e7470e569 (patch)
tree9e90c2eedda6bee6f5db4e177651df63730802ca /rfb
parent2eded94f7b46a33a290da74cff8e8c8ff4bdbe77 (diff)
downloadlibtdevnc-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.h7
-rw-r--r--rfb/rfbproto.h41
2 files changed, 43 insertions, 5 deletions
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;