@@ -431,13 +431,20 @@ typedef struct {
431431/* Modif cs@2005 */
432432/* PalmVNC 1.4 & 2.0 SetScale Factor message */
433433#define rfbPalmVNCSetScaleFactor 0xF
434+ #define rfbEnableContinuousUpdates 150
435+ #define rfbEndOfContinuousUpdates 150
434436/* Xvp message - bidirectional */
435437#define rfbXvp 250
436438/* SetDesktopSize client -> server message */
437439#define rfbSetDesktopSize 251
438440#define rfbQemuEvent 255
439441
440442
443+ /*-----------------------------------------------------------------------------
444+ * server -> client and client -> server
445+ */
446+
447+ #define rfbFence 248
441448
442449
443450/*****************************************************************************
@@ -528,6 +535,9 @@ typedef struct {
528535#define rfbEncodingQualityLevel8 0xFFFFFFE8
529536#define rfbEncodingQualityLevel9 0xFFFFFFE9
530537
538+ #define rfbEncodingContinuousUpdates 0xFFFFFEC7
539+ #define rfbEncodingFence 0xFFFFFEC8
540+
531541#define rfbEncodingQemuExtendedKeyEvent 0xFFFFFEFE /* -258 */
532542#define rfbEncodingExtendedClipboard 0xC0A1E5CE
533543
@@ -538,6 +548,37 @@ typedef struct {
538548#define rfbEncodingServerIdentity 0xFFFE0003
539549
540550
551+ /*****************************************************************************
552+ *
553+ * Message definitions (server -> client and client -> server)
554+ *
555+ *****************************************************************************/
556+
557+ /*-----------------------------------------------------------------------------
558+ * Fence
559+ */
560+
561+ /* flags */
562+ #define rfbFenceFlagBlockBefore 1
563+ #define rfbFenceFlagBlockAfter 2
564+ #define rfbFenceFlagSyncNext 4
565+ #define rfbFenceFlagRequest 0x80000000
566+ #define rfbFenceFlagsSupported (rfbFenceFlagBlockBefore | \
567+ rfbFenceFlagBlockAfter | \
568+ rfbFenceFlagSyncNext | \
569+ rfbFenceFlagRequest)
570+
571+ typedef struct _rfbFenceMsg {
572+ uint8_t type ; /* always rfbFence */
573+ uint8_t pad [3 ];
574+ uint32_t flags ;
575+ uint8_t length ;
576+ /* Followed by char data[length] */
577+ } rfbFenceMsg ;
578+
579+ #define sz_rfbFenceMsg 9
580+
581+
541582/*****************************************************************************
542583 *
543584 * Server -> client message definitions
@@ -1267,6 +1308,7 @@ typedef union {
12671308 rfbTextChatMsg tc ;
12681309 rfbXvpMsg xvp ;
12691310 rfbExtDesktopSizeMsg eds ;
1311+ rfbFenceMsg f ;
12701312} rfbServerToClientMsg ;
12711313
12721314
@@ -1523,6 +1565,22 @@ typedef struct _rfbSetSWMsg {
15231565#define sz_rfbSetSWMsg 6
15241566
15251567
1568+ /*-----------------------------------------------------------------------------
1569+ * EnableContinuousUpdates
1570+ */
1571+
1572+ typedef struct _rfbEnableContinuousUpdatesMsg {
1573+ uint8_t type ; /* always rfbEnableContinuousUpdates */
1574+ uint8_t enable ;
1575+ uint16_t x ;
1576+ uint16_t y ;
1577+ uint16_t w ;
1578+ uint16_t h ;
1579+ } rfbEnableContinuousUpdatesMsg ;
1580+
1581+ #define sz_rfbEnableContinuousUpdatesMsg 10
1582+
1583+
15261584
15271585/*-----------------------------------------------------------------------------
15281586 * Union of all client->server messages.
@@ -1545,6 +1603,8 @@ typedef union {
15451603 rfbTextChatMsg tc ;
15461604 rfbXvpMsg xvp ;
15471605 rfbSetDesktopSizeMsg sdm ;
1606+ rfbEnableContinuousUpdatesMsg ecu ;
1607+ rfbFenceMsg f ;
15481608} rfbClientToServerMsg ;
15491609
15501610/*
0 commit comments