20 #ifndef FREERDP_LIB_CORE_UPDATE_H
21 #define FREERDP_LIB_CORE_UPDATE_H
26 #include <freerdp/types.h>
27 #include <freerdp/update.h>
28 #include <freerdp/freerdp.h>
29 #include <freerdp/api.h>
31 #include <winpr/stream.h>
33 #include "../cache/bitmap.h"
34 #include "../cache/palette.h"
35 #include "../cache/pointer.h"
37 #define UPDATE_TYPE_ORDERS 0x0000
38 #define UPDATE_TYPE_BITMAP 0x0001
39 #define UPDATE_TYPE_PALETTE 0x0002
40 #define UPDATE_TYPE_SYNCHRONIZE 0x0003
42 #define BITMAP_COMPRESSION 0x0001
43 #define NO_BITMAP_COMPRESSION_HDR 0x0400
57 rdpUpdateProxy* proxy;
64 rdpBounds currentBounds;
65 rdpBounds previousBounds;
67 BOOL withinBeginEndPaint;
72 rdpAltSecUpdate common;
90 rdpPrimaryUpdate common;
119 rdpSecondaryUpdate common;
131 WINPR_ASSERT(update);
140 rdpAltSecUpdate* pub;
144 WINPR_ASSERT(update);
153 rdpPrimaryUpdate* pub;
157 WINPR_ASSERT(update);
166 rdpSecondaryUpdate* pub;
170 WINPR_ASSERT(update);
175 FREERDP_LOCAL
void update_free(rdpUpdate* update);
177 WINPR_ATTR_MALLOC(update_free, 1)
178 FREERDP_LOCAL rdpUpdate* update_new(rdpRdp* rdp);
180 FREERDP_LOCAL
void update_reset_state(rdpUpdate* update);
181 FREERDP_LOCAL BOOL update_post_connect(rdpUpdate* update);
182 FREERDP_LOCAL
void update_post_disconnect(rdpUpdate* update);
184 FREERDP_LOCAL BOOL update_recv_play_sound(rdpUpdate* update,
wStream* s);
185 FREERDP_LOCAL BOOL update_recv_pointer(rdpUpdate* update,
wStream* s);
186 FREERDP_LOCAL BOOL update_recv(rdpUpdate* update,
wStream* s);
188 WINPR_ATTR_MALLOC(free_bitmap_update, 2)
191 WINPR_ATTR_MALLOC(free_palette_update, 2)
194 WINPR_ATTR_MALLOC(free_pointer_system_update, 2)
197 WINPR_ATTR_MALLOC(free_pointer_position_update, 2)
200 WINPR_ATTR_MALLOC(free_pointer_color_update, 2)
204 WINPR_ATTR_MALLOC(free_pointer_large_update, 2)
207 WINPR_ATTR_MALLOC(free_pointer_new_update, 2)
210 WINPR_ATTR_MALLOC(free_pointer_cached_update, 2)
213 FREERDP_LOCAL BOOL update_read_refresh_rect(rdpUpdate* update,
wStream* s);
214 FREERDP_LOCAL BOOL update_read_suppress_output(rdpUpdate* update,
wStream* s);
215 FREERDP_LOCAL
void update_register_server_callbacks(rdpUpdate* update);
216 FREERDP_LOCAL
void update_register_client_callbacks(rdpUpdate* update);
217 FREERDP_LOCAL
int update_process_messages(rdpUpdate* update);
219 FREERDP_LOCAL BOOL update_begin_paint(rdpUpdate* update);
220 FREERDP_LOCAL BOOL update_end_paint(rdpUpdate* update);