24#include <qpe/qpeapplication.h>
26#include <qapplication.h>
29#include <qmainwindow.h>
33#include <qsocketnotifier.h>
34#include <qscrollview.h>
35#include <qmessagebox.h>
36#include <qpushbutton.h>
42#include <qpopupmenu.h>
49#include "../rdesktop.h"
80static QSocketNotifier * g_SoundNotifier = 0;
112static QPEApplication *
g_App = 0;
134#define BPP ((g_server_bpp + 7) / 8)
135#define GETPIXEL8(d, x, y, w) (*(((uint8*)d) + ((y) * (w) + (x))))
136#define GETPIXEL16(d, x, y, w) (*(((uint16*)d) + ((y) * (w) + (x))))
137#define GETPIXEL32(d, x, y, w) (*(((uint32*)d) + ((y) * (w) + (x))))
138#define SETPIXEL8(d, x, y, w, v) *(((uint8*)d) + ((y) * (w) + (x))) = v
139#define SETPIXEL16(d, x, y, w, v) *(((uint16*)d) + ((y) * (w) + (x))) = v
140#define SETPIXEL32(d, x, y, w, v) *(((uint32*)d) + ((y) * (w) + (x))) = v
147 i =
Item->length() - 1;
177 Label1 =
new QLabel(
this);
178 Label1->setText(
"Server Desc");
185 Label2 =
new QLabel(
this);
186 Label2->setText(
"User Name");
193 Label3 =
new QLabel(
this);
194 Label3->setText(
"Server IP");
197 IPEdit =
new QLineEdit(
this);
258 for (
i = 0;
i < 10;
i++)
276 while (!
File->atEnd())
282 ItemName =
Line.mid(0,
j);
284 ItemValue =
Line.mid(
j + 1);
286 if (ItemName ==
"Server")
290 ListBox->insertItem(ItemValue);
292 else if (ItemName ==
"UserName")
294 else if (ItemName ==
"Width")
296 else if (ItemName ==
"Height")
298 else if (ItemName ==
"IP")
300 else if (ItemName ==
"FullScreen")
315 for (
i = 0;
i < 10;
i++)
421 if (
File->
open(IO_Truncate | IO_ReadWrite))
424 for (
j = 0;
j <
i;
j++)
449 Line =
"FullScreen=";
450 if (
Item->FullScreen)
475 for (
j =
i;
j <
c - 1;
j++)
498 if (
i >= 0 &&
i < 10)
681 printf(
"unknown key %d mod %d ascii %d\n",
key,
mod, ascii);
734 QScrollView::showEvent(
e);
746 QScrollView::polish();
757 QScrollView::timerEvent(
e);
791 g_CM->NumColors = 256;
796 g_MW->setMouseTracking(
true);
797 g_MW->setCursor((
int)10);
799 QSocketNotifier::Read,
802 SLOT(dataReceived()));
812 g_SV->showFullScreen();
827 PopupMenu->insertItem(
"Right click", 1, 0);
828 PopupMenu->insertItem(
"Toggle fullscreen", 2, 1);
829 PopupMenu->insertItem(
"Reset keyboard", 3, 2);
830 PopupMenu->insertItem(
"Double click", 4, 3);
843 return (
int)(
in + 0.50);
867 QWidget::timerEvent(
e);
878 g_SV->showMaximized();
900 else if (MenuID == 2)
910 g_SV->showFullScreen();
915 g_SV->showMaximized();
919 else if (MenuID == 3)
925 else if (MenuID == 4)
949 if (x < -10 || x > 10 || y < -10 || y > 10)
965 if (
e->button() == LeftButton)
968 else if (
e->button() == RightButton)
971 else if (
e->button() == MidButton)
981 if (
e->button() == LeftButton)
984 else if (
e->button() == RightButton)
987 else if (
e->button() == MidButton)
998 else if (
e->delta() < 0)
1013 case 0x3:
return NOT (
src);
1015 case 0x5:
return NOT (
dst);
1016 case 0x6:
return src ^
dst;
1018 case 0x8:
return src &
dst;
1020 case 0xa:
return dst;
1022 case 0xc:
return src;
1024 case 0xe:
return src |
dst;
1025 case 0xf:
return NOT (0);
1033 if (
x >= 0 && x < g_width && y >= 0 &&
y <
g_height)
1056 if (
x >= 0 && x < g_width && y >= 0 &&
y <
g_height)
1103 QRect InRect(*
x, *
y, *
cx, *
cy);
1106 OutRect = InRect.intersect(
CRect);
1107 if (OutRect.isEmpty())
1109 dx = OutRect.x() - InRect.x();
1110 dy = OutRect.y() - InRect.y();
1113 *
cx = OutRect.width();
1114 *
cy = OutRect.height();
1134 if (!testWFlags(WRepaintNoErase))
1135 setWFlags(WRepaintNoErase);
1151 for (
i = 0;
i <
h;
i++)
1152 for (
j = 0;
j <
w;
j++)
1155 g_CM->NumColors, QImage::IgnoreEndian);
1161 for (
i = 0;
i <
h;
i++)
1162 for (
j = 0;
j <
w;
j++)
1165 r = ((pixel >> 8) & 0xf8) | ((pixel >> 13) & 0x7);
1166 g = ((pixel >> 3) & 0xfc) | ((pixel >> 9) & 0x3);
1167 b = ((pixel << 3) & 0xf8) | ((pixel >> 2) & 0x7);
1168 pixel = ((
r << 16) | (
g << 8) |
b);
1172 0, QImage::IgnoreEndian);
1178 for (
i = 0;
i <
h;
i++)
1179 for (
j = 0;
j <
w;
j++)
1182 r = (pixel >> 0) & 0xff;
1183 g = (pixel >> 8) & 0xff;
1184 b = (pixel >> 16) & 0xff;
1185 pixel = ((
r << 16) | (
g << 8) |
b);
1189 0, QImage::IgnoreEndian);
1193 Painter =
new QPainter(
this);
1194 Painter->scale(sx, sy);
1195 Painter->drawImage(
l,
t, *
Image, 0, 0,
w,
h);
1218 if (g_SoundNotifier == 0)
1220 g_SoundNotifier =
new QSocketNotifier(g_dsp_fd, QSocketNotifier::Write,
1227 if (!g_SoundNotifier->isEnabled())
1228 g_SoundNotifier->setEnabled(
true);
1238 g_SoundNotifier->setEnabled(
false);
1242 g_SoundNotifier->setEnabled(
true);
1286 struct bitmap * the_bitmap;
1317 pixel = (
r << 16) | (
g << 8) |
b;
1333 for (
i = 0;
i <
cy;
i++)
1334 for (
j = 0;
j <
cx;
j++)
1341 for (
i = 0;
i <
cy;
i++)
1342 for (
j = 0;
j <
cx;
j++)
1349 for (
i = 0;
i <
cy;
i++)
1350 for (
j = 0;
j <
cx;
j++)
1357 pixel = (
r << 16) | (
g << 8) |
b;
1367 struct bitmap* the_bitmap;
1370 if (the_bitmap !=
NULL)
1408 struct bitmap* the_glyph;
1414 the_glyph->
data = glyph_data;
1426 struct bitmap* the_glyph;
1428 the_glyph = (
struct bitmap*)glyph;
1429 if (the_glyph !=
NULL)
1469 BRUSH * brush,
int bgcolour,
int fgcolour)
1483 for (
i = 1;
i < npoints;
i++)
1496 int x,
int y,
int cx,
int cy,
1497 BRUSH * brush,
int bgcolour,
int fgcolour)
1513 while (i < colours->ncolours &&
i < 256)
1518 x = (
r << 16) | (
g << 8) |
b;
1578 for (
i = 0;
i <
cy;
i++)
1579 for (
j = 0;
j <
cx;
j++)
1582 else if (opcode == 0xf)
1584 for (
i = 0;
i <
cy;
i++)
1585 for (
j = 0;
j <
cx;
j++)
1590 for (
i = 0;
i <
cy;
i++)
1591 for (
j = 0;
j <
cx;
j++)
1614 for (
i = 0;
i <
cy;
i++)
1615 for (
j = 0;
j <
cx;
j++)
1620 for (
i = 0;
i <
cy;
i++)
1621 for (
j = 0;
j <
cx;
j++)
1626 for (
i = 0;
i <
cy;
i++)
1627 for (
j = 0;
j <
cx;
j++)
1635 for (
i = 0;
i <
cy;
i++)
1636 for (
j = 0;
j <
cx;
j++)
1650 BRUSH * brush,
int bgcolour,
int fgcolour)
1655 switch (brush->style)
1661 for (
i = 0;
i < 8;
i++)
1662 ipattern[
i] = ~brush->pattern[7 -
i];
1664 for (
j = 0;
j <
cx;
j++)
1666 (
y +
i + brush->yorigin) % 8, 8, 1))
1690 for (
i = 0;
i <
cy;
i++)
1691 for (
j = 0;
j <
cx;
j++)
1696 for (
i = 0;
i <
cy;
i++)
1697 for (
j = 0;
j <
cx;
j++)
1705 for (
i = 0;
i <
cy;
i++)
1706 for (
j = 0;
j <
cx;
j++)
1711 for (
i = 0;
i <
cy;
i++)
1712 for (
j = 0;
j <
cx;
j++)
1720 for (
i = 0;
i <
cy;
i++)
1721 for (
j = 0;
j <
cx;
j++)
1726 for (
i = 0;
i <
cy;
i++)
1727 for (
j = 0;
j <
cx;
j++)
1740 for (
i = 0;
i <
cy;
i++)
1741 for (
j = 0;
j <
cx;
j++)
1743 for (
i = 0;
i <
cy;
i++)
1744 for (
j = 0;
j <
cx;
j++)
1749 for (
i = 0;
i <
cy;
i++)
1750 for (
j = 0;
j <
cx;
j++)
1755 for (
i = 0;
i <
cy;
i++)
1756 for (
j = 0;
j <
cx;
j++)
1764 for (
i = 0;
i <
cy;
i++)
1765 for (
j = 0;
j <
cx;
j++)
1767 for (
i = 0;
i <
cy;
i++)
1768 for (
j = 0;
j <
cx;
j++)
1781 struct bitmap * the_bitmap;
1784 if (the_bitmap ==
NULL)
1793 for (
i = 0;
i <
cy;
i++)
1794 for (
j = 0;
j <
cx;
j++)
1802 for (
i = 0;
i <
cy;
i++)
1803 for (
j = 0;
j <
cx;
j++)
1811 for (
i = 0;
i <
cy;
i++)
1812 for (
j = 0;
j <
cx;
j++)
1825 for (
i = 0;
i <
cy;
i++)
1826 for (
j = 0;
j <
cx;
j++)
1827 if ((
i + srcy) < the_bitmap->
h && (
j + srcx) < the_bitmap->
w)
1829 the_bitmap->
data[(
i + srcy) * the_bitmap->
w + (
j + srcx)],
1834 for (
i = 0;
i <
cy;
i++)
1835 for (
j = 0;
j <
cx;
j++)
1836 if ((
i + srcy) < the_bitmap->
h && (
j + srcx) < the_bitmap->
w)
1838 *(((
uint16*)the_bitmap->
data) + ((
i + srcy) * the_bitmap->
w + (
j + srcx))),
1843 for (
i = 0;
i <
cy;
i++)
1844 for (
j = 0;
j <
cx;
j++)
1845 if ((
i + srcy) < the_bitmap->
h && (
j + srcx) < the_bitmap->
w)
1847 *(((
uint32*)the_bitmap->
data) + ((
i + srcy) * the_bitmap->
w + (
j + srcx))),
1858 int bgcolour,
int fgcolour)
1865 int endy,
PEN * pen)
1867 int dx,
dy, incx, incy, dpr, dpru,
p,
left,
top,
right,
bottom;
1900 dpru = dpr - (
dx << 1);
1902 for (;
dx >= 0;
dx--)
1921 dpru = dpr - (
dy << 1);
1923 for (;
dy >= 0;
dy--)
1945 struct bitmap *the_glyph;
1948 the_glyph = (
struct bitmap*)glyph;
1949 if (the_glyph ==
NULL)
1951 for (
i = 0;
i < the_glyph->
h;
i++)
1952 for (
j = 0;
j < the_glyph->
w;
j++)
1957#define DO_GLYPH(ttext,idx) \
1959 glyph = cache_get_font (font, ttext[idx]);\
1960 if (!(flags & TEXT2_IMPLICIT_X))\
1962 xyoffset = ttext[++idx];\
1963 if ((xyoffset & 0x80))\
1965 if (flags & TEXT2_VERTICAL) \
1966 y += ttext[idx+1] | (ttext[idx+2] << 8);\
1968 x += ttext[idx+1] | (ttext[idx+2] << 8);\
1973 if (flags & TEXT2_VERTICAL) \
1981 draw_glyph (x + glyph->offset, y + glyph->baseline, glyph->pixmap, fgcolour);\
1982 if (flags & TEXT2_IMPLICIT_X)\
1990 int x,
int y,
int clipx,
int clipy,
1991 int clipcx,
int clipcy,
int boxx,
1992 int boxy,
int boxcx,
int boxcy,
BRUSH * brush,
2005 fill_rect(boxx, boxy, boxcx, boxcy, bgcolour);
2007 fill_rect(clipx, clipy, clipcx, clipcy, bgcolour);
2019 error(
"this shouldn't be happening\n");
2059 redraw(boxx, boxy, boxcx, boxcy);
2061 redraw(clipx, clipy, clipcx, clipcy);
2068 int i,
j,
Bpp, pixel;
2073 case 8:
Bpp = 1;
break;
2074 case 15:
Bpp = 2;
break;
2075 case 16:
Bpp = 2;
break;
2080 for (
i = 0;
i <
cy;
i++)
2081 for (
j = 0;
j <
cx;
j++)
2089 for (
i = 0;
i <
cy;
i++)
2090 for (
j = 0;
j <
cx;
j++)
2098 for (
i = 0;
i <
cy;
i++)
2099 for (
j = 0;
j <
cx;
j++)
2117 case 8:
Bpp = 1;
break;
2118 case 15:
Bpp = 2;
break;
2119 case 16:
Bpp = 2;
break;
2125 for (
i = 0;
i <
cy;
i++)
2126 for (
j = 0;
j <
cx;
j++)
2131 for (
i = 0;
i <
cy;
i++)
2132 for (
j = 0;
j <
cx;
j++)
2137 for (
i = 0;
i <
cy;
i++)
2138 for (
j = 0;
j <
cx;
j++)
2270 QFile
File(
"/dev/random");
2277 memcpy(
random,
"12345678901234567890123456789012", 32);
2296 for (
i = 0;
i < thisline;
i++)
2304 for (
i = 0;
i < thisline;
i++)
2317 char fullhostname[64];
2324 if (pw !=
NULL && pw->pw_name !=
NULL)
2328 if (
gethostname(fullhostname,
sizeof(fullhostname)) != -1)
2330 p =
strchr(fullhostname,
'.');
2342 fprintf(
stderr,
"qterdesktop: A Remote Desktop Protocol client.\n");
2344 fprintf(
stderr,
"See http://www.rdesktop.org/ for more information.\n\n");
2368 for (
i = 1;
i < in_argc;
i++)
2371 if (
strcmp(in_argv[
i],
"-h") == 0)
2376 else if (
strcmp(in_argv[
i],
"-g") == 0)
2402 else if (
strcmp(in_argv[
i],
"-4") == 0)
2406 else if (
strcmp(in_argv[
i],
"-5") == 0)
2410 else if (
strcmp(in_argv[
i],
"-a") == 0)
2416 error(
"invalid bpp\n");
2421 else if (
strcmp(in_argv[
i],
"-t") == 0)
2426 else if (
strcmp(in_argv[
i],
"-u") == 0)
2431 else if (
strcmp(in_argv[
i],
"-d") == 0)
2436 else if (
strcmp(in_argv[
i],
"-s") == 0)
2441 else if (
strcmp(in_argv[
i],
"-c") == 0)
2446 else if (
strcmp(in_argv[
i],
"-p") == 0)
2452 else if (
strcmp(in_argv[
i],
"-n") == 0)
2457 else if (
strcmp(in_argv[
i],
"-f") == 0)
2461 else if (
strcmp(in_argv[
i],
"-r") == 0)
2463 if (
strcmp(in_argv[
i + 1],
"sound") == 0)
2499 g_CM->NumColors = 256;
2504 g_MW->setMouseTracking(
true);
2506 QSocketNotifier::Read,
2509 SLOT(dataReceived()));
2519 g_SV->showFullScreen();
2521 g_MW->setCursor((
int)10);
2533 g_App =
new QApplication(
argc,
argv, QApplication::GuiServer);
2538 g_SV->showMaximized();
std::map< E_MODULE, HMODULE > mod
int strcmp(const char *String1, const char *String2)
char * strchr(const char *String, int ch)
void cache_put_text(uint8 cache_id, void *data, int length)
void cache_put_desktop(uint32 offset, int cx, int cy, int scanline, int bytes_per_pixel, uint8 *data)
DATABLOB * cache_get_text(uint8 cache_id)
uint8 * cache_get_desktop(uint32 offset, int cx, int cy, int bytes_per_pixel)
#define MOUSE_FLAG_BUTTON5
#define MOUSE_FLAG_BUTTON1
#define MOUSE_FLAG_BUTTON2
#define MOUSE_FLAG_BUTTON4
#define MOUSE_FLAG_BUTTON3
void rdp_send_input(uint32 time, uint16 message_type, uint16 device_flags, uint16 param1, uint16 param2)
RD_BOOL rdp_connect(char *server, uint32 flags, char *domain, char *password, char *command, char *directory, RD_BOOL reconnect)
RD_BOOL rdp_loop(RD_BOOL *deactivated, uint32 *ext_disc_reason)
RD_BOOL rdpsnd_init(char *optarg)
#define STRNCPY(dst, src, n)
bool open(const char *filename, const char *mode)
QPushButton * CancelButton
void ListBoxSelected(int)
QCheckBox * FullScreenCheckBox
QPushButton * RemoveButton
QMyConnectionItem * ConnectionList[10]
QLineEdit * ServerNameEdit
QComboBox * WidthHeightBox
void timerEvent(QTimerEvent *)
void mouseReleaseEvent(QMouseEvent *)
void wheelEvent(QWheelEvent *)
void closeEvent(QCloseEvent *)
void mousePressEvent(QMouseEvent *)
void mouseMoveEvent(QMouseEvent *)
void paintEvent(QPaintEvent *)
static char selected[MAX_PATH+1]
INT WSAAPI gethostname(OUT char FAR *name, IN INT namelen)
GLint GLint GLint GLint GLint x
GLint GLint GLint GLint GLint GLint y
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLint GLint GLsizei GLsizei height
GLdouble GLdouble GLdouble r
GLint GLint GLsizei width
GLdouble GLdouble GLdouble GLdouble top
GLboolean GLboolean GLboolean b
GLuint GLsizei GLsizei * length
GLubyte GLubyte GLubyte GLubyte w
GLsizei const GLfloat * points
GLfloat GLfloat GLfloat GLfloat h
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint j
_CRTIMP void __cdecl perror(_In_opt_z_ const char *_ErrMsg)
_Check_return_opt_ _CRTIMP int __cdecl fprintf(_Inout_ FILE *_File, _In_z_ _Printf_format_string_ const char *_Format,...)
_Check_return_opt_ _CRTIMP int __cdecl vfprintf(_Inout_ FILE *_File, _In_z_ _Printf_format_string_ const char *_Format, va_list _ArgList)
_Check_return_ long __cdecl strtol(_In_z_ const char *_Str, _Out_opt_ _Deref_post_z_ char **_EndPtr, _In_ int _Radix)
_Check_return_ char *__cdecl getenv(_In_z_ const char *_VarName)
REFIID LPVOID DWORD_PTR dw
#define memcpy(s1, s2, n)
#define RDP5_NO_MENUANIMATIONS
#define RDP5_NO_FULLWINDOWDRAG
#define RDP5_NO_WALLPAPER
#define sprintf(buf, format,...)
static const char mbstate_t *static wchar_t const char mbstate_t *static const wchar_t int *static double
_Out_opt_ int _Out_opt_ int * cy
HBITMAP ui_create_bitmap(int width, int height, uint8 *data)
char g_redirect_cookie[128]
bool is_pixel_on(uint8 *data, int x, int y, int width, int bpp)
void ui_polygon(uint8 opcode, uint8 fillmode, POINT *point, int npoints, BRUSH *brush, int bgcolour, int fgcolour)
void ui_rect(int x, int y, int cx, int cy, int colour)
#define SETPIXEL8(d, x, y, w, v)
BOOL rd_pstcache_mkdir(void)
void ui_patblt(uint8 opcode, int x, int y, int cx, int cy, BRUSH *brush, int bgcolour, int fgcolour)
void set_pixel(int x, int y, int pixel, int op=0xc)
#define DO_GLYPH(ttext, idx)
void ui_destroy_bitmap(HBITMAP bmp)
int g_rdp5_performanceflags
void ui_set_colourmap(HCOLOURMAP map)
int parse_parameters(int in_argc, char **in_argv)
int rd_write_file(int fd, void *ptr, int len)
BOOL rd_lock_file(int fd, int start, int len)
static struct QColorMap * g_CM
char g_redirect_username[64]
char * xstrdup(const char *s)
void ui_screenblt(uint8 opcode, int x, int y, int cx, int cy, int srcx, int srcy)
int rd_read_file(int fd, void *ptr, int len)
void fill_rect(int x, int y, int cx, int cy, int colour, int opcode=0xc)
void ui_set_null_cursor(void)
void ui_paint_bitmap(int x, int y, int cx, int cy, int width, int height, uint8 *data)
bool WarpCoords(int *x, int *y, int *cx, int *cy, int *srcx, int *srcy)
void CleanString(QString *Item)
void ui_desktop_save(uint32 offset, int x, int y, int cx, int cy)
void ui_ellipse(uint8 opcode, uint8 fillmode, int x, int y, int cx, int cy, BRUSH *brush, int bgcolour, int fgcolour)
unsigned int read_keyboard_state(void)
void WriteString(QFile *File, QString *Line)
void ui_polyline(uint8 opcode, POINT *points, int npoints, PEN *pen)
static char g_directory[32]
#define GETPIXEL16(d, x, y, w)
char g_redirect_domain[16]
int g_keyboard_functionkeys
void ui_triblt(uint8 opcode, int x, int y, int cx, int cy, HBITMAP src, int srcx, int srcy, BRUSH *brush, int bgcolour, int fgcolour)
int load_licence(uint8 **data)
void rd_close_file(int fd)
void ui_draw_text(uint8 font, uint8 flags, uint8 opcode, int mixmode, int x, int y, int clipx, int clipy, int clipcx, int clipcy, int boxx, int boxy, int boxcx, int boxcy, BRUSH *brush, int bgcolour, int fgcolour, uint8 *text, uint8 length)
#define GETPIXEL32(d, x, y, w)
static QApplication * g_App
int get_pixel(int x, int y)
#define GETPIXEL8(d, x, y, w)
void unimpl(char *format,...)
static int g_client_width
void set_pixel_on(uint8 *data, int x, int y, int width, int bpp, uint8 pixel)
void draw_glyph(int x, int y, HGLYPH glyph, int fgcolour)
uint16 ui_get_numlock_state(uint32 state)
void ui_line(uint8 opcode, int startx, int starty, int endx, int endy, PEN *pen)
void ui_destroy_cursor(HCURSOR)
char g_redirect_password[64]
void ui_destroy_glyph(HGLYPH glyph)
static uint32 g_ext_disc_reason
void ui_set_cursor(HCURSOR)
void ui_move_pointer(int, int)
void ui_destblt(uint8 opcode, int x, int y, int cx, int cy)
static QSocketNotifier * g_SocketNotifier
void ui_desktop_restore(uint32 offset, int x, int y, int cx, int cy)
void redraw(int x, int y, int cx, int cy)
void * xrealloc(void *in_val, int size)
HGLYPH ui_create_glyph(int width, int height, uint8 *data)
void ui_set_clip(int x, int y, int cx, int cy)
HCOLOURMAP ui_create_colourmap(COLOURMAP *colours)
void ui_resize_window(void)
void ui_destroy_colourmap(HCOLOURMAP map)
#define SETPIXEL16(d, x, y, w, v)
static QMyScrollView * g_SV
void GetScanCode(QKeyEvent *e, int *ScanCode, int *code)
int g_bitmap_cache_precache
int g_bitmap_cache_persist_enable
void hexdump(uint8 *p, uint32 len)
int ui_select(int rdp_socket)
HCURSOR ui_create_cursor(uint32 x, uint32 y, int width, int height, uint8 *andmask, uint8 *xormask)
void save_licence(uint8 *data, int length)
void ui_memblt(uint8 opcode, int x, int y, int cx, int cy, HBITMAP src, int srcx, int srcy)
void ui_begin_update(void)
char g_redirect_server[64]
int rd_lseek_file(int fd, int offset)
int rd_open_file(char *filename)
void generate_random(uint8 *random)
#define SETPIXEL32(d, x, y, w, v)
int g_polygon_ellipse_orders
static QMyMainWindow * g_MW
void get_username_and_hostname(void)
int rop(int rop, int src, int dst)
static int g_client_height
static char g_password[16]
_Check_return_ _CRTIMP char *__cdecl strdup(_In_opt_z_ const char *_Src)
static uint32 g_ext_disc_reason
_In_ WDFCOLLECTION _In_ WDFOBJECT Item
void int int ULONGLONG int va_list * ap
static void startTimer(void)