modified dll/win32/kernel32/kernel32.rbuild
[reactos.git] / reactos / base / applications / tsclient / rdesktop / vnc / vnc.h
1 #ifndef VNC_H
2 #define VNC_H
3
4 #define BOOL rfb_BOOL
5 #include <rfb/rfb.h>
6 #undef BOOL
7
8 typedef unsigned int vncPixel;
9
10 typedef struct
11 {
12 uint16_t w, h;
13 uint16_t linew;
14 rfbPixelFormat *format;
15 char *data;
16 BOOL owner;
17 }
18 vncBuffer;
19
20 extern int vncPreparedClientSocket;
21 extern int vncPreparedServerSocket;
22
23 /* - Buffer management */
24 extern vncBuffer *vncNewBuffer(int w, int h, int depth);
25 extern vncBuffer *vncDupBuffer(vncBuffer * b);
26 extern void vncDeleteBuffer(vncBuffer * b);
27
28 /* - Colourmaps */
29 typedef struct
30 {
31 uint8_t r, g, b;
32 }
33 vncColour;
34
35 extern void vncSetColourMap(rfbScreenInfoPtr s, rfbColourMap * m);
36 extern rfbColourMap *vncNewColourMap(rfbScreenInfoPtr s, int n);
37 extern void vncSetColourMapEntry(rfbColourMap * m, int i, vncPixel r, vncPixel g, vncPixel b);
38 extern void vncDeleteColourMap(rfbColourMap * m);
39
40 /* - Simple pixel manipulation */
41 extern vncPixel vncGetPixel(vncBuffer * b, int x, int y);
42 extern void vncSetPixel(vncBuffer * b, int x, int y, vncPixel c);
43
44 /* - Drawing primitives */
45 extern void vncSetRect(rfbScreenInfoPtr s, int x, int y, int w, int h, vncPixel c);
46 extern void vncCopyBlit(rfbScreenInfoPtr s, int x, int y, int w, int h, int srcx, int srcy);
47 extern void vncCopyBlitFrom(rfbScreenInfoPtr s, int x, int y, int w, int h,
48 vncBuffer * b, int srcx, int srcy);
49 extern void vncTransBlitFrom(rfbScreenInfoPtr s, int x, int y, int w, int h,
50 vncBuffer * b, int srcx, int srcy, int bg);
51 extern void vncXorBlitFrom(rfbScreenInfoPtr s, int x, int y, int w, int h,
52 vncBuffer * b, int srcx, int srcy);
53 extern void vncAndBlitFrom(rfbScreenInfoPtr s, int x, int y, int w, int h,
54 vncBuffer * b, int srcx, int srcy);
55 extern vncBuffer *vncGetRect(rfbScreenInfoPtr s, int x, int y, int w, int h);
56
57 // - Low level VNC update primitives upon which the rest are based
58 extern void vncQueueCopyRect(rfbScreenInfoPtr s, int x, int y, int w, int h, int src_x, int src_y);
59 extern void vncQueueUpdate(rfbScreenInfoPtr s, int x, int y, int w, int h);
60
61 /* cursor */
62 extern rfbCursorPtr vncNewCursor(vncBuffer * mask, vncBuffer * pointer, int hotx, int hoty);
63 extern void vncSetCursor(rfbScreenInfoPtr s, rfbCursorPtr c);
64
65 int vncListenAtTcpAddr(unsigned short port);
66 void vncPrintStats();
67
68 #endif