1a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehat/*
2a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehat   Copyright (C) 2002-2010 Karl J. Runge <runge@karlrunge.com>
3a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehat   All rights reserved.
4a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehat
5a430b2b5ca4f0967836f5820e8f03adc17fc0a24San MehatThis file is part of x11vnc.
6a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehat
7a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehatx11vnc is free software; you can redistribute it and/or modify
8a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehatit under the terms of the GNU General Public License as published by
9a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehatthe Free Software Foundation; either version 2 of the License, or (at
10a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehatyour option) any later version.
11a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehat
12a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehatx11vnc is distributed in the hope that it will be useful,
13a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehatbut WITHOUT ANY WARRANTY; without even the implied warranty of
14a430b2b5ca4f0967836f5820e8f03adc17fc0a24San MehatMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15a430b2b5ca4f0967836f5820e8f03adc17fc0a24San MehatGNU General Public License for more details.
16a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehat
17a430b2b5ca4f0967836f5820e8f03adc17fc0a24San MehatYou should have received a copy of the GNU General Public License
18a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehatalong with x11vnc; if not, write to the Free Software
19a430b2b5ca4f0967836f5820e8f03adc17fc0a24San MehatFoundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA
20a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehator see <http://www.gnu.org/licenses/>.
21a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehat
22a430b2b5ca4f0967836f5820e8f03adc17fc0a24San MehatIn addition, as a special exception, Karl J. Runge
23a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehatgives permission to link the code of its release of x11vnc with the
24a430b2b5ca4f0967836f5820e8f03adc17fc0a24San MehatOpenSSL project's "OpenSSL" library (or with modified versions of it
25a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehatthat use the same license as the "OpenSSL" library), and distribute
26a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehatthe linked executables.  You must obey the GNU General Public License
27a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehatin all respects for all of the code used other than "OpenSSL".  If you
28a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehatmodify this file, you may extend this exception to your version of the
29a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehatfile, but you are not obligated to do so.  If you do not wish to do
30a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehatso, delete this exception statement from your version.
31a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehat*/
32a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehat
33a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehat#ifndef _X11VNC_SCAN_H
34a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehat#define _X11VNC_SCAN_H
35a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehat
36a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehat/* -- scan.h -- */
37a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehat
38a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehatextern int nap_ok;
39a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehatextern int scanlines[];
40a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehat
41a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehatextern void initialize_tiles(void);
42a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehatextern void free_tiles(void);
43a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehatextern void shm_delete(XShmSegmentInfo *shm);
44a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehatextern void shm_clean(XShmSegmentInfo *shm, XImage *xim);
45a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehatextern void initialize_polling_images(void);
46a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehatextern void scale_rect(double factor_x, double factor_y, int blend, int interpolate, int Bpp,
47a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehat    char *src_fb, int src_bytes_per_line, char *dst_fb, int dst_bytes_per_line,
48a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehat    int Nx, int Ny, int nx, int ny, int X1, int Y1, int X2, int Y2, int mark);
49a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehatextern void scale_and_mark_rect(int X1, int Y1, int X2, int Y2, int mark);
50a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehatextern void mark_rect_as_modified(int x1, int y1, int x2, int y2, int force);
51a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehatextern int copy_screen(void);
52a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehatextern int copy_snap(void);
53a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehatextern void nap_sleep(int ms, int split);
54a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehatextern void set_offset(void);
55a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehatextern int scan_for_updates(int count_only);
56a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehatextern void rotate_curs(char *dst_0, char *src_0, int Dx, int Dy, int Bpp);
57a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehatextern void rotate_coords(int x, int y, int *xo, int *yo, int dxi, int dyi);
58a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehatextern void rotate_coords_inverse(int x, int y, int *xo, int *yo, int dxi, int dyi);
59a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehat
60a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehat#endif /* _X11VNC_SCAN_H */
61