diff options
author | Laxmikant Rashinkar <lk@Ubuntu-12.04-32bit> | 2014-10-11 14:49:46 -0700 |
---|---|---|
committer | Laxmikant Rashinkar <lk@Ubuntu-12.04-32bit> | 2014-10-11 14:49:46 -0700 |
commit | 8c316b46b8d6b1cb3cf32165daf817030aac1a47 (patch) | |
tree | 089c5741cb2a914501e5ab28898a5c71c4c4103b /xrdp/xrdp_types.h | |
parent | 5b6b74577fda4bbcd0a02a585d783c59d68953da (diff) | |
parent | bc7a6b9bc66afe4adf7c232c94e41694319d4155 (diff) | |
download | xrdp-proprietary-8c316b46b8d6b1cb3cf32165daf817030aac1a47.tar.gz xrdp-proprietary-8c316b46b8d6b1cb3cf32165daf817030aac1a47.zip |
Merge branch 'devel'
Diffstat (limited to 'xrdp/xrdp_types.h')
-rw-r--r-- | xrdp/xrdp_types.h | 85 |
1 files changed, 80 insertions, 5 deletions
diff --git a/xrdp/xrdp_types.h b/xrdp/xrdp_types.h index 7d7eb72c..89a7ce93 100644 --- a/xrdp/xrdp_types.h +++ b/xrdp/xrdp_types.h @@ -1,7 +1,7 @@ /** * xrdp: A Remote Desktop Protocol server. * - * Copyright (C) Jay Sorg 2004-2013 + * Copyright (C) Jay Sorg 2004-2014 * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -26,6 +26,7 @@ #include "xrdp_rail.h" #include "xrdp_constants.h" +#include "fifo.h" #define MAX_NR_CHANNELS 16 #define MAX_CHANNEL_NAME 16 @@ -46,7 +47,8 @@ struct xrdp_mod int (*mod_get_wait_objs)(struct xrdp_mod* v, tbus* read_objs, int* rcount, tbus* write_objs, int* wcount, int* timeout); int (*mod_check_wait_objs)(struct xrdp_mod* v); - long mod_dumby[100 - 9]; /* align, 100 minus the number of mod + int (*mod_frame_ack)(struct xrdp_mod* v, int flags, int frame_id); + long mod_dumby[100 - 10]; /* align, 100 minus the number of mod functions above */ /* server functions */ int (*server_begin_update)(struct xrdp_mod* v); @@ -142,7 +144,8 @@ struct xrdp_mod int (*server_paint_rects)(struct xrdp_mod* v, int num_drects, short *drects, int num_crects, short *crects, - char *data, int width, int height, int flags); + char *data, int width, int height, + int flags, int frame_id); long server_dumby[100 - 43]; /* align, 100 minus the number of server functions above */ /* common */ @@ -177,9 +180,16 @@ struct xrdp_palette_item struct xrdp_bitmap_item { int stamp; + int lru_index; struct xrdp_bitmap* bitmap; }; +struct xrdp_lru_item +{ + int next; + int prev; +}; + struct xrdp_os_bitmap_item { int id; @@ -225,6 +235,17 @@ struct xrdp_cache int bitmap_stamp; struct xrdp_bitmap_item bitmap_items[XRDP_MAX_BITMAP_CACHE_ID] [XRDP_MAX_BITMAP_CACHE_IDX]; + + /* lru optimize */ + struct xrdp_lru_item bitmap_lrus[XRDP_MAX_BITMAP_CACHE_ID] + [XRDP_MAX_BITMAP_CACHE_IDX]; + int lru_head[XRDP_MAX_BITMAP_CACHE_ID]; + int lru_tail[XRDP_MAX_BITMAP_CACHE_ID]; + int lru_reset[XRDP_MAX_BITMAP_CACHE_ID]; + + /* crc optimize */ + struct list16 crc16[XRDP_MAX_BITMAP_CACHE_ID][64 * 1024]; + int use_bitmap_comp; int cache1_entries; int cache1_size; @@ -247,6 +268,9 @@ struct xrdp_cache struct list* xrdp_os_del_list; }; +/* defined later */ +struct xrdp_enc_data; + struct xrdp_mm { struct xrdp_wm* wm; /* owner */ @@ -262,12 +286,25 @@ struct xrdp_mm int (*mod_exit)(struct xrdp_mod*); struct xrdp_mod* mod; /* module interface */ int display; /* 10 for :10.0, 11 for :11.0, etc */ - int code; /* 0 Xvnc session 10 X11rdp session */ + int code; /* 0=Xvnc session, 10=X11rdp session, 20=xorg driver mode */ int sesman_controlled; /* true if this is a sesman session */ struct trans* chan_trans; /* connection to chansrv */ int chan_trans_up; /* true once connected to chansrv */ int delete_chan_trans; /* boolean set when done with channel connection */ int usechansrv; /* true if chansrvport is set in xrdp.ini or using sesman */ + + /* for codec mode operations */ + int in_codec_mode; + int codec_id; + int codec_quality; + tbus xrdp_encoder_event_to_proc; + tbus xrdp_encoder_event_processed; + tbus xrdp_encoder_term; + FIFO *fifo_to_proc; + FIFO *fifo_processed; + tbus mutex; + int (*process_enc)(struct xrdp_mm *self, struct xrdp_enc_data *enc); + void *codec_handle; }; struct xrdp_key_info @@ -453,7 +490,8 @@ struct xrdp_bitmap struct xrdp_bitmap* popped_from; int item_height; /* crc */ - int crc; + int crc32; + int crc16; }; #define NUM_FONTS 0x4e00 @@ -547,6 +585,7 @@ struct xrdp_cfg_globals int ls_height; /* window height */ int ls_bg_color; /* background color */ char ls_logo_filename[256]; /* logo filename */ + char ls_background_image[256]; /* background image file name */ int ls_logo_x_pos; /* logo x co-ordinate */ int ls_logo_y_pos; /* logo y co-ordinate */ int ls_label_x_pos; /* x pos of labels */ @@ -562,6 +601,7 @@ struct xrdp_cfg_globals int ls_btn_cancel_y_pos; /* y pos for Cancel button */ int ls_btn_cancel_width; /* width of Cancel button */ int ls_btn_cancel_height; /* height of Cancel button */ + char ls_title[256]; /* loginscreen window title */ }; struct xrdp_cfg_logging @@ -581,4 +621,39 @@ struct xrdp_config struct xrdp_cfg_channels cfg_channels; }; +/* used when scheduling tasks in xrdp_encoder.c */ +struct xrdp_enc_data +{ + struct xrdp_mod *mod; + int num_drects; + short *drects; /* 4 * num_drects */ + int num_crects; + short *crects; /* 4 * num_crects */ + char *data; + int width; + int height; + int flags; + int frame_id; +}; + +typedef struct xrdp_enc_data XRDP_ENC_DATA; + +/* used when scheduling tasks from xrdp_encoder.c */ +struct xrdp_enc_data_done +{ + int comp_bytes; + int pad_bytes; + char *comp_pad_data; + struct xrdp_enc_data *enc; + int last; /* true is this is last message for enc */ + int x; + int y; + int cx; + int cy; +}; + +typedef struct xrdp_enc_data_done XRDP_ENC_DATA_DONE; + + + #endif |