@@ -207,6 +207,8 @@ enum rfbProtocolExtensionHookType {
207
207
RFB_PROTOCOL_EXTENSION_HOOK_CLOSE ,
208
208
RFB_PROTOCOL_EXTENSION_HOOK_USAGE ,
209
209
RFB_PROTOCOL_EXTENSION_HOOK_PROCESS_ARGUMENT ,
210
+ RFB_PROTOCOL_EXTENSION_HOOK_PRE_FBU ,
211
+ RFB_PROTOCOL_EXTENSION_HOOK_POST_FBU ,
210
212
};
211
213
212
214
typedef void * rfbProtocolExtensionHookGeneric ;
@@ -248,6 +250,13 @@ _Static_assert(sizeof(rfbProtocolExtensionHookGeneric) == sizeof(rfbProtocolExte
248
250
typedef int (* rfbProtocolExtensionHookProcessArgument )(int argc , char * argv []);
249
251
_Static_assert (sizeof (rfbProtocolExtensionHookGeneric ) == sizeof (rfbProtocolExtensionHookProcessArgument ), "extension hook size doesn't match" );
250
252
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
+
251
260
typedef struct _rfbProtocolExtensionElement {
252
261
union {
253
262
/** for the type 1 extensions */
@@ -261,6 +270,9 @@ typedef struct _rfbProtocolExtensionElement {
261
270
rfbProtocolExtensionHookClose close ;
262
271
rfbProtocolExtensionHookUsage usage ;
263
272
rfbProtocolExtensionHookProcessArgument processArgument ;
273
+
274
+ rfbProtocolExtensionHookPreFbu preFbu ;
275
+ rfbProtocolExtensionHookPostFbu postFbu ;
264
276
} hook ;
265
277
/** which hook it is */
266
278
int type ;
0 commit comments