summaryrefslogtreecommitdiff
path: root/sys/src/cmd/vnc/vncs.h
blob: f68d4908bc8b8f1c096b8961a1e341408a7979c4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
typedef struct	Rlist Rlist;
typedef struct	Vncs	Vncs;

struct Rlist
{
	Rectangle	bbox;
	int	maxrect;
	int	nrect;
	Rectangle *rect;
};

struct Vncs
{
	Vnc;

	Vncs	*next;
	char		remote[NETPATHLEN];
	char		netpath[NETPATHLEN];

	char		*encname;
	int		(*countrect)(Vncs*, Rectangle);
	int		(*sendrect)(Vncs*, Rectangle);
	int		copyrect;
	int		canwarp;
	int		dowarp;
	Point		warppt;

	ulong		updatereq;

	Rlist		rlist;
	int		ndead;
	int		nproc;
	int		cursorver;
	Point		cursorpos;
	Rectangle	cursorr;
	int		snarfvers;

	Memimage	*image;
	ulong	imagechan;
};

/* rre.c */
int	countcorre(Vncs*, Rectangle);
int	counthextile(Vncs*, Rectangle);
int	countraw(Vncs*, Rectangle);
int	countrre(Vncs*, Rectangle);
int	sendcorre(Vncs*, Rectangle);
int	sendhextile(Vncs*, Rectangle);
int	sendraw(Vncs*, Rectangle);
int	sendrre(Vncs*, Rectangle);

/* rlist.c */
void addtorlist(Rlist*, Rectangle);
void freerlist(Rlist*);