@@ -207,6 +207,8 @@ enum rfbProtocolExtensionHookType {
207207 RFB_PROTOCOL_EXTENSION_HOOK_CLOSE ,
208208 RFB_PROTOCOL_EXTENSION_HOOK_USAGE ,
209209 RFB_PROTOCOL_EXTENSION_HOOK_PROCESS_ARGUMENT ,
210+ RFB_PROTOCOL_EXTENSION_HOOK_PRE_FBU ,
211+ RFB_PROTOCOL_EXTENSION_HOOK_POST_FBU ,
210212};
211213
212214typedef void * rfbProtocolExtensionHookGeneric ;
@@ -248,6 +250,13 @@ _Static_assert(sizeof(rfbProtocolExtensionHookGeneric) == sizeof(rfbProtocolExte
248250typedef int (* rfbProtocolExtensionHookProcessArgument )(int argc , char * argv []);
249251_Static_assert (sizeof (rfbProtocolExtensionHookGeneric ) == sizeof (rfbProtocolExtensionHookProcessArgument ), "extension hook size doesn't match" );
250252
253+ /** returns TRUE if proceed with the framebuffer update (PostFbu is called in any case). */
254+ typedef rfbBool (* rfbProtocolExtensionHookPreFbu )(struct _rfbClientRec * client , void * data );
255+ _Static_assert (sizeof (rfbProtocolExtensionHookGeneric ) == sizeof (rfbProtocolExtensionHookPreFbu ), "extension hook size doesn't match" );
256+
257+ typedef void (* rfbProtocolExtensionHookPostFbu )(struct _rfbClientRec * client , void * data );
258+ _Static_assert (sizeof (rfbProtocolExtensionHookGeneric ) == sizeof (rfbProtocolExtensionHookPostFbu ), "extension hook size doesn't match" );
259+
251260typedef struct _rfbProtocolExtensionElement {
252261 union {
253262 /** for the type 1 extensions */
@@ -261,6 +270,9 @@ typedef struct _rfbProtocolExtensionElement {
261270 rfbProtocolExtensionHookClose close ;
262271 rfbProtocolExtensionHookUsage usage ;
263272 rfbProtocolExtensionHookProcessArgument processArgument ;
273+
274+ rfbProtocolExtensionHookPreFbu preFbu ;
275+ rfbProtocolExtensionHookPostFbu postFbu ;
264276 } hook ;
265277 /** which hook it is */
266278 int type ;
0 commit comments