Merge branch 'devel'

This commit is contained in:
Jay Sorg 2014-11-13 22:08:14 -08:00
commit 32f172853f
128 changed files with 3648 additions and 965 deletions

3
.gitmodules vendored
View File

@ -1,3 +1,6 @@
[submodule "librfxcodec"] [submodule "librfxcodec"]
path = librfxcodec path = librfxcodec
url = git://github.com/neutrinolabs/librfxcodec url = git://github.com/neutrinolabs/librfxcodec
[submodule "xorgxrdp"]
path = xorgxrdp
url = git://github.com/neutrinolabs/xorgxrdp

View File

@ -126,8 +126,12 @@ g_mk_temp_dir(const char *app_name)
{ {
if (!g_create_dir("/tmp/.xrdp")) if (!g_create_dir("/tmp/.xrdp"))
{ {
printf("g_mk_temp_dir: g_create_dir failed\n"); /* if failed, still check if it got created by someone else */
return 1; if (!g_directory_exist("/tmp/.xrdp"))
{
printf("g_mk_temp_dir: g_create_dir failed\n");
return 1;
}
} }
g_chmod_hex("/tmp/.xrdp", 0x1777); g_chmod_hex("/tmp/.xrdp", 0x1777);
@ -3172,6 +3176,158 @@ g_time3(void)
#endif #endif
} }
/******************************************************************************/
/******************************************************************************/
struct bmp_magic
{
char magic[2];
};
struct bmp_hdr
{
unsigned int size; /* file size in bytes */
unsigned short reserved1;
unsigned short reserved2;
unsigned int offset; /* offset to image data, in bytes */
};
struct dib_hdr
{
unsigned int hdr_size;
int width;
int height;
unsigned short nplanes;
unsigned short bpp;
unsigned int compress_type;
unsigned int image_size;
int hres;
int vres;
unsigned int ncolors;
unsigned int nimpcolors;
};
/******************************************************************************/
int APP_CC
g_save_to_bmp(const char* filename, char* data, int stride_bytes,
int width, int height, int depth, int bits_per_pixel)
{
struct bmp_magic bm;
struct bmp_hdr bh;
struct dib_hdr dh;
int bytes;
int fd;
int index;
int i1;
int pixel;
int extra;
int file_stride_bytes;
char* line;
char* line_ptr;
if ((depth == 24) && (bits_per_pixel == 32))
{
}
else if ((depth == 32) && (bits_per_pixel == 32))
{
}
else
{
g_writeln("g_save_to_bpp: unimp");
return 1;
}
bm.magic[0] = 'B';
bm.magic[1] = 'M';
/* scan lines are 32 bit aligned, bottom 2 bits must be zero */
file_stride_bytes = width * ((depth + 7) / 8);
extra = file_stride_bytes;
extra = extra & 3;
extra = (4 - extra) & 3;
file_stride_bytes += extra;
bh.size = sizeof(bm) + sizeof(bh) + sizeof(dh) + height * file_stride_bytes;
bh.reserved1 = 0;
bh.reserved2 = 0;
bh.offset = sizeof(bm) + sizeof(bh) + sizeof(dh);
dh.hdr_size = sizeof(dh);
dh.width = width;
dh.height = height;
dh.nplanes = 1;
dh.bpp = depth;
dh.compress_type = 0;
dh.image_size = height * file_stride_bytes;
dh.hres = 0xb13;
dh.vres = 0xb13;
dh.ncolors = 0;
dh.nimpcolors = 0;
fd = open(filename, O_RDWR | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR);
if (fd == -1)
{
g_writeln("g_save_to_bpp: open error");
return 1;
}
bytes = write(fd, &bm, sizeof(bm));
if (bytes != sizeof(bm))
{
g_writeln("g_save_to_bpp: write error");
}
bytes = write(fd, &bh, sizeof(bh));
if (bytes != sizeof(bh))
{
g_writeln("g_save_to_bpp: write error");
}
bytes = write(fd, &dh, sizeof(dh));
if (bytes != sizeof(dh))
{
g_writeln("g_save_to_bpp: write error");
}
data += stride_bytes * height;
data -= stride_bytes;
if ((depth == 24) && (bits_per_pixel == 32))
{
line = malloc(file_stride_bytes);
memset(line, 0, file_stride_bytes);
for (index = 0; index < height; index++)
{
line_ptr = line;
for (i1 = 0; i1 < width; i1++)
{
pixel = ((int*)data)[i1];
*(line_ptr++) = (pixel >> 0) & 0xff;
*(line_ptr++) = (pixel >> 8) & 0xff;
*(line_ptr++) = (pixel >> 16) & 0xff;
}
bytes = write(fd, line, file_stride_bytes);
if (bytes != file_stride_bytes)
{
g_writeln("g_save_to_bpp: write error");
}
data -= stride_bytes;
}
free(line);
}
else if (depth == bits_per_pixel)
{
for (index = 0; index < height; index++)
{
bytes = write(fd, data, width * (bits_per_pixel / 8));
if (bytes != width * (bits_per_pixel / 8))
{
g_writeln("g_save_to_bpp: write error");
}
data -= stride_bytes;
}
}
else
{
g_writeln("g_save_to_bpp: unimp");
}
close(fd);
return 0;
}
/*****************************************************************************/ /*****************************************************************************/
/* returns boolean */ /* returns boolean */
int APP_CC int APP_CC

View File

@ -161,6 +161,8 @@ int APP_CC g_check_user_in_group(const char* username, int gid, int* ok);
int APP_CC g_time1(void); int APP_CC g_time1(void);
int APP_CC g_time2(void); int APP_CC g_time2(void);
int APP_CC g_time3(void); int APP_CC g_time3(void);
int APP_CC g_save_to_bmp(const char* filename, char* data, int stride_bytes,
int width, int height, int depth, int bits_per_pixel);
int APP_CC g_text2bool(const char *s); int APP_CC g_text2bool(const char *s);
void * APP_CC g_shmat(int shmid); void * APP_CC g_shmat(int shmid);
int APP_CC g_shmdt(const void *shmaddr); int APP_CC g_shmdt(const void *shmaddr);

View File

@ -457,6 +457,7 @@
Extended order support flags. */ Extended order support flags. */
#define XR_ORDERFLAGS_EX_CACHE_BITMAP_REV3_SUPPORT 0x0002 #define XR_ORDERFLAGS_EX_CACHE_BITMAP_REV3_SUPPORT 0x0002
#define XR_ORDERFLAGS_EX_ALTSEC_FRAME_MARKER_SUPPORT 0x0004 #define XR_ORDERFLAGS_EX_ALTSEC_FRAME_MARKER_SUPPORT 0x0004
#define XR_ORDERFLAGS_EX_OFFSCREEN_COMPOSITE_SUPPORT 0x0100
/* drawable types */ /* drawable types */
#define WND_TYPE_BITMAP 0 #define WND_TYPE_BITMAP 0
@ -548,10 +549,14 @@
#define XR_CODEC_GUID_REMOTEFX \ #define XR_CODEC_GUID_REMOTEFX \
"\x12\x2F\x77\x76\x72\xBD\x63\x44\xAF\xB3\xB7\x3C\x9C\x6F\x78\x86" "\x12\x2F\x77\x76\x72\xBD\x63\x44\xAF\xB3\xB7\x3C\x9C\x6F\x78\x86"
/* CODEC_GUID_JPEG 0x430C9EED1BAF4CE6869ACB8B37B66237*/ /* CODEC_GUID_JPEG 0x1BAF4CE6 9EED 430C 869ACB8B37B66237 */
#define XR_CODEC_GUID_JPEG \ #define XR_CODEC_GUID_JPEG \
"\xE6\x4C\xAF\x1B\xED\x9E\x0C\x43\x86\x9A\xCB\x8B\x37\xB6\x62\x37" "\xE6\x4C\xAF\x1B\xED\x9E\x0C\x43\x86\x9A\xCB\x8B\x37\xB6\x62\x37"
/* CODEC_GUID_PNG 0xOE0C858D 28E0 45DB ADAA0F83E57CC560 */
#define XR_CODEC_GUID_PNG \
"\x8D\x85\x0C\x0E\xE0\x28\xDB\x45\xAD\xAA\x0F\x83\xE5\x7C\xC5\x60"
#define RDP_CAPSET_SURFCMDS 0x1c #define RDP_CAPSET_SURFCMDS 0x1c
#define RDP_CAPLEN_SURFCMDS 0x0c #define RDP_CAPLEN_SURFCMDS 0x0c
#define RDP_CAPSET_BMPCODECS 0x1d #define RDP_CAPSET_BMPCODECS 0x1d

View File

@ -7,6 +7,7 @@ AM_INIT_AUTOMAKE([1.6 foreign])
AC_PROG_CC AC_PROG_CC
AC_C_CONST AC_C_CONST
AC_PROG_LIBTOOL AC_PROG_LIBTOOL
PKG_PROG_PKG_CONFIG
AC_ARG_WITH([systemdsystemunitdir], AC_ARG_WITH([systemdsystemunitdir],
AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [Directory for systemd service files]), AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [Directory for systemd service files]),
[], [with_systemdsystemunitdir=$($PKG_CONFIG --variable=systemdsystemunitdir systemd)]) [], [with_systemdsystemunitdir=$($PKG_CONFIG --variable=systemdsystemunitdir systemd)])
@ -15,46 +16,55 @@ if test "x$with_systemdsystemunitdir" != xno; then
fi fi
AM_CONDITIONAL(HAVE_SYSTEMD, [test -n "$with_systemdsystemunitdir" -a "x$with_systemdsystemunitdir" != xno ]) AM_CONDITIONAL(HAVE_SYSTEMD, [test -n "$with_systemdsystemunitdir" -a "x$with_systemdsystemunitdir" != xno ])
AC_ARG_ENABLE(pam, AS_HELP_STRING([--disable-pam],
[Build PAM support (default: yes)]),
[], [enable_pam=yes])
AC_ARG_ENABLE(nopam, AS_HELP_STRING([--enable-nopam], AC_ARG_ENABLE(nopam, AS_HELP_STRING([--enable-nopam],
[Build no PAM support (default: no)]), [Build no PAM support (default: no, deprecated)]),
[nopam=true], [nopam=false]) [
AM_CONDITIONAL(SESMAN_NOPAM, [test x$nopam = xtrue]) if test "x$enable_nopam" = "xyes"
then
enable_pam=no
AC_MSG_WARN([--enable-nopam option is deprecated. Please use --disable-pam instead.])
fi
])
AM_CONDITIONAL(SESMAN_NOPAM, [test x$enable_pam != xyes])
AC_ARG_ENABLE(kerberos, AS_HELP_STRING([--enable-kerberos], AC_ARG_ENABLE(kerberos, AS_HELP_STRING([--enable-kerberos],
[Build kerberos support (default: no)]), [Build kerberos support (default: no)]),
[kerberos=true], [kerberos=false]) [], [enable_kerberos=no])
AM_CONDITIONAL(SESMAN_KERBEROS, [test x$kerberos = xtrue]) AM_CONDITIONAL(SESMAN_KERBEROS, [test x$enable_kerberos = xyes])
AC_ARG_ENABLE(pamuserpass, AS_HELP_STRING([--enable-pamuserpass], AC_ARG_ENABLE(pamuserpass, AS_HELP_STRING([--enable-pamuserpass],
[Build pam userpass support (default: no)]), [Build pam userpass support (default: no)]),
[pamuserpass=true], [pamuserpass=false]) [], [enable_pamuserpass=no])
AM_CONDITIONAL(SESMAN_PAMUSERPASS, [test x$pamuserpass = xtrue]) AM_CONDITIONAL(SESMAN_PAMUSERPASS, [test x$enable_pamuserpass = xyes])
AC_ARG_ENABLE(xrdpdebug, AS_HELP_STRING([--enable-xrdpdebug], AC_ARG_ENABLE(xrdpdebug, AS_HELP_STRING([--enable-xrdpdebug],
[Build debug (default: no)]), [Build debug (default: no)]),
[xrdpdebug=true], [xrdpdebug=false]) [], [enable_xrdpdebug=no])
AM_CONDITIONAL(XRDP_DEBUG, [test x$xrdpdebug = xtrue]) AM_CONDITIONAL(XRDP_DEBUG, [test x$enable_xrdpdebug = xyes])
AC_ARG_ENABLE(neutrinordp, AS_HELP_STRING([--enable-neutrinordp], AC_ARG_ENABLE(neutrinordp, AS_HELP_STRING([--enable-neutrinordp],
[Build neutrinordp module (default: no)]), [Build neutrinordp module (default: no)]),
[neutrinordp=true], [neutrinordp=false]) [], [enable_neutrinordp=no])
AM_CONDITIONAL(XRDP_NEUTRINORDP, [test x$neutrinordp = xtrue]) AM_CONDITIONAL(XRDP_NEUTRINORDP, [test x$enable_neutrinordp = xyes])
AC_ARG_ENABLE(jpeg, AS_HELP_STRING([--enable-jpeg], AC_ARG_ENABLE(jpeg, AS_HELP_STRING([--enable-jpeg],
[Build jpeg module (default: no)]), [Build jpeg module (default: no)]),
[jpeg=true], [jpeg=false]) [], [enable_jpeg=no])
AM_CONDITIONAL(XRDP_JPEG, [test x$jpeg = xtrue]) AM_CONDITIONAL(XRDP_JPEG, [test x$enable_jpeg = xyes])
AC_ARG_ENABLE(tjpeg, AS_HELP_STRING([--enable-tjpeg], AC_ARG_ENABLE(tjpeg, AS_HELP_STRING([--enable-tjpeg],
[Build turbo jpeg module (default: no)]), [Build turbo jpeg module (default: no)]),
[tjpeg=true], [tjpeg=false]) [], [enable_tjpeg=no])
AM_CONDITIONAL(XRDP_TJPEG, [test x$tjpeg = xtrue]) AM_CONDITIONAL(XRDP_TJPEG, [test x$enable_tjpeg = xyes])
AC_ARG_ENABLE(fuse, AS_HELP_STRING([--enable-fuse], AC_ARG_ENABLE(fuse, AS_HELP_STRING([--enable-fuse],
[Build fuse(clipboard file / drive redir) (default: no)]), [Build fuse(clipboard file / drive redir) (default: no)]),
[fuse=true], [fuse=false]) [], [enable_fuse=no])
AM_CONDITIONAL(XRDP_FUSE, [test x$fuse = xtrue]) AM_CONDITIONAL(XRDP_FUSE, [test x$enable_fuse = xyes])
AC_ARG_ENABLE(xrdpvr, AS_HELP_STRING([--enable-xrdpvr], AC_ARG_ENABLE(xrdpvr, AS_HELP_STRING([--enable-xrdpvr],
[Build xrdpvr module (default: no)]), [Build xrdpvr module (default: no)]),
[xrdpvr=true], [xrdpvr=false]) [], [enable_xrdpvr=no])
AM_CONDITIONAL(XRDP_XRDPVR, [test x$xrdpvr = xtrue]) AM_CONDITIONAL(XRDP_XRDPVR, [test x$enable_xrdpvr = xyes])
AC_ARG_ENABLE(rfxcodec, AS_HELP_STRING([--enable-rfxcodec], AC_ARG_ENABLE(rfxcodec, AS_HELP_STRING([--enable-rfxcodec],
[Build using librfxcodec (default: no)]), [Build using librfxcodec (default: no)]),
[rfxcodec=true], [rfxcodec=false]) [], [enable_rfxcodec=no])
AM_CONDITIONAL(XRDP_RFXCODEC, [test x$rfxcodec = xtrue]) AM_CONDITIONAL(XRDP_RFXCODEC, [test x$enable_rfxcodec = xyes])
AM_CONDITIONAL(GOT_PREFIX, test "x${prefix}" != "xNONE"]) AM_CONDITIONAL(GOT_PREFIX, test "x${prefix}" != "xNONE"])
@ -64,9 +74,9 @@ AC_CHECK_HEADER([openssl/rc4.h], [],
[#include <stdlib.h>]) [#include <stdlib.h>])
# checking if pam should be autodetected. # checking if pam should be autodetected.
if test -z "$enable_nopam" if test "x$enable_pam" = "xyes"
then then
if test -z "$enable_kerberos" if test "x$enable_kerberos" != "xyes"
then then
AC_CHECK_HEADER([security/pam_appl.h], [], AC_CHECK_HEADER([security/pam_appl.h], [],
[AC_MSG_ERROR([please install libpam0g-dev or pam-devel])]) [AC_MSG_ERROR([please install libpam0g-dev or pam-devel])])
@ -78,7 +88,7 @@ AC_CHECK_MEMBER([struct in6_addr.s6_addr],
[AC_DEFINE(NO_ARPA_INET_H_IP6, 1, [for IPv6])], [AC_DEFINE(NO_ARPA_INET_H_IP6, 1, [for IPv6])],
[#include <arpa/inet.h>]) [#include <arpa/inet.h>])
if test "x$enable_nopam" = "xyes" if test "x$enable_pam" != "xyes"
then then
AC_DEFINE([USE_NOPAM],1,[Disable PAM]) AC_DEFINE([USE_NOPAM],1,[Disable PAM])
fi fi
@ -86,19 +96,19 @@ fi
AS_IF( [test "x$enable_neutrinordp" = "xyes"] , [PKG_CHECK_MODULES(FREERDP, freerdp >= 1.0.0)] ) AS_IF( [test "x$enable_neutrinordp" = "xyes"] , [PKG_CHECK_MODULES(FREERDP, freerdp >= 1.0.0)] )
# checking for libjpeg # checking for libjpeg
if ! test -z "$enable_jpeg" if test "x$enable_jpeg" = "xyes"
then then
AC_CHECK_HEADER([jpeglib.h], [], AC_CHECK_HEADER([jpeglib.h], [],
[AC_MSG_ERROR([please install libjpeg-dev or libjpeg-devel])]) [AC_MSG_ERROR([please install libjpeg-dev or libjpeg-devel])])
fi fi
if ! test -z "$enable_xrdpdebug" if test "x$enable_xrdpdebug" = "xyes"
then then
CFLAGS="-g -O0" CFLAGS="-g -O0"
fi fi
# checking for fuse # checking for fuse
if ! test -z "$enable_fuse" if test "x$enable_fuse" = "xyes"
then then
AC_CHECK_HEADER([fuse.h], [], AC_CHECK_HEADER([fuse.h], [],
[AC_MSG_ERROR([please install libfuse-dev or fuse-devel])], [AC_MSG_ERROR([please install libfuse-dev or fuse-devel])],
@ -106,7 +116,7 @@ then
fi fi
# checking for TurboJPEG # checking for TurboJPEG
if ! test -z "$enable_tjpeg" if test "x$enable_tjpeg" = "xyes"
then then
if test ! -z "$TURBOJPEG_PATH" if test ! -z "$TURBOJPEG_PATH"
then then

View File

@ -2,7 +2,7 @@
bin_PROGRAMS = \ bin_PROGRAMS = \
xrdp-genkeymap xrdp-genkeymap
xrdp_genkeymap_SOURCES = genkeymap.c xrdp_genkeymap_SOURCES = genkeymap.c evdev-map.c
xrdp_genkeymap_LDADD = \ xrdp_genkeymap_LDADD = \
-L/usr/X11R6/lib \ -L/usr/X11R6/lib \

View File

@ -19,6 +19,10 @@ setxkbmap -model pc104 -layout de
setxkbmap -model pc104 -layout it setxkbmap -model pc104 -layout it
./xrdp-genkeymap ../instfiles/km-0410.ini ./xrdp-genkeymap ../instfiles/km-0410.ini
# Polish 'pl' 0x0415
setxkbmap -model pc104 -layout pl
./xrdp-genkeymap ../instfiles/km-0415.ini
# Russia 'ru' 0x0419 # Russia 'ru' 0x0419
setxkbmap -model pc104 -layout ru setxkbmap -model pc104 -layout ru
./xrdp-genkeymap ../instfiles/km-0419.ini ./xrdp-genkeymap ../instfiles/km-0419.ini

156
genkeymap/evdev-map.c Normal file
View File

@ -0,0 +1,156 @@
/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 4; tab-width: 4 -*- */
/*
* evdev-map.c
* Copyright (C) Michał Górny 2014 <mgorny@gentoo.org>
*
* You may redistribute it and/or modify it under the terms of the
* GNU General Public License, as published by the Free Software
* Foundation; either version 2 of the License, or (at your option)
* any later version.
*
* main.cc is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with main.cc. If not, write to:
* The Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor
* Boston, MA 02110-1301, USA
*
* xfree86(base)->evdev keycode mapping
*/
int xfree86_to_evdev[137-8+1] = {
/* MDSW */ 203,
/* ESC */ 9,
/* AE01 */ 10,
/* AE02 */ 11,
/* AE03 */ 12,
/* AE04 */ 13,
/* AE05 */ 14,
/* AE06 */ 15,
/* AE07 */ 16,
/* AE08 */ 17,
/* AE09 */ 18,
/* AE10 */ 19,
/* AE11 */ 20,
/* AE12 */ 21,
/* BKSP */ 22,
/* TAB */ 23,
/* AD01 */ 24,
/* AD02 */ 25,
/* AD03 */ 26,
/* AD04 */ 27,
/* AD05 */ 28,
/* AD06 */ 29,
/* AD07 */ 30,
/* AD08 */ 31,
/* AD09 */ 32,
/* AD10 */ 33,
/* AD11 */ 34,
/* AD12 */ 35,
/* RTRN */ 36,
/* LCTL */ 37,
/* AC01 */ 38,
/* AC02 */ 39,
/* AC03 */ 40,
/* AC04 */ 41,
/* AC05 */ 42,
/* AC06 */ 43,
/* AC07 */ 44,
/* AC08 */ 45,
/* AC09 */ 46,
/* AC10 */ 47,
/* AC11 */ 48,
/* TLDE */ 49,
/* LFSH */ 50,
/* BKSL */ 51,
/* AB01 */ 52,
/* AB02 */ 53,
/* AB03 */ 54,
/* AB04 */ 55,
/* AB05 */ 56,
/* AB06 */ 57,
/* AB07 */ 58,
/* AB08 */ 59,
/* AB09 */ 60,
/* AB10 */ 61,
/* RTSH */ 62,
/* KPMU */ 63,
/* LALT */ 64,
/* SPCE */ 65,
/* CAPS */ 66,
/* FK01 */ 67,
/* FK02 */ 68,
/* FK03 */ 69,
/* FK04 */ 70,
/* FK05 */ 71,
/* FK06 */ 72,
/* FK07 */ 73,
/* FK08 */ 74,
/* FK09 */ 75,
/* FK10 */ 76,
/* NMLK */ 77,
/* SCLK */ 78,
/* KP7 */ 79,
/* KP8 */ 80,
/* KP9 */ 81,
/* KPSU */ 82,
/* KP4 */ 83,
/* KP5 */ 84,
/* KP6 */ 85,
/* KPAD */ 86,
/* KP1 */ 87,
/* KP2 */ 88,
/* KP3 */ 89,
/* KP0 */ 90,
/* KPDL */ 91,
/* SYRQ */ 107,
/* II5D */ 0,
/* LSGT */ 94,
/* FK11 */ 95,
/* FK12 */ 96,
/* HOME */ 110,
/* UP */ 111,
/* PGUP */ 112,
/* LEFT */ 113,
/* II65 */ 0,
/* RGHT */ 114,
/* END */ 115,
/* DOWN */ 116,
/* PGDN */ 117,
/* INS */ 118,
/* DELE */ 119,
/* KPEN */ 104,
/* RCTL */ 105,
/* PAUS */ 127,
/* PRSC */ 107,
/* KPDV */ 106,
/* RALT */ 108,
/* BRK */ 419,
/* LWIN */ 133,
/* RWIN */ 134,
/* MENU */ 0,
/* FK13 */ 191,
/* FK14 */ 192,
/* FK15 */ 193,
/* FK16 */ 194,
/* FK17 */ 195,
/* KPDC */ 0,
/* LVL3 */ 92,
/* ALT */ 204,
/* KPEQ */ 125,
/* SUPR */ 206,
/* HYPR */ 207,
/* XFER */ 0,
/* I02 */ 0,
/* NFER */ 0,
/* I04 */ 0,
/* AE13 */ 132,
/* I06 */ 0,
/* I07 */ 0,
0,
0
};

View File

@ -37,16 +37,19 @@
#include <string.h> #include <string.h>
#include <X11/Xlib.h> #include <X11/Xlib.h>
#include <X11/Xutil.h> #include <X11/Xutil.h>
#include <X11/XKBlib.h>
#include <locale.h> #include <locale.h>
extern int xfree86_to_evdev[137-8];
int main(int argc, char **argv) int main(int argc, char **argv)
{ {
const char *programname; const char *programname;
char text[256]; char text[256];
char *displayname = NULL; char *displayname = NULL;
char *outfname; char *outfname;
char *sections[6] = {"noshift", "shift", "altgr", "shiftaltgr", "capslock", "shiftcapslock"}; char *sections[8] = {"noshift", "shift", "altgr", "shiftaltgr", "capslock", "capslockaltgr", "shiftcapslock", "shiftcapslockaltgr"};
int states[6] = {0, 1, 0x80, 0x81, 2, 3}; int states[8] = {0, 1, 0x80, 0x81, 2, 0x82, 3, 0x83};
int i; int i;
int idx; int idx;
int char_count; int char_count;
@ -57,6 +60,9 @@ int main(int argc, char **argv)
FILE *outf; FILE *outf;
XKeyPressedEvent e; XKeyPressedEvent e;
wchar_t wtext[256]; wchar_t wtext[256];
XkbDescPtr kbdesc;
char *symatom;
int is_evdev;
setlocale(LC_CTYPE, ""); setlocale(LC_CTYPE, "");
programname = argv[0]; programname = argv[0];
@ -78,6 +84,30 @@ int main(int argc, char **argv)
return 1; return 1;
} }
/* check whether evdev is used */
kbdesc = XkbAllocKeyboard();
if (!kbdesc)
{
fprintf(stderr, "%s: unable to allocate keyboard desc\n",
programname);
XCloseDisplay(dpy);
return 1;
}
if (XkbGetNames(dpy, XkbKeycodesNameMask, kbdesc) != Success)
{
fprintf(stderr, "%s: unable to obtain keycode name for keyboard\n",
programname);
XkbFreeKeyboard(kbdesc, 0, True);
XCloseDisplay(dpy);
return 1;
}
symatom = XGetAtomName(dpy, kbdesc->names->keycodes);
is_evdev = !strncmp(symatom, "evdev", 5);
XFree(symatom);
XkbFreeKeyboard(kbdesc, 0, True);
outf = fopen(outfname, "w"); outf = fopen(outfname, "w");
if (outf == NULL) if (outf == NULL)
@ -94,14 +124,17 @@ int main(int argc, char **argv)
e.display = dpy; e.display = dpy;
e.same_screen = True; e.same_screen = True;
for (idx = 0; idx < 6; idx++) /* Sections and states */ for (idx = 0; idx < 8; idx++) /* Sections and states */
{ {
fprintf(outf, "[%s]\n", sections[idx]); fprintf(outf, "[%s]\n", sections[idx]);
e.state = states[idx]; e.state = states[idx];
for (i = 8; i <= 137; i++) /* Keycodes */ for (i = 8; i <= 137; i++) /* Keycodes */
{ {
e.keycode = i; if (is_evdev)
e.keycode = xfree86_to_evdev[i-8];
else
e.keycode = i;
nbytes = XLookupString(&e, text, 255, &ks, NULL); nbytes = XLookupString(&e, text, 255, &ks, NULL);
text[nbytes] = 0; text[nbytes] = 0;
char_count = mbstowcs(wtext, text, 255); char_count = mbstowcs(wtext, text, 255);
@ -115,7 +148,7 @@ int main(int argc, char **argv)
fprintf(outf, "Key%d=%d:%d\n", i, (int) ks, unicode); fprintf(outf, "Key%d=%d:%d\n", i, (int) ks, unicode);
} }
if (idx != 4) if (idx != 7)
{ {
fprintf(outf, "\n"); fprintf(outf, "\n");
} }

View File

@ -7,9 +7,10 @@ km-xxxx.ini
where the xxxx is replaced by the hex number of the layout of interest. where the xxxx is replaced by the hex number of the layout of interest.
The files have 6 sections; The files have 8 sections;
[noshift], [shift], [altgr], [shiftaltgr], [capslock], [shiftcapslock] [noshift], [shift], [altgr], [shiftaltgr], [capslock], [capslockaltgr],
[shiftcapslock], [shiftcapslockaltgr]
In each section there are multiple lines for each key. In each section there are multiple lines for each key.

View File

@ -22,6 +22,7 @@ startscript_DATA = \
km-0409.ini \ km-0409.ini \
km-040c.ini \ km-040c.ini \
km-0410.ini \ km-0410.ini \
km-0415.ini \
km-0419.ini \ km-0419.ini \
km-041d.ini \ km-041d.ini \
km-0816.ini km-0816.ini

View File

@ -1,5 +1,5 @@
[noshift] [noshift]
Key8=0:0 Key8=65406:0
Key9=65307:27 Key9=65307:27
Key10=49:49 Key10=49:49
Key11=50:50 Key11=50:50
@ -83,8 +83,8 @@ Key88=65433:0
Key89=65435:0 Key89=65435:0
Key90=65438:0 Key90=65438:0
Key91=65439:0 Key91=65439:0
Key92=0:0 Key92=65377:0
Key93=65406:0 Key93=0:0
Key94=60:60 Key94=60:60
Key95=65480:0 Key95=65480:0
Key96=65481:0 Key96=65481:0
@ -105,15 +105,15 @@ Key110=65299:0
Key111=65377:0 Key111=65377:0
Key112=65455:47 Key112=65455:47
Key113=65027:0 Key113=65027:0
Key114=0:0 Key114=269025049:0
Key115=65515:0 Key115=65515:0
Key116=65516:0 Key116=65312:0
Key117=65383:0 Key117=0:0
Key118=0:0 Key118=269025153:0
Key119=0:0 Key119=269025093:0
Key120=0:0 Key120=269025094:0
Key121=0:0 Key121=269025095:0
Key122=0:0 Key122=269025096:0
Key123=0:0 Key123=0:0
Key124=65027:0 Key124=65027:0
Key125=0:0 Key125=0:0
@ -131,7 +131,7 @@ Key136=0:0
Key137=0:0 Key137=0:0
[shift] [shift]
Key8=0:0 Key8=65406:0
Key9=65307:27 Key9=65307:27
Key10=33:33 Key10=33:33
Key11=34:34 Key11=34:34
@ -187,7 +187,7 @@ Key60=58:58
Key61=95:95 Key61=95:95
Key62=65506:0 Key62=65506:0
Key63=65450:42 Key63=65450:42
Key64=65511:0 Key64=65032:0
Key65=32:32 Key65=32:32
Key66=65509:0 Key66=65509:0
Key67=65470:0 Key67=65470:0
@ -200,7 +200,7 @@ Key73=65476:0
Key74=65477:0 Key74=65477:0
Key75=65478:0 Key75=65478:0
Key76=65479:0 Key76=65479:0
Key77=65273:0 Key77=65407:0
Key78=65300:0 Key78=65300:0
Key79=65463:55 Key79=65463:55
Key80=65464:56 Key80=65464:56
@ -215,8 +215,8 @@ Key88=65458:50
Key89=65459:51 Key89=65459:51
Key90=65456:48 Key90=65456:48
Key91=65452:44 Key91=65452:44
Key92=0:0 Key92=65377:0
Key93=65406:0 Key93=0:0
Key94=62:62 Key94=62:62
Key95=65480:0 Key95=65480:0
Key96=65481:0 Key96=65481:0
@ -237,15 +237,15 @@ Key110=65299:0
Key111=65377:0 Key111=65377:0
Key112=65455:47 Key112=65455:47
Key113=65027:0 Key113=65027:0
Key114=0:0 Key114=269025049:0
Key115=65515:0 Key115=65515:0
Key116=65516:0 Key116=65312:0
Key117=65383:0 Key117=0:0
Key118=0:0 Key118=269025153:0
Key119=0:0 Key119=269025093:0
Key120=0:0 Key120=269025094:0
Key121=0:0 Key121=269025095:0
Key122=0:0 Key122=269025096:0
Key123=0:0 Key123=0:0
Key124=65027:0 Key124=65027:0
Key125=65513:0 Key125=65513:0
@ -263,7 +263,7 @@ Key136=0:0
Key137=0:0 Key137=0:0
[altgr] [altgr]
Key8=0:0 Key8=65406:0
Key9=65307:27 Key9=65307:27
Key10=185:185 Key10=185:185
Key11=178:178 Key11=178:178
@ -290,33 +290,33 @@ Key31=2301:8594
Key32=248:248 Key32=248:248
Key33=254:254 Key33=254:254
Key34=65111:168 Key34=65111:168
Key35=65107:126 Key35=126:126
Key36=65293:13 Key36=65293:13
Key37=65507:0 Key37=65507:0
Key38=230:230 Key38=230:230
Key39=223:223 Key39=16777599:383
Key40=240:240 Key40=240:240
Key41=496:273 Key41=496:273
Key42=959:331 Key42=959:331
Key43=689:295 Key43=689:295
Key44=106:106 Key44=65120:0
Key45=930:312 Key45=930:312
Key46=435:322 Key46=435:322
Key47=65113:733 Key47=65113:733
Key48=65106:94 Key48=65106:94
Key49=172:172 Key49=16785458:8242
Key50=65505:0 Key50=65505:0
Key51=65104:96 Key51=2769:8217
Key52=171:171 Key52=187:187
Key53=187:187 Key53=171:171
Key54=162:162 Key54=162:162
Key55=2770:8220 Key55=2814:8222
Key56=2771:8221 Key56=2770:8220
Key57=110:110 Key57=2771:8221
Key58=181:181 Key58=181:181
Key59=2211:0 Key59=183:183
Key60=183:183 Key60=16785446:8230
Key61=65120:0 Key61=2730:8211
Key62=65506:0 Key62=65506:0
Key63=65450:42 Key63=65450:42
Key64=65513:0 Key64=65513:0
@ -347,8 +347,8 @@ Key88=65433:0
Key89=65435:0 Key89=65435:0
Key90=65438:0 Key90=65438:0
Key91=65439:0 Key91=65439:0
Key92=0:0 Key92=65377:0
Key93=65406:0 Key93=0:0
Key94=124:124 Key94=124:124
Key95=65480:0 Key95=65480:0
Key96=65481:0 Key96=65481:0
@ -366,18 +366,18 @@ Key107=65535:127
Key108=65421:13 Key108=65421:13
Key109=65508:0 Key109=65508:0
Key110=65299:0 Key110=65299:0
Key111=0:0 Key111=65377:0
Key112=65455:47 Key112=65455:47
Key113=65027:0 Key113=65027:0
Key114=0:0 Key114=269025049:0
Key115=65515:0 Key115=65515:0
Key116=65516:0 Key116=65312:0
Key117=65383:0 Key117=0:0
Key118=0:0 Key118=269025153:0
Key119=0:0 Key119=269025093:0
Key120=0:0 Key120=269025094:0
Key121=0:0 Key121=269025095:0
Key122=0:0 Key122=269025096:0
Key123=0:0 Key123=0:0
Key124=65027:0 Key124=65027:0
Key125=0:0 Key125=0:0
@ -394,8 +394,140 @@ Key135=0:0
Key136=0:0 Key136=0:0
Key137=0:0 Key137=0:0
[shiftaltgr]
Key8=65406:0
Key9=65307:27
Key10=161:161
Key11=2755:8539
Key12=163:163
Key13=164:164
Key14=2756:8540
Key15=2757:8541
Key16=2758:8542
Key17=2761:8482
Key18=177:177
Key19=176:176
Key20=191:191
Key21=65116:731
Key22=65288:8
Key23=65056:0
Key24=2009:937
Key25=419:321
Key26=8364:8364
Key27=174:174
Key28=940:358
Key29=165:165
Key30=2300:8593
Key31=697:305
Key32=216:216
Key33=222:222
Key34=65112:176
Key35=175:175
Key36=65293:13
Key37=65507:0
Key38=198:198
Key39=16785054:7838
Key40=208:208
Key41=170:170
Key42=957:330
Key43=673:294
Key44=65110:729
Key45=38:38
Key46=419:321
Key47=65120:0
Key48=65114:711
Key49=16785459:8243
Key50=65505:0
Key51=65109:728
Key52=16785466:8250
Key53=16785465:8249
Key54=169:169
Key55=2813:8218
Key56=2768:8216
Key57=2769:8217
Key58=186:186
Key59=215:215
Key60=247:247
Key61=2729:8212
Key62=65506:0
Key63=65450:42
Key64=65032:0
Key65=32:32
Key66=65509:0
Key67=65470:0
Key68=65471:0
Key69=65472:0
Key70=65473:0
Key71=65474:0
Key72=65475:0
Key73=65476:0
Key74=65477:0
Key75=65478:0
Key76=65479:0
Key77=65407:0
Key78=65300:0
Key79=65463:55
Key80=65464:56
Key81=65465:57
Key82=65453:45
Key83=65460:52
Key84=65461:53
Key85=65462:54
Key86=65451:43
Key87=65457:49
Key88=65458:50
Key89=65459:51
Key90=65456:48
Key91=65452:44
Key92=65377:0
Key93=0:0
Key94=166:166
Key95=65480:0
Key96=65481:0
Key97=65360:0
Key98=65362:0
Key99=65365:0
Key100=65361:0
Key101=0:0
Key102=65363:0
Key103=65367:0
Key104=65364:0
Key105=65366:0
Key106=65379:0
Key107=65535:127
Key108=65421:13
Key109=65508:0
Key110=65299:0
Key111=65377:0
Key112=65455:47
Key113=65027:0
Key114=269025049:0
Key115=65515:0
Key116=65312:0
Key117=0:0
Key118=269025153:0
Key119=269025093:0
Key120=269025094:0
Key121=269025095:0
Key122=269025096:0
Key123=0:0
Key124=65027:0
Key125=65513:0
Key126=65469:61
Key127=65515:0
Key128=65517:0
Key129=0:0
Key130=0:0
Key131=0:0
Key132=0:0
Key133=0:0
Key134=0:0
Key135=0:0
Key136=0:0
Key137=0:0
[capslock] [capslock]
Key8=0:0 Key8=65406:0
Key9=65307:27 Key9=65307:27
Key10=49:49 Key10=49:49
Key11=50:50 Key11=50:50
@ -407,7 +539,7 @@ Key16=55:55
Key17=56:56 Key17=56:56
Key18=57:57 Key18=57:57
Key19=48:48 Key19=48:48
Key20=223:223 Key20=16785054:7838
Key21=65105:180 Key21=65105:180
Key22=65288:8 Key22=65288:8
Key23=65289:9 Key23=65289:9
@ -479,8 +611,8 @@ Key88=65433:0
Key89=65435:0 Key89=65435:0
Key90=65438:0 Key90=65438:0
Key91=65439:0 Key91=65439:0
Key92=0:0 Key92=65377:0
Key93=65406:0 Key93=0:0
Key94=60:60 Key94=60:60
Key95=65480:0 Key95=65480:0
Key96=65481:0 Key96=65481:0
@ -501,15 +633,15 @@ Key110=65299:0
Key111=65377:0 Key111=65377:0
Key112=65455:47 Key112=65455:47
Key113=65027:0 Key113=65027:0
Key114=0:0 Key114=269025049:0
Key115=65515:0 Key115=65515:0
Key116=65516:0 Key116=65312:0
Key117=65383:0 Key117=0:0
Key118=0:0 Key118=269025153:0
Key119=0:0 Key119=269025093:0
Key120=0:0 Key120=269025094:0
Key121=0:0 Key121=269025095:0
Key122=0:0 Key122=269025096:0
Key123=0:0 Key123=0:0
Key124=65027:0 Key124=65027:0
Key125=0:0 Key125=0:0
@ -525,9 +657,8 @@ Key134=0:0
Key135=0:0 Key135=0:0
Key136=0:0 Key136=0:0
Key137=0:0 Key137=0:0
[shiftcapslock] [shiftcapslock]
Key8=0:0 Key8=65406:0
Key9=65307:27 Key9=65307:27
Key10=33:33 Key10=33:33
Key11=34:34 Key11=34:34
@ -583,7 +714,7 @@ Key60=58:58
Key61=95:95 Key61=95:95
Key62=65506:0 Key62=65506:0
Key63=65450:42 Key63=65450:42
Key64=65511:0 Key64=65032:0
Key65=32:32 Key65=32:32
Key66=65509:0 Key66=65509:0
Key67=65470:0 Key67=65470:0
@ -596,7 +727,7 @@ Key73=65476:0
Key74=65477:0 Key74=65477:0
Key75=65478:0 Key75=65478:0
Key76=65479:0 Key76=65479:0
Key77=65273:0 Key77=65407:0
Key78=65300:0 Key78=65300:0
Key79=65463:55 Key79=65463:55
Key80=65464:56 Key80=65464:56
@ -611,8 +742,8 @@ Key88=65458:50
Key89=65459:51 Key89=65459:51
Key90=65456:48 Key90=65456:48
Key91=65452:44 Key91=65452:44
Key92=0:0 Key92=65377:0
Key93=65406:0 Key93=0:0
Key94=62:62 Key94=62:62
Key95=65480:0 Key95=65480:0
Key96=65481:0 Key96=65481:0
@ -633,15 +764,15 @@ Key110=65299:0
Key111=65377:0 Key111=65377:0
Key112=65455:47 Key112=65455:47
Key113=65027:0 Key113=65027:0
Key114=0:0 Key114=269025049:0
Key115=65515:0 Key115=65515:0
Key116=65516:0 Key116=65312:0
Key117=65383:0 Key117=0:0
Key118=0:0 Key118=269025153:0
Key119=0:0 Key119=269025093:0
Key120=0:0 Key120=269025094:0
Key121=0:0 Key121=269025095:0
Key122=0:0 Key122=269025096:0
Key123=0:0 Key123=0:0
Key124=65027:0 Key124=65027:0
Key125=65513:0 Key125=65513:0
@ -657,3 +788,4 @@ Key134=0:0
Key135=0:0 Key135=0:0
Key136=0:0 Key136=0:0
Key137=0:0 Key137=0:0

View File

@ -1,5 +1,5 @@
[noshift] [noshift]
Key8=0:0 Key8=65406:0
Key9=65307:27 Key9=65307:27
Key10=49:49 Key10=49:49
Key11=50:50 Key11=50:50
@ -83,8 +83,8 @@ Key88=65433:0
Key89=65435:0 Key89=65435:0
Key90=65438:0 Key90=65438:0
Key91=65439:0 Key91=65439:0
Key92=0:0 Key92=65377:0
Key93=65406:0 Key93=0:0
Key94=60:60 Key94=60:60
Key95=65480:0 Key95=65480:0
Key96=65481:0 Key96=65481:0
@ -105,15 +105,15 @@ Key110=65299:0
Key111=65377:0 Key111=65377:0
Key112=65455:47 Key112=65455:47
Key113=65514:0 Key113=65514:0
Key114=0:0 Key114=269025049:0
Key115=65515:0 Key115=65515:0
Key116=65516:0 Key116=65312:0
Key117=65383:0 Key117=0:0
Key118=0:0 Key118=269025153:0
Key119=0:0 Key119=269025093:0
Key120=0:0 Key120=269025094:0
Key121=0:0 Key121=269025095:0
Key122=0:0 Key122=269025096:0
Key123=0:0 Key123=0:0
Key124=65027:0 Key124=65027:0
Key125=0:0 Key125=0:0
@ -131,7 +131,7 @@ Key136=0:0
Key137=0:0 Key137=0:0
[shift] [shift]
Key8=0:0 Key8=65406:0
Key9=65307:27 Key9=65307:27
Key10=33:33 Key10=33:33
Key11=64:64 Key11=64:64
@ -187,7 +187,7 @@ Key60=62:62
Key61=63:63 Key61=63:63
Key62=65506:0 Key62=65506:0
Key63=65450:42 Key63=65450:42
Key64=65511:0 Key64=65032:0
Key65=32:32 Key65=32:32
Key66=65509:0 Key66=65509:0
Key67=65470:0 Key67=65470:0
@ -200,7 +200,7 @@ Key73=65476:0
Key74=65477:0 Key74=65477:0
Key75=65478:0 Key75=65478:0
Key76=65479:0 Key76=65479:0
Key77=65273:0 Key77=65407:0
Key78=65300:0 Key78=65300:0
Key79=65463:55 Key79=65463:55
Key80=65464:56 Key80=65464:56
@ -215,8 +215,8 @@ Key88=65458:50
Key89=65459:51 Key89=65459:51
Key90=65456:48 Key90=65456:48
Key91=65454:46 Key91=65454:46
Key92=0:0 Key92=65377:0
Key93=65406:0 Key93=0:0
Key94=62:62 Key94=62:62
Key95=65480:0 Key95=65480:0
Key96=65481:0 Key96=65481:0
@ -236,16 +236,16 @@ Key109=65508:0
Key110=65299:0 Key110=65299:0
Key111=65377:0 Key111=65377:0
Key112=65455:47 Key112=65455:47
Key113=65512:0 Key113=65032:0
Key114=0:0 Key114=269025049:0
Key115=65515:0 Key115=65515:0
Key116=65516:0 Key116=65312:0
Key117=65383:0 Key117=0:0
Key118=0:0 Key118=269025153:0
Key119=0:0 Key119=269025093:0
Key120=0:0 Key120=269025094:0
Key121=0:0 Key121=269025095:0
Key122=0:0 Key122=269025096:0
Key123=0:0 Key123=0:0
Key124=65027:0 Key124=65027:0
Key125=65513:0 Key125=65513:0
@ -263,7 +263,7 @@ Key136=0:0
Key137=0:0 Key137=0:0
[altgr] [altgr]
Key8=0:0 Key8=65406:0
Key9=65307:27 Key9=65307:27
Key10=49:49 Key10=49:49
Key11=50:50 Key11=50:50
@ -347,8 +347,8 @@ Key88=65433:0
Key89=65435:0 Key89=65435:0
Key90=65438:0 Key90=65438:0
Key91=65439:0 Key91=65439:0
Key92=0:0 Key92=65377:0
Key93=65406:0 Key93=0:0
Key94=124:124 Key94=124:124
Key95=65480:0 Key95=65480:0
Key96=65481:0 Key96=65481:0
@ -366,18 +366,18 @@ Key107=65535:127
Key108=65421:13 Key108=65421:13
Key109=65508:0 Key109=65508:0
Key110=65299:0 Key110=65299:0
Key111=0:0 Key111=65377:0
Key112=65455:47 Key112=65455:47
Key113=65514:0 Key113=65514:0
Key114=0:0 Key114=269025049:0
Key115=65515:0 Key115=65515:0
Key116=65516:0 Key116=65312:0
Key117=65383:0 Key117=0:0
Key118=0:0 Key118=269025153:0
Key119=0:0 Key119=269025093:0
Key120=0:0 Key120=269025094:0
Key121=0:0 Key121=269025095:0
Key122=0:0 Key122=269025096:0
Key123=0:0 Key123=0:0
Key124=65027:0 Key124=65027:0
Key125=0:0 Key125=0:0
@ -394,8 +394,140 @@ Key135=0:0
Key136=0:0 Key136=0:0
Key137=0:0 Key137=0:0
[shiftaltgr]
Key8=65406:0
Key9=65307:27
Key10=33:33
Key11=64:64
Key12=35:35
Key13=36:36
Key14=37:37
Key15=94:94
Key16=38:38
Key17=42:42
Key18=40:40
Key19=41:41
Key20=95:95
Key21=43:43
Key22=65288:8
Key23=65056:0
Key24=81:81
Key25=87:87
Key26=69:69
Key27=82:82
Key28=84:84
Key29=89:89
Key30=85:85
Key31=73:73
Key32=79:79
Key33=80:80
Key34=123:123
Key35=125:125
Key36=65293:13
Key37=65507:0
Key38=65:65
Key39=83:83
Key40=68:68
Key41=70:70
Key42=71:71
Key43=72:72
Key44=74:74
Key45=75:75
Key46=76:76
Key47=58:58
Key48=34:34
Key49=126:126
Key50=65505:0
Key51=124:124
Key52=90:90
Key53=88:88
Key54=67:67
Key55=86:86
Key56=66:66
Key57=78:78
Key58=77:77
Key59=60:60
Key60=62:62
Key61=63:63
Key62=65506:0
Key63=65450:42
Key64=65032:0
Key65=32:32
Key66=65509:0
Key67=65470:0
Key68=65471:0
Key69=65472:0
Key70=65473:0
Key71=65474:0
Key72=65475:0
Key73=65476:0
Key74=65477:0
Key75=65478:0
Key76=65479:0
Key77=65407:0
Key78=65300:0
Key79=65463:55
Key80=65464:56
Key81=65465:57
Key82=65453:45
Key83=65460:52
Key84=65461:53
Key85=65462:54
Key86=65451:43
Key87=65457:49
Key88=65458:50
Key89=65459:51
Key90=65456:48
Key91=65454:46
Key92=65377:0
Key93=0:0
Key94=166:166
Key95=65480:0
Key96=65481:0
Key97=65360:0
Key98=65362:0
Key99=65365:0
Key100=65361:0
Key101=0:0
Key102=65363:0
Key103=65367:0
Key104=65364:0
Key105=65366:0
Key106=65379:0
Key107=65535:127
Key108=65421:13
Key109=65508:0
Key110=65299:0
Key111=65377:0
Key112=65455:47
Key113=65032:0
Key114=269025049:0
Key115=65515:0
Key116=65312:0
Key117=0:0
Key118=269025153:0
Key119=269025093:0
Key120=269025094:0
Key121=269025095:0
Key122=269025096:0
Key123=0:0
Key124=65027:0
Key125=65513:0
Key126=65469:61
Key127=65515:0
Key128=65517:0
Key129=0:0
Key130=0:0
Key131=0:0
Key132=0:0
Key133=0:0
Key134=0:0
Key135=0:0
Key136=0:0
Key137=0:0
[capslock] [capslock]
Key8=0:0 Key8=65406:0
Key9=65307:27 Key9=65307:27
Key10=49:49 Key10=49:49
Key11=50:50 Key11=50:50
@ -479,8 +611,8 @@ Key88=65433:0
Key89=65435:0 Key89=65435:0
Key90=65438:0 Key90=65438:0
Key91=65439:0 Key91=65439:0
Key92=0:0 Key92=65377:0
Key93=65406:0 Key93=0:0
Key94=60:60 Key94=60:60
Key95=65480:0 Key95=65480:0
Key96=65481:0 Key96=65481:0
@ -501,15 +633,15 @@ Key110=65299:0
Key111=65377:0 Key111=65377:0
Key112=65455:47 Key112=65455:47
Key113=65514:0 Key113=65514:0
Key114=0:0 Key114=269025049:0
Key115=65515:0 Key115=65515:0
Key116=65516:0 Key116=65312:0
Key117=65383:0 Key117=0:0
Key118=0:0 Key118=269025153:0
Key119=0:0 Key119=269025093:0
Key120=0:0 Key120=269025094:0
Key121=0:0 Key121=269025095:0
Key122=0:0 Key122=269025096:0
Key123=0:0 Key123=0:0
Key124=65027:0 Key124=65027:0
Key125=0:0 Key125=0:0
@ -525,9 +657,8 @@ Key134=0:0
Key135=0:0 Key135=0:0
Key136=0:0 Key136=0:0
Key137=0:0 Key137=0:0
[shiftcapslock] [shiftcapslock]
Key8=0:0 Key8=65406:0
Key9=65307:27 Key9=65307:27
Key10=33:33 Key10=33:33
Key11=64:64 Key11=64:64
@ -583,7 +714,7 @@ Key60=62:62
Key61=63:63 Key61=63:63
Key62=65506:0 Key62=65506:0
Key63=65450:42 Key63=65450:42
Key64=65511:0 Key64=65032:0
Key65=32:32 Key65=32:32
Key66=65509:0 Key66=65509:0
Key67=65470:0 Key67=65470:0
@ -596,7 +727,7 @@ Key73=65476:0
Key74=65477:0 Key74=65477:0
Key75=65478:0 Key75=65478:0
Key76=65479:0 Key76=65479:0
Key77=65273:0 Key77=65407:0
Key78=65300:0 Key78=65300:0
Key79=65463:55 Key79=65463:55
Key80=65464:56 Key80=65464:56
@ -611,8 +742,8 @@ Key88=65458:50
Key89=65459:51 Key89=65459:51
Key90=65456:48 Key90=65456:48
Key91=65454:46 Key91=65454:46
Key92=0:0 Key92=65377:0
Key93=65406:0 Key93=0:0
Key94=62:62 Key94=62:62
Key95=65480:0 Key95=65480:0
Key96=65481:0 Key96=65481:0
@ -632,16 +763,16 @@ Key109=65508:0
Key110=65299:0 Key110=65299:0
Key111=65377:0 Key111=65377:0
Key112=65455:47 Key112=65455:47
Key113=65512:0 Key113=65032:0
Key114=0:0 Key114=269025049:0
Key115=65515:0 Key115=65515:0
Key116=65516:0 Key116=65312:0
Key117=65383:0 Key117=0:0
Key118=0:0 Key118=269025153:0
Key119=0:0 Key119=269025093:0
Key120=0:0 Key120=269025094:0
Key121=0:0 Key121=269025095:0
Key122=0:0 Key122=269025096:0
Key123=0:0 Key123=0:0
Key124=65027:0 Key124=65027:0
Key125=65513:0 Key125=65513:0
@ -657,3 +788,4 @@ Key134=0:0
Key135=0:0 Key135=0:0
Key136=0:0 Key136=0:0
Key137=0:0 Key137=0:0

View File

@ -1,5 +1,5 @@
[noshift] [noshift]
Key8=0:0 Key8=65406:0
Key9=65307:27 Key9=65307:27
Key10=49:49 Key10=49:49
Key11=50:50 Key11=50:50
@ -83,8 +83,8 @@ Key88=65433:0
Key89=65435:0 Key89=65435:0
Key90=65438:0 Key90=65438:0
Key91=65439:0 Key91=65439:0
Key92=0:0 Key92=65377:0
Key93=65406:0 Key93=0:0
Key94=60:60 Key94=60:60
Key95=65480:0 Key95=65480:0
Key96=65481:0 Key96=65481:0
@ -105,15 +105,15 @@ Key110=65299:0
Key111=65377:0 Key111=65377:0
Key112=65455:47 Key112=65455:47
Key113=65027:0 Key113=65027:0
Key114=0:0 Key114=269025049:0
Key115=65515:0 Key115=65515:0
Key116=65516:0 Key116=65312:0
Key117=65383:0 Key117=0:0
Key118=0:0 Key118=269025153:0
Key119=0:0 Key119=269025093:0
Key120=0:0 Key120=269025094:0
Key121=0:0 Key121=269025095:0
Key122=0:0 Key122=269025096:0
Key123=0:0 Key123=0:0
Key124=65027:0 Key124=65027:0
Key125=0:0 Key125=0:0
@ -131,7 +131,7 @@ Key136=0:0
Key137=0:0 Key137=0:0
[shift] [shift]
Key8=0:0 Key8=65406:0
Key9=65307:27 Key9=65307:27
Key10=33:33 Key10=33:33
Key11=34:34 Key11=34:34
@ -187,7 +187,7 @@ Key60=58:58
Key61=95:95 Key61=95:95
Key62=65506:0 Key62=65506:0
Key63=65450:42 Key63=65450:42
Key64=65511:0 Key64=65032:0
Key65=32:32 Key65=32:32
Key66=65509:0 Key66=65509:0
Key67=65470:0 Key67=65470:0
@ -200,7 +200,7 @@ Key73=65476:0
Key74=65477:0 Key74=65477:0
Key75=65478:0 Key75=65478:0
Key76=65479:0 Key76=65479:0
Key77=65273:0 Key77=65407:0
Key78=65300:0 Key78=65300:0
Key79=65463:55 Key79=65463:55
Key80=65464:56 Key80=65464:56
@ -215,8 +215,8 @@ Key88=65458:50
Key89=65459:51 Key89=65459:51
Key90=65456:48 Key90=65456:48
Key91=65454:46 Key91=65454:46
Key92=0:0 Key92=65377:0
Key93=65406:0 Key93=0:0
Key94=62:62 Key94=62:62
Key95=65480:0 Key95=65480:0
Key96=65481:0 Key96=65481:0
@ -237,15 +237,15 @@ Key110=65299:0
Key111=65377:0 Key111=65377:0
Key112=65455:47 Key112=65455:47
Key113=65027:0 Key113=65027:0
Key114=0:0 Key114=269025049:0
Key115=65515:0 Key115=65515:0
Key116=65516:0 Key116=65312:0
Key117=65383:0 Key117=0:0
Key118=0:0 Key118=269025153:0
Key119=0:0 Key119=269025093:0
Key120=0:0 Key120=269025094:0
Key121=0:0 Key121=269025095:0
Key122=0:0 Key122=269025096:0
Key123=0:0 Key123=0:0
Key124=65027:0 Key124=65027:0
Key125=65513:0 Key125=65513:0
@ -263,7 +263,7 @@ Key136=0:0
Key137=0:0 Key137=0:0
[altgr] [altgr]
Key8=0:0 Key8=65406:0
Key9=65307:27 Key9=65307:27
Key10=185:185 Key10=185:185
Key11=178:178 Key11=178:178
@ -299,7 +299,7 @@ Key40=240:240
Key41=496:273 Key41=496:273
Key42=959:331 Key42=959:331
Key43=689:295 Key43=689:295
Key44=106:106 Key44=65121:0
Key45=930:312 Key45=930:312
Key46=435:322 Key46=435:322
Key47=64:64 Key47=64:64
@ -347,8 +347,8 @@ Key88=65433:0
Key89=65435:0 Key89=65435:0
Key90=65438:0 Key90=65438:0
Key91=65439:0 Key91=65439:0
Key92=0:0 Key92=65377:0
Key93=65406:0 Key93=0:0
Key94=171:171 Key94=171:171
Key95=65480:0 Key95=65480:0
Key96=65481:0 Key96=65481:0
@ -366,18 +366,18 @@ Key107=65535:127
Key108=65421:13 Key108=65421:13
Key109=65508:0 Key109=65508:0
Key110=65299:0 Key110=65299:0
Key111=0:0 Key111=65377:0
Key112=65455:47 Key112=65455:47
Key113=65027:0 Key113=65027:0
Key114=0:0 Key114=269025049:0
Key115=65515:0 Key115=65515:0
Key116=65516:0 Key116=65312:0
Key117=65383:0 Key117=0:0
Key118=0:0 Key118=269025153:0
Key119=0:0 Key119=269025093:0
Key120=0:0 Key120=269025094:0
Key121=0:0 Key121=269025095:0
Key122=0:0 Key122=269025096:0
Key123=0:0 Key123=0:0
Key124=65027:0 Key124=65027:0
Key125=0:0 Key125=0:0
@ -394,8 +394,140 @@ Key135=0:0
Key136=0:0 Key136=0:0
Key137=0:0 Key137=0:0
[shiftaltgr]
Key8=65406:0
Key9=65307:27
Key10=161:161
Key11=65113:733
Key12=65107:126
Key13=2755:8539
Key14=2756:8540
Key15=2757:8541
Key16=2758:8542
Key17=2761:8482
Key18=177:177
Key19=65116:731
Key20=191:191
Key21=65106:94
Key22=65288:8
Key23=65056:0
Key24=2009:937
Key25=419:321
Key26=162:162
Key27=174:174
Key28=940:358
Key29=165:165
Key30=2300:8593
Key31=697:305
Key32=216:216
Key33=222:222
Key34=123:123
Key35=125:125
Key36=65293:13
Key37=65507:0
Key38=198:198
Key39=167:167
Key40=208:208
Key41=170:170
Key42=957:330
Key43=673:294
Key44=65122:0
Key45=38:38
Key46=419:321
Key47=65115:184
Key48=65112:176
Key49=166:166
Key50=65505:0
Key51=65109:728
Key52=60:60
Key53=62:62
Key54=169:169
Key55=2768:8216
Key56=2769:8217
Key57=209:209
Key58=186:186
Key59=215:215
Key60=65111:168
Key61=247:247
Key62=65506:0
Key63=65450:42
Key64=65032:0
Key65=32:32
Key66=65509:0
Key67=65470:0
Key68=65471:0
Key69=65472:0
Key70=65473:0
Key71=65474:0
Key72=65475:0
Key73=65476:0
Key74=65477:0
Key75=65478:0
Key76=65479:0
Key77=65407:0
Key78=65300:0
Key79=65463:55
Key80=65464:56
Key81=65465:57
Key82=65453:45
Key83=65460:52
Key84=65461:53
Key85=65462:54
Key86=65451:43
Key87=65457:49
Key88=65458:50
Key89=65459:51
Key90=65456:48
Key91=65454:46
Key92=65377:0
Key93=0:0
Key94=187:187
Key95=65480:0
Key96=65481:0
Key97=65360:0
Key98=65362:0
Key99=65365:0
Key100=65361:0
Key101=0:0
Key102=65363:0
Key103=65367:0
Key104=65364:0
Key105=65366:0
Key106=65379:0
Key107=65535:127
Key108=65421:13
Key109=65508:0
Key110=65299:0
Key111=65377:0
Key112=65455:47
Key113=65027:0
Key114=269025049:0
Key115=65515:0
Key116=65312:0
Key117=0:0
Key118=269025153:0
Key119=269025093:0
Key120=269025094:0
Key121=269025095:0
Key122=269025096:0
Key123=0:0
Key124=65027:0
Key125=65513:0
Key126=65469:61
Key127=65515:0
Key128=65517:0
Key129=0:0
Key130=0:0
Key131=0:0
Key132=0:0
Key133=0:0
Key134=0:0
Key135=0:0
Key136=0:0
Key137=0:0
[capslock] [capslock]
Key8=0:0 Key8=65406:0
Key9=65307:27 Key9=65307:27
Key10=49:49 Key10=49:49
Key11=50:50 Key11=50:50
@ -479,8 +611,8 @@ Key88=65433:0
Key89=65435:0 Key89=65435:0
Key90=65438:0 Key90=65438:0
Key91=65439:0 Key91=65439:0
Key92=0:0 Key92=65377:0
Key93=65406:0 Key93=0:0
Key94=60:60 Key94=60:60
Key95=65480:0 Key95=65480:0
Key96=65481:0 Key96=65481:0
@ -501,15 +633,15 @@ Key110=65299:0
Key111=65377:0 Key111=65377:0
Key112=65455:47 Key112=65455:47
Key113=65027:0 Key113=65027:0
Key114=0:0 Key114=269025049:0
Key115=65515:0 Key115=65515:0
Key116=65516:0 Key116=65312:0
Key117=65383:0 Key117=0:0
Key118=0:0 Key118=269025153:0
Key119=0:0 Key119=269025093:0
Key120=0:0 Key120=269025094:0
Key121=0:0 Key121=269025095:0
Key122=0:0 Key122=269025096:0
Key123=0:0 Key123=0:0
Key124=65027:0 Key124=65027:0
Key125=0:0 Key125=0:0
@ -525,9 +657,8 @@ Key134=0:0
Key135=0:0 Key135=0:0
Key136=0:0 Key136=0:0
Key137=0:0 Key137=0:0
[shiftcapslock] [shiftcapslock]
Key8=0:0 Key8=65406:0
Key9=65307:27 Key9=65307:27
Key10=33:33 Key10=33:33
Key11=34:34 Key11=34:34
@ -583,7 +714,7 @@ Key60=58:58
Key61=95:95 Key61=95:95
Key62=65506:0 Key62=65506:0
Key63=65450:42 Key63=65450:42
Key64=65511:0 Key64=65032:0
Key65=32:32 Key65=32:32
Key66=65509:0 Key66=65509:0
Key67=65470:0 Key67=65470:0
@ -596,7 +727,7 @@ Key73=65476:0
Key74=65477:0 Key74=65477:0
Key75=65478:0 Key75=65478:0
Key76=65479:0 Key76=65479:0
Key77=65273:0 Key77=65407:0
Key78=65300:0 Key78=65300:0
Key79=65463:55 Key79=65463:55
Key80=65464:56 Key80=65464:56
@ -611,8 +742,8 @@ Key88=65458:50
Key89=65459:51 Key89=65459:51
Key90=65456:48 Key90=65456:48
Key91=65454:46 Key91=65454:46
Key92=0:0 Key92=65377:0
Key93=65406:0 Key93=0:0
Key94=62:62 Key94=62:62
Key95=65480:0 Key95=65480:0
Key96=65481:0 Key96=65481:0
@ -633,15 +764,15 @@ Key110=65299:0
Key111=65377:0 Key111=65377:0
Key112=65455:47 Key112=65455:47
Key113=65027:0 Key113=65027:0
Key114=0:0 Key114=269025049:0
Key115=65515:0 Key115=65515:0
Key116=65516:0 Key116=65312:0
Key117=65383:0 Key117=0:0
Key118=0:0 Key118=269025153:0
Key119=0:0 Key119=269025093:0
Key120=0:0 Key120=269025094:0
Key121=0:0 Key121=269025095:0
Key122=0:0 Key122=269025096:0
Key123=0:0 Key123=0:0
Key124=65027:0 Key124=65027:0
Key125=65513:0 Key125=65513:0
@ -657,3 +788,4 @@ Key134=0:0
Key135=0:0 Key135=0:0
Key136=0:0 Key136=0:0
Key137=0:0 Key137=0:0

791
instfiles/km-0415.ini Normal file
View File

@ -0,0 +1,791 @@
[noshift]
Key8=65406:0
Key9=65307:27
Key10=49:49
Key11=50:50
Key12=51:51
Key13=52:52
Key14=53:53
Key15=54:54
Key16=55:55
Key17=56:56
Key18=57:57
Key19=48:48
Key20=45:45
Key21=61:61
Key22=65288:8
Key23=65289:9
Key24=113:113
Key25=119:119
Key26=101:101
Key27=114:114
Key28=116:116
Key29=121:121
Key30=117:117
Key31=105:105
Key32=111:111
Key33=112:112
Key34=91:91
Key35=93:93
Key36=65293:13
Key37=65507:0
Key38=97:97
Key39=115:115
Key40=100:100
Key41=102:102
Key42=103:103
Key43=104:104
Key44=106:106
Key45=107:107
Key46=108:108
Key47=59:59
Key48=39:39
Key49=96:96
Key50=65505:0
Key51=92:92
Key52=122:122
Key53=120:120
Key54=99:99
Key55=118:118
Key56=98:98
Key57=110:110
Key58=109:109
Key59=44:44
Key60=46:46
Key61=47:47
Key62=65506:0
Key63=65450:42
Key64=65513:0
Key65=32:32
Key66=65509:0
Key67=65470:0
Key68=65471:0
Key69=65472:0
Key70=65473:0
Key71=65474:0
Key72=65475:0
Key73=65476:0
Key74=65477:0
Key75=65478:0
Key76=65479:0
Key77=65407:0
Key78=65300:0
Key79=65429:0
Key80=65431:0
Key81=65434:0
Key82=65453:45
Key83=65430:0
Key84=65437:0
Key85=65432:0
Key86=65451:43
Key87=65436:0
Key88=65433:0
Key89=65435:0
Key90=65438:0
Key91=65439:0
Key92=65377:0
Key93=0:0
Key94=60:60
Key95=65480:0
Key96=65481:0
Key97=65360:0
Key98=65362:0
Key99=65365:0
Key100=65361:0
Key101=0:0
Key102=65363:0
Key103=65367:0
Key104=65364:0
Key105=65366:0
Key106=65379:0
Key107=65535:127
Key108=65421:13
Key109=65508:0
Key110=65299:0
Key111=65377:0
Key112=65455:47
Key113=65027:0
Key114=269025049:0
Key115=65515:0
Key116=65312:0
Key117=0:0
Key118=269025153:0
Key119=269025093:0
Key120=269025094:0
Key121=269025095:0
Key122=269025096:0
Key123=0:0
Key124=65027:0
Key125=0:0
Key126=65469:61
Key127=0:0
Key128=0:0
Key129=0:0
Key130=0:0
Key131=0:0
Key132=0:0
Key133=0:0
Key134=0:0
Key135=0:0
Key136=0:0
Key137=0:0
[shift]
Key8=65406:0
Key9=65307:27
Key10=33:33
Key11=64:64
Key12=35:35
Key13=36:36
Key14=37:37
Key15=94:94
Key16=38:38
Key17=42:42
Key18=40:40
Key19=41:41
Key20=95:95
Key21=43:43
Key22=65288:8
Key23=65056:0
Key24=81:81
Key25=87:87
Key26=69:69
Key27=82:82
Key28=84:84
Key29=89:89
Key30=85:85
Key31=73:73
Key32=79:79
Key33=80:80
Key34=123:123
Key35=125:125
Key36=65293:13
Key37=65507:0
Key38=65:65
Key39=83:83
Key40=68:68
Key41=70:70
Key42=71:71
Key43=72:72
Key44=74:74
Key45=75:75
Key46=76:76
Key47=58:58
Key48=34:34
Key49=126:126
Key50=65505:0
Key51=124:124
Key52=90:90
Key53=88:88
Key54=67:67
Key55=86:86
Key56=66:66
Key57=78:78
Key58=77:77
Key59=60:60
Key60=62:62
Key61=63:63
Key62=65506:0
Key63=65450:42
Key64=65032:0
Key65=32:32
Key66=65509:0
Key67=65470:0
Key68=65471:0
Key69=65472:0
Key70=65473:0
Key71=65474:0
Key72=65475:0
Key73=65476:0
Key74=65477:0
Key75=65478:0
Key76=65479:0
Key77=65407:0
Key78=65300:0
Key79=65463:55
Key80=65464:56
Key81=65465:57
Key82=65453:45
Key83=65460:52
Key84=65461:53
Key85=65462:54
Key86=65451:43
Key87=65457:49
Key88=65458:50
Key89=65459:51
Key90=65456:48
Key91=65452:44
Key92=65377:0
Key93=0:0
Key94=62:62
Key95=65480:0
Key96=65481:0
Key97=65360:0
Key98=65362:0
Key99=65365:0
Key100=65361:0
Key101=0:0
Key102=65363:0
Key103=65367:0
Key104=65364:0
Key105=65366:0
Key106=65379:0
Key107=65535:127
Key108=65421:13
Key109=65508:0
Key110=65299:0
Key111=65377:0
Key112=65455:47
Key113=65027:0
Key114=269025049:0
Key115=65515:0
Key116=65312:0
Key117=0:0
Key118=269025153:0
Key119=269025093:0
Key120=269025094:0
Key121=269025095:0
Key122=269025096:0
Key123=0:0
Key124=65027:0
Key125=65513:0
Key126=65469:61
Key127=65515:0
Key128=65517:0
Key129=0:0
Key130=0:0
Key131=0:0
Key132=0:0
Key133=0:0
Key134=0:0
Key135=0:0
Key136=0:0
Key137=0:0
[altgr]
Key8=65406:0
Key9=65307:27
Key10=2237:8800
Key11=178:178
Key12=179:179
Key13=162:162
Key14=8364:8364
Key15=189:189
Key16=167:167
Key17=183:183
Key18=171:171
Key19=187:187
Key20=2730:8211
Key21=65115:184
Key22=65288:8
Key23=65289:9
Key24=2032:960
Key25=5053:339
Key26=490:281
Key27=169:169
Key28=223:223
Key29=2299:8592
Key30=2302:8595
Key31=2301:8594
Key32=243:243
Key33=254:254
Key34=65111:168
Key35=65107:126
Key36=65293:13
Key37=65507:0
Key38=433:261
Key39=438:347
Key40=240:240
Key41=230:230
Key42=959:331
Key43=2769:8217
Key44=16777817:601
Key45=2734:8230
Key46=435:322
Key47=65105:180
Key48=65106:94
Key49=172:172
Key50=65505:0
Key51=65104:96
Key52=447:380
Key53=444:378
Key54=486:263
Key55=2814:8222
Key56=2771:8221
Key57=497:324
Key58=181:181
Key59=2236:8804
Key60=2238:8805
Key61=65120:0
Key62=65506:0
Key63=65450:42
Key64=65513:0
Key65=160:160
Key66=65509:0
Key67=65470:0
Key68=65471:0
Key69=65472:0
Key70=65473:0
Key71=65474:0
Key72=65475:0
Key73=65476:0
Key74=65477:0
Key75=65478:0
Key76=65479:0
Key77=65407:0
Key78=65300:0
Key79=65429:0
Key80=65431:0
Key81=65434:0
Key82=65453:45
Key83=65430:0
Key84=65437:0
Key85=65432:0
Key86=65451:43
Key87=65436:0
Key88=65433:0
Key89=65435:0
Key90=65438:0
Key91=65439:0
Key92=65377:0
Key93=0:0
Key94=124:124
Key95=65480:0
Key96=65481:0
Key97=65360:0
Key98=65362:0
Key99=65365:0
Key100=65361:0
Key101=0:0
Key102=65363:0
Key103=65367:0
Key104=65364:0
Key105=65366:0
Key106=65379:0
Key107=65535:127
Key108=65421:13
Key109=65508:0
Key110=65299:0
Key111=65377:0
Key112=65455:47
Key113=65027:0
Key114=269025049:0
Key115=65515:0
Key116=65312:0
Key117=0:0
Key118=269025153:0
Key119=269025093:0
Key120=269025094:0
Key121=269025095:0
Key122=269025096:0
Key123=0:0
Key124=65027:0
Key125=0:0
Key126=65469:61
Key127=0:0
Key128=0:0
Key129=0:0
Key130=0:0
Key131=0:0
Key132=0:0
Key133=0:0
Key134=0:0
Key135=0:0
Key136=0:0
Key137=0:0
[shiftaltgr]
Key8=65406:0
Key9=65307:27
Key10=161:161
Key11=191:191
Key12=163:163
Key13=188:188
Key14=16785456:8240
Key15=2270:8743
Key16=16785992:8776
Key17=190:190
Key18=177:177
Key19=176:176
Key20=2729:8212
Key21=65116:731
Key22=65288:8
Key23=65056:0
Key24=2009:937
Key25=5052:338
Key26=458:280
Key27=174:174
Key28=2761:8482
Key29=165:165
Key30=2300:8593
Key31=16785812:8596
Key32=211:211
Key33=222:222
Key34=65112:176
Key35=65108:175
Key36=65293:13
Key37=65507:0
Key38=417:260
Key39=422:346
Key40=208:208
Key41=198:198
Key42=957:330
Key43=16785442:8226
Key44=16777615:399
Key45=65123:0
Key46=419:321
Key47=65113:733
Key48=65114:711
Key49=2271:8744
Key50=65505:0
Key51=65109:728
Key52=431:379
Key53=428:377
Key54=454:262
Key55=2768:8216
Key56=2770:8220
Key57=465:323
Key58=2242:8734
Key59=215:215
Key60=247:247
Key61=65110:729
Key62=65506:0
Key63=65450:42
Key64=65032:0
Key65=160:160
Key66=65509:0
Key67=65470:0
Key68=65471:0
Key69=65472:0
Key70=65473:0
Key71=65474:0
Key72=65475:0
Key73=65476:0
Key74=65477:0
Key75=65478:0
Key76=65479:0
Key77=65407:0
Key78=65300:0
Key79=65463:55
Key80=65464:56
Key81=65465:57
Key82=65453:45
Key83=65460:52
Key84=65461:53
Key85=65462:54
Key86=65451:43
Key87=65457:49
Key88=65458:50
Key89=65459:51
Key90=65456:48
Key91=65452:44
Key92=65377:0
Key93=0:0
Key94=166:166
Key95=65480:0
Key96=65481:0
Key97=65360:0
Key98=65362:0
Key99=65365:0
Key100=65361:0
Key101=0:0
Key102=65363:0
Key103=65367:0
Key104=65364:0
Key105=65366:0
Key106=65379:0
Key107=65535:127
Key108=65421:13
Key109=65508:0
Key110=65299:0
Key111=65377:0
Key112=65455:47
Key113=65027:0
Key114=269025049:0
Key115=65515:0
Key116=65312:0
Key117=0:0
Key118=269025153:0
Key119=269025093:0
Key120=269025094:0
Key121=269025095:0
Key122=269025096:0
Key123=0:0
Key124=65027:0
Key125=65513:0
Key126=65469:61
Key127=65515:0
Key128=65517:0
Key129=0:0
Key130=0:0
Key131=0:0
Key132=0:0
Key133=0:0
Key134=0:0
Key135=0:0
Key136=0:0
Key137=0:0
[capslock]
Key8=65406:0
Key9=65307:27
Key10=49:49
Key11=50:50
Key12=51:51
Key13=52:52
Key14=53:53
Key15=54:54
Key16=55:55
Key17=56:56
Key18=57:57
Key19=48:48
Key20=45:45
Key21=61:61
Key22=65288:8
Key23=65289:9
Key24=81:81
Key25=87:87
Key26=69:69
Key27=82:82
Key28=84:84
Key29=89:89
Key30=85:85
Key31=73:73
Key32=79:79
Key33=80:80
Key34=91:91
Key35=93:93
Key36=65293:13
Key37=65507:0
Key38=65:65
Key39=83:83
Key40=68:68
Key41=70:70
Key42=71:71
Key43=72:72
Key44=74:74
Key45=75:75
Key46=76:76
Key47=59:59
Key48=39:39
Key49=96:96
Key50=65505:0
Key51=92:92
Key52=90:90
Key53=88:88
Key54=67:67
Key55=86:86
Key56=66:66
Key57=78:78
Key58=77:77
Key59=44:44
Key60=46:46
Key61=47:47
Key62=65506:0
Key63=65450:42
Key64=65513:0
Key65=32:32
Key66=65509:0
Key67=65470:0
Key68=65471:0
Key69=65472:0
Key70=65473:0
Key71=65474:0
Key72=65475:0
Key73=65476:0
Key74=65477:0
Key75=65478:0
Key76=65479:0
Key77=65407:0
Key78=65300:0
Key79=65429:0
Key80=65431:0
Key81=65434:0
Key82=65453:45
Key83=65430:0
Key84=65437:0
Key85=65432:0
Key86=65451:43
Key87=65436:0
Key88=65433:0
Key89=65435:0
Key90=65438:0
Key91=65439:0
Key92=65377:0
Key93=0:0
Key94=60:60
Key95=65480:0
Key96=65481:0
Key97=65360:0
Key98=65362:0
Key99=65365:0
Key100=65361:0
Key101=0:0
Key102=65363:0
Key103=65367:0
Key104=65364:0
Key105=65366:0
Key106=65379:0
Key107=65535:127
Key108=65421:13
Key109=65508:0
Key110=65299:0
Key111=65377:0
Key112=65455:47
Key113=65027:0
Key114=269025049:0
Key115=65515:0
Key116=65312:0
Key117=0:0
Key118=269025153:0
Key119=269025093:0
Key120=269025094:0
Key121=269025095:0
Key122=269025096:0
Key123=0:0
Key124=65027:0
Key125=0:0
Key126=65469:61
Key127=0:0
Key128=0:0
Key129=0:0
Key130=0:0
Key131=0:0
Key132=0:0
Key133=0:0
Key134=0:0
Key135=0:0
Key136=0:0
Key137=0:0
[shiftcapslock]
Key8=65406:0
Key9=65307:27
Key10=33:33
Key11=64:64
Key12=35:35
Key13=36:36
Key14=37:37
Key15=94:94
Key16=38:38
Key17=42:42
Key18=40:40
Key19=41:41
Key20=95:95
Key21=43:43
Key22=65288:8
Key23=65056:0
Key24=113:113
Key25=119:119
Key26=101:101
Key27=114:114
Key28=116:116
Key29=121:121
Key30=117:117
Key31=105:105
Key32=111:111
Key33=112:112
Key34=123:123
Key35=125:125
Key36=65293:13
Key37=65507:0
Key38=97:97
Key39=115:115
Key40=100:100
Key41=102:102
Key42=103:103
Key43=104:104
Key44=106:106
Key45=107:107
Key46=108:108
Key47=58:58
Key48=34:34
Key49=126:126
Key50=65505:0
Key51=124:124
Key52=122:122
Key53=120:120
Key54=99:99
Key55=118:118
Key56=98:98
Key57=110:110
Key58=109:109
Key59=60:60
Key60=62:62
Key61=63:63
Key62=65506:0
Key63=65450:42
Key64=65032:0
Key65=32:32
Key66=65509:0
Key67=65470:0
Key68=65471:0
Key69=65472:0
Key70=65473:0
Key71=65474:0
Key72=65475:0
Key73=65476:0
Key74=65477:0
Key75=65478:0
Key76=65479:0
Key77=65407:0
Key78=65300:0
Key79=65463:55
Key80=65464:56
Key81=65465:57
Key82=65453:45
Key83=65460:52
Key84=65461:53
Key85=65462:54
Key86=65451:43
Key87=65457:49
Key88=65458:50
Key89=65459:51
Key90=65456:48
Key91=65452:44
Key92=65377:0
Key93=0:0
Key94=62:62
Key95=65480:0
Key96=65481:0
Key97=65360:0
Key98=65362:0
Key99=65365:0
Key100=65361:0
Key101=0:0
Key102=65363:0
Key103=65367:0
Key104=65364:0
Key105=65366:0
Key106=65379:0
Key107=65535:127
Key108=65421:13
Key109=65508:0
Key110=65299:0
Key111=65377:0
Key112=65455:47
Key113=65027:0
Key114=269025049:0
Key115=65515:0
Key116=65312:0
Key117=0:0
Key118=269025153:0
Key119=269025093:0
Key120=269025094:0
Key121=269025095:0
Key122=269025096:0
Key123=0:0
Key124=65027:0
Key125=65513:0
Key126=65469:61
Key127=65515:0
Key128=65517:0
Key129=0:0
Key130=0:0
Key131=0:0
Key132=0:0
Key133=0:0
Key134=0:0
Key135=0:0
Key136=0:0
Key137=0:0

View File

@ -1,5 +1,5 @@
[noshift] [noshift]
Key8=0:0 Key8=65406:0
Key9=65307:27 Key9=65307:27
Key10=49:49 Key10=49:49
Key11=50:50 Key11=50:50
@ -52,7 +52,7 @@ Key57=1748:1090
Key58=1752:1100 Key58=1752:1100
Key59=1730:1073 Key59=1730:1073
Key60=1728:1102 Key60=1728:1102
Key61=47:47 Key61=46:46
Key62=65506:0 Key62=65506:0
Key63=65450:42 Key63=65450:42
Key64=65513:0 Key64=65513:0
@ -83,8 +83,8 @@ Key88=65433:0
Key89=65435:0 Key89=65435:0
Key90=65438:0 Key90=65438:0
Key91=65439:0 Key91=65439:0
Key92=0:0 Key92=65377:0
Key93=65406:0 Key93=0:0
Key94=47:47 Key94=47:47
Key95=65480:0 Key95=65480:0
Key96=65481:0 Key96=65481:0
@ -105,15 +105,15 @@ Key110=65299:0
Key111=65377:0 Key111=65377:0
Key112=65455:47 Key112=65455:47
Key113=65514:0 Key113=65514:0
Key114=0:0 Key114=269025049:0
Key115=65515:0 Key115=65515:0
Key116=65516:0 Key116=65312:0
Key117=65383:0 Key117=0:0
Key118=0:0 Key118=269025153:0
Key119=0:0 Key119=269025093:0
Key120=0:0 Key120=269025094:0
Key121=0:0 Key121=269025095:0
Key122=0:0 Key122=269025096:0
Key123=0:0 Key123=0:0
Key124=65027:0 Key124=65027:0
Key125=0:0 Key125=0:0
@ -131,16 +131,16 @@ Key136=0:0
Key137=0:0 Key137=0:0
[shift] [shift]
Key8=0:0 Key8=65406:0
Key9=65307:27 Key9=65307:27
Key10=33:33 Key10=33:33
Key11=34:34 Key11=34:34
Key12=35:35 Key12=1712:8470
Key13=42:42 Key13=59:59
Key14=58:58 Key14=37:37
Key15=44:44 Key15=58:58
Key16=46:46 Key16=63:63
Key17=59:59 Key17=42:42
Key18=40:40 Key18=40:40
Key19=41:41 Key19=41:41
Key20=95:95 Key20=95:95
@ -174,7 +174,7 @@ Key47=1782:1046
Key48=1788:1069 Key48=1788:1069
Key49=1715:1025 Key49=1715:1025
Key50=65505:0 Key50=65505:0
Key51=124:124 Key51=47:47
Key52=1777:1071 Key52=1777:1071
Key53=1790:1063 Key53=1790:1063
Key54=1779:1057 Key54=1779:1057
@ -184,10 +184,10 @@ Key57=1780:1058
Key58=1784:1068 Key58=1784:1068
Key59=1762:1041 Key59=1762:1041
Key60=1760:1070 Key60=1760:1070
Key61=63:63 Key61=44:44
Key62=65506:0 Key62=65506:0
Key63=65450:42 Key63=65450:42
Key64=65511:0 Key64=65032:0
Key65=32:32 Key65=32:32
Key66=65509:0 Key66=65509:0
Key67=65470:0 Key67=65470:0
@ -200,7 +200,7 @@ Key73=65476:0
Key74=65477:0 Key74=65477:0
Key75=65478:0 Key75=65478:0
Key76=65479:0 Key76=65479:0
Key77=65273:0 Key77=65407:0
Key78=65300:0 Key78=65300:0
Key79=65463:55 Key79=65463:55
Key80=65464:56 Key80=65464:56
@ -215,8 +215,8 @@ Key88=65458:50
Key89=65459:51 Key89=65459:51
Key90=65456:48 Key90=65456:48
Key91=65452:44 Key91=65452:44
Key92=0:0 Key92=65377:0
Key93=65406:0 Key93=0:0
Key94=124:124 Key94=124:124
Key95=65480:0 Key95=65480:0
Key96=65481:0 Key96=65481:0
@ -236,16 +236,16 @@ Key109=65508:0
Key110=65299:0 Key110=65299:0
Key111=65377:0 Key111=65377:0
Key112=65455:47 Key112=65455:47
Key113=65512:0 Key113=65032:0
Key114=0:0 Key114=269025049:0
Key115=65515:0 Key115=65515:0
Key116=65516:0 Key116=65312:0
Key117=65383:0 Key117=0:0
Key118=0:0 Key118=269025153:0
Key119=0:0 Key119=269025093:0
Key120=0:0 Key120=269025094:0
Key121=0:0 Key121=269025095:0
Key122=0:0 Key122=269025096:0
Key123=0:0 Key123=0:0
Key124=65027:0 Key124=65027:0
Key125=65513:0 Key125=65513:0
@ -263,7 +263,7 @@ Key136=0:0
Key137=0:0 Key137=0:0
[altgr] [altgr]
Key8=0:0 Key8=65406:0
Key9=65307:27 Key9=65307:27
Key10=49:49 Key10=49:49
Key11=50:50 Key11=50:50
@ -316,7 +316,7 @@ Key57=1748:1090
Key58=1752:1100 Key58=1752:1100
Key59=1730:1073 Key59=1730:1073
Key60=1728:1102 Key60=1728:1102
Key61=47:47 Key61=46:46
Key62=65506:0 Key62=65506:0
Key63=65450:42 Key63=65450:42
Key64=65513:0 Key64=65513:0
@ -347,8 +347,8 @@ Key88=65433:0
Key89=65435:0 Key89=65435:0
Key90=65438:0 Key90=65438:0
Key91=65439:0 Key91=65439:0
Key92=0:0 Key92=65377:0
Key93=65406:0 Key93=0:0
Key94=124:124 Key94=124:124
Key95=65480:0 Key95=65480:0
Key96=65481:0 Key96=65481:0
@ -366,18 +366,18 @@ Key107=65535:127
Key108=65421:13 Key108=65421:13
Key109=65508:0 Key109=65508:0
Key110=65299:0 Key110=65299:0
Key111=0:0 Key111=65377:0
Key112=65455:47 Key112=65455:47
Key113=65514:0 Key113=65514:0
Key114=0:0 Key114=269025049:0
Key115=65515:0 Key115=65515:0
Key116=65516:0 Key116=65312:0
Key117=65383:0 Key117=0:0
Key118=0:0 Key118=269025153:0
Key119=0:0 Key119=269025093:0
Key120=0:0 Key120=269025094:0
Key121=0:0 Key121=269025095:0
Key122=0:0 Key122=269025096:0
Key123=0:0 Key123=0:0
Key124=65027:0 Key124=65027:0
Key125=0:0 Key125=0:0
@ -394,8 +394,140 @@ Key135=0:0
Key136=0:0 Key136=0:0
Key137=0:0 Key137=0:0
[shiftaltgr]
Key8=65406:0
Key9=65307:27
Key10=33:33
Key11=34:34
Key12=1712:8470
Key13=59:59
Key14=37:37
Key15=58:58
Key16=63:63
Key17=42:42
Key18=40:40
Key19=41:41
Key20=95:95
Key21=43:43
Key22=65288:8
Key23=65056:0
Key24=1770:1049
Key25=1763:1062
Key26=1781:1059
Key27=1771:1050
Key28=1765:1045
Key29=1774:1053
Key30=1767:1043
Key31=1787:1064
Key32=1789:1065
Key33=1786:1047
Key34=1768:1061
Key35=1791:1066
Key36=65293:13
Key37=65507:0
Key38=1766:1060
Key39=1785:1067
Key40=1783:1042
Key41=1761:1040
Key42=1776:1055
Key43=1778:1056
Key44=1775:1054
Key45=1772:1051
Key46=1764:1044
Key47=1782:1046
Key48=1788:1069
Key49=1715:1025
Key50=65505:0
Key51=47:47
Key52=1777:1071
Key53=1790:1063
Key54=1779:1057
Key55=1773:1052
Key56=1769:1048
Key57=1780:1058
Key58=1784:1068
Key59=1762:1041
Key60=1760:1070
Key61=44:44
Key62=65506:0
Key63=65450:42
Key64=65032:0
Key65=32:32
Key66=65509:0
Key67=65470:0
Key68=65471:0
Key69=65472:0
Key70=65473:0
Key71=65474:0
Key72=65475:0
Key73=65476:0
Key74=65477:0
Key75=65478:0
Key76=65479:0
Key77=65407:0
Key78=65300:0
Key79=65463:55
Key80=65464:56
Key81=65465:57
Key82=65453:45
Key83=65460:52
Key84=65461:53
Key85=65462:54
Key86=65451:43
Key87=65457:49
Key88=65458:50
Key89=65459:51
Key90=65456:48
Key91=65452:44
Key92=65377:0
Key93=0:0
Key94=166:166
Key95=65480:0
Key96=65481:0
Key97=65360:0
Key98=65362:0
Key99=65365:0
Key100=65361:0
Key101=0:0
Key102=65363:0
Key103=65367:0
Key104=65364:0
Key105=65366:0
Key106=65379:0
Key107=65535:127
Key108=65421:13
Key109=65508:0
Key110=65299:0
Key111=65377:0
Key112=65455:47
Key113=65032:0
Key114=269025049:0
Key115=65515:0
Key116=65312:0
Key117=0:0
Key118=269025153:0
Key119=269025093:0
Key120=269025094:0
Key121=269025095:0
Key122=269025096:0
Key123=0:0
Key124=65027:0
Key125=65513:0
Key126=65469:61
Key127=65515:0
Key128=65517:0
Key129=0:0
Key130=0:0
Key131=0:0
Key132=0:0
Key133=0:0
Key134=0:0
Key135=0:0
Key136=0:0
Key137=0:0
[capslock] [capslock]
Key8=0:0 Key8=65406:0
Key9=65307:27 Key9=65307:27
Key10=49:49 Key10=49:49
Key11=50:50 Key11=50:50
@ -448,7 +580,7 @@ Key57=1780:1058
Key58=1784:1068 Key58=1784:1068
Key59=1762:1041 Key59=1762:1041
Key60=1760:1070 Key60=1760:1070
Key61=47:47 Key61=46:46
Key62=65506:0 Key62=65506:0
Key63=65450:42 Key63=65450:42
Key64=65513:0 Key64=65513:0
@ -479,8 +611,8 @@ Key88=65433:0
Key89=65435:0 Key89=65435:0
Key90=65438:0 Key90=65438:0
Key91=65439:0 Key91=65439:0
Key92=0:0 Key92=65377:0
Key93=65406:0 Key93=0:0
Key94=47:47 Key94=47:47
Key95=65480:0 Key95=65480:0
Key96=65481:0 Key96=65481:0
@ -501,15 +633,15 @@ Key110=65299:0
Key111=65377:0 Key111=65377:0
Key112=65455:47 Key112=65455:47
Key113=65514:0 Key113=65514:0
Key114=0:0 Key114=269025049:0
Key115=65515:0 Key115=65515:0
Key116=65516:0 Key116=65312:0
Key117=65383:0 Key117=0:0
Key118=0:0 Key118=269025153:0
Key119=0:0 Key119=269025093:0
Key120=0:0 Key120=269025094:0
Key121=0:0 Key121=269025095:0
Key122=0:0 Key122=269025096:0
Key123=0:0 Key123=0:0
Key124=65027:0 Key124=65027:0
Key125=0:0 Key125=0:0
@ -525,18 +657,17 @@ Key134=0:0
Key135=0:0 Key135=0:0
Key136=0:0 Key136=0:0
Key137=0:0 Key137=0:0
[shiftcapslock] [shiftcapslock]
Key8=0:0 Key8=65406:0
Key9=65307:27 Key9=65307:27
Key10=33:33 Key10=33:33
Key11=34:34 Key11=34:34
Key12=35:35 Key12=1712:8470
Key13=42:42 Key13=59:59
Key14=58:58 Key14=37:37
Key15=44:44 Key15=58:58
Key16=46:46 Key16=63:63
Key17=59:59 Key17=42:42
Key18=40:40 Key18=40:40
Key19=41:41 Key19=41:41
Key20=95:95 Key20=95:95
@ -570,7 +701,7 @@ Key47=1750:1078
Key48=1756:1101 Key48=1756:1101
Key49=1699:1105 Key49=1699:1105
Key50=65505:0 Key50=65505:0
Key51=124:124 Key51=47:47
Key52=1745:1103 Key52=1745:1103
Key53=1758:1095 Key53=1758:1095
Key54=1747:1089 Key54=1747:1089
@ -580,10 +711,10 @@ Key57=1748:1090
Key58=1752:1100 Key58=1752:1100
Key59=1730:1073 Key59=1730:1073
Key60=1728:1102 Key60=1728:1102
Key61=63:63 Key61=44:44
Key62=65506:0 Key62=65506:0
Key63=65450:42 Key63=65450:42
Key64=65511:0 Key64=65032:0
Key65=32:32 Key65=32:32
Key66=65509:0 Key66=65509:0
Key67=65470:0 Key67=65470:0
@ -596,7 +727,7 @@ Key73=65476:0
Key74=65477:0 Key74=65477:0
Key75=65478:0 Key75=65478:0
Key76=65479:0 Key76=65479:0
Key77=65273:0 Key77=65407:0
Key78=65300:0 Key78=65300:0
Key79=65463:55 Key79=65463:55
Key80=65464:56 Key80=65464:56
@ -611,8 +742,8 @@ Key88=65458:50
Key89=65459:51 Key89=65459:51
Key90=65456:48 Key90=65456:48
Key91=65452:44 Key91=65452:44
Key92=0:0 Key92=65377:0
Key93=65406:0 Key93=0:0
Key94=124:124 Key94=124:124
Key95=65480:0 Key95=65480:0
Key96=65481:0 Key96=65481:0
@ -632,16 +763,16 @@ Key109=65508:0
Key110=65299:0 Key110=65299:0
Key111=65377:0 Key111=65377:0
Key112=65455:47 Key112=65455:47
Key113=65512:0 Key113=65032:0
Key114=0:0 Key114=269025049:0
Key115=65515:0 Key115=65515:0
Key116=65516:0 Key116=65312:0
Key117=65383:0 Key117=0:0
Key118=0:0 Key118=269025153:0
Key119=0:0 Key119=269025093:0
Key120=0:0 Key120=269025094:0
Key121=0:0 Key121=269025095:0
Key122=0:0 Key122=269025096:0
Key123=0:0 Key123=0:0
Key124=65027:0 Key124=65027:0
Key125=65513:0 Key125=65513:0
@ -657,3 +788,4 @@ Key134=0:0
Key135=0:0 Key135=0:0
Key136=0:0 Key136=0:0
Key137=0:0 Key137=0:0

View File

@ -1,5 +1,5 @@
[noshift] [noshift]
Key8=0:0 Key8=65406:0
Key9=65307:27 Key9=65307:27
Key10=49:49 Key10=49:49
Key11=50:50 Key11=50:50
@ -83,8 +83,8 @@ Key88=65433:0
Key89=65435:0 Key89=65435:0
Key90=65438:0 Key90=65438:0
Key91=65439:0 Key91=65439:0
Key92=0:0 Key92=65377:0
Key93=65406:0 Key93=0:0
Key94=60:60 Key94=60:60
Key95=65480:0 Key95=65480:0
Key96=65481:0 Key96=65481:0
@ -105,15 +105,15 @@ Key110=65299:0
Key111=65377:0 Key111=65377:0
Key112=65455:47 Key112=65455:47
Key113=65027:0 Key113=65027:0
Key114=0:0 Key114=269025049:0
Key115=65515:0 Key115=65515:0
Key116=65516:0 Key116=65312:0
Key117=65383:0 Key117=0:0
Key118=0:0 Key118=269025153:0
Key119=0:0 Key119=269025093:0
Key120=0:0 Key120=269025094:0
Key121=0:0 Key121=269025095:0
Key122=0:0 Key122=269025096:0
Key123=0:0 Key123=0:0
Key124=65027:0 Key124=65027:0
Key125=0:0 Key125=0:0
@ -131,7 +131,7 @@ Key136=0:0
Key137=0:0 Key137=0:0
[shift] [shift]
Key8=0:0 Key8=65406:0
Key9=65307:27 Key9=65307:27
Key10=33:33 Key10=33:33
Key11=34:34 Key11=34:34
@ -187,7 +187,7 @@ Key60=58:58
Key61=95:95 Key61=95:95
Key62=65506:0 Key62=65506:0
Key63=65450:42 Key63=65450:42
Key64=65511:0 Key64=65032:0
Key65=32:32 Key65=32:32
Key66=65509:0 Key66=65509:0
Key67=65470:0 Key67=65470:0
@ -200,7 +200,7 @@ Key73=65476:0
Key74=65477:0 Key74=65477:0
Key75=65478:0 Key75=65478:0
Key76=65479:0 Key76=65479:0
Key77=65273:0 Key77=65407:0
Key78=65300:0 Key78=65300:0
Key79=65463:55 Key79=65463:55
Key80=65464:56 Key80=65464:56
@ -215,8 +215,8 @@ Key88=65458:50
Key89=65459:51 Key89=65459:51
Key90=65456:48 Key90=65456:48
Key91=65452:44 Key91=65452:44
Key92=0:0 Key92=65377:0
Key93=65406:0 Key93=0:0
Key94=62:62 Key94=62:62
Key95=65480:0 Key95=65480:0
Key96=65481:0 Key96=65481:0
@ -237,15 +237,15 @@ Key110=65299:0
Key111=65377:0 Key111=65377:0
Key112=65455:47 Key112=65455:47
Key113=65027:0 Key113=65027:0
Key114=0:0 Key114=269025049:0
Key115=65515:0 Key115=65515:0
Key116=65516:0 Key116=65312:0
Key117=65383:0 Key117=0:0
Key118=0:0 Key118=269025153:0
Key119=0:0 Key119=269025093:0
Key120=0:0 Key120=269025094:0
Key121=0:0 Key121=269025095:0
Key122=0:0 Key122=269025096:0
Key123=0:0 Key123=0:0
Key124=65027:0 Key124=65027:0
Key125=65513:0 Key125=65513:0
@ -263,7 +263,7 @@ Key136=0:0
Key137=0:0 Key137=0:0
[altgr] [altgr]
Key8=0:0 Key8=65406:0
Key9=65307:27 Key9=65307:27
Key10=161:161 Key10=161:161
Key11=64:64 Key11=64:64
@ -299,7 +299,7 @@ Key40=240:240
Key41=496:273 Key41=496:273
Key42=959:331 Key42=959:331
Key43=689:295 Key43=689:295
Key44=106:106 Key44=65121:0
Key45=930:312 Key45=930:312
Key46=435:322 Key46=435:322
Key47=248:248 Key47=248:248
@ -347,8 +347,8 @@ Key88=65433:0
Key89=65435:0 Key89=65435:0
Key90=65438:0 Key90=65438:0
Key91=65439:0 Key91=65439:0
Key92=0:0 Key92=65377:0
Key93=65406:0 Key93=0:0
Key94=124:124 Key94=124:124
Key95=65480:0 Key95=65480:0
Key96=65481:0 Key96=65481:0
@ -366,18 +366,18 @@ Key107=65535:127
Key108=65421:13 Key108=65421:13
Key109=65508:0 Key109=65508:0
Key110=65299:0 Key110=65299:0
Key111=0:0 Key111=65377:0
Key112=65455:47 Key112=65455:47
Key113=65027:0 Key113=65027:0
Key114=0:0 Key114=269025049:0
Key115=65515:0 Key115=65515:0
Key116=65516:0 Key116=65312:0
Key117=65383:0 Key117=0:0
Key118=0:0 Key118=269025153:0
Key119=0:0 Key119=269025093:0
Key120=0:0 Key120=269025094:0
Key121=0:0 Key121=269025095:0
Key122=0:0 Key122=269025096:0
Key123=0:0 Key123=0:0
Key124=65027:0 Key124=65027:0
Key125=0:0 Key125=0:0
@ -394,8 +394,140 @@ Key135=0:0
Key136=0:0 Key136=0:0
Key137=0:0 Key137=0:0
[shiftaltgr]
Key8=65406:0
Key9=65307:27
Key10=185:185
Key11=178:178
Key12=179:179
Key13=188:188
Key14=162:162
Key15=2757:8541
Key16=247:247
Key17=171:171
Key18=187:187
Key19=176:176
Key20=191:191
Key21=172:172
Key22=65288:8
Key23=65056:0
Key24=2009:937
Key25=419:321
Key26=162:162
Key27=174:174
Key28=222:222
Key29=165:165
Key30=2300:8593
Key31=697:305
Key32=5052:338
Key33=222:222
Key34=65112:176
Key35=65114:711
Key36=65293:13
Key37=65507:0
Key38=186:186
Key39=167:167
Key40=208:208
Key41=170:170
Key42=957:330
Key43=673:294
Key44=65122:0
Key45=38:38
Key46=419:321
Key47=216:216
Key48=198:198
Key49=190:190
Key50=65505:0
Key51=215:215
Key52=60:60
Key53=62:62
Key54=169:169
Key55=2768:8216
Key56=2769:8217
Key57=78:78
Key58=186:186
Key59=65116:731
Key60=65110:729
Key61=65110:729
Key62=65506:0
Key63=65450:42
Key64=65032:0
Key65=160:160
Key66=65509:0
Key67=65470:0
Key68=65471:0
Key69=65472:0
Key70=65473:0
Key71=65474:0
Key72=65475:0
Key73=65476:0
Key74=65477:0
Key75=65478:0
Key76=65479:0
Key77=65407:0
Key78=65300:0
Key79=65463:55
Key80=65464:56
Key81=65465:57
Key82=65453:45
Key83=65460:52
Key84=65461:53
Key85=65462:54
Key86=65451:43
Key87=65457:49
Key88=65458:50
Key89=65459:51
Key90=65456:48
Key91=65452:44
Key92=65377:0
Key93=0:0
Key94=166:166
Key95=65480:0
Key96=65481:0
Key97=65360:0
Key98=65362:0
Key99=65365:0
Key100=65361:0
Key101=0:0
Key102=65363:0
Key103=65367:0
Key104=65364:0
Key105=65366:0
Key106=65379:0
Key107=65535:127
Key108=65421:13
Key109=65508:0
Key110=65299:0
Key111=65377:0
Key112=65455:47
Key113=65027:0
Key114=269025049:0
Key115=65515:0
Key116=65312:0
Key117=0:0
Key118=269025153:0
Key119=269025093:0
Key120=269025094:0
Key121=269025095:0
Key122=269025096:0
Key123=0:0
Key124=65027:0
Key125=65513:0
Key126=65469:61
Key127=65515:0
Key128=65517:0
Key129=0:0
Key130=0:0
Key131=0:0
Key132=0:0
Key133=0:0
Key134=0:0
Key135=0:0
Key136=0:0
Key137=0:0
[capslock] [capslock]
Key8=0:0 Key8=65406:0
Key9=65307:27 Key9=65307:27
Key10=49:49 Key10=49:49
Key11=50:50 Key11=50:50
@ -479,8 +611,8 @@ Key88=65433:0
Key89=65435:0 Key89=65435:0
Key90=65438:0 Key90=65438:0
Key91=65439:0 Key91=65439:0
Key92=0:0 Key92=65377:0
Key93=65406:0 Key93=0:0
Key94=60:60 Key94=60:60
Key95=65480:0 Key95=65480:0
Key96=65481:0 Key96=65481:0
@ -501,15 +633,15 @@ Key110=65299:0
Key111=65377:0 Key111=65377:0
Key112=65455:47 Key112=65455:47
Key113=65027:0 Key113=65027:0
Key114=0:0 Key114=269025049:0
Key115=65515:0 Key115=65515:0
Key116=65516:0 Key116=65312:0
Key117=65383:0 Key117=0:0
Key118=0:0 Key118=269025153:0
Key119=0:0 Key119=269025093:0
Key120=0:0 Key120=269025094:0
Key121=0:0 Key121=269025095:0
Key122=0:0 Key122=269025096:0
Key123=0:0 Key123=0:0
Key124=65027:0 Key124=65027:0
Key125=0:0 Key125=0:0
@ -525,9 +657,8 @@ Key134=0:0
Key135=0:0 Key135=0:0
Key136=0:0 Key136=0:0
Key137=0:0 Key137=0:0
[shiftcapslock] [shiftcapslock]
Key8=0:0 Key8=65406:0
Key9=65307:27 Key9=65307:27
Key10=33:33 Key10=33:33
Key11=34:34 Key11=34:34
@ -583,7 +714,7 @@ Key60=58:58
Key61=95:95 Key61=95:95
Key62=65506:0 Key62=65506:0
Key63=65450:42 Key63=65450:42
Key64=65511:0 Key64=65032:0
Key65=32:32 Key65=32:32
Key66=65509:0 Key66=65509:0
Key67=65470:0 Key67=65470:0
@ -596,7 +727,7 @@ Key73=65476:0
Key74=65477:0 Key74=65477:0
Key75=65478:0 Key75=65478:0
Key76=65479:0 Key76=65479:0
Key77=65273:0 Key77=65407:0
Key78=65300:0 Key78=65300:0
Key79=65463:55 Key79=65463:55
Key80=65464:56 Key80=65464:56
@ -611,8 +742,8 @@ Key88=65458:50
Key89=65459:51 Key89=65459:51
Key90=65456:48 Key90=65456:48
Key91=65452:44 Key91=65452:44
Key92=0:0 Key92=65377:0
Key93=65406:0 Key93=0:0
Key94=62:62 Key94=62:62
Key95=65480:0 Key95=65480:0
Key96=65481:0 Key96=65481:0
@ -633,15 +764,15 @@ Key110=65299:0
Key111=65377:0 Key111=65377:0
Key112=65455:47 Key112=65455:47
Key113=65027:0 Key113=65027:0
Key114=0:0 Key114=269025049:0
Key115=65515:0 Key115=65515:0
Key116=65516:0 Key116=65312:0
Key117=65383:0 Key117=0:0
Key118=0:0 Key118=269025153:0
Key119=0:0 Key119=269025093:0
Key120=0:0 Key120=269025094:0
Key121=0:0 Key121=269025095:0
Key122=0:0 Key122=269025096:0
Key123=0:0 Key123=0:0
Key124=65027:0 Key124=65027:0
Key125=65513:0 Key125=65513:0
@ -657,3 +788,4 @@ Key134=0:0
Key135=0:0 Key135=0:0
Key136=0:0 Key136=0:0
Key137=0:0 Key137=0:0

View File

@ -1,5 +1,5 @@
[noshift] [noshift]
Key8=0:0 Key8=65406:0
Key9=65307:27 Key9=65307:27
Key10=49:49 Key10=49:49
Key11=50:50 Key11=50:50
@ -83,8 +83,8 @@ Key88=65433:0
Key89=65435:0 Key89=65435:0
Key90=65438:0 Key90=65438:0
Key91=65439:0 Key91=65439:0
Key92=0:0 Key92=65377:0
Key93=65406:0 Key93=0:0
Key94=60:60 Key94=60:60
Key95=65480:0 Key95=65480:0
Key96=65481:0 Key96=65481:0
@ -105,33 +105,33 @@ Key110=65299:0
Key111=65377:0 Key111=65377:0
Key112=65455:47 Key112=65455:47
Key113=65027:0 Key113=65027:0
Key114=0:0 Key114=269025049:0
Key115=65515:0 Key115=65515:0
Key116=65312:0 Key116=65312:0
Key117=65383:0 Key117=0:0
Key118=0:0 Key118=269025153:0
Key119=0:0 Key119=269025093:0
Key120=0:0 Key120=269025094:0
Key121=0:0 Key121=269025095:0
Key122=0:0 Key122=269025096:0
Key123=0:0 Key123=0:0
Key124=65027:0 Key124=65027:0
Key125=0:0 Key125=0:0
Key126=65469:61 Key126=65469:61
Key127=0:0 Key127=0:0
Key128=0:0 Key128=0:0
Key129=269025170:0 Key129=0:0
Key130=0:0 Key130=0:0
Key131=0:0 Key131=0:0
Key132=0:0 Key132=0:0
Key133=269025166:0 Key133=0:0
Key134=0:0 Key134=0:0
Key135=65382:0 Key135=0:0
Key136=65381:0 Key136=0:0
Key137=0:0 Key137=0:0
[shift] [shift]
Key8=0:0 Key8=65406:0
Key9=65307:27 Key9=65307:27
Key10=33:33 Key10=33:33
Key11=34:34 Key11=34:34
@ -187,7 +187,7 @@ Key60=58:58
Key61=95:95 Key61=95:95
Key62=65506:0 Key62=65506:0
Key63=65450:42 Key63=65450:42
Key64=65511:0 Key64=65032:0
Key65=32:32 Key65=32:32
Key66=65509:0 Key66=65509:0
Key67=65470:0 Key67=65470:0
@ -200,7 +200,7 @@ Key73=65476:0
Key74=65477:0 Key74=65477:0
Key75=65478:0 Key75=65478:0
Key76=65479:0 Key76=65479:0
Key77=65273:0 Key77=65407:0
Key78=65300:0 Key78=65300:0
Key79=65463:55 Key79=65463:55
Key80=65464:56 Key80=65464:56
@ -215,8 +215,8 @@ Key88=65458:50
Key89=65459:51 Key89=65459:51
Key90=65456:48 Key90=65456:48
Key91=65454:46 Key91=65454:46
Key92=0:0 Key92=65377:0
Key93=65406:0 Key93=0:0
Key94=62:62 Key94=62:62
Key95=65480:0 Key95=65480:0
Key96=65481:0 Key96=65481:0
@ -237,33 +237,33 @@ Key110=65299:0
Key111=65377:0 Key111=65377:0
Key112=65455:47 Key112=65455:47
Key113=65027:0 Key113=65027:0
Key114=0:0 Key114=269025049:0
Key115=65515:0 Key115=65515:0
Key116=65312:0 Key116=65312:0
Key117=65383:0 Key117=0:0
Key118=0:0 Key118=269025153:0
Key119=0:0 Key119=269025093:0
Key120=0:0 Key120=269025094:0
Key121=0:0 Key121=269025095:0
Key122=0:0 Key122=269025096:0
Key123=0:0 Key123=0:0
Key124=65027:0 Key124=65027:0
Key125=65513:0 Key125=65513:0
Key126=65469:61 Key126=65469:61
Key127=65515:0 Key127=65515:0
Key128=65517:0 Key128=65517:0
Key129=269025170:0 Key129=0:0
Key130=0:0 Key130=0:0
Key131=0:0 Key131=0:0
Key132=0:0 Key132=0:0
Key133=269025166:0 Key133=0:0
Key134=0:0 Key134=0:0
Key135=65382:0 Key135=0:0
Key136=65381:0 Key136=0:0
Key137=0:0 Key137=0:0
[altgr] [altgr]
Key8=0:0 Key8=65406:0
Key9=65307:27 Key9=65307:27
Key10=185:185 Key10=185:185
Key11=64:64 Key11=64:64
@ -299,7 +299,7 @@ Key40=240:240
Key41=496:273 Key41=496:273
Key42=959:331 Key42=959:331
Key43=689:295 Key43=689:295
Key44=106:106 Key44=65121:0
Key45=930:312 Key45=930:312
Key46=435:322 Key46=435:322
Key47=65105:180 Key47=65105:180
@ -347,9 +347,9 @@ Key88=65433:0
Key89=65435:0 Key89=65435:0
Key90=65438:0 Key90=65438:0
Key91=65439:0 Key91=65439:0
Key92=0:0 Key92=65377:0
Key93=65406:0 Key93=0:0
Key94=124:124 Key94=92:92
Key95=65480:0 Key95=65480:0
Key96=65481:0 Key96=65481:0
Key97=65360:0 Key97=65360:0
@ -369,33 +369,165 @@ Key110=65299:0
Key111=65377:0 Key111=65377:0
Key112=65455:47 Key112=65455:47
Key113=65027:0 Key113=65027:0
Key114=0:0 Key114=269025049:0
Key115=65515:0 Key115=65515:0
Key116=65312:0 Key116=65312:0
Key117=65383:0 Key117=0:0
Key118=0:0 Key118=269025153:0
Key119=0:0 Key119=269025093:0
Key120=0:0 Key120=269025094:0
Key121=0:0 Key121=269025095:0
Key122=0:0 Key122=269025096:0
Key123=0:0 Key123=0:0
Key124=65027:0 Key124=65027:0
Key125=0:0 Key125=0:0
Key126=65469:61 Key126=65469:61
Key127=0:0 Key127=0:0
Key128=0:0 Key128=0:0
Key129=269025170:0 Key129=0:0
Key130=0:0 Key130=0:0
Key131=0:0 Key131=0:0
Key132=0:0 Key132=0:0
Key133=269025166:0 Key133=0:0
Key134=0:0 Key134=0:0
Key135=65382:0 Key135=0:0
Key136=65381:0 Key136=0:0
Key137=0:0
[shiftaltgr]
Key8=65406:0
Key9=65307:27
Key10=161:161
Key11=2755:8539
Key12=163:163
Key13=36:36
Key14=2756:8540
Key15=2757:8541
Key16=2758:8542
Key17=2761:8482
Key18=177:177
Key19=176:176
Key20=191:191
Key21=65116:731
Key22=65288:8
Key23=65056:0
Key24=2009:937
Key25=419:321
Key26=162:162
Key27=174:174
Key28=940:358
Key29=165:165
Key30=2300:8593
Key31=697:305
Key32=216:216
Key33=222:222
Key34=65112:176
Key35=65108:175
Key36=65293:13
Key37=65507:0
Key38=198:198
Key39=167:167
Key40=208:208
Key41=170:170
Key42=957:330
Key43=673:294
Key44=65122:0
Key45=38:38
Key46=419:321
Key47=65113:733
Key48=65114:711
Key49=172:172
Key50=65505:0
Key51=65109:728
Key52=60:60
Key53=62:62
Key54=169:169
Key55=2768:8216
Key56=2769:8217
Key57=78:78
Key58=186:186
Key59=215:215
Key60=247:247
Key61=65110:729
Key62=65506:0
Key63=65450:42
Key64=65032:0
Key65=32:32
Key66=65509:0
Key67=65470:0
Key68=65471:0
Key69=65472:0
Key70=65473:0
Key71=65474:0
Key72=65475:0
Key73=65476:0
Key74=65477:0
Key75=65478:0
Key76=65479:0
Key77=65407:0
Key78=65300:0
Key79=65463:55
Key80=65464:56
Key81=65465:57
Key82=65453:45
Key83=65460:52
Key84=65461:53
Key85=65462:54
Key86=65451:43
Key87=65457:49
Key88=65458:50
Key89=65459:51
Key90=65456:48
Key91=65454:46
Key92=65377:0
Key93=0:0
Key94=92:92
Key95=65480:0
Key96=65481:0
Key97=65360:0
Key98=65362:0
Key99=65365:0
Key100=65361:0
Key101=0:0
Key102=65363:0
Key103=65367:0
Key104=65364:0
Key105=65366:0
Key106=65379:0
Key107=65535:127
Key108=65421:13
Key109=65508:0
Key110=65299:0
Key111=65377:0
Key112=65455:47
Key113=65027:0
Key114=269025049:0
Key115=65515:0
Key116=65312:0
Key117=0:0
Key118=269025153:0
Key119=269025093:0
Key120=269025094:0
Key121=269025095:0
Key122=269025096:0
Key123=0:0
Key124=65027:0
Key125=65513:0
Key126=65469:61
Key127=65515:0
Key128=65517:0
Key129=0:0
Key130=0:0
Key131=0:0
Key132=0:0
Key133=0:0
Key134=0:0
Key135=0:0
Key136=0:0
Key137=0:0 Key137=0:0
[capslock] [capslock]
Key8=0:0 Key8=65406:0
Key9=65307:27 Key9=65307:27
Key10=49:49 Key10=49:49
Key11=50:50 Key11=50:50
@ -479,8 +611,8 @@ Key88=65433:0
Key89=65435:0 Key89=65435:0
Key90=65438:0 Key90=65438:0
Key91=65439:0 Key91=65439:0
Key92=0:0 Key92=65377:0
Key93=65406:0 Key93=0:0
Key94=60:60 Key94=60:60
Key95=65480:0 Key95=65480:0
Key96=65481:0 Key96=65481:0
@ -501,33 +633,32 @@ Key110=65299:0
Key111=65377:0 Key111=65377:0
Key112=65455:47 Key112=65455:47
Key113=65027:0 Key113=65027:0
Key114=0:0 Key114=269025049:0
Key115=65515:0 Key115=65515:0
Key116=65312:0 Key116=65312:0
Key117=65383:0 Key117=0:0
Key118=0:0 Key118=269025153:0
Key119=0:0 Key119=269025093:0
Key120=0:0 Key120=269025094:0
Key121=0:0 Key121=269025095:0
Key122=0:0 Key122=269025096:0
Key123=0:0 Key123=0:0
Key124=65027:0 Key124=65027:0
Key125=0:0 Key125=0:0
Key126=65469:61 Key126=65469:61
Key127=0:0 Key127=0:0
Key128=0:0 Key128=0:0
Key129=269025170:0 Key129=0:0
Key130=0:0 Key130=0:0
Key131=0:0 Key131=0:0
Key132=0:0 Key132=0:0
Key133=269025166:0 Key133=0:0
Key134=0:0 Key134=0:0
Key135=65382:0 Key135=0:0
Key136=65381:0 Key136=0:0
Key137=0:0 Key137=0:0
[shiftcapslock] [shiftcapslock]
Key8=0:0 Key8=65406:0
Key9=65307:27 Key9=65307:27
Key10=33:33 Key10=33:33
Key11=34:34 Key11=34:34
@ -583,7 +714,7 @@ Key60=58:58
Key61=95:95 Key61=95:95
Key62=65506:0 Key62=65506:0
Key63=65450:42 Key63=65450:42
Key64=65511:0 Key64=65032:0
Key65=32:32 Key65=32:32
Key66=65509:0 Key66=65509:0
Key67=65470:0 Key67=65470:0
@ -596,7 +727,7 @@ Key73=65476:0
Key74=65477:0 Key74=65477:0
Key75=65478:0 Key75=65478:0
Key76=65479:0 Key76=65479:0
Key77=65273:0 Key77=65407:0
Key78=65300:0 Key78=65300:0
Key79=65463:55 Key79=65463:55
Key80=65464:56 Key80=65464:56
@ -611,8 +742,8 @@ Key88=65458:50
Key89=65459:51 Key89=65459:51
Key90=65456:48 Key90=65456:48
Key91=65454:46 Key91=65454:46
Key92=0:0 Key92=65377:0
Key93=65406:0 Key93=0:0
Key94=62:62 Key94=62:62
Key95=65480:0 Key95=65480:0
Key96=65481:0 Key96=65481:0
@ -633,27 +764,28 @@ Key110=65299:0
Key111=65377:0 Key111=65377:0
Key112=65455:47 Key112=65455:47
Key113=65027:0 Key113=65027:0
Key114=0:0 Key114=269025049:0
Key115=65515:0 Key115=65515:0
Key116=65312:0 Key116=65312:0
Key117=65383:0 Key117=0:0
Key118=0:0 Key118=269025153:0
Key119=0:0 Key119=269025093:0
Key120=0:0 Key120=269025094:0
Key121=0:0 Key121=269025095:0
Key122=0:0 Key122=269025096:0
Key123=0:0 Key123=0:0
Key124=65027:0 Key124=65027:0
Key125=65513:0 Key125=65513:0
Key126=65469:61 Key126=65469:61
Key127=65515:0 Key127=65515:0
Key128=65517:0 Key128=65517:0
Key129=269025170:0 Key129=0:0
Key130=0:0 Key130=0:0
Key131=0:0 Key131=0:0
Key132=0:0 Key132=0:0
Key133=269025166:0 Key133=0:0
Key134=0:0 Key134=0:0
Key135=65382:0 Key135=0:0
Key136=65381:0 Key136=0:0
Key137=0:0 Key137=0:0

@ -1 +1 @@
Subproject commit de6a45cba607b902da704304fa3de8ddd3d15239 Subproject commit 61f6e92ecdfd057215da7932b6afefcbfa928446

View File

@ -129,6 +129,7 @@ struct xrdp_sec
void *encrypt_fips_info; void *encrypt_fips_info;
void *decrypt_fips_info; void *decrypt_fips_info;
void *sign_fips_info; void *sign_fips_info;
int is_security_header_present; /* boolean */
}; };
/* channel */ /* channel */

View File

@ -906,7 +906,8 @@ xrdp_mcs_send_connect_response(struct xrdp_mcs *self)
int APP_CC int APP_CC
xrdp_mcs_incoming(struct xrdp_mcs *self) xrdp_mcs_incoming(struct xrdp_mcs *self)
{ {
int i; int index;
DEBUG((" in xrdp_mcs_incoming")); DEBUG((" in xrdp_mcs_incoming"));
if (xrdp_mcs_recv_connect_initial(self) != 0) if (xrdp_mcs_recv_connect_initial(self) != 0)
@ -945,7 +946,7 @@ xrdp_mcs_incoming(struct xrdp_mcs *self)
return 1; return 1;
} }
for (i = 0; i < self->channel_list->count + 2; i++) for (index = 0; index < self->channel_list->count + 2; index++)
{ {
if (xrdp_mcs_recv_cjrq(self) != 0) if (xrdp_mcs_recv_cjrq(self) != 0)
{ {
@ -953,7 +954,7 @@ xrdp_mcs_incoming(struct xrdp_mcs *self)
} }
if (xrdp_mcs_send_cjcf(self, self->userid, if (xrdp_mcs_send_cjcf(self, self->userid,
self->userid + MCS_USERCHANNEL_BASE + i) != 0) self->userid + MCS_USERCHANNEL_BASE + index) != 0)
{ {
return 1; return 1;
} }

View File

@ -185,8 +185,6 @@ static const tui8 g_fips_ivec[8] =
0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF
}; };
static int is_security_header_present = 1; /* next packet should contain security header? */
/*****************************************************************************/ /*****************************************************************************/
static void APP_CC static void APP_CC
hex_str_to_bin(char *in, char *out, int out_len) hex_str_to_bin(char *in, char *out, int out_len)
@ -432,42 +430,44 @@ xrdp_sec_create(struct xrdp_rdp *owner, struct trans *trans)
{ {
struct xrdp_sec *self; struct xrdp_sec *self;
DEBUG((" in xrdp_sec_create")); DEBUG((" in xrdp_sec_create"));
self = (struct xrdp_sec *) g_malloc(sizeof(struct xrdp_sec), 1); self = (struct xrdp_sec *) g_malloc(sizeof(struct xrdp_sec), 1);
self->rdp_layer = owner; self->rdp_layer = owner;
self->crypt_method = CRYPT_METHOD_NONE; /* set later */ self->crypt_method = CRYPT_METHOD_NONE; /* set later */
self->crypt_level = CRYPT_LEVEL_NONE; self->crypt_level = CRYPT_LEVEL_NONE;
self->mcs_layer = xrdp_mcs_create(self, trans, &(self->client_mcs_data), self->mcs_layer = xrdp_mcs_create(self, trans, &(self->client_mcs_data),
&(self->server_mcs_data)); &(self->server_mcs_data));
self->fastpath_layer = xrdp_fastpath_create(self, trans); self->fastpath_layer = xrdp_fastpath_create(self, trans);
self->chan_layer = xrdp_channel_create(self, self->mcs_layer); self->chan_layer = xrdp_channel_create(self, self->mcs_layer);
DEBUG((" out xrdp_sec_create")); self->is_security_header_present = 1;
DEBUG((" out xrdp_sec_create"));
return self; return self;
} }
/*****************************************************************************/ /*****************************************************************************/
void APP_CC void APP_CC
xrdp_sec_delete(struct xrdp_sec *self) { xrdp_sec_delete(struct xrdp_sec *self)
{
if (self == 0)
{
g_writeln("xrdp_sec_delete: self is null");
return;
}
if (self == 0) { xrdp_channel_delete(self->chan_layer);
g_writeln("xrdp_sec_delete: indata is null"); xrdp_mcs_delete(self->mcs_layer);
return; xrdp_fastpath_delete(self->fastpath_layer);
} ssl_rc4_info_delete(self->decrypt_rc4_info); /* TODO clear all data */
ssl_rc4_info_delete(self->encrypt_rc4_info); /* TODO clear all data */
xrdp_channel_delete(self->chan_layer); ssl_des3_info_delete(self->decrypt_fips_info);
xrdp_mcs_delete(self->mcs_layer); ssl_des3_info_delete(self->encrypt_fips_info);
xrdp_fastpath_delete(self->fastpath_layer); ssl_hmac_info_delete(self->sign_fips_info);
ssl_rc4_info_delete(self->decrypt_rc4_info); /* TODO clear all data */ g_free(self->client_mcs_data.data);
ssl_rc4_info_delete(self->encrypt_rc4_info); /* TODO clear all data */ g_free(self->server_mcs_data.data);
ssl_des3_info_delete(self->decrypt_fips_info); /* Crypto information must always be cleared */
ssl_des3_info_delete(self->encrypt_fips_info); g_memset(self, 0, sizeof(struct xrdp_sec));
ssl_hmac_info_delete(self->sign_fips_info); g_free(self);
g_free(self->client_mcs_data.data);
g_free(self->server_mcs_data.data);
/* Crypto information must always be cleared */
g_memset(self, 0, sizeof(struct xrdp_sec));
g_free(self);
} }
/*****************************************************************************/ /*****************************************************************************/
@ -490,7 +490,6 @@ xrdp_sec_init(struct xrdp_sec *self, struct stream *s)
} }
else else
{ {
// s_push_layer(s, sec_hdr, 4);
} }
return 0; return 0;
@ -1209,7 +1208,7 @@ xrdp_sec_recv(struct xrdp_sec *self, struct stream *s, int *chan)
} }
if (!is_security_header_present) if (!(self->is_security_header_present))
{ {
return 0; return 0;
} }
@ -1326,7 +1325,8 @@ xrdp_sec_recv(struct xrdp_sec *self, struct stream *s, int *chan)
if (self->crypt_level == CRYPT_LEVEL_NONE if (self->crypt_level == CRYPT_LEVEL_NONE
&& self->crypt_method == CRYPT_METHOD_NONE) && self->crypt_method == CRYPT_METHOD_NONE)
{ {
is_security_header_present = 0; /* in tls mode, no more security header from now on */ /* in tls mode, no more security header from now on */
self->is_security_header_present = 0;
} }
DEBUG((" out xrdp_sec_recv")); DEBUG((" out xrdp_sec_recv"));

View File

@ -1297,12 +1297,16 @@ lfreerdp_pointer_cached(rdpContext *context,
mod->pointer_cache[index].bpp); mod->pointer_cache[index].bpp);
} }
static void DEFAULT_CC lfreerdp_polygon_cb(rdpContext* context, POLYGON_CB_ORDER* polygon_cb) /******************************************************************************/
static void DEFAULT_CC
lfreerdp_polygon_cb(rdpContext* context, POLYGON_CB_ORDER* polygon_cb)
{ {
LLOGLN(0, ("lfreerdp_polygon_sc called:- not supported!!!!!!!!!!!!!!!!!!!!")); LLOGLN(0, ("lfreerdp_polygon_sc called:- not supported!!!!!!!!!!!!!!!!!!!!"));
} }
static void DEFAULT_CC lfreerdp_polygon_sc(rdpContext* context, POLYGON_SC_ORDER* polygon_sc) /******************************************************************************/
static void DEFAULT_CC
lfreerdp_polygon_sc(rdpContext* context, POLYGON_SC_ORDER* polygon_sc)
{ {
struct mod *mod; struct mod *mod;
int i, npoints; int i, npoints;
@ -1351,7 +1355,9 @@ static void DEFAULT_CC lfreerdp_polygon_sc(rdpContext* context, POLYGON_SC_ORDER
} }
} }
static void DEFAULT_CC lfreerdp_syncronize(rdpContext* context) /******************************************************************************/
static void DEFAULT_CC
lfreerdp_syncronize(rdpContext* context)
{ {
struct mod *mod; struct mod *mod;
mod = ((struct mod_context *)context)->modi; mod = ((struct mod_context *)context)->modi;
@ -1398,17 +1404,41 @@ lfreerdp_pre_connect(freerdp *instance)
instance->settings->glyph_cache = true; instance->settings->glyph_cache = true;
/* GLYPH_SUPPORT_FULL and GLYPH_SUPPORT_PARTIAL seem to be the same */ /* GLYPH_SUPPORT_FULL and GLYPH_SUPPORT_PARTIAL seem to be the same */
instance->settings->glyphSupportLevel = GLYPH_SUPPORT_FULL; instance->settings->glyphSupportLevel = GLYPH_SUPPORT_FULL;
instance->settings->order_support[NEG_GLYPH_INDEX_INDEX] = 1;
instance->settings->order_support[NEG_FAST_GLYPH_INDEX] = 0; instance->settings->order_support[NEG_DSTBLT_INDEX] = 1; /* 0x00 */
instance->settings->order_support[NEG_FAST_INDEX_INDEX] = 0; instance->settings->order_support[NEG_PATBLT_INDEX] = 1;
instance->settings->order_support[NEG_SCRBLT_INDEX] = 1; instance->settings->order_support[NEG_SCRBLT_INDEX] = 1;
instance->settings->order_support[NEG_MEMBLT_INDEX] = 1;
instance->settings->order_support[NEG_MEM3BLT_INDEX] = 0;
instance->settings->order_support[NEG_ATEXTOUT_INDEX] = 0;
instance->settings->order_support[NEG_AEXTTEXTOUT_INDEX] = 0;
instance->settings->order_support[NEG_DRAWNINEGRID_INDEX] = 0;
instance->settings->order_support[NEG_LINETO_INDEX] = 1; /* 0x08 */
instance->settings->order_support[NEG_MULTI_DRAWNINEGRID_INDEX] = 0;
instance->settings->order_support[NEG_OPAQUE_RECT_INDEX] = 1;
instance->settings->order_support[NEG_SAVEBITMAP_INDEX] = 0; instance->settings->order_support[NEG_SAVEBITMAP_INDEX] = 0;
instance->settings->order_support[NEG_WTEXTOUT_INDEX] = 0;
instance->settings->order_support[NEG_MEMBLT_V2_INDEX] = 1;
instance->settings->order_support[NEG_MEM3BLT_V2_INDEX] = 0;
instance->settings->order_support[NEG_MULTIDSTBLT_INDEX] = 0;
instance->settings->order_support[NEG_MULTIPATBLT_INDEX] = 0; /* 0x10 */
instance->settings->order_support[NEG_MULTISCRBLT_INDEX] = 0;
instance->settings->order_support[NEG_MULTIOPAQUERECT_INDEX] = 0;
instance->settings->order_support[NEG_FAST_INDEX_INDEX] = 0;
instance->settings->order_support[NEG_POLYGON_SC_INDEX] = 0;
instance->settings->order_support[NEG_POLYGON_CB_INDEX] = 0;
instance->settings->order_support[NEG_POLYLINE_INDEX] = 0;
/* 0x17 missing */
instance->settings->order_support[NEG_FAST_GLYPH_INDEX] = 0; /* 0x18 */
instance->settings->order_support[NEG_ELLIPSE_SC_INDEX] = 0;
instance->settings->order_support[NEG_ELLIPSE_CB_INDEX] = 0;
instance->settings->order_support[NEG_GLYPH_INDEX_INDEX] = 1;
instance->settings->order_support[NEG_GLYPH_WEXTTEXTOUT_INDEX] = 0;
instance->settings->order_support[NEG_GLYPH_WLONGTEXTOUT_INDEX] = 0;
instance->settings->order_support[NEG_GLYPH_WLONGEXTTEXTOUT_INDEX] = 0;
/* 0x1F missing*/
instance->settings->bitmap_cache = 1; instance->settings->bitmap_cache = 1;
instance->settings->order_support[NEG_MEMBLT_INDEX] = 1;
instance->settings->order_support[NEG_MEMBLT_V2_INDEX] = 1;
instance->settings->order_support[NEG_MEM3BLT_INDEX] = 0;
instance->settings->order_support[NEG_MEM3BLT_V2_INDEX] = 0;
instance->settings->bitmapCacheV2NumCells = 3; // 5; instance->settings->bitmapCacheV2NumCells = 3; // 5;
instance->settings->bitmapCacheV2CellInfo[0].numEntries = 600; // 0x78; instance->settings->bitmapCacheV2CellInfo[0].numEntries = 600; // 0x78;
instance->settings->bitmapCacheV2CellInfo[0].persistent = 0; instance->settings->bitmapCacheV2CellInfo[0].persistent = 0;
@ -1422,12 +1452,6 @@ lfreerdp_pre_connect(freerdp *instance)
instance->settings->bitmapCacheV2CellInfo[4].persistent = 0; instance->settings->bitmapCacheV2CellInfo[4].persistent = 0;
instance->settings->bitmap_cache_v3 = 1; instance->settings->bitmap_cache_v3 = 1;
instance->settings->order_support[NEG_MULTIDSTBLT_INDEX] = 0;
instance->settings->order_support[NEG_MULTIPATBLT_INDEX] = 0;
instance->settings->order_support[NEG_MULTISCRBLT_INDEX] = 0;
instance->settings->order_support[NEG_MULTIOPAQUERECT_INDEX] = 0;
instance->settings->order_support[NEG_POLYLINE_INDEX] = 0;
instance->settings->username = g_strdup(mod->username); instance->settings->username = g_strdup(mod->username);
instance->settings->password = g_strdup(mod->password); instance->settings->password = g_strdup(mod->password);

View File

@ -9,7 +9,8 @@ EXTRA_DIST = \
rail.h \ rail.h \
sound.h \ sound.h \
xcommon.h \ xcommon.h \
mlog.h mlog.h \
chansrv_common.h
EXTRA_DEFINES = EXTRA_DEFINES =
EXTRA_INCLUDES = EXTRA_INCLUDES =
@ -48,7 +49,8 @@ xrdp_chansrv_SOURCES = \
drdynvc.c \ drdynvc.c \
chansrv_fuse.c \ chansrv_fuse.c \
irp.c \ irp.c \
fifo.c fifo.c \
chansrv_common.c
xrdp_chansrv_LDFLAGS = \ xrdp_chansrv_LDFLAGS = \
$(EXTRA_FLAGS) $(EXTRA_FLAGS)

View File

@ -0,0 +1,73 @@
/**
* xrdp: A Remote Desktop Protocol server.
*
* Copyright (C) Laxmikant Rashinkar 2009-2014
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include "chansrv_common.h"
/**
* Assemble fragmented incoming packets into one stream
*
* @param src stream that contains partial data
* @param dest stream that contains entire data
* @param chan_flags fragmentation flags
* @param length bytes in this packet
* @param total_length total length of assembled packet
*
* @return 1 when all data has been assembled, 0 otherwise
*
* NOTE: it is the responsibility of the caller to free dest stream
****************************************************************************/
int
read_entire_packet(struct stream *src, struct stream **dest, int chan_flags,
int length, int total_length)
{
struct stream *ls;
if ((chan_flags & 3) == 3)
{
/* packet not fragmented */
xstream_new(ls, total_length);
xstream_copyin(ls, src->p, length);
ls->p = ls->data;
*dest = ls;
return 1;
}
/* is this the first fragmented packet? */
if (chan_flags & 1)
{
xstream_new(ls, total_length);
*dest = ls;
}
else
{
ls = *dest;
}
xstream_copyin(ls, src->p, length);
/* in last packet, chan_flags & 0x02 will be true */
if (chan_flags & 0x02)
{
/* rewind stream */
ls->p = ls->data;
return 1;
}
return 0;
}

View File

@ -0,0 +1,27 @@
/**
* xrdp: A Remote Desktop Protocol server.
*
* Copyright (C) Laxmikant Rashinkar 2009-2014
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef _CHANSRV_COMMON_H
#define _CHANSRV_COMMON_H
#include "parse.h"
int read_entire_packet(struct stream *src, struct stream **dest, int chan_flags, int length, int total_length);
#endif

View File

@ -71,7 +71,7 @@ PA_MODULE_USAGE(
#define DEFAULT_SOURCE_NAME "xrdp-source" #define DEFAULT_SOURCE_NAME "xrdp-source"
#define DEFAULT_LATENCY_TIME 10 #define DEFAULT_LATENCY_TIME 10
#define MAX_LATENCY_USEC (PA_USEC_PER_SEC * 2) #define MAX_LATENCY_USEC 1000
#define CHANSRV_PORT_STR "/tmp/.xrdp/xrdp_chansrv_audio_in_socket_%d" #define CHANSRV_PORT_STR "/tmp/.xrdp/xrdp_chansrv_audio_in_socket_%d"
struct userdata { struct userdata {
@ -144,6 +144,32 @@ static void source_update_requested_latency_cb(pa_source *s) {
u->block_usec = pa_source_get_requested_latency_within_thread(s); u->block_usec = pa_source_get_requested_latency_within_thread(s);
} }
static int lsend(int fd, char *data, int bytes) {
int sent = 0;
int error;
while (sent < bytes) {
error = send(fd, data + sent, bytes - sent, 0);
if (error < 1) {
return error;
}
sent += error;
}
return sent;
}
static int lrecv(int fd, char *data, int bytes) {
int recved = 0;
int error;
while (recved < bytes) {
error = recv(fd, data + recved, bytes - recved, 0);
if (error < 1) {
return error;
}
recved += error;
}
return recved;
}
static int data_get(struct userdata *u, pa_memchunk *chunk) { static int data_get(struct userdata *u, pa_memchunk *chunk) {
int fd; int fd;
@ -190,7 +216,7 @@ static int data_get(struct userdata *u, pa_memchunk *chunk) {
buf[9] = 0; buf[9] = 0;
buf[10] = 0; buf[10] = 0;
send(u->fd, buf, 11, 0); lsend(u->fd, buf, 11);
u->want_src_data = 1; u->want_src_data = 1;
pa_log_debug("###### started recording"); pa_log_debug("###### started recording");
} }
@ -208,10 +234,10 @@ static int data_get(struct userdata *u, pa_memchunk *chunk) {
buf[9] = (unsigned char) chunk->length; buf[9] = (unsigned char) chunk->length;
buf[10] = (unsigned char) ((chunk->length >> 8) & 0xff); buf[10] = (unsigned char) ((chunk->length >> 8) & 0xff);
send(u->fd, buf, 11, 0); lsend(u->fd, buf, 11);
/* read length of data available */ /* read length of data available */
recv(u->fd, ubuf, 2, 0); lrecv(u->fd, (char *) ubuf, 2);
bytes = ((ubuf[1] << 8) & 0xff00) | (ubuf[0] & 0xff); bytes = ((ubuf[1] << 8) & 0xff00) | (ubuf[0] & 0xff);
if (bytes == 0) { if (bytes == 0) {
@ -220,7 +246,7 @@ static int data_get(struct userdata *u, pa_memchunk *chunk) {
} }
/* get data */ /* get data */
bytes = recv(u->fd, data, bytes, 0); bytes = lrecv(u->fd, data, bytes);
pa_memblock_release(chunk->memblock); pa_memblock_release(chunk->memblock);
@ -272,7 +298,7 @@ static void thread_func(void *userdata) {
buf[9] = 0; buf[9] = 0;
buf[10] = 0; buf[10] = 0;
send(u->fd, buf, 11, 0); lsend(u->fd, buf, 11);
u->want_src_data = 0; u->want_src_data = 0;
pa_log_debug("###### stopped recording"); pa_log_debug("###### stopped recording");
} }

View File

@ -43,9 +43,11 @@ static struct trans *g_audio_c_trans_in = 0; /* connection */
static int g_training_sent_time = 0; static int g_training_sent_time = 0;
static int g_cBlockNo = 0; static int g_cBlockNo = 0;
static int g_bytes_in_stream = 0; static int g_bytes_in_stream = 0;
static FIFO in_fifo; static FIFO g_in_fifo;
static int g_bytes_in_fifo = 0;
static struct stream *g_stream_inp = NULL; static struct stream *g_stream_inp = NULL;
static struct stream *g_stream_incoming_packet = NULL;
#define BBUF_SIZE (1024 * 8) #define BBUF_SIZE (1024 * 8)
char g_buffer[BBUF_SIZE]; char g_buffer[BBUF_SIZE];
@ -145,23 +147,18 @@ static int g_client_input_format_index = 0;
static int g_server_input_format_index = 0; static int g_server_input_format_index = 0;
/* microphone related */ /* microphone related */
static int APP_CC static int APP_CC sound_send_server_input_formats(void);
sound_send_server_input_formats(void); static int APP_CC sound_process_input_format(int aindex, int wFormatTag,
static int APP_CC
sound_process_input_format(int aindex, int wFormatTag,
int nChannels, int nSamplesPerSec, int nChannels, int nSamplesPerSec,
int nAvgBytesPerSec, int nBlockAlign, int nAvgBytesPerSec, int nBlockAlign,
int wBitsPerSample, int cbSize, char *data); int wBitsPerSample, int cbSize, char *data);
static int APP_CC static int APP_CC sound_process_input_formats(struct stream *s, int size);
sound_process_input_formats(struct stream *s, int size); static int APP_CC sound_input_start_recording(void);
static int APP_CC static int APP_CC sound_input_stop_recording(void);
sound_input_start_recording(void); static int APP_CC sound_process_input_data(struct stream *s, int bytes);
static int APP_CC static int DEFAULT_CC sound_sndsrvr_source_data_in(struct trans *trans);
sound_input_stop_recording(void); static int APP_CC sound_start_source_listener();
static int APP_CC static int APP_CC sound_start_sink_listener();
sound_process_input_data(struct stream *s, int bytes);
static int DEFAULT_CC
sound_sndsrvr_source_data_in(struct trans *trans);
/*****************************************************************************/ /*****************************************************************************/
static int APP_CC static int APP_CC
@ -681,36 +678,21 @@ sound_sndsrvr_source_conn_in(struct trans *trans, struct trans *new_trans)
int APP_CC int APP_CC
sound_init(void) sound_init(void)
{ {
char port[256];
LOG(0, ("sound_init:")); LOG(0, ("sound_init:"));
g_memset(g_sent_flag, 0, sizeof(g_sent_flag)); g_memset(g_sent_flag, 0, sizeof(g_sent_flag));
g_stream_incoming_packet = NULL;
/* init sound output */ /* init sound output */
sound_send_server_output_formats(); sound_send_server_output_formats();
sound_start_sink_listener();
g_audio_l_trans_out = trans_create(TRANS_MODE_UNIX, 128 * 1024, 8192);
g_audio_l_trans_out->is_term = g_is_term;
g_snprintf(port, 255, CHANSRV_PORT_OUT_STR, g_display_num);
g_audio_l_trans_out->trans_conn_in = sound_sndsrvr_sink_conn_in;
if (trans_listen(g_audio_l_trans_out, port) != 0)
LOG(0, ("sound_init: trans_listen failed"));
/* init sound input */ /* init sound input */
sound_send_server_input_formats(); sound_send_server_input_formats();
sound_start_source_listener();
g_audio_l_trans_in = trans_create(TRANS_MODE_UNIX, 128 * 1024, 8192);
g_audio_l_trans_in->is_term = g_is_term;
g_snprintf(port, 255, CHANSRV_PORT_IN_STR, g_display_num);
g_audio_l_trans_in->trans_conn_in = sound_sndsrvr_source_conn_in;
if (trans_listen(g_audio_l_trans_in, port) != 0)
LOG(0, ("sound_init: trans_listen failed"));
/* save data from sound_server_source */ /* save data from sound_server_source */
fifo_init(&in_fifo, 100); fifo_init(&g_in_fifo, 100);
return 0; return 0;
} }
@ -744,7 +726,7 @@ sound_deinit(void)
g_audio_c_trans_in = 0; g_audio_c_trans_in = 0;
} }
fifo_deinit(&in_fifo); fifo_deinit(&g_in_fifo);
return 0; return 0;
} }
@ -759,31 +741,39 @@ sound_data_in(struct stream *s, int chan_id, int chan_flags, int length,
{ {
int code; int code;
int size; int size;
int ok_to_free = 1;
in_uint8(s, code); if (!read_entire_packet(s, &g_stream_incoming_packet, chan_flags,
in_uint8s(s, 1); length, total_length))
in_uint16_le(s, size); {
return 0;
}
in_uint8(g_stream_incoming_packet, code);
in_uint8s(g_stream_incoming_packet, 1);
in_uint16_le(g_stream_incoming_packet, size);
switch (code) switch (code)
{ {
case SNDC_WAVECONFIRM: case SNDC_WAVECONFIRM:
sound_process_wave_confirm(s, size); sound_process_wave_confirm(g_stream_incoming_packet, size);
break; break;
case SNDC_TRAINING: case SNDC_TRAINING:
sound_process_training(s, size); sound_process_training(g_stream_incoming_packet, size);
break; break;
case SNDC_FORMATS: case SNDC_FORMATS:
sound_process_output_formats(s, size); sound_process_output_formats(g_stream_incoming_packet, size);
break; break;
case SNDC_REC_NEGOTIATE: case SNDC_REC_NEGOTIATE:
sound_process_input_formats(s, size); sound_process_input_formats(g_stream_incoming_packet, size);
break; break;
case SNDC_REC_DATA: case SNDC_REC_DATA:
sound_process_input_data(s, size); sound_process_input_data(g_stream_incoming_packet, size);
ok_to_free = 0;
break; break;
default: default:
@ -791,6 +781,12 @@ sound_data_in(struct stream *s, int chan_id, int chan_flags, int length,
break; break;
} }
if (ok_to_free && g_stream_incoming_packet)
{
xstream_free(g_stream_incoming_packet);
g_stream_incoming_packet = NULL;
}
return 0; return 0;
} }
@ -834,7 +830,6 @@ sound_get_wait_objs(tbus *objs, int *count, int *timeout)
int APP_CC int APP_CC
sound_check_wait_objs(void) sound_check_wait_objs(void)
{ {
if (g_audio_l_trans_out != 0) if (g_audio_l_trans_out != 0)
{ {
if (trans_check_wait_objs(g_audio_l_trans_out) != 0) if (trans_check_wait_objs(g_audio_l_trans_out) != 0)
@ -852,6 +847,7 @@ sound_check_wait_objs(void)
LOG(10, ("sound_check_wait_objs: g_audio_c_trans_out returned non-zero")); LOG(10, ("sound_check_wait_objs: g_audio_c_trans_out returned non-zero"));
trans_delete(g_audio_c_trans_out); trans_delete(g_audio_c_trans_out);
g_audio_c_trans_out = 0; g_audio_c_trans_out = 0;
sound_start_sink_listener();
} }
} }
@ -872,6 +868,7 @@ sound_check_wait_objs(void)
LOG(10, ("sound_check_wait_objs: g_audio_c_trans_in returned non-zero")); LOG(10, ("sound_check_wait_objs: g_audio_c_trans_in returned non-zero"));
trans_delete(g_audio_c_trans_in); trans_delete(g_audio_c_trans_in);
g_audio_c_trans_in = 0; g_audio_c_trans_in = 0;
sound_start_source_listener();
} }
} }
@ -1045,9 +1042,12 @@ sound_input_start_recording(void)
{ {
struct stream* s; struct stream* s;
LOG(10, ("sound_input_start_recording:"));
/* if there is any data in FIFO, discard it */ /* if there is any data in FIFO, discard it */
while ((s = (struct stream *) fifo_remove(&in_fifo)) != NULL) while ((s = (struct stream *) fifo_remove(&g_in_fifo)) != NULL)
xstream_free(s); xstream_free(s);
g_bytes_in_fifo = 0;
xstream_new(s, 1024); xstream_new(s, 1024);
@ -1079,6 +1079,8 @@ sound_input_stop_recording(void)
{ {
struct stream* s; struct stream* s;
LOG(10, ("sound_input_stop_recording:"));
xstream_new(s, 1024); xstream_new(s, 1024);
/* /*
@ -1102,19 +1104,25 @@ sound_input_stop_recording(void)
* Process data: xrdp <- client * Process data: xrdp <- client
*****************************************************************************/ *****************************************************************************/
static unsigned char data = 0;
static int APP_CC static int APP_CC
sound_process_input_data(struct stream *s, int bytes) sound_process_input_data(struct stream *s, int bytes)
{ {
struct stream *ls; struct stream *ls;
LOG(0, ("sound_process_input_data: bytes %d g_bytes_in_fifo %d",
bytes, g_bytes_in_fifo));
/* cap data in fifo */
if (g_bytes_in_fifo > 8 * 1024)
{
return 0;
}
xstream_new(ls, bytes); xstream_new(ls, bytes);
memcpy(ls->data, s->p, bytes); g_memcpy(ls->data, s->p, bytes);
ls->p += bytes; ls->p += bytes;
s_mark_end(ls); s_mark_end(ls);
fifo_insert(&g_in_fifo, (void *) ls);
fifo_insert(&in_fifo, (void *) ls); g_bytes_in_fifo += bytes;
return 0; return 0;
} }
@ -1147,6 +1155,7 @@ sound_sndsrvr_source_data_in(struct trans *trans)
ts->p = ts->data + 8; ts->p = ts->data + 8;
in_uint8(ts, cmd); in_uint8(ts, cmd);
in_uint16_le(ts, bytes_req); in_uint16_le(ts, bytes_req);
LOG(10, ("sound_sndsrvr_source_data_in: bytes_req %d", bytes_req));
xstream_new(s, bytes_req + 2); xstream_new(s, bytes_req + 2);
@ -1158,7 +1167,14 @@ sound_sndsrvr_source_data_in(struct trans *trans)
while (bytes_read < bytes_req) while (bytes_read < bytes_req)
{ {
if (g_stream_inp == NULL) if (g_stream_inp == NULL)
g_stream_inp = (struct stream *) fifo_remove(&in_fifo); {
g_stream_inp = (struct stream *) fifo_remove(&g_in_fifo);
if (g_stream_inp != NULL)
{
g_bytes_in_fifo -= g_stream_inp->size;
LOG(10, (" g_bytes_in_fifo %d", g_bytes_in_fifo));
}
}
if (g_stream_inp == NULL) if (g_stream_inp == NULL)
{ {
@ -1212,3 +1228,38 @@ sound_sndsrvr_source_data_in(struct trans *trans)
return 0; return 0;
} }
/**
* Start a listener for microphone redirection connections
*****************************************************************************/
static int APP_CC
sound_start_source_listener()
{
char port[1024];
g_audio_l_trans_in = trans_create(TRANS_MODE_UNIX, 128 * 1024, 8192);
g_audio_l_trans_in->is_term = g_is_term;
g_snprintf(port, 255, CHANSRV_PORT_IN_STR, g_display_num);
g_audio_l_trans_in->trans_conn_in = sound_sndsrvr_source_conn_in;
if (trans_listen(g_audio_l_trans_in, port) != 0)
LOG(0, ("trans_listen failed"));
return 0;
}
/**
* Start a listener for speaker redirection connections
*****************************************************************************/
static int APP_CC
sound_start_sink_listener()
{
char port[1024];
g_audio_l_trans_out = trans_create(TRANS_MODE_UNIX, 128 * 1024, 8192);
g_audio_l_trans_out->is_term = g_is_term;
g_snprintf(port, 255, CHANSRV_PORT_OUT_STR, g_display_num);
g_audio_l_trans_out->trans_conn_in = sound_sndsrvr_sink_conn_in;
if (trans_listen(g_audio_l_trans_out, port) != 0)
LOG(0, ("trans_listen failed"));
return 0;
}

View File

@ -460,6 +460,7 @@ session_start_fork(int width, int height, int bpp, char *username,
char screen[32]; char screen[32];
char text[256]; char text[256];
char passwd_file[256]; char passwd_file[256];
char *pfile;
char **pp1 = (char **)NULL; char **pp1 = (char **)NULL;
struct session_chain *temp = (struct session_chain *)NULL; struct session_chain *temp = (struct session_chain *)NULL;
struct list *xserver_params = (struct list *)NULL; struct list *xserver_params = (struct list *)NULL;
@ -633,10 +634,14 @@ session_start_fork(int width, int height, int bpp, char *username,
} }
else if (xpid == 0) /* child */ else if (xpid == 0) /* child */
{ {
env_set_user(username, passwd_file, display, pfile = 0;
if (type == SESMAN_SESSION_TYPE_XVNC)
{
pfile = passwd_file;
}
env_set_user(username, pfile, display,
g_cfg->session_variables1, g_cfg->session_variables1,
g_cfg->session_variables2); g_cfg->session_variables2);
env_check_password_file(passwd_file, password);
g_snprintf(text, 255, "%d", g_cfg->sess.max_idle_time); g_snprintf(text, 255, "%d", g_cfg->sess.max_idle_time);
g_setenv("XRDP_SESMAN_MAX_IDLE_TIME", text, 1); g_setenv("XRDP_SESMAN_MAX_IDLE_TIME", text, 1);
@ -676,6 +681,7 @@ session_start_fork(int width, int height, int bpp, char *username,
} }
else if (type == SESMAN_SESSION_TYPE_XVNC) else if (type == SESMAN_SESSION_TYPE_XVNC)
{ {
env_check_password_file(passwd_file, password);
xserver_params = list_create(); xserver_params = list_create();
xserver_params->auto_free = 1; xserver_params->auto_free = 1;

View File

@ -51,6 +51,7 @@ long DEFAULT_CC
auth_userpass(char *user, char *pass, int *errorcode) auth_userpass(char *user, char *pass, int *errorcode)
{ {
const char *encr; const char *encr;
const char *epass;
struct passwd *spw; struct passwd *spw;
struct spwd *stp; struct spwd *stp;
@ -84,8 +85,12 @@ auth_userpass(char *user, char *pass, int *errorcode)
/* old system with only passwd */ /* old system with only passwd */
encr = spw->pw_passwd; encr = spw->pw_passwd;
} }
epass = crypt(pass, encr);
return (strcmp(encr, crypt(pass, encr)) == 0); if (epass == 0)
{
return 0;
}
return (strcmp(encr, epass) == 0);
} }
/******************************************************************************/ /******************************************************************************/

View File

@ -118,22 +118,31 @@ auth_userpass(char *user, char *pass, int *errorcode)
if (error != PAM_SUCCESS) if (error != PAM_SUCCESS)
{ {
if(errorcode!=NULL){ if (errorcode != NULL)
*errorcode = error ; {
} *errorcode = error;
}
g_printf("pam_start failed: %s\r\n", pam_strerror(auth_info->ph, error)); g_printf("pam_start failed: %s\r\n", pam_strerror(auth_info->ph, error));
pam_end(auth_info->ph, error); pam_end(auth_info->ph, error);
g_free(auth_info); g_free(auth_info);
return 0; return 0;
} }
error = pam_set_item(auth_info->ph, PAM_TTY, service_name);
if (error != PAM_SUCCESS)
{
g_printf("pam_set_item failed: %s\r\n",
pam_strerror(auth_info->ph, error));
}
error = pam_authenticate(auth_info->ph, 0); error = pam_authenticate(auth_info->ph, 0);
if (error != PAM_SUCCESS) if (error != PAM_SUCCESS)
{ {
if(errorcode!=NULL){ if (errorcode != NULL)
*errorcode = error ; {
} *errorcode = error;
}
g_printf("pam_authenticate failed: %s\r\n", g_printf("pam_authenticate failed: %s\r\n",
pam_strerror(auth_info->ph, error)); pam_strerror(auth_info->ph, error));
pam_end(auth_info->ph, error); pam_end(auth_info->ph, error);
@ -150,9 +159,10 @@ auth_userpass(char *user, char *pass, int *errorcode)
if (error != PAM_SUCCESS) if (error != PAM_SUCCESS)
{ {
if(errorcode!=NULL){ if (errorcode != NULL)
*errorcode = error ; {
} *errorcode = error;
}
g_printf("pam_acct_mgmt failed: %s\r\n", g_printf("pam_acct_mgmt failed: %s\r\n",
pam_strerror(auth_info->ph, error)); pam_strerror(auth_info->ph, error));
pam_end(auth_info->ph, error); pam_end(auth_info->ph, error);

View File

@ -979,6 +979,13 @@ lib_mod_connect(struct vnc *v)
v->sck_obj = g_create_wait_obj_from_socket(v->sck, 0); v->sck_obj = g_create_wait_obj_from_socket(v->sck, 0);
v->sck_closed = 0; v->sck_closed = 0;
if (v->delay_ms > 0)
{
g_sprintf(text, "Waiting %d ms for VNC to start...", v->delay_ms);
v->server_msg(v, text, 0);
g_sleep(v->delay_ms);
}
g_sprintf(text, "VNC connecting to %s %s", v->ip, con_port); g_sprintf(text, "VNC connecting to %s %s", v->ip, con_port);
v->server_msg(v, text, 0); v->server_msg(v, text, 0);
error = g_tcp_connect(v->sck, v->ip, con_port); error = g_tcp_connect(v->sck, v->ip, con_port);
@ -1331,6 +1338,10 @@ lib_mod_set_param(struct vnc *v, char *name, char *value)
{ {
v->keylayout = g_atoi(value); v->keylayout = g_atoi(value);
} }
else if (g_strcasecmp(name, "delay_ms") == 0)
{
v->delay_ms = g_atoi(value);
}
return 0; return 0;
} }

View File

@ -115,4 +115,5 @@ struct vnc
char* clip_data; char* clip_data;
int clip_data_size; int clip_data_size;
tbus sck_obj; tbus sck_obj;
int delay_ms;
}; };

View File

@ -1,36 +0,0 @@
moduledir := $(shell pkg-config xorg-server --variable moduledir)
all: allmake
allmake:
cd module; $(MAKE) $(MFLAGS)
cd xrdpdev; $(MAKE) $(MFLAGS)
cd xrdpkeyb; $(MAKE) $(MFLAGS)
cd xrdpmouse; $(MAKE) $(MFLAGS)
clean: allclean
allclean:
cd module; $(MAKE) clean
cd xrdpdev; $(MAKE) clean
cd xrdpkeyb; $(MAKE) clean
cd xrdpmouse; $(MAKE) clean
xinstall:
strip module/libxorgxrdp.so
strip xrdpdev/xrdpdev_drv.so
strip xrdpmouse/xrdpmouse_drv.so
strip xrdpkeyb/xrdpkeyb_drv.so
mkdir -p $(HOME)/xorg-modules/drivers $(HOME)/xorg-modules/input
cp module/libxorgxrdp.so $(HOME)/xorg-modules/
cp xrdpdev/xrdpdev_drv.so $(HOME)/xorg-modules/drivers/
cp xrdpmouse/xrdpmouse_drv.so $(HOME)/xorg-modules/input/
cp xrdpkeyb/xrdpkeyb_drv.so $(HOME)/xorg-modules/input/
install:
install --directory $(DESTDIR)$(moduledir) $(DESTDIR)$(moduledir)/drivers $(DESTDIR)$(moduledir)/input
install --mode=0644 --strip module/libxorgxrdp.so $(DESTDIR)$(moduledir)
install --mode=0644 --strip xrdpdev/xrdpdev_drv.so $(DESTDIR)$(moduledir)/drivers/
install --mode=0644 --strip xrdpmouse/xrdpmouse_drv.so $(DESTDIR)$(moduledir)/input/
install --mode=0644 --strip xrdpkeyb/xrdpkeyb_drv.so $(DESTDIR)$(moduledir)/input/

7
xorg/server/Makefile.am Normal file
View File

@ -0,0 +1,7 @@
EXTRA_DIST = bootstrap readme.txt
SUBDIRS = \
module \
xrdpdev \
xrdpkeyb \
xrdpmouse

36
xorg/server/bootstrap Executable file
View File

@ -0,0 +1,36 @@
#!/bin/sh
which autoconf
if ! test $? -eq 0
then
echo "error, install autoconf"
exit 1
fi
which automake
if ! test $? -eq 0
then
echo "error, install automake"
exit 1
fi
which libtool
if ! test $? -eq 0
then
echo "error, install libtool"
exit 1
fi
which pkg-config
if ! test $? -eq 0
then
echo "error, install pkg-config"
exit 1
fi
touch configure.ac
touch NEWS
touch AUTHORS
touch README
touch ChangeLog
autoreconf -fvi

35
xorg/server/configure.ac Normal file
View File

@ -0,0 +1,35 @@
# Process this file with autoconf to produce a configure script
AC_PREREQ(2.59)
AC_INIT([xrdpmod], [0.1.0], [xrdp-devel@lists.sourceforge.net])
AC_CONFIG_HEADERS(config_ac.h:config_ac-h.in)
AM_INIT_AUTOMAKE([1.6 foreign])
AC_PROG_CC
AC_C_CONST
AC_PROG_LIBTOOL
AM_CONDITIONAL(GOT_PREFIX, test "x${prefix}" != "xNONE"])
AC_CHECK_HEADER([xorg/xorg-server.h], [],
[AC_MSG_ERROR([please install xserver-xorg-dev or xorg-x11-server-sdk])])
PKG_CHECK_MODULES([XORG_SERVER], [xorg-server >= 0])
AC_SUBST([XORG_SERVER_CFLAGS])
AC_SUBST([XORG_SERVER_LIBS])
moduledir=`pkg-config xorg-server --variable=moduledir`
AC_SUBST([moduledir])
if test "x${prefix}" = "xNONE" ; then
sysconfdir="/etc";
fi
AC_CONFIG_FILES([Makefile
module/Makefile
xrdpdev/Makefile
xrdpkeyb/Makefile
xrdpmouse/Makefile
])
AC_OUTPUT

View File

@ -1,60 +0,0 @@
OBJS = rdpDraw.o rdpPri.o rdpGC.o rdpFillSpans.o rdpSetSpans.o rdpPutImage.o \
rdpCopyArea.o rdpCopyPlane.o rdpPolyPoint.o rdpPolylines.o rdpPolySegment.o \
rdpPolyRectangle.o rdpPolyArc.o rdpFillPolygon.o rdpPolyFillRect.o \
rdpPolyFillArc.o rdpPolyText8.o rdpPolyText16.o rdpImageText8.o \
rdpImageText16.o rdpImageGlyphBlt.o rdpPolyGlyphBlt.o rdpPushPixels.o \
rdpCursor.o rdpMain.o rdpRandR.o rdpMisc.o rdpReg.o \
rdpComposite.o rdpGlyphs.o rdpPixmap.o rdpInput.o rdpClientCon.o rdpCapture.o \
rdpTrapezoids.o rdpXv.o rdpSimd.o
;OBJS += cpuid_x86.o i420_to_rgb32_x86_sse2.o yv12_to_rgb32_x86_sse2.o yuy2_to_rgb32_x86_sse2.o uyvy_to_rgb32_x86_sse2.o
;OBJS += cpuid_amd64.o i420_to_rgb32_amd64_sse2.o yv12_to_rgb32_amd64_sse2.o yuy2_to_rgb32_amd64_sse2.o uyvy_to_rgb32_amd64_sse2.o
CFLAGS = -g -O2 -Wall -fPIC -I/usr/include/xorg -I/usr/include/pixman-1 \
-I../../../common
;CFLAGS += -DSIMD_USE_ACCEL=1
LDFLAGS =
LIBS =
all: libxorgxrdp.so
libxorgxrdp.so: $(OBJS) Makefile
$(CC) -shared -o libxorgxrdp.so $(LDFLAGS) $(OBJS) $(LIBS)
clean:
rm -f $(OBJS) libxorgxrdp.so
cpuid_x86.o: x86/cpuid_x86.asm
yasm -f elf32 -g dwarf2 x86/cpuid_x86.asm
i420_to_rgb32_x86_sse2.o: x86/i420_to_rgb32_x86_sse2.asm
yasm -f elf32 -g dwarf2 x86/i420_to_rgb32_x86_sse2.asm
yv12_to_rgb32_x86_sse2.o: x86/yv12_to_rgb32_x86_sse2.asm
yasm -f elf32 -g dwarf2 x86/yv12_to_rgb32_x86_sse2.asm
yuy2_to_rgb32_x86_sse2.o: x86/yuy2_to_rgb32_x86_sse2.asm
yasm -f elf32 -g dwarf2 x86/yuy2_to_rgb32_x86_sse2.asm
uyvy_to_rgb32_x86_sse2.o: x86/uyvy_to_rgb32_x86_sse2.asm
yasm -f elf32 -g dwarf2 x86/uyvy_to_rgb32_x86_sse2.asm
cpuid_amd64.o: amd64/cpuid_amd64.asm
yasm -f elf64 -g dwarf2 amd64/cpuid_amd64.asm
i420_to_rgb32_amd64_sse2.o: amd64/i420_to_rgb32_amd64_sse2.asm
yasm -f elf64 -g dwarf2 amd64/i420_to_rgb32_amd64_sse2.asm
yv12_to_rgb32_amd64_sse2.o: amd64/yv12_to_rgb32_amd64_sse2.asm
yasm -f elf64 -g dwarf2 amd64/yv12_to_rgb32_amd64_sse2.asm
yuy2_to_rgb32_amd64_sse2.o: amd64/yuy2_to_rgb32_amd64_sse2.asm
yasm -f elf64 -g dwarf2 amd64/yuy2_to_rgb32_amd64_sse2.asm
uyvy_to_rgb32_amd64_sse2.o: amd64/uyvy_to_rgb32_amd64_sse2.asm
yasm -f elf64 -g dwarf2 amd64/uyvy_to_rgb32_amd64_sse2.asm

View File

@ -0,0 +1,22 @@
EXTRA_DIST =
AM_CFLAGS = \
$(XORG_SERVER_CFLAGS) \
-I../../../common
libxorgxrdp_la_LTLIBRARIES = libxorgxrdp.la
libxorgxrdp_la_LDFLAGS = -module -avoid-version
libxorgxrdp_ladir = $(moduledir)
libxorgxrdp_la_SOURCES = rdpDraw.c rdpPri.c rdpGC.c rdpFillSpans.c \
rdpSetSpans.c rdpPutImage.c rdpCopyArea.c rdpCopyPlane.c rdpPolyPoint.c \
rdpPolylines.c rdpPolySegment.c rdpPolyRectangle.c rdpPolyArc.c \
rdpFillPolygon.c rdpPolyFillRect.c rdpPolyFillArc.c rdpPolyText8.c \
rdpPolyText16.c rdpImageText8.c rdpImageText16.c rdpImageGlyphBlt.c \
rdpPolyGlyphBlt.c rdpPushPixels.c rdpCursor.c rdpMain.c rdpRandR.c \
rdpMisc.c rdpReg.c rdpComposite.c rdpGlyphs.c rdpPixmap.c rdpInput.c \
rdpClientCon.c rdpCapture.c rdpTrapezoids.c rdpXv.c rdpSimd.c
libxorgxrdp_la_LIBADD =

View File

@ -23,6 +23,9 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define _RDP_H #define _RDP_H
#include <xorg-server.h> #include <xorg-server.h>
#include <xorgVersion.h>
#include <xf86.h>
#include <scrnintstr.h> #include <scrnintstr.h>
#include <gcstruct.h> #include <gcstruct.h>
#include <mipointer.h> #include <mipointer.h>
@ -197,6 +200,10 @@ struct _rdpCounts
typedef int (*yuv_to_rgb32_proc)(unsigned char *yuvs, int width, int height, int *rgbs); typedef int (*yuv_to_rgb32_proc)(unsigned char *yuvs, int width, int height, int *rgbs);
typedef int (*copy_box_proc)(char *s8, int src_stride,
char *d8, int dst_stride,
int width, int height);
/* move this to common header */ /* move this to common header */
struct _rdpRec struct _rdpRec
{ {
@ -209,6 +216,7 @@ struct _rdpRec
int bitsPerPixel; int bitsPerPixel;
int Bpp; int Bpp;
int Bpp_mask; int Bpp_mask;
char *pfbMemory_alloc;
char *pfbMemory; char *pfbMemory;
ScreenPtr pScreen; ScreenPtr pScreen;
rdpDevPrivateKey privateKeyRecGC; rdpDevPrivateKey privateKeyRecGC;
@ -277,6 +285,8 @@ struct _rdpRec
int xv_timer_schedualed; int xv_timer_schedualed;
OsTimerPtr xv_timer; OsTimerPtr xv_timer;
copy_box_proc a8r8g8b8_to_a8b8g8r8_box;
}; };
typedef struct _rdpRec rdpRec; typedef struct _rdpRec rdpRec;
typedef struct _rdpRec * rdpPtr; typedef struct _rdpRec * rdpPtr;

View File

@ -24,6 +24,7 @@
/* this should be before all X11 .h files */ /* this should be before all X11 .h files */
#include <xorg-server.h> #include <xorg-server.h>
#include <xorgVersion.h>
/* all driver need this */ /* all driver need this */
#include <xf86.h> #include <xf86.h>
@ -34,6 +35,7 @@
#include "rdpClientCon.h" #include "rdpClientCon.h"
#include "rdpReg.h" #include "rdpReg.h"
#include "rdpMisc.h" #include "rdpMisc.h"
#include "rdpCapture.h"
#define LOG_LEVEL 1 #define LOG_LEVEL 1
#define LLOGLN(_level, _args) \ #define LLOGLN(_level, _args) \
@ -63,7 +65,8 @@ rdpLimitRects(RegionPtr reg, int max_rects, BoxPtr *rects)
/******************************************************************************/ /******************************************************************************/
/* copy rects with no error checking */ /* copy rects with no error checking */
static int static int
rdpCopyBox_a8r8g8b8_to_a8r8g8b8(void *src, int src_stride, int srcx, int srcy, rdpCopyBox_a8r8g8b8_to_a8r8g8b8(rdpClientCon *clientCon,
void *src, int src_stride, int srcx, int srcy,
void *dst, int dst_stride, int dstx, int dsty, void *dst, int dst_stride, int dstx, int dsty,
BoxPtr rects, int num_rects) BoxPtr rects, int num_rects)
{ {
@ -87,7 +90,7 @@ rdpCopyBox_a8r8g8b8_to_a8r8g8b8(void *src, int src_stride, int srcx, int srcy,
height = box->y2 - box->y1; height = box->y2 - box->y1;
for (jndex = 0; jndex < height; jndex++) for (jndex = 0; jndex < height; jndex++)
{ {
memcpy(d8, s8, bytes); g_memcpy(d8, s8, bytes);
d8 += dst_stride; d8 += dst_stride;
s8 += src_stride; s8 += src_stride;
} }
@ -101,7 +104,7 @@ rdpFillBox_yuvalp(int ax, int ay,
void *dst, int dst_stride) void *dst, int dst_stride)
{ {
dst = ((char *) dst) + (ay << 8) * (dst_stride >> 8) + (ax << 8); dst = ((char *) dst) + (ay << 8) * (dst_stride >> 8) + (ax << 8);
memset(dst, 0, 64 * 64 * 4); g_memset(dst, 0, 64 * 64 * 4);
return 0; return 0;
} }
@ -174,13 +177,14 @@ rdpCopyBox_a8r8g8b8_to_yuvalp(int ax, int ay,
y = (r * 19595 + g * 38470 + b * 7471) >> 16; y = (r * 19595 + g * 38470 + b * 7471) >> 16;
u = (r * -11071 + g * -21736 + b * 32807) >> 16; u = (r * -11071 + g * -21736 + b * 32807) >> 16;
v = (r * 32756 + g * -27429 + b * -5327) >> 16; v = (r * 32756 + g * -27429 + b * -5327) >> 16;
y = y - 128; u = u + 128;
y = max(y, -128); v = v + 128;
u = max(u, -128); y = max(y, 0);
v = max(v, -128); u = max(u, 0);
y = min(y, 127); v = max(v, 0);
u = min(u, 127); y = min(y, 255);
v = min(v, 127); u = min(u, 255);
v = min(v, 255);
*(yptr++) = y; *(yptr++) = y;
*(uptr++) = u; *(uptr++) = u;
*(vptr++) = v; *(vptr++) = v;
@ -194,53 +198,67 @@ rdpCopyBox_a8r8g8b8_to_yuvalp(int ax, int ay,
return 0; return 0;
} }
/******************************************************************************/
int
a8r8g8b8_to_a8b8g8r8_box(char *s8, int src_stride,
char *d8, int dst_stride,
int width, int height)
{
int index;
int jndex;
int red;
int green;
int blue;
unsigned int *s32;
unsigned int *d32;
for (index = 0; index < height; index++)
{
s32 = (unsigned int *) s8;
d32 = (unsigned int *) d8;
for (jndex = 0; jndex < width; jndex++)
{
SPLITCOLOR32(red, green, blue, *s32);
*d32 = COLOR24(red, green, blue);
s32++;
d32++;
}
d8 += dst_stride;
s8 += src_stride;
}
return 0;
}
/******************************************************************************/ /******************************************************************************/
/* copy rects with no error checking */ /* copy rects with no error checking */
static int static int
rdpCopyBox_a8r8g8b8_to_a8b8g8r8(void *src, int src_stride, rdpCopyBox_a8r8g8b8_to_a8b8g8r8(rdpClientCon *clientCon,
void *dst, int dst_stride, void *src, int src_stride, int srcx, int srcy,
void *dst, int dst_stride, int dstx, int dsty,
BoxPtr rects, int num_rects) BoxPtr rects, int num_rects)
{ {
char *s8; char *s8;
char *d8; char *d8;
int index; int index;
int jndex;
int kndex;
int bytes; int bytes;
int width; int width;
int height; int height;
int red;
int green;
int blue;
BoxPtr box; BoxPtr box;
unsigned int *s32; copy_box_proc copy_box;
unsigned int *d32;
copy_box = clientCon->dev->a8r8g8b8_to_a8b8g8r8_box;
for (index = 0; index < num_rects; index++) for (index = 0; index < num_rects; index++)
{ {
box = rects + index; box = rects + index;
s8 = ((char *) src) + box->y1 * src_stride; s8 = ((char *) src) + (box->y1 - srcy) * src_stride;
s8 += box->x1 * 4; s8 += (box->x1 - srcx) * 4;
d8 = ((char *) dst) + box->y1 * dst_stride; d8 = ((char *) dst) + (box->y1 - dsty) * dst_stride;
d8 += box->x1 * 4; d8 += (box->x1 - dstx) * 4;
bytes = box->x2 - box->x1; bytes = box->x2 - box->x1;
bytes *= 4; bytes *= 4;
width = box->x2 - box->x1; width = box->x2 - box->x1;
height = box->y2 - box->y1; height = box->y2 - box->y1;
for (jndex = 0; jndex < height; jndex++) copy_box(s8, src_stride, d8, dst_stride, width, height);
{
s32 = (unsigned int *) s8;
d32 = (unsigned int *) d8;
for (kndex = 0; kndex < width; kndex++)
{
SPLITCOLOR32(red, green, blue, *s32);
*d32 = COLOR24(red, green, blue);
s32++;
d32++;
}
d8 += dst_stride;
s8 += src_stride;
}
} }
return 0; return 0;
} }
@ -283,8 +301,8 @@ rdpCapture0(rdpClientCon *clientCon,
rect.x1 = 0; rect.x1 = 0;
rect.y1 = 0; rect.y1 = 0;
rect.x2 = min(dst_width, src_width); rect.x2 = RDPMIN(dst_width, src_width);
rect.y2 = min(dst_height, src_height); rect.y2 = RDPMIN(dst_height, src_height);
rdpRegionInit(&reg, &rect, 0); rdpRegionInit(&reg, &rect, 0);
rdpRegionIntersect(&reg, in_reg, &reg); rdpRegionIntersect(&reg, in_reg, &reg);
@ -307,14 +325,16 @@ rdpCapture0(rdpClientCon *clientCon,
if ((src_format == XRDP_a8r8g8b8) && (dst_format == XRDP_a8r8g8b8)) if ((src_format == XRDP_a8r8g8b8) && (dst_format == XRDP_a8r8g8b8))
{ {
rdpCopyBox_a8r8g8b8_to_a8r8g8b8(src, src_stride, 0, 0, rdpCopyBox_a8r8g8b8_to_a8r8g8b8(clientCon,
src, src_stride, 0, 0,
dst, dst_stride, 0, 0, dst, dst_stride, 0, 0,
psrc_rects, num_rects); psrc_rects, num_rects);
} }
else if ((src_format == XRDP_a8r8g8b8) && (dst_format == XRDP_a8b8g8r8)) else if ((src_format == XRDP_a8r8g8b8) && (dst_format == XRDP_a8b8g8r8))
{ {
rdpCopyBox_a8r8g8b8_to_a8b8g8r8(src, src_stride, rdpCopyBox_a8r8g8b8_to_a8b8g8r8(clientCon,
dst, dst_stride, src, src_stride, 0, 0,
dst, dst_stride, 0, 0,
psrc_rects, num_rects); psrc_rects, num_rects);
} }
else if ((src_format == XRDP_a8r8g8b8) && (dst_format == XRDP_r5g6b5)) else if ((src_format == XRDP_a8r8g8b8) && (dst_format == XRDP_r5g6b5))
@ -739,6 +759,7 @@ rdpCapture(rdpClientCon *clientCon,
int dst_stride, int dst_format, int mode) int dst_stride, int dst_format, int mode)
{ {
LLOGLN(10, ("rdpCapture:")); LLOGLN(10, ("rdpCapture:"));
LLOGLN(10, ("rdpCapture: src %p dst %p", src, dst));
switch (mode) switch (mode)
{ {
case 0: case 0:

View File

@ -18,10 +18,24 @@
* Routines to copy regions from framebuffer to shared memory * Routines to copy regions from framebuffer to shared memory
*/ */
Bool #ifndef __RDPCAPTURE_H
#define __RDPCAPTURE_H
#include <xorg-server.h>
#include <xorgVersion.h>
#include <xf86.h>
extern _X_EXPORT Bool
rdpCapture(rdpClientCon *clientCon, rdpCapture(rdpClientCon *clientCon,
RegionPtr in_reg, BoxPtr *out_rects, int *num_out_rects, RegionPtr in_reg, BoxPtr *out_rects, int *num_out_rects,
void *src, int src_width, int src_height, void *src, int src_width, int src_height,
int src_stride, int src_format, int src_stride, int src_format,
void *dst, int dst_width, int dst_height, void *dst, int dst_width, int dst_height,
int dst_stride, int dst_format, int mode); int dst_stride, int dst_format, int mode);
extern _X_EXPORT int
a8r8g8b8_to_a8b8g8r8_box(char *s8, int src_stride,
char *d8, int dst_stride,
int width, int height);
#endif

View File

@ -31,6 +31,7 @@ Client connection to xrdp
/* this should be before all X11 .h files */ /* this should be before all X11 .h files */
#include <xorg-server.h> #include <xorg-server.h>
#include <xorgVersion.h>
/* all driver need this */ /* all driver need this */
#include <xf86.h> #include <xf86.h>

View File

@ -21,6 +21,10 @@ Client connection to xrdp
*/ */
#include <xorg-server.h>
#include <xorgVersion.h>
#include <xf86.h>
/* in xrdp/common */ /* in xrdp/common */
#include "xrdp_client_info.h" #include "xrdp_client_info.h"
#include "xrdp_constants.h" #include "xrdp_constants.h"
@ -108,55 +112,55 @@ struct _rdpClientCon
struct _rdpClientCon *next; struct _rdpClientCon *next;
}; };
int extern _X_EXPORT int
rdpClientConBeginUpdate(rdpPtr dev, rdpClientCon *clientCon); rdpClientConBeginUpdate(rdpPtr dev, rdpClientCon *clientCon);
int extern _X_EXPORT int
rdpClientConEndUpdate(rdpPtr dev, rdpClientCon *clientCon); rdpClientConEndUpdate(rdpPtr dev, rdpClientCon *clientCon);
int extern _X_EXPORT int
rdpClientConSetFgcolor(rdpPtr dev, rdpClientCon *clientCon, int fgcolor); rdpClientConSetFgcolor(rdpPtr dev, rdpClientCon *clientCon, int fgcolor);
void extern _X_EXPORT void
rdpClientConSendArea(rdpPtr dev, rdpClientCon *clientCon, rdpClientConSendArea(rdpPtr dev, rdpClientCon *clientCon,
struct image_data *id, int x, int y, int w, int h); struct image_data *id, int x, int y, int w, int h);
int extern _X_EXPORT int
rdpClientConFillRect(rdpPtr dev, rdpClientCon *clientCon, rdpClientConFillRect(rdpPtr dev, rdpClientCon *clientCon,
short x, short y, int cx, int cy); short x, short y, int cx, int cy);
int extern _X_EXPORT int
rdpClientConCheck(ScreenPtr pScreen); rdpClientConCheck(ScreenPtr pScreen);
int extern _X_EXPORT int
rdpClientConInit(rdpPtr dev); rdpClientConInit(rdpPtr dev);
int extern _X_EXPORT int
rdpClientConDeinit(rdpPtr dev); rdpClientConDeinit(rdpPtr dev);
int extern _X_EXPORT int
rdpClientConDeleteOsSurface(rdpPtr dev, rdpClientCon *clientCon, int rdpindex); rdpClientConDeleteOsSurface(rdpPtr dev, rdpClientCon *clientCon, int rdpindex);
int extern _X_EXPORT int
rdpClientConRemoveOsBitmap(rdpPtr dev, rdpClientCon *clientCon, int rdpindex); rdpClientConRemoveOsBitmap(rdpPtr dev, rdpClientCon *clientCon, int rdpindex);
void extern _X_EXPORT void
rdpClientConScheduleDeferredUpdate(rdpPtr dev); rdpClientConScheduleDeferredUpdate(rdpPtr dev);
int extern _X_EXPORT int
rdpClientConCheckDirtyScreen(rdpPtr dev, rdpClientCon *clientCon); rdpClientConCheckDirtyScreen(rdpPtr dev, rdpClientCon *clientCon);
int extern _X_EXPORT int
rdpClientConAddDirtyScreenReg(rdpPtr dev, rdpClientCon *clientCon, rdpClientConAddDirtyScreenReg(rdpPtr dev, rdpClientCon *clientCon,
RegionPtr reg); RegionPtr reg);
int extern _X_EXPORT int
rdpClientConAddDirtyScreenBox(rdpPtr dev, rdpClientCon *clientCon, rdpClientConAddDirtyScreenBox(rdpPtr dev, rdpClientCon *clientCon,
BoxPtr box); BoxPtr box);
int extern _X_EXPORT int
rdpClientConAddDirtyScreen(rdpPtr dev, rdpClientCon *clientCon, rdpClientConAddDirtyScreen(rdpPtr dev, rdpClientCon *clientCon,
int x, int y, int cx, int cy); int x, int y, int cx, int cy);
void extern _X_EXPORT void
rdpClientConGetScreenImageRect(rdpPtr dev, rdpClientCon *clientCon, rdpClientConGetScreenImageRect(rdpPtr dev, rdpClientCon *clientCon,
struct image_data *id); struct image_data *id);
int extern _X_EXPORT int
rdpClientConAddAllReg(rdpPtr dev, RegionPtr reg, DrawablePtr pDrawable); rdpClientConAddAllReg(rdpPtr dev, RegionPtr reg, DrawablePtr pDrawable);
int extern _X_EXPORT int
rdpClientConAddAllBox(rdpPtr dev, BoxPtr box, DrawablePtr pDrawable); rdpClientConAddAllBox(rdpPtr dev, BoxPtr box, DrawablePtr pDrawable);
int extern _X_EXPORT int
rdpClientConSetCursor(rdpPtr dev, rdpClientCon *clientCon, rdpClientConSetCursor(rdpPtr dev, rdpClientCon *clientCon,
short x, short y, char *cur_data, char *cur_mask); short x, short y, char *cur_data, char *cur_mask);
int extern _X_EXPORT int
rdpClientConSetCursorEx(rdpPtr dev, rdpClientCon *clientCon, rdpClientConSetCursorEx(rdpPtr dev, rdpClientCon *clientCon,
short x, short y, char *cur_data, short x, short y, char *cur_data,
char *cur_mask, int bpp); char *cur_mask, int bpp);

View File

@ -27,6 +27,7 @@ composite(alpha blending) calls
/* this should be before all X11 .h files */ /* this should be before all X11 .h files */
#include <xorg-server.h> #include <xorg-server.h>
#include <xorgVersion.h>
/* all driver need this */ /* all driver need this */
#include <xf86.h> #include <xf86.h>

View File

@ -24,7 +24,11 @@ composite(alpha blending) calls
#ifndef _RDPCOMPOSITE_H #ifndef _RDPCOMPOSITE_H
#define _RDPCOMPOSITE_H #define _RDPCOMPOSITE_H
void #include <xorg-server.h>
#include <xorgVersion.h>
#include <xf86.h>
extern _X_EXPORT void
rdpComposite(CARD8 op, PicturePtr pSrc, PicturePtr pMask, PicturePtr pDst, rdpComposite(CARD8 op, PicturePtr pSrc, PicturePtr pMask, PicturePtr pDst,
INT16 xSrc, INT16 ySrc, INT16 xMask, INT16 yMask, INT16 xDst, INT16 xSrc, INT16 ySrc, INT16 xMask, INT16 yMask, INT16 xDst,
INT16 yDst, CARD16 width, CARD16 height); INT16 yDst, CARD16 width, CARD16 height);

View File

@ -25,6 +25,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
/* this should be before all X11 .h files */ /* this should be before all X11 .h files */
#include <xorg-server.h> #include <xorg-server.h>
#include <xorgVersion.h>
/* all driver need this */ /* all driver need this */
#include <xf86.h> #include <xf86.h>
@ -34,6 +35,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include "rdpDraw.h" #include "rdpDraw.h"
#include "rdpClientCon.h" #include "rdpClientCon.h"
#include "rdpReg.h" #include "rdpReg.h"
#include "rdpCopyArea.h"
#define LOG_LEVEL 1 #define LOG_LEVEL 1
#define LLOGLN(_level, _args) \ #define LLOGLN(_level, _args) \

View File

@ -22,6 +22,10 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#ifndef __RDPCOPYAREA_H #ifndef __RDPCOPYAREA_H
#define __RDPCOPYAREA_H #define __RDPCOPYAREA_H
#include <xorg-server.h>
#include <xorgVersion.h>
#include <xf86.h>
RegionPtr RegionPtr
rdpCopyArea(DrawablePtr pSrc, DrawablePtr pDst, GCPtr pGC, rdpCopyArea(DrawablePtr pSrc, DrawablePtr pDst, GCPtr pGC,
int srcx, int srcy, int w, int h, int dstx, int dsty); int srcx, int srcy, int w, int h, int dstx, int dsty);

View File

@ -25,6 +25,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
/* this should be before all X11 .h files */ /* this should be before all X11 .h files */
#include <xorg-server.h> #include <xorg-server.h>
#include <xorgVersion.h>
/* all driver need this */ /* all driver need this */
#include <xf86.h> #include <xf86.h>
@ -34,6 +35,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include "rdpDraw.h" #include "rdpDraw.h"
#include "rdpClientCon.h" #include "rdpClientCon.h"
#include "rdpReg.h" #include "rdpReg.h"
#include "rdpCopyPlane.h"
#define LOG_LEVEL 1 #define LOG_LEVEL 1
#define LLOGLN(_level, _args) \ #define LLOGLN(_level, _args) \

View File

@ -22,6 +22,10 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#ifndef __RDPCOPYPLANE_H #ifndef __RDPCOPYPLANE_H
#define __RDPCOPYPLANE_H #define __RDPCOPYPLANE_H
#include <xorg-server.h>
#include <xorgVersion.h>
#include <xf86.h>
RegionPtr RegionPtr
rdpCopyPlane(DrawablePtr pSrcDrawable, DrawablePtr pDstDrawable, rdpCopyPlane(DrawablePtr pSrcDrawable, DrawablePtr pDstDrawable,
GCPtr pGC, int srcx, int srcy, int width, int height, GCPtr pGC, int srcx, int srcy, int width, int height,

View File

@ -27,6 +27,7 @@ cursor
/* this should be before all X11 .h files */ /* this should be before all X11 .h files */
#include <xorg-server.h> #include <xorg-server.h>
#include <xorgVersion.h>
/* all driver need this */ /* all driver need this */
#include <xf86.h> #include <xf86.h>
@ -45,6 +46,7 @@ cursor
#include "rdpMain.h" #include "rdpMain.h"
#include "rdpDraw.h" #include "rdpDraw.h"
#include "rdpClientCon.h" #include "rdpClientCon.h"
#include "rdpCursor.h"
#ifndef X_BYTE_ORDER #ifndef X_BYTE_ORDER
#warning X_BYTE_ORDER not defined #warning X_BYTE_ORDER not defined

View File

@ -25,20 +25,21 @@ misc draw calls
#define __RDPCURSOR_H #define __RDPCURSOR_H
#include <xorg-server.h> #include <xorg-server.h>
#include <xorgVersion.h>
#include <xf86.h> #include <xf86.h>
Bool extern _X_EXPORT Bool
rdpSpriteRealizeCursor(DeviceIntPtr pDev, ScreenPtr pScr, CursorPtr pCurs); rdpSpriteRealizeCursor(DeviceIntPtr pDev, ScreenPtr pScr, CursorPtr pCurs);
Bool extern _X_EXPORT Bool
rdpSpriteUnrealizeCursor(DeviceIntPtr pDev, ScreenPtr pScr, CursorPtr pCurs); rdpSpriteUnrealizeCursor(DeviceIntPtr pDev, ScreenPtr pScr, CursorPtr pCurs);
void extern _X_EXPORT void
rdpSpriteSetCursor(DeviceIntPtr pDev, ScreenPtr pScr, CursorPtr pCurs, rdpSpriteSetCursor(DeviceIntPtr pDev, ScreenPtr pScr, CursorPtr pCurs,
int x, int y); int x, int y);
void extern _X_EXPORT void
rdpSpriteMoveCursor(DeviceIntPtr pDev, ScreenPtr pScr, int x, int y); rdpSpriteMoveCursor(DeviceIntPtr pDev, ScreenPtr pScr, int x, int y);
Bool extern _X_EXPORT Bool
rdpSpriteDeviceCursorInitialize(DeviceIntPtr pDev, ScreenPtr pScr); rdpSpriteDeviceCursorInitialize(DeviceIntPtr pDev, ScreenPtr pScr);
void extern _X_EXPORT void
rdpSpriteDeviceCursorCleanup(DeviceIntPtr pDev, ScreenPtr pScr); rdpSpriteDeviceCursorCleanup(DeviceIntPtr pDev, ScreenPtr pScr);
#endif #endif

View File

@ -65,29 +65,29 @@ do { \
extern GCOps g_rdpGCOps; /* in rdpGC.c */ extern GCOps g_rdpGCOps; /* in rdpGC.c */
int extern _X_EXPORT int
rdpDrawGetClip(rdpPtr dev, RegionPtr pRegion, DrawablePtr pDrawable, GCPtr pGC); rdpDrawGetClip(rdpPtr dev, RegionPtr pRegion, DrawablePtr pDrawable, GCPtr pGC);
void extern _X_EXPORT void
GetTextBoundingBox(DrawablePtr pDrawable, FontPtr font, int x, int y, GetTextBoundingBox(DrawablePtr pDrawable, FontPtr font, int x, int y,
int n, BoxPtr pbox); int n, BoxPtr pbox);
int extern _X_EXPORT int
rdpDrawItemAdd(rdpPtr dev, rdpPixmapRec *priv, struct rdp_draw_item *di); rdpDrawItemAdd(rdpPtr dev, rdpPixmapRec *priv, struct rdp_draw_item *di);
int extern _X_EXPORT int
rdpDrawItemRemove(rdpPtr dev, rdpPixmapRec *priv, struct rdp_draw_item *di); rdpDrawItemRemove(rdpPtr dev, rdpPixmapRec *priv, struct rdp_draw_item *di);
int extern _X_EXPORT int
rdpDrawItemRemoveAll(rdpPtr dev, rdpPixmapRec *priv); rdpDrawItemRemoveAll(rdpPtr dev, rdpPixmapRec *priv);
void extern _X_EXPORT void
rdpCopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg, RegionPtr pOldRegion); rdpCopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg, RegionPtr pOldRegion);
#if XRDP_CLOSESCR == 1 #if XRDP_CLOSESCR == 1
Bool extern _X_EXPORT Bool
rdpCloseScreen(int index, ScreenPtr pScreen); rdpCloseScreen(int index, ScreenPtr pScreen);
#else #else
Bool extern _X_EXPORT Bool
rdpCloseScreen(ScreenPtr pScreen); rdpCloseScreen(ScreenPtr pScreen);
#endif #endif
WindowPtr extern _X_EXPORT WindowPtr
rdpGetRootWindowPtr(ScreenPtr pScreen); rdpGetRootWindowPtr(ScreenPtr pScreen);
rdpPtr extern _X_EXPORT rdpPtr
rdpGetDevFromScreen(ScreenPtr pScreen); rdpGetDevFromScreen(ScreenPtr pScreen);
#endif #endif

View File

@ -25,6 +25,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
/* this should be before all X11 .h files */ /* this should be before all X11 .h files */
#include <xorg-server.h> #include <xorg-server.h>
#include <xorgVersion.h>
/* all driver need this */ /* all driver need this */
#include <xf86.h> #include <xf86.h>
@ -34,6 +35,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include "rdpDraw.h" #include "rdpDraw.h"
#include "rdpClientCon.h" #include "rdpClientCon.h"
#include "rdpReg.h" #include "rdpReg.h"
#include "rdpFillPolygon.h"
#define LOG_LEVEL 1 #define LOG_LEVEL 1
#define LLOGLN(_level, _args) \ #define LLOGLN(_level, _args) \

View File

@ -22,7 +22,11 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#ifndef __RDPFILLPOLYGON_H #ifndef __RDPFILLPOLYGON_H
#define __RDPFILLPOLYGON_H #define __RDPFILLPOLYGON_H
void #include <xorg-server.h>
#include <xorgVersion.h>
#include <xf86.h>
extern _X_EXPORT void
rdpFillPolygon(DrawablePtr pDrawable, GCPtr pGC, rdpFillPolygon(DrawablePtr pDrawable, GCPtr pGC,
int shape, int mode, int count, int shape, int mode, int count,
DDXPointPtr pPts); DDXPointPtr pPts);

View File

@ -25,6 +25,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
/* this should be before all X11 .h files */ /* this should be before all X11 .h files */
#include <xorg-server.h> #include <xorg-server.h>
#include <xorgVersion.h>
/* all driver need this */ /* all driver need this */
#include <xf86.h> #include <xf86.h>
@ -32,6 +33,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include "rdp.h" #include "rdp.h"
#include "rdpDraw.h" #include "rdpDraw.h"
#include "rdpFillSpans.h"
#define LOG_LEVEL 1 #define LOG_LEVEL 1
#define LLOGLN(_level, _args) \ #define LLOGLN(_level, _args) \

View File

@ -22,6 +22,10 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#ifndef __RDPFILLSPANS_H #ifndef __RDPFILLSPANS_H
#define __RDPFILLSPANS_H #define __RDPFILLSPANS_H
#include <xorg-server.h>
#include <xorgVersion.h>
#include <xf86.h>
void void
rdpFillSpans(DrawablePtr pDrawable, GCPtr pGC, int nInit, rdpFillSpans(DrawablePtr pDrawable, GCPtr pGC, int nInit,
DDXPointPtr pptInit, int* pwidthInit, int fSorted); DDXPointPtr pptInit, int* pwidthInit, int fSorted);

View File

@ -27,6 +27,7 @@ GC related calls
/* this should be before all X11 .h files */ /* this should be before all X11 .h files */
#include <xorg-server.h> #include <xorg-server.h>
#include <xorgVersion.h>
/* all driver need this */ /* all driver need this */
#include <xf86.h> #include <xf86.h>
@ -59,6 +60,7 @@ GC related calls
#include "rdpPolyGlyphBlt.h" #include "rdpPolyGlyphBlt.h"
#include "rdpPushPixels.h" #include "rdpPushPixels.h"
#include "rdpDraw.h" #include "rdpDraw.h"
#include "rdpGC.h"
/******************************************************************************/ /******************************************************************************/
#define LOG_LEVEL 1 #define LOG_LEVEL 1

View File

@ -24,7 +24,11 @@ GC related calls
#ifndef _RDPGC_H #ifndef _RDPGC_H
#define _RDPGC_H #define _RDPGC_H
Bool #include <xorg-server.h>
#include <xorgVersion.h>
#include <xf86.h>
extern _X_EXPORT Bool
rdpCreateGC(GCPtr pGC); rdpCreateGC(GCPtr pGC);
#endif #endif

View File

@ -27,6 +27,7 @@ gylph(font) calls
/* this should be before all X11 .h files */ /* this should be before all X11 .h files */
#include <xorg-server.h> #include <xorg-server.h>
#include <xorgVersion.h>
/* all driver need this */ /* all driver need this */
#include <xf86.h> #include <xf86.h>

View File

@ -24,6 +24,10 @@ gylph(font) calls
#ifndef _RDPGLYPHS_H #ifndef _RDPGLYPHS_H
#define _RDPGLYPHS_H #define _RDPGLYPHS_H
#include <xorg-server.h>
#include <xorgVersion.h>
#include <xf86.h>
struct rdp_font_char struct rdp_font_char
{ {
int offset; /* x */ int offset; /* x */
@ -51,9 +55,9 @@ struct rdp_text
struct rdp_text* next; struct rdp_text* next;
}; };
int extern _X_EXPORT int
rdpGlyphDeleteRdpText(struct rdp_text* rtext); rdpGlyphDeleteRdpText(struct rdp_text* rtext);
void extern _X_EXPORT void
rdpGlyphs(CARD8 op, PicturePtr pSrc, PicturePtr pDst, rdpGlyphs(CARD8 op, PicturePtr pSrc, PicturePtr pDst,
PictFormatPtr maskFormat, PictFormatPtr maskFormat,
INT16 xSrc, INT16 ySrc, int nlists, GlyphListPtr lists, INT16 xSrc, INT16 ySrc, int nlists, GlyphListPtr lists,

View File

@ -25,6 +25,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
/* this should be before all X11 .h files */ /* this should be before all X11 .h files */
#include <xorg-server.h> #include <xorg-server.h>
#include <xorgVersion.h>
/* all driver need this */ /* all driver need this */
#include <xf86.h> #include <xf86.h>
@ -34,6 +35,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include "rdpDraw.h" #include "rdpDraw.h"
#include "rdpClientCon.h" #include "rdpClientCon.h"
#include "rdpReg.h" #include "rdpReg.h"
#include "rdpImageGlyphBlt.h"
#define LOG_LEVEL 1 #define LOG_LEVEL 1
#define LLOGLN(_level, _args) \ #define LLOGLN(_level, _args) \

View File

@ -22,7 +22,11 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#ifndef __RDPIMAGEGLYPHBLT_H #ifndef __RDPIMAGEGLYPHBLT_H
#define __RDPIMAGEGLYPHBLT_H #define __RDPIMAGEGLYPHBLT_H
void #include <xorg-server.h>
#include <xorgVersion.h>
#include <xf86.h>
extern _X_EXPORT void
rdpImageGlyphBlt(DrawablePtr pDrawable, GCPtr pGC, rdpImageGlyphBlt(DrawablePtr pDrawable, GCPtr pGC,
int x, int y, unsigned int nglyph, int x, int y, unsigned int nglyph,
CharInfoPtr* ppci, pointer pglyphBase); CharInfoPtr* ppci, pointer pglyphBase);

View File

@ -25,6 +25,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
/* this should be before all X11 .h files */ /* this should be before all X11 .h files */
#include <xorg-server.h> #include <xorg-server.h>
#include <xorgVersion.h>
/* all driver need this */ /* all driver need this */
#include <xf86.h> #include <xf86.h>
@ -34,6 +35,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include "rdpDraw.h" #include "rdpDraw.h"
#include "rdpClientCon.h" #include "rdpClientCon.h"
#include "rdpReg.h" #include "rdpReg.h"
#include "rdpImageText16.h"
#define LOG_LEVEL 1 #define LOG_LEVEL 1
#define LLOGLN(_level, _args) \ #define LLOGLN(_level, _args) \

View File

@ -22,7 +22,11 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#ifndef __RDPIMAGETEXT16_H #ifndef __RDPIMAGETEXT16_H
#define __RDPIMAGETEXT16_H #define __RDPIMAGETEXT16_H
void #include <xorg-server.h>
#include <xorgVersion.h>
#include <xf86.h>
extern _X_EXPORT void
rdpImageText16(DrawablePtr pDrawable, GCPtr pGC, rdpImageText16(DrawablePtr pDrawable, GCPtr pGC,
int x, int y, int count, unsigned short* chars); int x, int y, int count, unsigned short* chars);

View File

@ -25,7 +25,8 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
/* this should be before all X11 .h files */ /* this should be before all X11 .h files */
#include <xorg-server.h> #include <xorg-server.h>
#include <xorgVersion.h>
/* all driver need this */ /* all driver need this */
#include <xf86.h> #include <xf86.h>
#include <xf86_OSproc.h> #include <xf86_OSproc.h>
@ -34,6 +35,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include "rdpDraw.h" #include "rdpDraw.h"
#include "rdpClientCon.h" #include "rdpClientCon.h"
#include "rdpReg.h" #include "rdpReg.h"
#include "rdpImageText8.h"
#define LOG_LEVEL 1 #define LOG_LEVEL 1
#define LLOGLN(_level, _args) \ #define LLOGLN(_level, _args) \

View File

@ -22,7 +22,11 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#ifndef __RDPIMAGETEXT8_H #ifndef __RDPIMAGETEXT8_H
#define __RDPIMAGETEXT8_H #define __RDPIMAGETEXT8_H
void #include <xorg-server.h>
#include <xorgVersion.h>
#include <xf86.h>
extern _X_EXPORT void
rdpImageText8(DrawablePtr pDrawable, GCPtr pGC, rdpImageText8(DrawablePtr pDrawable, GCPtr pGC,
int x, int y, int count, char* chars); int x, int y, int count, char* chars);

View File

@ -25,6 +25,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
/* this should be before all X11 .h files */ /* this should be before all X11 .h files */
#include <xorg-server.h> #include <xorg-server.h>
#include <xorgVersion.h>
/* all driver need this */ /* all driver need this */
#include <xf86.h> #include <xf86.h>
@ -53,6 +54,7 @@ static struct input_proc_list g_input_proc[MAX_INPUT_PROC];
int int
rdpRegisterInputCallback(int type, rdpInputEventProcPtr proc) rdpRegisterInputCallback(int type, rdpInputEventProcPtr proc)
{ {
LLOGLN(0, ("rdpRegisterInputCallback: type %d proc %p", type, proc));
if (type == 0) if (type == 0)
{ {
g_input_proc[0].proc = proc; g_input_proc[0].proc = proc;
@ -73,12 +75,22 @@ int
rdpUnregisterInputCallback(rdpInputEventProcPtr proc) rdpUnregisterInputCallback(rdpInputEventProcPtr proc)
{ {
int index; int index;
char text[256];
LLOGLN(0, ("rdpUnregisterInputCallback: proc %p", proc));
for (index = 0; index < MAX_INPUT_PROC; index++) for (index = 0; index < MAX_INPUT_PROC; index++)
{ {
if (g_input_proc[index].proc == proc) if (g_input_proc[index].proc == proc)
{ {
g_input_proc[index].proc = 0; if (index == 0)
{
/* hack to cleanup
remove when xrdpdevTearDown is working */
g_sprintf(text, "/tmp/.xrdp/xrdp_display_%s", display);
LLOGLN(0, ("rdpUnregisterInputCallback: deleting file %s", text));
unlink(text);
}
g_input_proc[index].proc = 0;
return 0; return 0;
} }
} }

View File

@ -24,23 +24,27 @@ input
#ifndef _RDPINPUT_H #ifndef _RDPINPUT_H
#define _RDPINPUT_H #define _RDPINPUT_H
#include <xorg-server.h>
#include <xorgVersion.h>
#include <xf86.h>
typedef int (*rdpInputEventProcPtr)(rdpPtr dev, int msg, typedef int (*rdpInputEventProcPtr)(rdpPtr dev, int msg,
long param1, long param2, long param1, long param2,
long param3, long param4); long param3, long param4);
int extern _X_EXPORT int
rdpRegisterInputCallback(int type, rdpInputEventProcPtr proc); rdpRegisterInputCallback(int type, rdpInputEventProcPtr proc);
int extern _X_EXPORT int
rdpUnregisterInputCallback(rdpInputEventProcPtr proc); rdpUnregisterInputCallback(rdpInputEventProcPtr proc);
int extern _X_EXPORT int
rdpInputKeyboardEvent(rdpPtr dev, int msg, rdpInputKeyboardEvent(rdpPtr dev, int msg,
long param1, long param2, long param1, long param2,
long param3, long param4); long param3, long param4);
int extern _X_EXPORT int
rdpInputMouseEvent(rdpPtr dev, int msg, rdpInputMouseEvent(rdpPtr dev, int msg,
long param1, long param2, long param1, long param2,
long param3, long param4); long param3, long param4);
int extern _X_EXPORT int
rdpInputInit(void); rdpInputInit(void);
#endif #endif

View File

@ -27,6 +27,7 @@ rdp module main
/* this should be before all X11 .h files */ /* this should be before all X11 .h files */
#include <xorg-server.h> #include <xorg-server.h>
#include <xorgVersion.h>
/* all driver need this */ /* all driver need this */
#include <xf86.h> #include <xf86.h>
@ -41,6 +42,7 @@ rdp module main
#include "rdpInput.h" #include "rdpInput.h"
#include "rdpDraw.h" #include "rdpDraw.h"
#include "rdpClientCon.h" #include "rdpClientCon.h"
#include "rdpMain.h"
/******************************************************************************/ /******************************************************************************/
#define LOG_LEVEL 1 #define LOG_LEVEL 1

View File

@ -24,7 +24,11 @@ rdp module main
#ifndef __RDPMAIN_H #ifndef __RDPMAIN_H
#define __RDPMAIN_H #define __RDPMAIN_H
void #include <xorg-server.h>
#include <xorgVersion.h>
#include <xf86.h>
extern _X_EXPORT void
xorgxrdpDownDown(ScreenPtr pScreen); xorgxrdpDownDown(ScreenPtr pScreen);
#endif #endif

View File

@ -36,11 +36,14 @@ the rest
/* this should be before all X11 .h files */ /* this should be before all X11 .h files */
#include <xorg-server.h> #include <xorg-server.h>
#include <xorgVersion.h>
/* all driver need this */ /* all driver need this */
#include <xf86.h> #include <xf86.h>
#include <xf86_OSproc.h> #include <xf86_OSproc.h>
#include "rdpMisc.h"
/******************************************************************************/ /******************************************************************************/
int int
rdpBitsPerPixel(int depth) rdpBitsPerPixel(int depth)

View File

@ -24,59 +24,63 @@ the rest
#ifndef __RDPMISC_H #ifndef __RDPMISC_H
#define __RDPMISC_H #define __RDPMISC_H
#include <xorg-server.h>
#include <xorgVersion.h>
#include <xf86.h>
#include <X11/Xos.h> #include <X11/Xos.h>
int extern _X_EXPORT int
rdpBitsPerPixel(int depth); rdpBitsPerPixel(int depth);
int extern _X_EXPORT int
g_sck_can_recv(int sck, int millis); g_sck_can_recv(int sck, int millis);
int extern _X_EXPORT int
g_sck_recv(int sck, void *ptr, int len, int flags); g_sck_recv(int sck, void *ptr, int len, int flags);
void extern _X_EXPORT void
g_sck_close(int sck); g_sck_close(int sck);
int extern _X_EXPORT int
g_sck_last_error_would_block(int sck); g_sck_last_error_would_block(int sck);
void extern _X_EXPORT void
g_sleep(int msecs); g_sleep(int msecs);
int extern _X_EXPORT int
g_sck_send(int sck, void *ptr, int len, int flags); g_sck_send(int sck, void *ptr, int len, int flags);
void * extern _X_EXPORT void *
g_malloc(int size, int zero); g_malloc(int size, int zero);
void extern _X_EXPORT void
g_free(void *ptr); g_free(void *ptr);
void extern _X_EXPORT void
g_sprintf(char *dest, char *format, ...); g_sprintf(char *dest, char *format, ...);
int extern _X_EXPORT int
g_sck_tcp_socket(void); g_sck_tcp_socket(void);
int extern _X_EXPORT int
g_sck_local_socket_dgram(void); g_sck_local_socket_dgram(void);
int extern _X_EXPORT int
g_sck_local_socket_stream(void); g_sck_local_socket_stream(void);
void extern _X_EXPORT void
g_memcpy(void *d_ptr, const void *s_ptr, int size); g_memcpy(void *d_ptr, const void *s_ptr, int size);
void extern _X_EXPORT void
g_memset(void *d_ptr, const unsigned char chr, int size); g_memset(void *d_ptr, const unsigned char chr, int size);
int extern _X_EXPORT int
g_sck_tcp_set_no_delay(int sck); g_sck_tcp_set_no_delay(int sck);
int extern _X_EXPORT int
g_sck_set_non_blocking(int sck); g_sck_set_non_blocking(int sck);
int extern _X_EXPORT int
g_sck_accept(int sck); g_sck_accept(int sck);
int extern _X_EXPORT int
g_sck_select(int sck1, int sck2, int sck3); g_sck_select(int sck1, int sck2, int sck3);
int extern _X_EXPORT int
g_sck_tcp_bind(int sck, char *port); g_sck_tcp_bind(int sck, char *port);
int extern _X_EXPORT int
g_sck_local_bind(int sck, char *port); g_sck_local_bind(int sck, char *port);
int extern _X_EXPORT int
g_sck_listen(int sck); g_sck_listen(int sck);
int extern _X_EXPORT int
g_create_dir(const char *dirname); g_create_dir(const char *dirname);
int extern _X_EXPORT int
g_directory_exist(const char *dirname); g_directory_exist(const char *dirname);
int extern _X_EXPORT int
g_chmod_hex(const char *filename, int flags); g_chmod_hex(const char *filename, int flags);
void extern _X_EXPORT void
g_hexdump(void *p, long len); g_hexdump(void *p, long len);
#if defined(X_BYTE_ORDER) #if defined(X_BYTE_ORDER)

View File

@ -26,6 +26,7 @@ pixmap calls
#include <xorg-server.h> #include <xorg-server.h>
#include <xorgVersion.h> #include <xorgVersion.h>
#include <xf86.h>
#if XORG_VERSION_CURRENT < XORG_VERSION_NUMERIC(1, 5, 0, 0, 0) #if XORG_VERSION_CURRENT < XORG_VERSION_NUMERIC(1, 5, 0, 0, 0)
/* 1.1, 1.2, 1.3, 1.4 */ /* 1.1, 1.2, 1.3, 1.4 */
@ -36,16 +37,16 @@ pixmap calls
#endif #endif
#if XRDP_PIX == 2 #if XRDP_PIX == 2
PixmapPtr extern _X_EXPORT PixmapPtr
rdpCreatePixmap(ScreenPtr pScreen, int width, int height, int depth, rdpCreatePixmap(ScreenPtr pScreen, int width, int height, int depth,
unsigned usage_hint); unsigned usage_hint);
#else #else
PixmapPtr extern _X_EXPORT PixmapPtr
rdpCreatePixmap(ScreenPtr pScreen, int width, int height, int depth); rdpCreatePixmap(ScreenPtr pScreen, int width, int height, int depth);
#endif #endif
Bool extern _X_EXPORT Bool
rdpDestroyPixmap(PixmapPtr pPixmap); rdpDestroyPixmap(PixmapPtr pPixmap);
Bool extern _X_EXPORT Bool
rdpModifyPixmapHeader(PixmapPtr pPixmap, int width, int height, int depth, rdpModifyPixmapHeader(PixmapPtr pPixmap, int width, int height, int depth,
int bitsPerPixel, int devKind, pointer pPixData); int bitsPerPixel, int devKind, pointer pPixData);

View File

@ -25,6 +25,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
/* this should be before all X11 .h files */ /* this should be before all X11 .h files */
#include <xorg-server.h> #include <xorg-server.h>
#include <xorgVersion.h>
/* all driver need this */ /* all driver need this */
#include <xf86.h> #include <xf86.h>
@ -34,6 +35,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include "rdpDraw.h" #include "rdpDraw.h"
#include "rdpClientCon.h" #include "rdpClientCon.h"
#include "rdpReg.h" #include "rdpReg.h"
#include "rdpPolyArc.h"
#define LOG_LEVEL 1 #define LOG_LEVEL 1
#define LLOGLN(_level, _args) \ #define LLOGLN(_level, _args) \

View File

@ -22,7 +22,11 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#ifndef __RDPPOLYARC_H #ifndef __RDPPOLYARC_H
#define __RDPPOLYARC_H #define __RDPPOLYARC_H
void #include <xorg-server.h>
#include <xorgVersion.h>
#include <xf86.h>
extern _X_EXPORT void
rdpPolyArc(DrawablePtr pDrawable, GCPtr pGC, int narcs, xArc* parcs); rdpPolyArc(DrawablePtr pDrawable, GCPtr pGC, int narcs, xArc* parcs);
#endif #endif

View File

@ -25,6 +25,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
/* this should be before all X11 .h files */ /* this should be before all X11 .h files */
#include <xorg-server.h> #include <xorg-server.h>
#include <xorgVersion.h>
/* all driver need this */ /* all driver need this */
#include <xf86.h> #include <xf86.h>
@ -34,6 +35,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include "rdpDraw.h" #include "rdpDraw.h"
#include "rdpClientCon.h" #include "rdpClientCon.h"
#include "rdpReg.h" #include "rdpReg.h"
#include "rdpPolyFillArc.h"
#define LOG_LEVEL 1 #define LOG_LEVEL 1
#define LLOGLN(_level, _args) \ #define LLOGLN(_level, _args) \

View File

@ -22,7 +22,11 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#ifndef __RDPPOLYFILLARC_H #ifndef __RDPPOLYFILLARC_H
#define __RDPPOLYFILLARC_H #define __RDPPOLYFILLARC_H
void #include <xorg-server.h>
#include <xorgVersion.h>
#include <xf86.h>
extern _X_EXPORT void
rdpPolyFillArc(DrawablePtr pDrawable, GCPtr pGC, int narcs, xArc* parcs); rdpPolyFillArc(DrawablePtr pDrawable, GCPtr pGC, int narcs, xArc* parcs);
#endif #endif

View File

@ -25,6 +25,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
/* this should be before all X11 .h files */ /* this should be before all X11 .h files */
#include <xorg-server.h> #include <xorg-server.h>
#include <xorgVersion.h>
/* all driver need this */ /* all driver need this */
#include <xf86.h> #include <xf86.h>
@ -34,6 +35,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include "rdpDraw.h" #include "rdpDraw.h"
#include "rdpClientCon.h" #include "rdpClientCon.h"
#include "rdpReg.h" #include "rdpReg.h"
#include "rdpPolyFillRect.h"
#define LOG_LEVEL 1 #define LOG_LEVEL 1
#define LLOGLN(_level, _args) \ #define LLOGLN(_level, _args) \

View File

@ -22,7 +22,11 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#ifndef __RDPPOLYFILLRECT_H #ifndef __RDPPOLYFILLRECT_H
#define __RDPPOLYFILLRECT_H #define __RDPPOLYFILLRECT_H
void #include <xorg-server.h>
#include <xorgVersion.h>
#include <xf86.h>
extern _X_EXPORT void
rdpPolyFillRect(DrawablePtr pDrawable, GCPtr pGC, int nrectFill, rdpPolyFillRect(DrawablePtr pDrawable, GCPtr pGC, int nrectFill,
xRectangle* prectInit); xRectangle* prectInit);

View File

@ -25,6 +25,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
/* this should be before all X11 .h files */ /* this should be before all X11 .h files */
#include <xorg-server.h> #include <xorg-server.h>
#include <xorgVersion.h>
/* all driver need this */ /* all driver need this */
#include <xf86.h> #include <xf86.h>
@ -34,6 +35,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include "rdpDraw.h" #include "rdpDraw.h"
#include "rdpClientCon.h" #include "rdpClientCon.h"
#include "rdpReg.h" #include "rdpReg.h"
#include "rdpPolyGlyphBlt.h"
#define LOG_LEVEL 1 #define LOG_LEVEL 1
#define LLOGLN(_level, _args) \ #define LLOGLN(_level, _args) \

View File

@ -22,7 +22,11 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#ifndef __RDPPOLYGLYPHBLT_H #ifndef __RDPPOLYGLYPHBLT_H
#define __RDPPOLYGLYPHBLT_H #define __RDPPOLYGLYPHBLT_H
void #include <xorg-server.h>
#include <xorgVersion.h>
#include <xf86.h>
extern _X_EXPORT void
rdpPolyGlyphBlt(DrawablePtr pDrawable, GCPtr pGC, rdpPolyGlyphBlt(DrawablePtr pDrawable, GCPtr pGC,
int x, int y, unsigned int nglyph, int x, int y, unsigned int nglyph,
CharInfoPtr* ppci, pointer pglyphBase); CharInfoPtr* ppci, pointer pglyphBase);

View File

@ -25,6 +25,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
/* this should be before all X11 .h files */ /* this should be before all X11 .h files */
#include <xorg-server.h> #include <xorg-server.h>
#include <xorgVersion.h>
/* all driver need this */ /* all driver need this */
#include <xf86.h> #include <xf86.h>
@ -34,6 +35,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include "rdpDraw.h" #include "rdpDraw.h"
#include "rdpClientCon.h" #include "rdpClientCon.h"
#include "rdpReg.h" #include "rdpReg.h"
#include "rdpPolyPoint.h"
#define LOG_LEVEL 1 #define LOG_LEVEL 1
#define LLOGLN(_level, _args) \ #define LLOGLN(_level, _args) \

View File

@ -22,7 +22,11 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#ifndef __RDPPOLYPOINT_H #ifndef __RDPPOLYPOINT_H
#define __RDPPOLYPOINT_H #define __RDPPOLYPOINT_H
void #include <xorg-server.h>
#include <xorgVersion.h>
#include <xf86.h>
extern _X_EXPORT void
rdpPolyPoint(DrawablePtr pDrawable, GCPtr pGC, int mode, rdpPolyPoint(DrawablePtr pDrawable, GCPtr pGC, int mode,
int npt, DDXPointPtr in_pts); int npt, DDXPointPtr in_pts);

View File

@ -25,6 +25,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
/* this should be before all X11 .h files */ /* this should be before all X11 .h files */
#include <xorg-server.h> #include <xorg-server.h>
#include <xorgVersion.h>
/* all driver need this */ /* all driver need this */
#include <xf86.h> #include <xf86.h>
@ -34,6 +35,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include "rdpDraw.h" #include "rdpDraw.h"
#include "rdpClientCon.h" #include "rdpClientCon.h"
#include "rdpReg.h" #include "rdpReg.h"
#include "rdpPolyRectangle.h"
#define LOG_LEVEL 1 #define LOG_LEVEL 1
#define LLOGLN(_level, _args) \ #define LLOGLN(_level, _args) \

View File

@ -22,7 +22,11 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#ifndef __RDPPOLYRECTANGLE_H #ifndef __RDPPOLYRECTANGLE_H
#define __RDPPOLYRECTANGLE_H #define __RDPPOLYRECTANGLE_H
void #include <xorg-server.h>
#include <xorgVersion.h>
#include <xf86.h>
extern _X_EXPORT void
rdpPolyRectangle(DrawablePtr pDrawable, GCPtr pGC, int nrects, rdpPolyRectangle(DrawablePtr pDrawable, GCPtr pGC, int nrects,
xRectangle* rects); xRectangle* rects);

View File

@ -25,6 +25,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
/* this should be before all X11 .h files */ /* this should be before all X11 .h files */
#include <xorg-server.h> #include <xorg-server.h>
#include <xorgVersion.h>
/* all driver need this */ /* all driver need this */
#include <xf86.h> #include <xf86.h>
@ -34,6 +35,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include "rdpDraw.h" #include "rdpDraw.h"
#include "rdpClientCon.h" #include "rdpClientCon.h"
#include "rdpReg.h" #include "rdpReg.h"
#include "rdpPolySegment.h"
#define LOG_LEVEL 1 #define LOG_LEVEL 1
#define LLOGLN(_level, _args) \ #define LLOGLN(_level, _args) \

View File

@ -22,7 +22,11 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#ifndef __RDPPOLYSEGMENT_H #ifndef __RDPPOLYSEGMENT_H
#define __RDPPOLYSEGMENT_H #define __RDPPOLYSEGMENT_H
void #include <xorg-server.h>
#include <xorgVersion.h>
#include <xf86.h>
extern _X_EXPORT void
rdpPolySegment(DrawablePtr pDrawable, GCPtr pGC, int nseg, xSegment* pSegs); rdpPolySegment(DrawablePtr pDrawable, GCPtr pGC, int nseg, xSegment* pSegs);
#endif #endif

View File

@ -25,6 +25,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
/* this should be before all X11 .h files */ /* this should be before all X11 .h files */
#include <xorg-server.h> #include <xorg-server.h>
#include <xorgVersion.h>
/* all driver need this */ /* all driver need this */
#include <xf86.h> #include <xf86.h>
@ -34,6 +35,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include "rdpDraw.h" #include "rdpDraw.h"
#include "rdpClientCon.h" #include "rdpClientCon.h"
#include "rdpReg.h" #include "rdpReg.h"
#include "rdpPolyText16.h"
#define LOG_LEVEL 1 #define LOG_LEVEL 1
#define LLOGLN(_level, _args) \ #define LLOGLN(_level, _args) \

View File

@ -22,7 +22,11 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#ifndef __RDPPOLYTEXT16_H #ifndef __RDPPOLYTEXT16_H
#define __RDPPOLYTEXT16_H #define __RDPPOLYTEXT16_H
int #include <xorg-server.h>
#include <xorgVersion.h>
#include <xf86.h>
extern _X_EXPORT int
rdpPolyText16(DrawablePtr pDrawable, GCPtr pGC, rdpPolyText16(DrawablePtr pDrawable, GCPtr pGC,
int x, int y, int count, unsigned short* chars); int x, int y, int count, unsigned short* chars);

View File

@ -25,6 +25,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
/* this should be before all X11 .h files */ /* this should be before all X11 .h files */
#include <xorg-server.h> #include <xorg-server.h>
#include <xorgVersion.h>
/* all driver need this */ /* all driver need this */
#include <xf86.h> #include <xf86.h>
@ -34,6 +35,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include "rdpDraw.h" #include "rdpDraw.h"
#include "rdpClientCon.h" #include "rdpClientCon.h"
#include "rdpReg.h" #include "rdpReg.h"
#include "rdpPolyText8.h"
#define LOG_LEVEL 1 #define LOG_LEVEL 1
#define LLOGLN(_level, _args) \ #define LLOGLN(_level, _args) \

View File

@ -22,6 +22,10 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#ifndef __RDPPOLYTEXT8_H #ifndef __RDPPOLYTEXT8_H
#define __RDPPOLYTEXT8_H #define __RDPPOLYTEXT8_H
#include <xorg-server.h>
#include <xorgVersion.h>
#include <xf86.h>
int int
rdpPolyText8(DrawablePtr pDrawable, GCPtr pGC, rdpPolyText8(DrawablePtr pDrawable, GCPtr pGC,
int x, int y, int count, char* chars); int x, int y, int count, char* chars);

View File

@ -25,6 +25,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
/* this should be before all X11 .h files */ /* this should be before all X11 .h files */
#include <xorg-server.h> #include <xorg-server.h>
#include <xorgVersion.h>
/* all driver need this */ /* all driver need this */
#include <xf86.h> #include <xf86.h>
@ -34,6 +35,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include "rdpDraw.h" #include "rdpDraw.h"
#include "rdpClientCon.h" #include "rdpClientCon.h"
#include "rdpReg.h" #include "rdpReg.h"
#include "rdpPolylines.h"
#define LOG_LEVEL 1 #define LOG_LEVEL 1
#define LLOGLN(_level, _args) \ #define LLOGLN(_level, _args) \

View File

@ -22,6 +22,10 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#ifndef __RDPPOLYLINES_H #ifndef __RDPPOLYLINES_H
#define __RDPPOLYLINES_H #define __RDPPOLYLINES_H
#include <xorg-server.h>
#include <xorgVersion.h>
#include <xf86.h>
void void
rdpPolylines(DrawablePtr pDrawable, GCPtr pGC, int mode, rdpPolylines(DrawablePtr pDrawable, GCPtr pGC, int mode,
int npt, DDXPointPtr pptInit); int npt, DDXPointPtr pptInit);

View File

@ -24,24 +24,28 @@ to deal with privates changing in xorg versions
#ifndef _XRDPPRI_H #ifndef _XRDPPRI_H
#define _XRDPPRI_H #define _XRDPPRI_H
#include <xorg-server.h>
#include <xorgVersion.h>
#include <xf86.h>
#include <screenint.h> #include <screenint.h>
#include <gc.h> #include <gc.h>
typedef void* rdpDevPrivateKey; typedef void* rdpDevPrivateKey;
rdpDevPrivateKey extern _X_EXPORT rdpDevPrivateKey
rdpAllocateGCPrivate(ScreenPtr pScreen, int bytes); rdpAllocateGCPrivate(ScreenPtr pScreen, int bytes);
rdpDevPrivateKey extern _X_EXPORT rdpDevPrivateKey
rdpAllocatePixmapPrivate(ScreenPtr pScreen, int bytes); rdpAllocatePixmapPrivate(ScreenPtr pScreen, int bytes);
rdpDevPrivateKey extern _X_EXPORT rdpDevPrivateKey
rdpAllocateWindowPrivate(ScreenPtr pScreen, int bytes); rdpAllocateWindowPrivate(ScreenPtr pScreen, int bytes);
void* extern _X_EXPORT void*
rdpGetGCPrivate(GCPtr pGC, rdpDevPrivateKey key); rdpGetGCPrivate(GCPtr pGC, rdpDevPrivateKey key);
void* extern _X_EXPORT void*
rdpGetPixmapPrivate(PixmapPtr pPixmap, rdpDevPrivateKey key); rdpGetPixmapPrivate(PixmapPtr pPixmap, rdpDevPrivateKey key);
void* extern _X_EXPORT void*
rdpGetWindowPrivate(WindowPtr pWindow, rdpDevPrivateKey key); rdpGetWindowPrivate(WindowPtr pWindow, rdpDevPrivateKey key);
int extern _X_EXPORT int
rdpPrivateInit(void); rdpPrivateInit(void);
#endif #endif

View File

@ -25,6 +25,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
/* this should be before all X11 .h files */ /* this should be before all X11 .h files */
#include <xorg-server.h> #include <xorg-server.h>
#include <xorgVersion.h>
/* all driver need this */ /* all driver need this */
#include <xf86.h> #include <xf86.h>
@ -32,13 +33,14 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include "rdp.h" #include "rdp.h"
#include "rdpDraw.h" #include "rdpDraw.h"
#include "rdpPushPixels.h"
#define LOG_LEVEL 1 #define LOG_LEVEL 1
#define LLOGLN(_level, _args) \ #define LLOGLN(_level, _args) \
do { if (_level < LOG_LEVEL) { ErrorF _args ; ErrorF("\n"); } } while (0) do { if (_level < LOG_LEVEL) { ErrorF _args ; ErrorF("\n"); } } while (0)
/******************************************************************************/ /******************************************************************************/
void static void
rdpPushPixelsOrg(GCPtr pGC, PixmapPtr pBitMap, DrawablePtr pDst, rdpPushPixelsOrg(GCPtr pGC, PixmapPtr pBitMap, DrawablePtr pDst,
int w, int h, int x, int y) int w, int h, int x, int y)
{ {

View File

@ -22,7 +22,11 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#ifndef __RDPPUSHPIXELS_H #ifndef __RDPPUSHPIXELS_H
#define __RDPPUSHPIXELS_H #define __RDPPUSHPIXELS_H
void #include <xorg-server.h>
#include <xorgVersion.h>
#include <xf86.h>
extern _X_EXPORT void
rdpPushPixels(GCPtr pGC, PixmapPtr pBitMap, DrawablePtr pDst, rdpPushPixels(GCPtr pGC, PixmapPtr pBitMap, DrawablePtr pDst,
int w, int h, int x, int y); int w, int h, int x, int y);

View File

@ -25,6 +25,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
/* this should be before all X11 .h files */ /* this should be before all X11 .h files */
#include <xorg-server.h> #include <xorg-server.h>
#include <xorgVersion.h>
/* all driver need this */ /* all driver need this */
#include <xf86.h> #include <xf86.h>
@ -34,6 +35,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include "rdpDraw.h" #include "rdpDraw.h"
#include "rdpClientCon.h" #include "rdpClientCon.h"
#include "rdpReg.h" #include "rdpReg.h"
#include "rdpPutImage.h"
#define LOG_LEVEL 1 #define LOG_LEVEL 1
#define LLOGLN(_level, _args) \ #define LLOGLN(_level, _args) \

View File

@ -22,7 +22,11 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#ifndef __RDPPUTIMAGE_H #ifndef __RDPPUTIMAGE_H
#define __RDPPUTIMAGE_H #define __RDPPUTIMAGE_H
void #include <xorg-server.h>
#include <xorgVersion.h>
#include <xf86.h>
extern _X_EXPORT void
rdpPutImage(DrawablePtr pDst, GCPtr pGC, int depth, int x, int y, rdpPutImage(DrawablePtr pDst, GCPtr pGC, int depth, int x, int y,
int w, int h, int leftPad, int format, char* pBits); int w, int h, int leftPad, int format, char* pBits);

View File

@ -42,6 +42,7 @@ RandR draw calls
#include "rdpDraw.h" #include "rdpDraw.h"
#include "rdpReg.h" #include "rdpReg.h"
#include "rdpMisc.h" #include "rdpMisc.h"
#include "rdpRandR.h"
/******************************************************************************/ /******************************************************************************/
#define LOG_LEVEL 1 #define LOG_LEVEL 1
@ -119,8 +120,9 @@ rdpRRScreenSetSize(ScreenPtr pScreen, CARD16 width, CARD16 height,
pScreen->mmWidth = mmWidth; pScreen->mmWidth = mmWidth;
pScreen->mmHeight = mmHeight; pScreen->mmHeight = mmHeight;
screenPixmap = pScreen->GetScreenPixmap(pScreen); screenPixmap = pScreen->GetScreenPixmap(pScreen);
g_free(dev->pfbMemory); g_free(dev->pfbMemory_alloc);
dev->pfbMemory = (char *) g_malloc(dev->sizeInBytes, 1); dev->pfbMemory_alloc = (char *) g_malloc(dev->sizeInBytes + 16, 1);
dev->pfbMemory = (char *) RDPALIGN(dev->pfbMemory_alloc, 16);
if (screenPixmap != 0) if (screenPixmap != 0)
{ {
pScreen->ModifyPixmapHeader(screenPixmap, width, height, pScreen->ModifyPixmapHeader(screenPixmap, width, height,

Some files were not shown because too many files have changed in this diff Show More