4
* Copyright (C) 2000, 2001 Const Kaplinsky. All Rights Reserved.
5
* Copyright (C) 2000 Tridia Corporation. All Rights Reserved.
6
* Copyright (C) 1999 AT&T Laboratories Cambridge. All Rights Reserved.
8
* This is free software; you can redistribute it and/or modify
9
* it under the terms of the GNU General Public License as published by
10
* the Free Software Foundation; either version 2 of the License, or
11
* (at your option) any later version.
13
* This software is distributed in the hope that it will be useful,
14
* but WITHOUT ANY WARRANTY; without even the implied warranty of
15
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
* GNU General Public License for more details.
18
* You should have received a copy of the GNU General Public License
19
* along with this software; if not, write to the Free Software
20
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
33
#include <X11/IntrinsicP.h>
34
#include <X11/StringDefs.h>
35
#include <X11/Shell.h>
36
#include <X11/keysym.h>
37
#include <X11/Xatom.h>
38
#include <X11/Xmu/StdSel.h>
41
#if(defined __cplusplus)
48
extern int endianTest;
50
#define Swap16IfLE(s) \
51
(*(char *)&endianTest ? ((((s) & 0xff) << 8) | (((s) >> 8) & 0xff)) : (s))
53
#define Swap32IfLE(l) \
54
(*(char *)&endianTest ? ((((l) & 0xff000000) >> 24) | \
55
(((l) & 0x00ff0000) >> 8) | \
56
(((l) & 0x0000ff00) << 8) | \
57
(((l) & 0x000000ff) << 24)) : (l))
59
#define MAX_ENCODINGS 20
64
extern AppData appData;
67
extern const char *vncServerHost;
68
extern int vncServerPort;
70
extern int isQuitFlagSet();
71
extern int getPassword(char *passwd, int pwlen);
72
extern void DrawScreenRegion(int x, int y, int width, int height);
73
extern void DrawAnyScreenRegionX11Thread(int x, int y, int width, int height);
74
extern void LockFramebuffer();
75
extern void UnlockFramebuffer();
76
extern void EnableClientCursor(int state);
78
extern void newServerCut(char *bytes, int len);
79
extern void postMouseEvent(int x, int y, int buttonMask);
83
extern void queueIncrementalUpdateRequest();
84
extern void announceIncrementalUpdateRequest();
88
extern unsigned long BGR233ToPixel[];
92
extern unsigned int visdepth, visbpp;
94
extern void SetVisualAndCmap(void);
98
extern Widget form, viewport, desktop;
100
extern GC srcGC, dstGC;
101
extern Dimension dpyWidth, dpyHeight;
103
extern void DesktopInit(Window win);
104
extern void ToplevelInit(void);
105
extern void SendRFBEvent(XEvent *event, String *params, Cardinal *num_params);
106
extern void CopyDataToScreen(char *buf, int x, int y, int width, int height);
107
extern void CopyDataFromScreen(char *buf, int x, int y, int width, int height);
108
extern void FillRectangle8(CARD8, int x, int y, int width, int height);
109
extern void FillRectangle16(CARD16, int x, int y, int width, int height);
110
extern void FillRectangle32(CARD32, int x, int y, int width, int height);
111
extern void CopyArea(int srcX, int srcY, int width, int height, int x, int y);
112
extern void SyncScreenRegion(int x, int y, int width, int height);
113
extern void SyncScreenRegionX11Thread(int x, int y, int width, int height);
114
extern void drawCursor(void);
115
extern void DrawCursorX11Thread(int x, int y);
116
extern void undrawCursor(void);
117
extern void getBoundingRectCursor(int cx, int cy, int _imageIndex,
118
int *x, int *y, int *w, int *h);
119
extern int rectsIntersect(int x, int y, int w, int h,
120
int x2, int y2, int w2, int h2);
121
extern int rectContains(int outX, int outY, int outW, int outH,
122
int inX, int inY, int inW, int inH);
123
extern void rectsJoin(int *nx1, int *ny1, int *nw1, int *nh1,
124
int x2, int y2, int w2, int h2);
125
extern void DrawZoomedScreenRegionX11Thread(Window win, int zwidth,
128
int width, int height);
129
extern void DrawScreenRegionX11Thread(Window win, int x, int y,
130
int width, int height);
131
extern void Cleanup(void);
132
extern XImage *CreateShmZoomImage(void);
133
extern XImage *CreateShmImage(void);
134
extern void ShmCleanup(void);
135
extern void freeDesktopResources(void);
140
extern Bool canUseCoRRE;
141
extern Bool canUseHextile;
142
extern char *desktopName;
143
extern rfbPixelFormat myFormat;
144
extern rfbServerInitMsg si;
146
extern int cursorX, cursorY;
147
extern int imageIndex;
155
extern PointerImage pointerImages[];
157
extern int ConnectToRFBServer(const char *hostname, int port);
158
extern enum InitStatus InitialiseRFBConnection(void);
159
extern Bool SetFormatAndEncodings(void);
160
extern Bool SendIncrementalFramebufferUpdateRequest(void);
161
extern Bool SendFramebufferUpdateRequest(int x, int y, int w, int h,
163
extern Bool SendPointerEvent(int x, int y, int buttonMask);
164
extern Bool SendKeyEvent(CARD32 key, Bool down);
165
extern Bool SendClientCutText(const char *str, int len);
166
extern Bool HandleRFBServerMessage(void);
168
extern void PrintPixelFormat(rfbPixelFormat *format);
169
extern void freeRFBProtoResources(void);
170
extern void freeResources(void);
174
extern Bool errorMessageOnReadFailure;
176
extern Bool ReadFromRFBServer(char *out, unsigned int n);
177
extern Bool WriteExact(int sock, const char *buf, int n);
178
extern int ConnectToTcpAddr(unsigned int host, int port);
180
extern int StringToIPAddr(const char *str, unsigned int *addr);
181
extern void freeSocketsResources(void);
183
#if(defined __cplusplus)