/[rdesktop]/sourceforge.net/trunk/rdesktop/orders.c
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /sourceforge.net/trunk/rdesktop/orders.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 336 by jsorg71, Sun Mar 2 23:45:34 2003 UTC revision 355 by forsberg, Fri Mar 28 09:09:17 2003 UTC
# Line 1  Line 1 
1  /*  /* -*- c-basic-offset: 8 -*-
2     rdesktop: A Remote Desktop Protocol client.     rdesktop: A Remote Desktop Protocol client.
3     RDP order processing     RDP order processing
4     Copyright (C) Matthew Chapman 1999-2002     Copyright (C) Matthew Chapman 1999-2002
# Line 23  Line 23 
23    
24  extern uint8 *next_packet;  extern uint8 *next_packet;
25  static RDP_ORDER_STATE order_state;  static RDP_ORDER_STATE order_state;
26    extern BOOL use_rdp5;
27    
28  /* Read field indicating which parameters are present */  /* Read field indicating which parameters are present */
29  static void  static void
# Line 605  process_text2(STREAM s, TEXT2_ORDER * os Line 606  process_text2(STREAM s, TEXT2_ORDER * os
606          if (present & 0x002000)          if (present & 0x002000)
607                  in_uint16_le(s, os->boxbottom);                  in_uint16_le(s, os->boxbottom);
608    
609          if (present & 0x004000) /* fix for connecting to a server that */          if (present & 0x004000) /* fix for connecting to a server that */
610                  in_uint8s(s, 10);    /* was disconnected with mstsc.exe */                  in_uint8s(s, 10);       /* was disconnected with mstsc.exe */
611                  /* 0x008000, 0x020000, and 0x040000 are present too ??? */          /* 0x008000, 0x020000, and 0x040000 are present too ??? */
612    
613          if (present & 0x080000)          if (present & 0x080000)
614                  in_uint16_le(s, os->x);                  in_uint16_le(s, os->x);
# Line 680  process_bmpcache(STREAM s) Line 681  process_bmpcache(STREAM s)
681          uint16 cache_idx, size;          uint16 cache_idx, size;
682          uint8 cache_id, width, height, bpp, Bpp;          uint8 cache_id, width, height, bpp, Bpp;
683          uint8 *data, *bmpdata;          uint8 *data, *bmpdata;
684            uint16 bufsize, pad2, row_size, final_size;
685            uint8 pad1;
686    
687          in_uint8(s, cache_id);          in_uint8(s, cache_id);
688          in_uint8s(s, 1);        /* pad */          in_uint8(s, pad1);      /* pad */
689          in_uint8(s, width);          in_uint8(s, width);
690          in_uint8(s, height);          in_uint8(s, height);
691          in_uint8(s, bpp);          in_uint8(s, bpp);
692          Bpp = (bpp + 7) / 8;          Bpp = (bpp + 7) / 8;
693          in_uint8s(s, 2);        /* bufsize */          in_uint16_le(s, bufsize);       /* bufsize */
694          in_uint16_le(s, cache_idx);          in_uint16_le(s, cache_idx);
695          in_uint8s(s, 2);        /* pad */  
696          in_uint16_le(s, size);          if (!use_rdp5) {
697          in_uint8s(s, 4);        /* row_size, final_size */  
698                    /* Begin compressedBitmapData */
699                    in_uint16_le(s, pad2);  /* pad */
700                    in_uint16_le(s, size);
701                    //      in_uint8s(s, 4);        /* row_size, final_size */
702                    in_uint16_le(s, row_size);
703                    in_uint16_le(s, final_size);
704    
705            } else {
706                    size = bufsize;
707            }
708          in_uint8p(s, data, size);          in_uint8p(s, data, size);
709    
710          DEBUG(("BMPCACHE(cx=%d,cy=%d,id=%d,idx=%d)\n", width, height, cache_id, cache_idx));          DEBUG(("BMPCACHE(cx=%d,cy=%d,id=%d,idx=%d,bpp=%d,size=%d,pad1=%d,bufsize=%d,pad2=%d,rs=%d,fs=%d)\n",
711                   width, height,
712                   cache_id, cache_idx,
713                   bpp, size, pad1, bufsize, pad2, row_size, final_size));
714    
715          bmpdata = xmalloc(width * height * Bpp);          bmpdata = xmalloc(width * height * Bpp);
716    
# Line 703  process_bmpcache(STREAM s) Line 719  process_bmpcache(STREAM s)
719                  bitmap = ui_create_bitmap(width, height, bmpdata);                  bitmap = ui_create_bitmap(width, height, bmpdata);
720                  cache_put_bitmap(cache_id, cache_idx, bitmap);                  cache_put_bitmap(cache_id, cache_idx, bitmap);
721          }          }
722            else
723            {
724                    DEBUG(("Failed to decompress bitmap data\n"));
725            }
726    
727          xfree(bmpdata);          xfree(bmpdata);
728  }  }
# Line 811  process_secondary_order(STREAM s) Line 831  process_secondary_order(STREAM s)
831    
832  /* Process an order PDU */  /* Process an order PDU */
833  void  void
834  process_orders(STREAM s)  process_orders(STREAM s, uint16 num_orders)
835  {  {
836          RDP_ORDER_STATE *os = &order_state;          RDP_ORDER_STATE *os = &order_state;
837          uint32 present;          uint32 present;
         uint16 num_orders;  
838          uint8 order_flags;          uint8 order_flags;
839          int size, processed = 0;          int size, processed = 0;
840          BOOL delta;          BOOL delta;
841    
         in_uint8s(s, 2);        /* pad */  
         in_uint16_le(s, num_orders);  
         in_uint8s(s, 2);        /* pad */  
   
842          while (processed < num_orders)          while (processed < num_orders)
843          {          {
844                  in_uint8(s, order_flags);                  in_uint8(s, order_flags);

Legend:
Removed from v.336  
changed lines
  Added in v.355

  ViewVC Help
Powered by ViewVC 1.1.26