29 |
extern BOOL g_desktop_save; |
extern BOOL g_desktop_save; |
30 |
extern BOOL g_use_rdp5; |
extern BOOL g_use_rdp5; |
31 |
extern uint16 g_server_rdp_version; |
extern uint16 g_server_rdp_version; |
32 |
|
extern uint32 g_rdp5_performanceflags; |
33 |
extern int g_server_bpp; |
extern int g_server_bpp; |
34 |
|
|
35 |
uint8 *g_next_packet; |
uint8 *g_next_packet; |
298 |
out_uint32(s, 0); |
out_uint32(s, 0); |
299 |
out_uint32_le(s, 0xffffffc4); |
out_uint32_le(s, 0xffffffc4); |
300 |
out_uint32_le(s, 0xfffffffe); |
out_uint32_le(s, 0xfffffffe); |
301 |
out_uint32_le(s, 0x0f); |
out_uint32_le(s, g_rdp5_performanceflags); |
302 |
out_uint32(s, 0); |
out_uint32(s, 0); |
303 |
|
|
304 |
|
|
409 |
out_uint16_le(s, RDP_CAPSET_BITMAP); |
out_uint16_le(s, RDP_CAPSET_BITMAP); |
410 |
out_uint16_le(s, RDP_CAPLEN_BITMAP); |
out_uint16_le(s, RDP_CAPLEN_BITMAP); |
411 |
|
|
412 |
out_uint16_le(s, 8); /* Preferred BPP */ |
out_uint16_le(s, g_server_bpp); /* Preferred BPP */ |
413 |
out_uint16_le(s, 1); /* Receive 1 BPP */ |
out_uint16_le(s, 1); /* Receive 1 BPP */ |
414 |
out_uint16_le(s, 1); /* Receive 4 BPP */ |
out_uint16_le(s, 1); /* Receive 4 BPP */ |
415 |
out_uint16_le(s, 1); /* Receive 8 BPP */ |
out_uint16_le(s, 1); /* Receive 8 BPP */ |
618 |
process_demand_active(STREAM s) |
process_demand_active(STREAM s) |
619 |
{ |
{ |
620 |
uint8 type; |
uint8 type; |
621 |
|
uint16 i; |
622 |
|
uint16 p_bpp; |
623 |
|
|
624 |
in_uint32_le(s, g_rdp_shareid); |
in_uint32_le(s, g_rdp_shareid); |
625 |
|
|
626 |
|
/* scan for prefered bpp */ |
627 |
|
while (s_check_rem(s, 6)) |
628 |
|
{ |
629 |
|
in_uint16_le(s, i); |
630 |
|
if (i == RDP_CAPSET_BITMAP) |
631 |
|
{ |
632 |
|
in_uint16_le(s, i); |
633 |
|
if (i == RDP_CAPLEN_BITMAP) |
634 |
|
{ |
635 |
|
in_uint16_le(s, p_bpp); |
636 |
|
if (p_bpp == 8 || p_bpp == 15 || p_bpp == 16 || p_bpp == 24) |
637 |
|
{ |
638 |
|
if (p_bpp < g_server_bpp) |
639 |
|
{ |
640 |
|
warning("Server limited colour depth to %d bits\n", p_bpp); |
641 |
|
g_server_bpp = p_bpp; |
642 |
|
} |
643 |
|
break; |
644 |
|
} |
645 |
|
} |
646 |
|
} |
647 |
|
} |
648 |
|
|
649 |
|
|
650 |
DEBUG(("DEMAND_ACTIVE(id=0x%x)\n", g_rdp_shareid)); |
DEBUG(("DEMAND_ACTIVE(id=0x%x)\n", g_rdp_shareid)); |
651 |
|
|
652 |
rdp_send_confirm_active(); |
rdp_send_confirm_active(); |
780 |
DEBUG(("BITMAP_UPDATE(l=%d,t=%d,r=%d,b=%d,w=%d,h=%d,Bpp=%d,cmp=%d)\n", |
DEBUG(("BITMAP_UPDATE(l=%d,t=%d,r=%d,b=%d,w=%d,h=%d,Bpp=%d,cmp=%d)\n", |
781 |
left, top, right, bottom, width, height, Bpp, compress)); |
left, top, right, bottom, width, height, Bpp, compress)); |
782 |
|
|
|
/* Server may limit bpp - this is how we find out */ |
|
|
if (g_server_bpp != bpp) |
|
|
{ |
|
|
warning("Server limited colour depth to %d bits\n", bpp); |
|
|
g_server_bpp = bpp; |
|
|
} |
|
|
|
|
783 |
if (!compress) |
if (!compress) |
784 |
{ |
{ |
785 |
int y; |
int y; |