summaryrefslogtreecommitdiffstats
path: root/x11vnc/x11vnc_defs.c
diff options
context:
space:
mode:
Diffstat (limited to 'x11vnc/x11vnc_defs.c')
-rw-r--r--x11vnc/x11vnc_defs.c150
1 files changed, 150 insertions, 0 deletions
diff --git a/x11vnc/x11vnc_defs.c b/x11vnc/x11vnc_defs.c
new file mode 100644
index 0000000..c3d77c8
--- /dev/null
+++ b/x11vnc/x11vnc_defs.c
@@ -0,0 +1,150 @@
+/* -- x11vnc_defs.c -- */
+
+#include "x11vnc.h"
+
+int overlay_present = 0;
+
+int xrandr_base_event_type = 0;
+
+int xfixes_base_event_type = 0;
+int xtest_base_event_type = 0;
+#if LIBVNCSERVER_HAVE_LIBXTRAP
+XETC *trap_ctx = NULL;
+#endif
+int xtrap_base_event_type = 0;
+int xdamage_base_event_type = 0;
+
+/* date +'lastmod: %Y-%m-%d' */
+char lastmod[] = "0.7.3 lastmod: 2006-01-08";
+
+/* X display info */
+
+Display *dpy = NULL; /* the single display screen we connect to */
+int scr = 0;
+Window window = None, rootwin = None; /* polled window, root window (usu. same) */
+Visual *default_visual = NULL; /* the default visual (unless -visual) */
+int bpp = 0, depth = 0;
+int indexed_color = 0;
+int dpy_x, dpy_y; /* size of display */
+int off_x, off_y; /* offsets for -sid */
+int wdpy_x, wdpy_y; /* for actual sizes in case of -clip */
+int cdpy_x, cdpy_y, coff_x, coff_y; /* the -clip params */
+int button_mask = 0; /* button state and info */
+int button_mask_prev = 0;
+int num_buttons = -1;
+
+/* image structures */
+XImage *scanline = NULL;
+XImage *fullscreen = NULL;
+XImage **tile_row = NULL; /* for all possible row runs */
+XImage *fb0 = NULL;
+XImage *snaprect = NULL; /* for XShmGetImage (fs_factor) */
+XImage *snap = NULL; /* the full snap fb */
+XImage *raw_fb_image = NULL; /* the raw fb */
+
+/* corresponding shm structures */
+XShmSegmentInfo scanline_shm;
+XShmSegmentInfo fullscreen_shm;
+XShmSegmentInfo *tile_row_shm; /* for all possible row runs */
+XShmSegmentInfo snaprect_shm;
+
+/* rfb screen info */
+rfbScreenInfoPtr screen = NULL;
+char *rfb_desktop_name = NULL;
+char *http_dir = NULL;
+char vnc_desktop_name[256];
+char *main_fb = NULL; /* our copy of the X11 fb */
+char *rfb_fb = NULL; /* same as main_fb unless transformation */
+char *fake_fb = NULL; /* used under -padgeom */
+char *snap_fb = NULL; /* used under -snapfb */
+char *raw_fb = NULL;
+char *raw_fb_addr = NULL;
+int raw_fb_offset = 0;
+int raw_fb_shm = 0;
+int raw_fb_mmap = 0;
+int raw_fb_seek = 0;
+int raw_fb_fd = -1;
+
+int rfb_bytes_per_line;
+int main_bytes_per_line;
+unsigned long main_red_mask, main_green_mask, main_blue_mask;
+unsigned short main_red_max, main_green_max, main_blue_max;
+unsigned short main_red_shift, main_green_shift, main_blue_shift;
+
+/* scaling parameters */
+char *scale_str = NULL;
+double scale_fac = 1.0;
+int scaling = 0;
+int scaling_blend = 1; /* for no blending option (very course) */
+int scaling_nomult4 = 0; /* do not require width = n * 4 */
+int scaling_pad = 0; /* pad out scaled sizes to fit denominator */
+int scaling_interpolate = 0; /* use interpolation scheme when shrinking */
+int scaled_x = 0, scaled_y = 0; /* dimensions of scaled display */
+int scale_numer = 0, scale_denom = 0; /* n/m */
+
+/* scale cursor */
+char *scale_cursor_str = NULL;
+double scale_cursor_fac = 1.0;
+int scaling_cursor = 0;
+int scaling_cursor_blend = 1;
+int scaling_cursor_interpolate = 0;
+int scale_cursor_numer = 0, scale_cursor_denom = 0;
+
+/* size of the basic tile unit that is polled for changes: */
+int tile_x = 32;
+int tile_y = 32;
+int ntiles, ntiles_x, ntiles_y;
+
+/* arrays that indicate changed or checked tiles. */
+unsigned char *tile_has_diff = NULL, *tile_tried = NULL, *tile_copied = NULL;
+unsigned char *tile_has_xdamage_diff = NULL, *tile_row_has_xdamage_diff = NULL;
+
+/* times of recent events */
+time_t last_event, last_input = 0, last_client = 0;
+time_t last_keyboard_input = 0, last_pointer_input = 0;
+time_t last_fb_bytes_sent = 0;
+double last_keyboard_time = 0.0;
+double last_pointer_time = 0.0;
+double last_pointer_click_time = 0.0;
+double last_pointer_motion_time = 0.0;
+double last_key_to_button_remap_time = 0.0;
+double last_copyrect = 0.0;
+double last_copyrect_fix = 0.0;
+double servertime_diff = 0.0;
+double x11vnc_start = 0.0;
+
+/* last client to move pointer */
+rfbClientPtr last_pointer_client = NULL;
+
+int client_count = 0;
+int clients_served = 0;
+
+/* more transient kludge variables: */
+int cursor_x, cursor_y; /* x and y from the viewer(s) */
+int button_change_x, button_change_y;
+int got_user_input = 0;
+int got_pointer_input = 0;
+int got_pointer_calls = 0;
+int got_keyboard_input = 0;
+int got_keyboard_calls = 0;
+int urgent_update = 0;
+int last_keyboard_keycode = 0;
+rfbBool last_rfb_down = FALSE;
+rfbBool last_rfb_key_accepted = FALSE;
+rfbKeySym last_rfb_keysym = 0;
+double last_rfb_keytime = 0.0;
+int fb_copy_in_progress = 0;
+int drag_in_progress = 0;
+int shut_down = 0;
+int do_copy_screen = 0;
+time_t damage_time = 0;
+int damage_delay = 0;
+
+int program_pid = 0;
+char *program_name = NULL;
+char *program_cmdline = NULL;
+
+struct utsname UT;
+
+
+