Warning: Attempt to read property "date" on null in /usr/local/www/websvn.planix.org/blame.php on line 247

Warning: Attempt to read property "msg" on null in /usr/local/www/websvn.planix.org/blame.php on line 247
WebSVN – planix.SVN – Blame – /os/branches/feature_unix/sys/src/cmd/vnc/vnc.h – Rev 2

Subversion Repositories planix.SVN

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 1
#include <u.h>
2
#include <libc.h>
3
#include <bio.h>
4
#include <draw.h>
5
#include <memdraw.h>
6
 
7
typedef struct Pixfmt	Pixfmt;
8
typedef struct Colorfmt	Colorfmt;
9
typedef struct Vnc	Vnc;
10
 
11
struct Colorfmt {
12
	int		max;
13
	int		shift;
14
};
15
 
16
struct Pixfmt {
17
	int		bpp;
18
	int		depth;
19
	int		bigendian;
20
	int		truecolor;
21
	Colorfmt	red;
22
	Colorfmt	green;
23
	Colorfmt	blue;
24
};
25
 
26
struct Vnc {
27
	QLock;
28
	int		datafd;			/* for network connection */
29
	int		ctlfd;			/* control for network connection */
30
 
31
	Biobuf		in;
32
	Biobuf		out;
33
 
34
	Point		dim;
35
	Pixfmt;
36
	char		*name;	/* client only */
37
};
38
 
39
enum {
40
	/* authentication negotiation */
41
	AFailed		= 0,
42
	ANoAuth,
43
	AVncAuth,
44
 
45
	/* vnc auth negotiation */
46
	VncAuthOK	= 0,
47
	VncAuthFailed,
48
	VncAuthTooMany,
49
	VncChalLen	= 16,
50
 
51
	/* server to client */
52
	MFrameUpdate	= 0,
53
	MSetCmap,
54
	MBell,
55
	MSCut,
56
	MSAck,
57
 
58
	/* client to server */
59
	MPixFmt		= 0,
60
	MFixCmap,
61
	MSetEnc,
62
	MFrameReq,
63
	MKey,
64
	MMouse,
65
	MCCut,
66
 
67
	/* image encoding methods */
68
	EncRaw		= 0,
69
	EncCopyRect	= 1,
70
	EncRre		= 2,
71
	EncCorre	= 4,
72
	EncHextile	= 5,
73
	EncZlib		= 6,  /* 6,7,8 have been used by others */
74
	EncTight	= 7,
75
	EncZHextile	= 8,
76
	EncMouseWarp	= 9,
77
 
78
	/* paramaters for hextile encoding */
79
	HextileDim	= 16,
80
	HextileRaw	= 1,
81
	HextileBack	= 2,
82
	HextileFore	= 4,
83
	HextileRects	= 8,
84
	HextileCols	= 16
85
};
86
 
87
/*
88
 * we're only using the ulong as a place to store bytes,
89
 * and as something to compare against.
90
 * the bytes are stored in little-endian format.
91
 */
92
typedef ulong Color;
93
 
94
/* auth.c */
95
extern	int		vncauth(Vnc*, char*);
96
extern	int		vnchandshake(Vnc*);
97
extern	int		vncsrvauth(Vnc*);
98
extern	int		vncsrvhandshake(Vnc*);
99
 
100
/* proto.c */
101
extern	Vnc*		vncinit(int, int, Vnc*);
102
extern	uchar		vncrdchar(Vnc*);
103
extern	ushort		vncrdshort(Vnc*);
104
extern	ulong		vncrdlong(Vnc*);
105
extern	Point		vncrdpoint(Vnc*);
106
extern	Rectangle	vncrdrect(Vnc*);
107
extern	Rectangle	vncrdcorect(Vnc*);
108
extern	Pixfmt		vncrdpixfmt(Vnc*);
109
extern	void		vncrdbytes(Vnc*, void*, int);
110
extern	char*		vncrdstring(Vnc*);
111
extern	char*	vncrdstringx(Vnc*);
112
extern	void		vncwrstring(Vnc*, char*);
113
extern  void    	vncgobble(Vnc*, long);
114
 
115
extern	void		vncflush(Vnc*);
116
extern	void		vncterm(Vnc*);
117
extern	void		vncwrbytes(Vnc*, void*, int);
118
extern	void		vncwrlong(Vnc*, ulong);
119
extern	void		vncwrshort(Vnc*, ushort);
120
extern	void		vncwrchar(Vnc*, uchar);
121
extern	void		vncwrpixfmt(Vnc*, Pixfmt*);
122
extern	void		vncwrrect(Vnc*, Rectangle);
123
extern	void		vncwrpoint(Vnc*, Point);
124
 
125
extern	void		vnclock(Vnc*);		/* for writing */
126
extern	void		vncunlock(Vnc*);
127
 
128
extern	void		hexdump(void*, int);
129
 
130
/* implemented by clients of the io library */
131
extern	void		vnchungup(Vnc*);
132
 
133
extern	int		verbose;
134
extern	char*	serveraddr;