summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorspeidy <speidy@gmail.com>2014-12-13 16:24:35 +0200
committerspeidy <speidy@gmail.com>2014-12-13 16:24:35 +0200
commit83eb128d7c51beca4dad7c9f3ab72c85942326c7 (patch)
tree68038df7e04a224a8e9967b7cebb545a7ea40ca1
parentfb306e624ef60552d4a09e09d7ba0ca932c30328 (diff)
parente7c144ef3364d01f090c3d840bb36351b38ff67e (diff)
downloadxrdp-proprietary-83eb128d7c51beca4dad7c9f3ab72c85942326c7.tar.gz
xrdp-proprietary-83eb128d7c51beca4dad7c9f3ab72c85942326c7.zip
Merge branch 'devel' of https://github.com/neutrinolabs/xrdp.git into devel
-rwxr-xr-xgenkeymap/dump-keymaps.sh7
-rw-r--r--instfiles/Makefile.am6
-rw-r--r--instfiles/km-0411.ini1055
-rw-r--r--instfiles/km-e0010411.ini1055
-rw-r--r--instfiles/km-e0200411.ini1055
-rw-r--r--instfiles/km-e0210411.ini1055
-rw-r--r--instfiles/pulse/default.pa7
-rw-r--r--xorg/server/Makefile.am7
-rwxr-xr-xxorg/server/bootstrap36
-rw-r--r--xorg/server/configure.ac35
-rw-r--r--xorg/server/module/Makefile.am22
-rw-r--r--xorg/server/module/amd64/cpuid_amd64.asm41
-rw-r--r--xorg/server/module/amd64/funcs_amd64.h39
-rw-r--r--xorg/server/module/amd64/i420_to_rgb32_amd64_sse2.asm248
-rw-r--r--xorg/server/module/amd64/uyvy_to_rgb32_amd64_sse2.asm17
-rw-r--r--xorg/server/module/amd64/yuy2_to_rgb32_amd64_sse2.asm17
-rw-r--r--xorg/server/module/amd64/yv12_to_rgb32_amd64_sse2.asm248
-rw-r--r--xorg/server/module/rdp.h372
-rw-r--r--xorg/server/module/rdpCapture.c788
-rw-r--r--xorg/server/module/rdpCapture.h41
-rw-r--r--xorg/server/module/rdpClientCon.c2283
-rw-r--r--xorg/server/module/rdpClientCon.h168
-rw-r--r--xorg/server/module/rdpComposite.c94
-rw-r--r--xorg/server/module/rdpComposite.h36
-rw-r--r--xorg/server/module/rdpCopyArea.c94
-rw-r--r--xorg/server/module/rdpCopyArea.h33
-rw-r--r--xorg/server/module/rdpCopyPlane.c98
-rw-r--r--xorg/server/module/rdpCopyPlane.h34
-rw-r--r--xorg/server/module/rdpCursor.c358
-rw-r--r--xorg/server/module/rdpCursor.h45
-rw-r--r--xorg/server/module/rdpDraw.c411
-rw-r--r--xorg/server/module/rdpDraw.h93
-rw-r--r--xorg/server/module/rdpFillPolygon.c119
-rw-r--r--xorg/server/module/rdpFillPolygon.h34
-rw-r--r--xorg/server/module/rdpFillSpans.c62
-rw-r--r--xorg/server/module/rdpFillSpans.h33
-rw-r--r--xorg/server/module/rdpGC.c235
-rw-r--r--xorg/server/module/rdpGC.h34
-rw-r--r--xorg/server/module/rdpGlyphs.c105
-rw-r--r--xorg/server/module/rdpGlyphs.h66
-rw-r--r--xorg/server/module/rdpImageGlyphBlt.c89
-rw-r--r--xorg/server/module/rdpImageGlyphBlt.h34
-rw-r--r--xorg/server/module/rdpImageText16.c87
-rw-r--r--xorg/server/module/rdpImageText16.h33
-rw-r--r--xorg/server/module/rdpImageText8.c87
-rw-r--r--xorg/server/module/rdpImageText8.h33
-rw-r--r--xorg/server/module/rdpInput.c133
-rw-r--r--xorg/server/module/rdpInput.h50
-rw-r--r--xorg/server/module/rdpMain.c111
-rw-r--r--xorg/server/module/rdpMain.h34
-rw-r--r--xorg/server/module/rdpMisc.c446
-rw-r--r--xorg/server/module/rdpMisc.h265
-rw-r--r--xorg/server/module/rdpPixmap.c122
-rw-r--r--xorg/server/module/rdpPixmap.h53
-rw-r--r--xorg/server/module/rdpPolyArc.c104
-rw-r--r--xorg/server/module/rdpPolyArc.h32
-rw-r--r--xorg/server/module/rdpPolyFillArc.c104
-rw-r--r--xorg/server/module/rdpPolyFillArc.h32
-rw-r--r--xorg/server/module/rdpPolyFillRect.c87
-rw-r--r--xorg/server/module/rdpPolyFillRect.h33
-rw-r--r--xorg/server/module/rdpPolyGlyphBlt.c89
-rw-r--r--xorg/server/module/rdpPolyGlyphBlt.h34
-rw-r--r--xorg/server/module/rdpPolyPoint.c95
-rw-r--r--xorg/server/module/rdpPolyPoint.h33
-rw-r--r--xorg/server/module/rdpPolyRectangle.c134
-rw-r--r--xorg/server/module/rdpPolyRectangle.h33
-rw-r--r--xorg/server/module/rdpPolySegment.c101
-rw-r--r--xorg/server/module/rdpPolySegment.h32
-rw-r--r--xorg/server/module/rdpPolyText16.c91
-rw-r--r--xorg/server/module/rdpPolyText16.h33
-rw-r--r--xorg/server/module/rdpPolyText8.c91
-rw-r--r--xorg/server/module/rdpPolyText8.h33
-rw-r--r--xorg/server/module/rdpPolylines.c103
-rw-r--r--xorg/server/module/rdpPolylines.h33
-rw-r--r--xorg/server/module/rdpPri.c177
-rw-r--r--xorg/server/module/rdpPri.h51
-rw-r--r--xorg/server/module/rdpPushPixels.c62
-rw-r--r--xorg/server/module/rdpPushPixels.h33
-rw-r--r--xorg/server/module/rdpPutImage.c91
-rw-r--r--xorg/server/module/rdpPutImage.h33
-rw-r--r--xorg/server/module/rdpRandR.c273
-rw-r--r--xorg/server/module/rdpRandR.h64
-rw-r--r--xorg/server/module/rdpReg.c267
-rw-r--r--xorg/server/module/rdpReg.h68
-rw-r--r--xorg/server/module/rdpSetSpans.c64
-rw-r--r--xorg/server/module/rdpSetSpans.h33
-rw-r--r--xorg/server/module/rdpSimd.c110
-rw-r--r--xorg/server/module/rdpSimd.h34
-rw-r--r--xorg/server/module/rdpTrapezoids.c88
-rw-r--r--xorg/server/module/rdpTrapezoids.h34
-rw-r--r--xorg/server/module/rdpXv.c690
-rw-r--r--xorg/server/module/rdpXv.h42
-rw-r--r--xorg/server/module/x86/a8r8g8b8_to_a8b8g8r8_box_x86_sse2.asm174
-rw-r--r--xorg/server/module/x86/cpuid_x86.asm39
-rw-r--r--xorg/server/module/x86/funcs_x86.h43
-rw-r--r--xorg/server/module/x86/i420_to_rgb32_x86_sse2.asm243
-rw-r--r--xorg/server/module/x86/uyvy_to_rgb32_x86_sse2.asm22
-rw-r--r--xorg/server/module/x86/yuy2_to_rgb32_x86_sse2.asm22
-rw-r--r--xorg/server/module/x86/yv12_to_rgb32_x86_sse2.asm243
-rw-r--r--xorg/server/readme.txt100
-rwxr-xr-xxorg/server/test-in-home.sh41
-rw-r--r--xorg/server/xrdpdev/Makefile.am17
-rw-r--r--xorg/server/xrdpdev/xorg.conf68
-rw-r--r--xorg/server/xrdpdev/xrdpdev.c779
-rw-r--r--xorg/server/xrdpkeyb/Makefile.am16
-rw-r--r--xorg/server/xrdpkeyb/rdpKeyboard.c732
-rw-r--r--xorg/server/xrdpmouse/Makefile.am16
-rw-r--r--xorg/server/xrdpmouse/rdpMouse.c367
-rw-r--r--xrdp/xrdp_keyboard.ini9
109 files changed, 4247 insertions, 14388 deletions
diff --git a/genkeymap/dump-keymaps.sh b/genkeymap/dump-keymaps.sh
index a78caa95..8a7d1c41 100755
--- a/genkeymap/dump-keymaps.sh
+++ b/genkeymap/dump-keymaps.sh
@@ -19,6 +19,13 @@ setxkbmap -model pc104 -layout de
setxkbmap -model pc104 -layout it
./xrdp-genkeymap ../instfiles/km-0410.ini
+# Japanese 'jp' 0x0411
+setxkbmap -model jp106 -layout jp -variant OADG109A
+./xrdp-genkeymap ../instfiles/km-0411.ini
+./xrdp-genkeymap ../instfiles/km-e0010411.ini
+./xrdp-genkeymap ../instfiles/km-e0200411.ini
+./xrdp-genkeymap ../instfiles/km-e0210411.ini
+
# Polish 'pl' 0x0415
setxkbmap -model pc104 -layout pl
./xrdp-genkeymap ../instfiles/km-0415.ini
diff --git a/instfiles/Makefile.am b/instfiles/Makefile.am
index 8b303f63..85b5ffaa 100644
--- a/instfiles/Makefile.am
+++ b/instfiles/Makefile.am
@@ -22,10 +22,14 @@ startscript_DATA = \
km-0409.ini \
km-040c.ini \
km-0410.ini \
+ km-0411.ini \
km-0415.ini \
km-0419.ini \
km-041d.ini \
- km-0816.ini
+ km-0816.ini \
+ km-e0010411.ini \
+ km-e0200411.ini \
+ km-e0210411.ini
# must be tab below
install-data-hook:
diff --git a/instfiles/km-0411.ini b/instfiles/km-0411.ini
new file mode 100644
index 00000000..50ba669f
--- /dev/null
+++ b/instfiles/km-0411.ini
@@ -0,0 +1,1055 @@
+[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=94:94
+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=64:64
+Key35=91:91
+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=58:58
+Key49=65322:0
+Key50=65505:0
+Key51=93:93
+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=65328: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=65514:0
+Key114=269025049:0
+Key115=65515:0
+Key116=65516:0
+Key117=0:0
+Key118=269025153:0
+Key119=269025093:0
+Key120=269025094:0
+Key121=269025095:0
+Key122=269025096:0
+Key123=92:92
+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=165:165
+Key134=0:0
+Key135=0:0
+Key136=0:0
+Key137=0:0
+
+[shift]
+Key8=65406:0
+Key9=65307:27
+Key10=33:33
+Key11=34:34
+Key12=35:35
+Key13=36:36
+Key14=37:37
+Key15=38:38
+Key16=39:39
+Key17=40:40
+Key18=41:41
+Key19=48:48
+Key20=61:61
+Key21=126:126
+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=96:96
+Key35=123:123
+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=43:43
+Key48=42:42
+Key49=65322:0
+Key50=65505:0
+Key51=125:125
+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=65511: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=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=65512:0
+Key114=269025049:0
+Key115=65515:0
+Key116=65516:0
+Key117=0:0
+Key118=269025153:0
+Key119=269025093:0
+Key120=269025094:0
+Key121=269025095:0
+Key122=269025096:0
+Key123=95:95
+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=124:124
+Key134=0:0
+Key135=0:0
+Key136=0:0
+Key137=0:0
+
+[altgr]
+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=94:94
+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=64:64
+Key35=91:91
+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=58:58
+Key49=65322:0
+Key50=65505:0
+Key51=93:93
+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=65328: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=65514:0
+Key114=269025049:0
+Key115=65515:0
+Key116=65516: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=165:165
+Key134=0:0
+Key135=0:0
+Key136=0:0
+Key137=0:0
+
+[shiftaltgr]
+Key8=65406:0
+Key9=65307:27
+Key10=33:33
+Key11=34:34
+Key12=35:35
+Key13=36:36
+Key14=37:37
+Key15=38:38
+Key16=39:39
+Key17=40:40
+Key18=41:41
+Key19=48:48
+Key20=61:61
+Key21=126:126
+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=96:96
+Key35=123:123
+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=43:43
+Key48=42:42
+Key49=65322:0
+Key50=65505:0
+Key51=125:125
+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=65511: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=65512:0
+Key114=269025049:0
+Key115=65515:0
+Key116=65516: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=124:124
+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=94:94
+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=64:64
+Key35=91:91
+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=58:58
+Key49=65322:0
+Key50=65505:0
+Key51=93:93
+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=65328: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=65514:0
+Key114=269025049:0
+Key115=65515:0
+Key116=65516: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=165:165
+Key134=0:0
+Key135=0:0
+Key136=0:0
+Key137=0:0
+
+[capslockaltgr]
+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=94:94
+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=64:64
+Key35=91:91
+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=58:58
+Key49=65322:0
+Key50=65505:0
+Key51=93:93
+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=65328: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=65514:0
+Key114=269025049:0
+Key115=65515:0
+Key116=65516: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=165:165
+Key134=0:0
+Key135=0:0
+Key136=0:0
+Key137=0:0
+
+[shiftcapslock]
+Key8=65406:0
+Key9=65307:27
+Key10=33:33
+Key11=34:34
+Key12=35:35
+Key13=36:36
+Key14=37:37
+Key15=38:38
+Key16=39:39
+Key17=40:40
+Key18=41:41
+Key19=48:48
+Key20=61:61
+Key21=126:126
+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=96:96
+Key35=123:123
+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=43:43
+Key48=42:42
+Key49=65322:0
+Key50=65505:0
+Key51=125:125
+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=65511: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=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=65512:0
+Key114=269025049:0
+Key115=65515:0
+Key116=65516: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=124:124
+Key134=0:0
+Key135=0:0
+Key136=0:0
+Key137=0:0
+
+[shiftcapslockaltgr]
+Key8=65406:0
+Key9=65307:27
+Key10=33:33
+Key11=34:34
+Key12=35:35
+Key13=36:36
+Key14=37:37
+Key15=38:38
+Key16=39:39
+Key17=40:40
+Key18=41:41
+Key19=48:48
+Key20=61:61
+Key21=126:126
+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=96:96
+Key35=123:123
+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=43:43
+Key48=42:42
+Key49=65322:0
+Key50=65505:0
+Key51=125:125
+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=65511: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=65512:0
+Key114=269025049:0
+Key115=65515:0
+Key116=65516: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=124:124
+Key134=0:0
+Key135=0:0
+Key136=0:0
+Key137=0:0
diff --git a/instfiles/km-e0010411.ini b/instfiles/km-e0010411.ini
new file mode 100644
index 00000000..50ba669f
--- /dev/null
+++ b/instfiles/km-e0010411.ini
@@ -0,0 +1,1055 @@
+[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=94:94
+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=64:64
+Key35=91:91
+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=58:58
+Key49=65322:0
+Key50=65505:0
+Key51=93:93
+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=65328: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=65514:0
+Key114=269025049:0
+Key115=65515:0
+Key116=65516:0
+Key117=0:0
+Key118=269025153:0
+Key119=269025093:0
+Key120=269025094:0
+Key121=269025095:0
+Key122=269025096:0
+Key123=92:92
+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=165:165
+Key134=0:0
+Key135=0:0
+Key136=0:0
+Key137=0:0
+
+[shift]
+Key8=65406:0
+Key9=65307:27
+Key10=33:33
+Key11=34:34
+Key12=35:35
+Key13=36:36
+Key14=37:37
+Key15=38:38
+Key16=39:39
+Key17=40:40
+Key18=41:41
+Key19=48:48
+Key20=61:61
+Key21=126:126
+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=96:96
+Key35=123:123
+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=43:43
+Key48=42:42
+Key49=65322:0
+Key50=65505:0
+Key51=125:125
+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=65511: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=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=65512:0
+Key114=269025049:0
+Key115=65515:0
+Key116=65516:0
+Key117=0:0
+Key118=269025153:0
+Key119=269025093:0
+Key120=269025094:0
+Key121=269025095:0
+Key122=269025096:0
+Key123=95:95
+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=124:124
+Key134=0:0
+Key135=0:0
+Key136=0:0
+Key137=0:0
+
+[altgr]
+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=94:94
+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=64:64
+Key35=91:91
+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=58:58
+Key49=65322:0
+Key50=65505:0
+Key51=93:93
+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=65328: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=65514:0
+Key114=269025049:0
+Key115=65515:0
+Key116=65516: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=165:165
+Key134=0:0
+Key135=0:0
+Key136=0:0
+Key137=0:0
+
+[shiftaltgr]
+Key8=65406:0
+Key9=65307:27
+Key10=33:33
+Key11=34:34
+Key12=35:35
+Key13=36:36
+Key14=37:37
+Key15=38:38
+Key16=39:39
+Key17=40:40
+Key18=41:41
+Key19=48:48
+Key20=61:61
+Key21=126:126
+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=96:96
+Key35=123:123
+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=43:43
+Key48=42:42
+Key49=65322:0
+Key50=65505:0
+Key51=125:125
+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=65511: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=65512:0
+Key114=269025049:0
+Key115=65515:0
+Key116=65516: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=124:124
+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=94:94
+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=64:64
+Key35=91:91
+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=58:58
+Key49=65322:0
+Key50=65505:0
+Key51=93:93
+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=65328: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=65514:0
+Key114=269025049:0
+Key115=65515:0
+Key116=65516: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=165:165
+Key134=0:0
+Key135=0:0
+Key136=0:0
+Key137=0:0
+
+[capslockaltgr]
+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=94:94
+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=64:64
+Key35=91:91
+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=58:58
+Key49=65322:0
+Key50=65505:0
+Key51=93:93
+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=65328: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=65514:0
+Key114=269025049:0
+Key115=65515:0
+Key116=65516: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=165:165
+Key134=0:0
+Key135=0:0
+Key136=0:0
+Key137=0:0
+
+[shiftcapslock]
+Key8=65406:0
+Key9=65307:27
+Key10=33:33
+Key11=34:34
+Key12=35:35
+Key13=36:36
+Key14=37:37
+Key15=38:38
+Key16=39:39
+Key17=40:40
+Key18=41:41
+Key19=48:48
+Key20=61:61
+Key21=126:126
+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=96:96
+Key35=123:123
+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=43:43
+Key48=42:42
+Key49=65322:0
+Key50=65505:0
+Key51=125:125
+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=65511: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=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=65512:0
+Key114=269025049:0
+Key115=65515:0
+Key116=65516: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=124:124
+Key134=0:0
+Key135=0:0
+Key136=0:0
+Key137=0:0
+
+[shiftcapslockaltgr]
+Key8=65406:0
+Key9=65307:27
+Key10=33:33
+Key11=34:34
+Key12=35:35
+Key13=36:36
+Key14=37:37
+Key15=38:38
+Key16=39:39
+Key17=40:40
+Key18=41:41
+Key19=48:48
+Key20=61:61
+Key21=126:126
+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=96:96
+Key35=123:123
+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=43:43
+Key48=42:42
+Key49=65322:0
+Key50=65505:0
+Key51=125:125
+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=65511: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=65512:0
+Key114=269025049:0
+Key115=65515:0
+Key116=65516: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=124:124
+Key134=0:0
+Key135=0:0
+Key136=0:0
+Key137=0:0
diff --git a/instfiles/km-e0200411.ini b/instfiles/km-e0200411.ini
new file mode 100644
index 00000000..50ba669f
--- /dev/null
+++ b/instfiles/km-e0200411.ini
@@ -0,0 +1,1055 @@
+[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=94:94
+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=64:64
+Key35=91:91
+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=58:58
+Key49=65322:0
+Key50=65505:0
+Key51=93:93
+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=65328: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=65514:0
+Key114=269025049:0
+Key115=65515:0
+Key116=65516:0
+Key117=0:0
+Key118=269025153:0
+Key119=269025093:0
+Key120=269025094:0
+Key121=269025095:0
+Key122=269025096:0
+Key123=92:92
+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=165:165
+Key134=0:0
+Key135=0:0
+Key136=0:0
+Key137=0:0
+
+[shift]
+Key8=65406:0
+Key9=65307:27
+Key10=33:33
+Key11=34:34
+Key12=35:35
+Key13=36:36
+Key14=37:37
+Key15=38:38
+Key16=39:39
+Key17=40:40
+Key18=41:41
+Key19=48:48
+Key20=61:61
+Key21=126:126
+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=96:96
+Key35=123:123
+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=43:43
+Key48=42:42
+Key49=65322:0
+Key50=65505:0
+Key51=125:125
+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=65511: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=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=65512:0
+Key114=269025049:0
+Key115=65515:0
+Key116=65516:0
+Key117=0:0
+Key118=269025153:0
+Key119=269025093:0
+Key120=269025094:0
+Key121=269025095:0
+Key122=269025096:0
+Key123=95:95
+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=124:124
+Key134=0:0
+Key135=0:0
+Key136=0:0
+Key137=0:0
+
+[altgr]
+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=94:94
+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=64:64
+Key35=91:91
+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=58:58
+Key49=65322:0
+Key50=65505:0
+Key51=93:93
+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=65328: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=65514:0
+Key114=269025049:0
+Key115=65515:0
+Key116=65516: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=165:165
+Key134=0:0
+Key135=0:0
+Key136=0:0
+Key137=0:0
+
+[shiftaltgr]
+Key8=65406:0
+Key9=65307:27
+Key10=33:33
+Key11=34:34
+Key12=35:35
+Key13=36:36
+Key14=37:37
+Key15=38:38
+Key16=39:39
+Key17=40:40
+Key18=41:41
+Key19=48:48
+Key20=61:61
+Key21=126:126
+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=96:96
+Key35=123:123
+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=43:43
+Key48=42:42
+Key49=65322:0
+Key50=65505:0
+Key51=125:125
+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=65511: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=65512:0
+Key114=269025049:0
+Key115=65515:0
+Key116=65516: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=124:124
+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=94:94
+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=64:64
+Key35=91:91
+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=58:58
+Key49=65322:0
+Key50=65505:0
+Key51=93:93
+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=65328: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=65514:0
+Key114=269025049:0
+Key115=65515:0
+Key116=65516: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=165:165
+Key134=0:0
+Key135=0:0
+Key136=0:0
+Key137=0:0
+
+[capslockaltgr]
+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=94:94
+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=64:64
+Key35=91:91
+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=58:58
+Key49=65322:0
+Key50=65505:0
+Key51=93:93
+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=65328: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=65514:0
+Key114=269025049:0
+Key115=65515:0
+Key116=65516: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=165:165
+Key134=0:0
+Key135=0:0
+Key136=0:0
+Key137=0:0
+
+[shiftcapslock]
+Key8=65406:0
+Key9=65307:27
+Key10=33:33
+Key11=34:34
+Key12=35:35
+Key13=36:36
+Key14=37:37
+Key15=38:38
+Key16=39:39
+Key17=40:40
+Key18=41:41
+Key19=48:48
+Key20=61:61
+Key21=126:126
+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=96:96
+Key35=123:123
+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=43:43
+Key48=42:42
+Key49=65322:0
+Key50=65505:0
+Key51=125:125
+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=65511: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=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=65512:0
+Key114=269025049:0
+Key115=65515:0
+Key116=65516: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=124:124
+Key134=0:0
+Key135=0:0
+Key136=0:0
+Key137=0:0
+
+[shiftcapslockaltgr]
+Key8=65406:0
+Key9=65307:27
+Key10=33:33
+Key11=34:34
+Key12=35:35
+Key13=36:36
+Key14=37:37
+Key15=38:38
+Key16=39:39
+Key17=40:40
+Key18=41:41
+Key19=48:48
+Key20=61:61
+Key21=126:126
+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=96:96
+Key35=123:123
+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=43:43
+Key48=42:42
+Key49=65322:0
+Key50=65505:0
+Key51=125:125
+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=65511: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=65512:0
+Key114=269025049:0
+Key115=65515:0
+Key116=65516: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=124:124
+Key134=0:0
+Key135=0:0
+Key136=0:0
+Key137=0:0
diff --git a/instfiles/km-e0210411.ini b/instfiles/km-e0210411.ini
new file mode 100644
index 00000000..50ba669f
--- /dev/null
+++ b/instfiles/km-e0210411.ini
@@ -0,0 +1,1055 @@
+[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=94:94
+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=64:64
+Key35=91:91
+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=58:58
+Key49=65322:0
+Key50=65505:0
+Key51=93:93
+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=65328: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=65514:0
+Key114=269025049:0
+Key115=65515:0
+Key116=65516:0
+Key117=0:0
+Key118=269025153:0
+Key119=269025093:0
+Key120=269025094:0
+Key121=269025095:0
+Key122=269025096:0
+Key123=92:92
+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=165:165
+Key134=0:0
+Key135=0:0
+Key136=0:0
+Key137=0:0
+
+[shift]
+Key8=65406:0
+Key9=65307:27
+Key10=33:33
+Key11=34:34
+Key12=35:35
+Key13=36:36
+Key14=37:37
+Key15=38:38
+Key16=39:39
+Key17=40:40
+Key18=41:41
+Key19=48:48
+Key20=61:61
+Key21=126:126
+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=96:96
+Key35=123:123
+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=43:43
+Key48=42:42
+Key49=65322:0
+Key50=65505:0
+Key51=125:125
+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=65511: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=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=65512:0
+Key114=269025049:0
+Key115=65515:0
+Key116=65516:0
+Key117=0:0
+Key118=269025153:0
+Key119=269025093:0
+Key120=269025094:0
+Key121=269025095:0
+Key122=269025096:0
+Key123=95:95
+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=124:124
+Key134=0:0
+Key135=0:0
+Key136=0:0
+Key137=0:0
+
+[altgr]
+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=94:94
+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=64:64
+Key35=91:91
+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=58:58
+Key49=65322:0
+Key50=65505:0
+Key51=93:93
+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=65328: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=65514:0
+Key114=269025049:0
+Key115=65515:0
+Key116=65516: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=165:165
+Key134=0:0
+Key135=0:0
+Key136=0:0
+Key137=0:0
+
+[shiftaltgr]
+Key8=65406:0
+Key9=65307:27
+Key10=33:33
+Key11=34:34
+Key12=35:35
+Key13=36:36
+Key14=37:37
+Key15=38:38
+Key16=39:39
+Key17=40:40
+Key18=41:41
+Key19=48:48
+Key20=61:61
+Key21=126:126
+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=96:96
+Key35=123:123
+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=43:43
+Key48=42:42
+Key49=65322:0
+Key50=65505:0
+Key51=125:125
+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=65511: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=65512:0
+Key114=269025049:0
+Key115=65515:0
+Key116=65516: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=124:124
+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=94:94
+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=64:64
+Key35=91:91
+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=58:58
+Key49=65322:0
+Key50=65505:0
+Key51=93:93
+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=65328: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=65514:0
+Key114=269025049:0
+Key115=65515:0
+Key116=65516: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=165:165
+Key134=0:0
+Key135=0:0
+Key136=0:0
+Key137=0:0
+
+[capslockaltgr]
+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=94:94
+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=64:64
+Key35=91:91
+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=58:58
+Key49=65322:0
+Key50=65505:0
+Key51=93:93
+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=65328: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=65514:0
+Key114=269025049:0
+Key115=65515:0
+Key116=65516: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=165:165
+Key134=0:0
+Key135=0:0
+Key136=0:0
+Key137=0:0
+
+[shiftcapslock]
+Key8=65406:0
+Key9=65307:27
+Key10=33:33
+Key11=34:34
+Key12=35:35
+Key13=36:36
+Key14=37:37
+Key15=38:38
+Key16=39:39
+Key17=40:40
+Key18=41:41
+Key19=48:48
+Key20=61:61
+Key21=126:126
+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=96:96
+Key35=123:123
+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=43:43
+Key48=42:42
+Key49=65322:0
+Key50=65505:0
+Key51=125:125
+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=65511: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=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=65512:0
+Key114=269025049:0
+Key115=65515:0
+Key116=65516: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=124:124
+Key134=0:0
+Key135=0:0
+Key136=0:0
+Key137=0:0
+
+[shiftcapslockaltgr]
+Key8=65406:0
+Key9=65307:27
+Key10=33:33
+Key11=34:34
+Key12=35:35
+Key13=36:36
+Key14=37:37
+Key15=38:38
+Key16=39:39
+Key17=40:40
+Key18=41:41
+Key19=48:48
+Key20=61:61
+Key21=126:126
+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=96:96
+Key35=123:123
+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=43:43
+Key48=42:42
+Key49=65322:0
+Key50=65505:0
+Key51=125:125
+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=65511: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=65512:0
+Key114=269025049:0
+Key115=65515:0
+Key116=65516: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=124:124
+Key134=0:0
+Key135=0:0
+Key136=0:0
+Key137=0:0
diff --git a/instfiles/pulse/default.pa b/instfiles/pulse/default.pa
index 38e9f790..08741741 100644
--- a/instfiles/pulse/default.pa
+++ b/instfiles/pulse/default.pa
@@ -1,7 +1,12 @@
.nofail
.fail
load-module module-augment-properties
+load-module module-always-sink
+.ifexists module-xrdp-sink.so
load-module module-xrdp-sink
+.endif
+.ifexists module-xrdp-source.so
load-module module-xrdp-source
-load-module module-always-sink
+.endif
load-module module-native-protocol-unix
+
diff --git a/xorg/server/Makefile.am b/xorg/server/Makefile.am
deleted file mode 100644
index bee2ef75..00000000
--- a/xorg/server/Makefile.am
+++ /dev/null
@@ -1,7 +0,0 @@
-EXTRA_DIST = bootstrap readme.txt
-
-SUBDIRS = \
- module \
- xrdpdev \
- xrdpkeyb \
- xrdpmouse
diff --git a/xorg/server/bootstrap b/xorg/server/bootstrap
deleted file mode 100755
index ec344d3d..00000000
--- a/xorg/server/bootstrap
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/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
diff --git a/xorg/server/configure.ac b/xorg/server/configure.ac
deleted file mode 100644
index cb78dccf..00000000
--- a/xorg/server/configure.ac
+++ /dev/null
@@ -1,35 +0,0 @@
-# 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
-
diff --git a/xorg/server/module/Makefile.am b/xorg/server/module/Makefile.am
deleted file mode 100644
index 07b24edc..00000000
--- a/xorg/server/module/Makefile.am
+++ /dev/null
@@ -1,22 +0,0 @@
-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 =
diff --git a/xorg/server/module/amd64/cpuid_amd64.asm b/xorg/server/module/amd64/cpuid_amd64.asm
deleted file mode 100644
index b97937ad..00000000
--- a/xorg/server/module/amd64/cpuid_amd64.asm
+++ /dev/null
@@ -1,41 +0,0 @@
-
-SECTION .text
-
-%macro PROC 1
- align 16
- global %1
- %1:
-%endmacro
-
-;The first six integer or pointer arguments are passed in registers
-;RDI, RSI, RDX, RCX, R8, and R9
-
-;int
-;cpuid_amd64(int eax_in, int ecx_in, int *eax, int *ebx, int *ecx, int *edx)
-
-PROC cpuid_amd64
- ; save registers
- push rbx
-
- push rdx
- push rcx
- push r8
- push r9
-
- mov rax, rdi
- mov rcx, rsi
- cpuid
- pop rdi
- mov [rdi], edx
- pop rdi
- mov [rdi], ecx
- pop rdi
- mov [rdi], ebx
- pop rdi
- mov [rdi], eax
- mov eax, 0
- ; restore registers
- pop rbx
- ret;
- align 16
-
diff --git a/xorg/server/module/amd64/funcs_amd64.h b/xorg/server/module/amd64/funcs_amd64.h
deleted file mode 100644
index 10cffe0d..00000000
--- a/xorg/server/module/amd64/funcs_amd64.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
-Copyright 2014 Jay Sorg
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-amd64 asm functions
-
-*/
-
-#ifndef __FUNCS_AMD64_H
-#define __FUNCS_AMD64_H
-
-int
-cpuid_amd64(int eax_in, int ecx_in, int *eax, int *ebx, int *ecx, int *edx);
-int
-yv12_to_rgb32_amd64_sse2(unsigned char *yuvs, int width, int height, int *rgbs);
-int
-i420_to_rgb32_amd64_sse2(unsigned char *yuvs, int width, int height, int *rgbs);
-int
-yuy2_to_rgb32_amd64_sse2(unsigned char *yuvs, int width, int height, int *rgbs);
-int
-uyvy_to_rgb32_amd64_sse2(unsigned char *yuvs, int width, int height, int *rgbs);
-
-#endif
-
diff --git a/xorg/server/module/amd64/i420_to_rgb32_amd64_sse2.asm b/xorg/server/module/amd64/i420_to_rgb32_amd64_sse2.asm
deleted file mode 100644
index d9760caa..00000000
--- a/xorg/server/module/amd64/i420_to_rgb32_amd64_sse2.asm
+++ /dev/null
@@ -1,248 +0,0 @@
-;
-;Copyright 2014 Jay Sorg
-;
-;Permission to use, copy, modify, distribute, and sell this software and its
-;documentation for any purpose is hereby granted without fee, provided that
-;the above copyright notice appear in all copies and that both that
-;copyright notice and this permission notice appear in supporting
-;documentation.
-;
-;The above copyright notice and this permission notice shall be included in
-;all copies or substantial portions of the Software.
-;
-;THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-;IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-;FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-;OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-;AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-;CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-;
-;I420 to RGB32
-;amd64 SSE2 32 bit
-;
-; RGB to YUV
-; 0.299 0.587 0.114
-; -0.14713 -0.28886 0.436
-; 0.615 -0.51499 -0.10001
-; YUV to RGB
-; 1 0 1.13983
-; 1 -0.39465 -0.58060
-; 1 2.03211 0
-; shift left 12
-; 4096 0 4669
-; 4096 -1616 -2378
-; 4096 9324 0
-
-SECTION .data
-align 16
-c128 times 8 dw 128
-c4669 times 8 dw 4669
-c1616 times 8 dw 1616
-c2378 times 8 dw 2378
-c9324 times 8 dw 9324
-
-SECTION .text
-
-%macro PROC 1
- align 16
- global %1
- %1:
-%endmacro
-
-do8_uv:
-
- ; v
- movd xmm1, [rbx] ; 4 at a time
- lea rbx, [rbx + 4]
- punpcklbw xmm1, xmm1
- pxor xmm6, xmm6
- punpcklbw xmm1, xmm6
- movdqa xmm7, [rel c128]
- psubw xmm1, xmm7
- psllw xmm1, 4
-
- ; v
- movd xmm2, [rdx] ; 4 at a time
- lea rdx, [rdx + 4]
- punpcklbw xmm2, xmm2
- punpcklbw xmm2, xmm6
- psubw xmm2, xmm7
- psllw xmm2, 4
-
-do8:
-
- ; y
- movq xmm0, [rsi] ; 8 at a time
- lea rsi, [rsi + 8]
- pxor xmm6, xmm6
- punpcklbw xmm0, xmm6
-
- ; r = y + hiword(4669 * (v << 4))
- movdqa xmm4, [rel c4669]
- pmulhw xmm4, xmm1
- movdqa xmm3, xmm0
- paddw xmm3, xmm4
-
- ; g = y - hiword(1616 * (u << 4)) - hiword(2378 * (v << 4))
- movdqa xmm5, [rel c1616]
- pmulhw xmm5, xmm2
- movdqa xmm6, [rel c2378]
- pmulhw xmm6, xmm1
- movdqa xmm4, xmm0
- psubw xmm4, xmm5
- psubw xmm4, xmm6
-
- ; b = y + hiword(9324 * (u << 4))
- movdqa xmm6, [rel c9324]
- pmulhw xmm6, xmm2
- movdqa xmm5, xmm0
- paddw xmm5, xmm6
-
- packuswb xmm3, xmm3 ; b
- packuswb xmm4, xmm4 ; g
- punpcklbw xmm3, xmm4 ; gb
-
- pxor xmm4, xmm4 ; a
- packuswb xmm5, xmm5 ; r
- punpcklbw xmm5, xmm4 ; ar
-
- movdqa xmm4, xmm3
- punpcklwd xmm3, xmm5 ; argb
- movdqa [rdi], xmm3
- lea rdi, [rdi + 16]
- punpckhwd xmm4, xmm5 ; argb
- movdqa [rdi], xmm4
- lea rdi, [rdi + 16]
-
- ret;
-
-;The first six integer or pointer arguments are passed in registers
-; RDI, RSI, RDX, RCX, R8, and R9
-
-;int
-;i420_to_rgb32_amd64_sse2(unsigned char *yuvs, int width, int height, int *rgbs)
-
-PROC i420_to_rgb32_amd64_sse2
- push rbx
- push rsi
- push rdi
- push rbp
-
- push rdi
- push rdx
- mov rdi, rcx ; rgbs
-
- mov rcx, rsi ; width
- mov rdx, rcx
- pop rbp ; height
- mov rax, rbp
- shr rbp, 1
- imul rax, rcx ; rax = width * height
-
- pop rsi ; y
-
- mov rbx, rsi ; u = y + width * height
- add rbx, rax
-
- ; local vars
- ; char* yptr1
- ; char* yptr2
- ; char* uptr
- ; char* vptr
- ; int* rgbs1
- ; int* rgbs2
- ; int width
- sub rsp, 56 ; local vars, 56 bytes
- mov [rsp + 0], rsi ; save y1
- add rsi, rdx
- mov [rsp + 8], rsi ; save y2
- mov [rsp + 16], rbx ; save u
- shr rax, 2
- add rbx, rax ; v = u + (width * height / 4)
- mov [rsp + 24], rbx ; save v
-
- mov [rsp + 32], rdi ; save rgbs1
- mov rax, rdx
- shl rax, 2
- add rdi, rax
- mov [rsp + 40], rdi ; save rgbs2
-
-loop_y:
-
- mov rcx, rdx ; width
- shr rcx, 3
-
- ; save rdx
- mov [rsp + 48], rdx
-
- ;prefetchnta 4096[rsp + 0] ; y
- ;prefetchnta 1024[rsp + 16] ; u
- ;prefetchnta 1024[rsp + 24] ; v
-
-loop_x:
-
- mov rsi, [rsp + 0] ; y1
- mov rbx, [rsp + 16] ; u
- mov rdx, [rsp + 24] ; v
- mov rdi, [rsp + 32] ; rgbs1
-
- ; y1
- call do8_uv
-
- mov [rsp + 0], rsi ; y1
- mov [rsp + 32], rdi ; rgbs1
-
- mov rsi, [rsp + 8] ; y2
- mov rdi, [rsp + 40] ; rgbs2
-
- ; y2
- call do8
-
- mov [rsp + 8], rsi ; y2
- mov [rsp + 16], rbx ; u
- mov [rsp + 24], rdx ; v
- mov [rsp + 40], rdi ; rgbs2
-
- dec rcx ; width
- jnz loop_x
-
- ; restore rdx
- mov rdx, [rsp + 48]
-
- ; update y1 and 2
- mov rax, [rsp + 0]
- mov rbx, rdx
- add rax, rbx
- mov [rsp + 0], rax
-
- mov rax, [rsp + 8]
- add rax, rbx
- mov [rsp + 8], rax
-
- ; update rgb1 and 2
- mov rax, [rsp + 32]
- mov rbx, rdx
- shl rbx, 2
- add rax, rbx
- mov [rsp + 32], rax
-
- mov rax, [rsp + 40]
- add rax, rbx
- mov [rsp + 40], rax
-
- mov rcx, rbp
- dec rcx ; height
- mov rbp, rcx
- jnz loop_y
-
- add rsp, 56
-
- mov rax, 0
- pop rbp
- pop rdi
- pop rsi
- pop rbx
- ret
- align 16
-
-
diff --git a/xorg/server/module/amd64/uyvy_to_rgb32_amd64_sse2.asm b/xorg/server/module/amd64/uyvy_to_rgb32_amd64_sse2.asm
deleted file mode 100644
index 8866fd0f..00000000
--- a/xorg/server/module/amd64/uyvy_to_rgb32_amd64_sse2.asm
+++ /dev/null
@@ -1,17 +0,0 @@
-
-%macro PROC 1
- align 16
- global %1
- %1:
-%endmacro
-
-;int
-;uyvy_to_rgb32_amd64_sse2(unsigned char *yuvs, int width, int height, int *rgbs)
-
-PROC uyvy_to_rgb32_amd64_sse2
- push rbx
- mov rax, 0
- pop rbx
- ret
- align 16
-
diff --git a/xorg/server/module/amd64/yuy2_to_rgb32_amd64_sse2.asm b/xorg/server/module/amd64/yuy2_to_rgb32_amd64_sse2.asm
deleted file mode 100644
index c0ac5c1b..00000000
--- a/xorg/server/module/amd64/yuy2_to_rgb32_amd64_sse2.asm
+++ /dev/null
@@ -1,17 +0,0 @@
-
-%macro PROC 1
- align 16
- global %1
- %1:
-%endmacro
-
-;int
-;yuy2_to_rgb32_amd64_sse2(unsigned char *yuvs, int width, int height, int *rgbs)
-
-PROC yuy2_to_rgb32_amd64_sse2
- push rbx
- mov rax, 0
- pop rbx
- ret
- align 16
-
diff --git a/xorg/server/module/amd64/yv12_to_rgb32_amd64_sse2.asm b/xorg/server/module/amd64/yv12_to_rgb32_amd64_sse2.asm
deleted file mode 100644
index 13e46878..00000000
--- a/xorg/server/module/amd64/yv12_to_rgb32_amd64_sse2.asm
+++ /dev/null
@@ -1,248 +0,0 @@
-;
-;Copyright 2014 Jay Sorg
-;
-;Permission to use, copy, modify, distribute, and sell this software and its
-;documentation for any purpose is hereby granted without fee, provided that
-;the above copyright notice appear in all copies and that both that
-;copyright notice and this permission notice appear in supporting
-;documentation.
-;
-;The above copyright notice and this permission notice shall be included in
-;all copies or substantial portions of the Software.
-;
-;THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-;IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-;FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-;OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-;AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-;CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-;
-;YV12 to RGB32
-;amd64 SSE2 32 bit
-;
-; RGB to YUV
-; 0.299 0.587 0.114
-; -0.14713 -0.28886 0.436
-; 0.615 -0.51499 -0.10001
-; YUV to RGB
-; 1 0 1.13983
-; 1 -0.39465 -0.58060
-; 1 2.03211 0
-; shift left 12
-; 4096 0 4669
-; 4096 -1616 -2378
-; 4096 9324 0
-
-SECTION .data
-align 16
-c128 times 8 dw 128
-c4669 times 8 dw 4669
-c1616 times 8 dw 1616
-c2378 times 8 dw 2378
-c9324 times 8 dw 9324
-
-SECTION .text
-
-%macro PROC 1
- align 16
- global %1
- %1:
-%endmacro
-
-do8_uv:
-
- ; u
- movd xmm1, [rbx] ; 4 at a time
- lea rbx, [rbx + 4]
- punpcklbw xmm1, xmm1
- pxor xmm6, xmm6
- punpcklbw xmm1, xmm6
- movdqa xmm7, [rel c128]
- psubw xmm1, xmm7
- psllw xmm1, 4
-
- ; v
- movd xmm2, [rdx] ; 4 at a time
- lea rdx, [rdx + 4]
- punpcklbw xmm2, xmm2
- punpcklbw xmm2, xmm6
- psubw xmm2, xmm7
- psllw xmm2, 4
-
-do8:
-
- ; y
- movq xmm0, [rsi] ; 8 at a time
- lea rsi, [rsi + 8]
- pxor xmm6, xmm6
- punpcklbw xmm0, xmm6
-
- ; r = y + hiword(4669 * (v << 4))
- movdqa xmm4, [rel c4669]
- pmulhw xmm4, xmm2
- movdqa xmm3, xmm0
- paddw xmm3, xmm4
-
- ; g = y - hiword(1616 * (u << 4)) - hiword(2378 * (v << 4))
- movdqa xmm5, [rel c1616]
- pmulhw xmm5, xmm1
- movdqa xmm6, [rel c2378]
- pmulhw xmm6, xmm2
- movdqa xmm4, xmm0
- psubw xmm4, xmm5
- psubw xmm4, xmm6
-
- ; b = y + hiword(9324 * (u << 4))
- movdqa xmm6, [rel c9324]
- pmulhw xmm6, xmm1
- movdqa xmm5, xmm0
- paddw xmm5, xmm6
-
- packuswb xmm3, xmm3 ; b
- packuswb xmm4, xmm4 ; g
- punpcklbw xmm3, xmm4 ; gb
-
- pxor xmm4, xmm4 ; a
- packuswb xmm5, xmm5 ; r
- punpcklbw xmm5, xmm4 ; ar
-
- movdqa xmm4, xmm3
- punpcklwd xmm3, xmm5 ; argb
- movdqa [rdi], xmm3
- lea rdi, [rdi + 16]
- punpckhwd xmm4, xmm5 ; argb
- movdqa [rdi], xmm4
- lea rdi, [rdi + 16]
-
- ret;
-
-;The first six integer or pointer arguments are passed in registers
-; RDI, RSI, RDX, RCX, R8, and R9
-
-;int
-;yv12_to_rgb32_amd64_sse2(unsigned char *yuvs, int width, int height, int *rgbs)
-
-PROC yv12_to_rgb32_amd64_sse2
- push rbx
- push rsi
- push rdi
- push rbp
-
- push rdi
- push rdx
- mov rdi, rcx ; rgbs
-
- mov rcx, rsi ; width
- mov rdx, rcx
- pop rbp ; height
- mov rax, rbp
- shr rbp, 1
- imul rax, rcx ; rax = width * height
-
- pop rsi ; y
-
- mov rbx, rsi ; u = y + width * height
- add rbx, rax
-
- ; local vars
- ; char* yptr1
- ; char* yptr2
- ; char* uptr
- ; char* vptr
- ; int* rgbs1
- ; int* rgbs2
- ; int width
- sub rsp, 56 ; local vars, 56 bytes
- mov [rsp + 0], rsi ; save y1
- add rsi, rdx
- mov [rsp + 8], rsi ; save y2
- mov [rsp + 16], rbx ; save u
- shr rax, 2
- add rbx, rax ; v = u + (width * height / 4)
- mov [rsp + 24], rbx ; save v
-
- mov [rsp + 32], rdi ; save rgbs1
- mov rax, rdx
- shl rax, 2
- add rdi, rax
- mov [rsp + 40], rdi ; save rgbs2
-
-loop_y:
-
- mov rcx, rdx ; width
- shr rcx, 3
-
- ; save rdx
- mov [rsp + 48], rdx
-
- ;prefetchnta 4096[rsp + 0] ; y
- ;prefetchnta 1024[rsp + 16] ; u
- ;prefetchnta 1024[rsp + 24] ; v
-
-loop_x:
-
- mov rsi, [rsp + 0] ; y1
- mov rbx, [rsp + 16] ; u
- mov rdx, [rsp + 24] ; v
- mov rdi, [rsp + 32] ; rgbs1
-
- ; y1
- call do8_uv
-
- mov [rsp + 0], rsi ; y1
- mov [rsp + 32], rdi ; rgbs1
-
- mov rsi, [rsp + 8] ; y2
- mov rdi, [rsp + 40] ; rgbs2
-
- ; y2
- call do8
-
- mov [rsp + 8], rsi ; y2
- mov [rsp + 16], rbx ; u
- mov [rsp + 24], rdx ; v
- mov [rsp + 40], rdi ; rgbs2
-
- dec rcx ; width
- jnz loop_x
-
- ; restore rdx
- mov rdx, [rsp + 48]
-
- ; update y1 and 2
- mov rax, [rsp + 0]
- mov rbx, rdx
- add rax, rbx
- mov [rsp + 0], rax
-
- mov rax, [rsp + 8]
- add rax, rbx
- mov [rsp + 8], rax
-
- ; update rgb1 and 2
- mov rax, [rsp + 32]
- mov rbx, rdx
- shl rbx, 2
- add rax, rbx
- mov [rsp + 32], rax
-
- mov rax, [rsp + 40]
- add rax, rbx
- mov [rsp + 40], rax
-
- mov rcx, rbp
- dec rcx ; height
- mov rbp, rcx
- jnz loop_y
-
- add rsp, 56
-
- mov rax, 0
- pop rbp
- pop rdi
- pop rsi
- pop rbx
- ret
- align 16
-
-
diff --git a/xorg/server/module/rdp.h b/xorg/server/module/rdp.h
deleted file mode 100644
index 711750a2..00000000
--- a/xorg/server/module/rdp.h
+++ /dev/null
@@ -1,372 +0,0 @@
-/*
-Copyright 2005-2014 Jay Sorg
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-*/
-
-#ifndef _RDP_H
-#define _RDP_H
-
-#include <xorg-server.h>
-#include <xorgVersion.h>
-#include <xf86.h>
-
-#include <scrnintstr.h>
-#include <gcstruct.h>
-#include <mipointer.h>
-#include <randrstr.h>
-
-#include "rdpPri.h"
-
-#define XRDP_MODULE_NAME "XRDPMOD"
-#define XRDP_DRIVER_NAME "XRDPDEV"
-#define XRDP_MOUSE_NAME "XRDPMOUSE"
-#define XRDP_KEYB_NAME "XRDPKEYB"
-#define XRDP_VERSION 1000
-
-#define PACKAGE_VERSION_MAJOR 1
-#define PACKAGE_VERSION_MINOR 0
-#define PACKAGE_VERSION_PATCHLEVEL 0
-
-#define COLOR8(r, g, b) \
- ((((r) >> 5) << 0) | (((g) >> 5) << 3) | (((b) >> 6) << 6))
-#define COLOR15(r, g, b) \
- ((((r) >> 3) << 10) | (((g) >> 3) << 5) | (((b) >> 3) << 0))
-#define COLOR16(r, g, b) \
- ((((r) >> 3) << 11) | (((g) >> 2) << 5) | (((b) >> 3) << 0))
-#define COLOR24(r, g, b) \
- ((((r) >> 0) << 0) | (((g) >> 0) << 8) | (((b) >> 0) << 16))
-#define SPLITCOLOR32(r, g, b, c) \
- do { \
- r = ((c) >> 16) & 0xff; \
- g = ((c) >> 8) & 0xff; \
- b = (c) & 0xff; \
- } while (0)
-
-/* PIXMAN_a8b8g8r8 */
-#define XRDP_a8b8g8r8 \
-((32 << 24) | (3 << 16) | (8 << 12) | (8 << 8) | (8 << 4) | 8)
-/* PIXMAN_a8r8g8b8 */
-#define XRDP_a8r8g8b8 \
-((32 << 24) | (2 << 16) | (8 << 12) | (8 << 8) | (8 << 4) | 8)
-/* PIXMAN_r5g6b5 */
-#define XRDP_r5g6b5 \
-((16 << 24) | (2 << 16) | (0 << 12) | (5 << 8) | (6 << 4) | 5)
-/* PIXMAN_a1r5g5b5 */
-#define XRDP_a1r5g5b5 \
-((16 << 24) | (2 << 16) | (1 << 12) | (5 << 8) | (5 << 4) | 5)
-/* PIXMAN_r3g3b2 */
-#define XRDP_r3g3b2 \
-((8 << 24) | (2 << 16) | (0 << 12) | (3 << 8) | (3 << 4) | 2)
-
-#define PixelDPI 100
-#define PixelToMM(_size) (((_size) * 254 + (PixelDPI) * 5) / ((PixelDPI) * 10))
-
-#define RDPMIN(_val1, _val2) ((_val1) < (_val2) ? (_val1) : (_val2))
-#define RDPMAX(_val1, _val2) ((_val1) < (_val2) ? (_val2) : (_val1))
-#define RDPCLAMP(_val, _lo, _hi) \
- (_val) < (_lo) ? (_lo) : (_val) > (_hi) ? (_hi) : (_val)
-#define RDPALIGN(_val, _al) ((((long)(_val)) + ((_al) - 1)) & ~((_al) - 1))
-
-#define XRDP_CD_NODRAW 0
-#define XRDP_CD_NOCLIP 1
-#define XRDP_CD_CLIP 2
-
-#if 0
-#define RegionCopy DONOTUSE
-#define RegionTranslate DONOTUSE
-#define RegionNotEmpty DONOTUSE
-#define RegionIntersect DONOTUSE
-#define RegionContainsRect DONOTUSE
-#define RegionInit DONOTUSE
-#define RegionUninit DONOTUSE
-#define RegionFromRects DONOTUSE
-#define RegionDestroy DONOTUSE
-#define RegionCreate DONOTUSE
-#define RegionUnion DONOTUSE
-#define RegionSubtract DONOTUSE
-#define RegionInverse DONOTUSE
-#define RegionExtents DONOTUSE
-#define RegionReset DONOTUSE
-#define RegionBreak DONOTUSE
-#define RegionUnionRect DONOTUSE
-#endif
-
-struct image_data
-{
- int width;
- int height;
- int bpp;
- int Bpp;
- int lineBytes;
- char *pixels;
- char *shmem_pixels;
- int shmem_id;
- int shmem_offset;
- int shmem_lineBytes;
-};
-
-/* defined in rdpClientCon.h */
-typedef struct _rdpClientCon rdpClientCon;
-
-struct _rdpPointer
-{
- int cursor_x;
- int cursor_y;
- int old_button_mask;
- int button_mask;
- DeviceIntPtr device;
-};
-typedef struct _rdpPointer rdpPointer;
-
-struct _rdpKeyboard
-{
- int pause_spe;
- int ctrl_down;
- int alt_down;
- int shift_down;
- int tab_down;
- /* this is toggled every time num lock key is released, not like the
- above *_down vars */
- int scroll_lock_down;
- DeviceIntPtr device;
-};
-typedef struct _rdpKeyboard rdpKeyboard;
-
-
-struct _rdpPixmapRec
-{
- int status;
- int rdpindex;
- int con_number;
- int is_dirty;
- int is_scratch;
- int is_alpha_dirty_not;
- /* number of times used in a remote operation
- if this gets above XRDP_USE_COUNT_THRESHOLD
- then we force remote the pixmap */
- int use_count;
- int kind_width;
- struct rdp_draw_item *draw_item_head;
- struct rdp_draw_item *draw_item_tail;
-};
-typedef struct _rdpPixmapRec rdpPixmapRec;
-typedef struct _rdpPixmapRec * rdpPixmapPtr;
-#define GETPIXPRIV(_dev, _pPixmap) (rdpPixmapPtr) \
-rdpGetPixmapPrivate(&((_pPixmap)->devPrivates), (_dev)->privateKeyRecPixmap)
-
-struct _rdpCounts
-{
- CARD32 rdpFillSpansCallCount; /* 1 */
- CARD32 rdpSetSpansCallCount;
- CARD32 rdpPutImageCallCount;
- CARD32 rdpCopyAreaCallCount;
- CARD32 rdpCopyPlaneCallCount;
- CARD32 rdpPolyPointCallCount;
- CARD32 rdpPolylinesCallCount;
- CARD32 rdpPolySegmentCallCount;
- CARD32 rdpPolyRectangleCallCount;
- CARD32 rdpPolyArcCallCount; /* 10 */
- CARD32 rdpFillPolygonCallCount;
- CARD32 rdpPolyFillRectCallCount;
- CARD32 rdpPolyFillArcCallCount;
- CARD32 rdpPolyText8CallCount;
- CARD32 rdpPolyText16CallCount;
- CARD32 rdpImageText8CallCount;
- CARD32 rdpImageText16CallCount;
- CARD32 rdpImageGlyphBltCallCount;
- CARD32 rdpPolyGlyphBltCallCount;
- CARD32 rdpPushPixelsCallCount; /* 20 */
- CARD32 rdpCompositeCallCount;
- CARD32 rdpCopyWindowCallCount; /* 22 */
- CARD32 rdpTrapezoidsCallCount;
- CARD32 callCount[64 - 23];
-};
-
-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 */
-struct _rdpRec
-{
- int width;
- int height;
- int depth;
- int paddedWidthInBytes;
- int sizeInBytes;
- int num_modes;
- int bitsPerPixel;
- int Bpp;
- int Bpp_mask;
- char *pfbMemory_alloc;
- char *pfbMemory;
- ScreenPtr pScreen;
- rdpDevPrivateKey privateKeyRecGC;
- rdpDevPrivateKey privateKeyRecPixmap;
-
- CopyWindowProcPtr CopyWindow;
- CreateGCProcPtr CreateGC;
- CreatePixmapProcPtr CreatePixmap;
- DestroyPixmapProcPtr DestroyPixmap;
- ModifyPixmapHeaderProcPtr ModifyPixmapHeader;
- CloseScreenProcPtr CloseScreen;
- CompositeProcPtr Composite;
- GlyphsProcPtr Glyphs;
- TrapezoidsProcPtr Trapezoids;
-
- /* keyboard and mouse */
- miPointerScreenFuncPtr pCursorFuncs;
- /* mouse */
- rdpPointer pointer;
- /* keyboard */
- rdpKeyboard keyboard;
-
- /* RandR */
- RRSetConfigProcPtr rrSetConfig;
- RRGetInfoProcPtr rrGetInfo;
- RRScreenSetSizeProcPtr rrScreenSetSize;
- RRCrtcSetProcPtr rrCrtcSet;
- RRCrtcSetGammaProcPtr rrCrtcSetGamma;
- RRCrtcGetGammaProcPtr rrCrtcGetGamma;
- RROutputSetPropertyProcPtr rrOutputSetProperty;
- RROutputValidateModeProcPtr rrOutputValidateMode;
- RRModeDestroyProcPtr rrModeDestroy;
- RROutputGetPropertyProcPtr rrOutputGetProperty;
- RRGetPanningProcPtr rrGetPanning;
- RRSetPanningProcPtr rrSetPanning;
-
- int listen_sck;
- char uds_data[256];
- rdpClientCon *clientConHead;
- rdpClientCon *clientConTail;
-
- rdpPixmapRec screenPriv;
- int sendUpdateScheduled; /* boolean */
- OsTimerPtr sendUpdateTimer;
-
- int do_dirty_os; /* boolean */
- int do_dirty_ons; /* boolean */
- int disconnect_scheduled; /* boolean */
- int do_kill_disconnected; /* boolean */
-
- OsTimerPtr disconnectTimer;
- int disconnectScheduled; /* boolean */
- int disconnect_timeout_s;
- int disconnect_time_ms;
-
- int conNumber;
-
- struct _rdpCounts counts;
-
- yuv_to_rgb32_proc i420_to_rgb32;
- yuv_to_rgb32_proc yv12_to_rgb32;
- yuv_to_rgb32_proc yuy2_to_rgb32;
- yuv_to_rgb32_proc uyvy_to_rgb32;
- char *xv_data;
- int xv_data_bytes;
- int xv_timer_schedualed;
- OsTimerPtr xv_timer;
-
- copy_box_proc a8r8g8b8_to_a8b8g8r8_box;
-
-};
-typedef struct _rdpRec rdpRec;
-typedef struct _rdpRec * rdpPtr;
-#define XRDPPTR(_p) ((rdpPtr)((_p)->driverPrivate))
-
-struct _rdpGCRec
-{
- GCFuncs *funcs;
- GCOps *ops;
-};
-typedef struct _rdpGCRec rdpGCRec;
-typedef struct _rdpGCRec * rdpGCPtr;
-
-#define RDI_FILL 1
-#define RDI_IMGLL 2 /* lossless */
-#define RDI_IMGLY 3 /* lossy */
-#define RDI_LINE 4
-#define RDI_SCRBLT 5
-#define RDI_TEXT 6
-
-struct urdp_draw_item_fill
-{
- int opcode;
- int fg_color;
- int bg_color;
- int pad0;
-};
-
-struct urdp_draw_item_img
-{
- int opcode;
- int pad0;
-};
-
-struct urdp_draw_item_line
-{
- int opcode;
- int fg_color;
- int bg_color;
- int width;
- xSegment* segs;
- int nseg;
- int flags;
-};
-
-struct urdp_draw_item_scrblt
-{
- int srcx;
- int srcy;
- int dstx;
- int dsty;
- int cx;
- int cy;
-};
-
-struct urdp_draw_item_text
-{
- int opcode;
- int fg_color;
- struct rdp_text* rtext; /* in rdpglyph.h */
-};
-
-union urdp_draw_item
-{
- struct urdp_draw_item_fill fill;
- struct urdp_draw_item_img img;
- struct urdp_draw_item_line line;
- struct urdp_draw_item_scrblt scrblt;
- struct urdp_draw_item_text text;
-};
-
-struct rdp_draw_item
-{
- int type; /* RDI_FILL, RDI_IMGLL, ... */
- int flags;
- struct rdp_draw_item* prev;
- struct rdp_draw_item* next;
- RegionPtr reg;
- union urdp_draw_item u;
-};
-
-#define XRDP_USE_COUNT_THRESHOLD 1
-#endif
diff --git a/xorg/server/module/rdpCapture.c b/xorg/server/module/rdpCapture.c
deleted file mode 100644
index 72b95535..00000000
--- a/xorg/server/module/rdpCapture.c
+++ /dev/null
@@ -1,788 +0,0 @@
-/**
- * xrdp: A Remote Desktop Protocol server.
- *
- * Copyright (C) Laxmikant Rashinkar 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.
- *
- * Routines to copy regions from framebuffer to shared memory
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-/* this should be before all X11 .h files */
-#include <xorg-server.h>
-#include <xorgVersion.h>
-
-/* all driver need this */
-#include <xf86.h>
-#include <xf86_OSproc.h>
-
-#include "rdp.h"
-#include "rdpDraw.h"
-#include "rdpClientCon.h"
-#include "rdpReg.h"
-#include "rdpMisc.h"
-#include "rdpCapture.h"
-
-#define LOG_LEVEL 1
-#define LLOGLN(_level, _args) \
- do { if (_level < LOG_LEVEL) { ErrorF _args ; ErrorF("\n"); } } while (0)
-
-#define RDP_MAX_TILES 1024
-
-/******************************************************************************/
-static int
-rdpLimitRects(RegionPtr reg, int max_rects, BoxPtr *rects)
-{
- int nrects;
-
- nrects = REGION_NUM_RECTS(reg);
- if (nrects > max_rects)
- {
- nrects = 1;
- *rects = rdpRegionExtents(reg);
- }
- else
- {
- *rects = REGION_RECTS(reg);
- }
- return nrects;
-}
-
-/******************************************************************************/
-/* copy rects with no error checking */
-static int
-rdpCopyBox_a8r8g8b8_to_a8r8g8b8(rdpClientCon *clientCon,
- void *src, int src_stride, int srcx, int srcy,
- void *dst, int dst_stride, int dstx, int dsty,
- BoxPtr rects, int num_rects)
-{
- char *s8;
- char *d8;
- int index;
- int jndex;
- int bytes;
- int height;
- BoxPtr box;
-
- for (index = 0; index < num_rects; index++)
- {
- box = rects + index;
- s8 = ((char *) src) + (box->y1 - srcy) * src_stride;
- s8 += (box->x1 - srcx) * 4;
- d8 = ((char *) dst) + (box->y1 - dsty) * dst_stride;
- d8 += (box->x1 - dstx) * 4;
- bytes = box->x2 - box->x1;
- bytes *= 4;
- height = box->y2 - box->y1;
- for (jndex = 0; jndex < height; jndex++)
- {
- g_memcpy(d8, s8, bytes);
- d8 += dst_stride;
- s8 += src_stride;
- }
- }
- return 0;
-}
-
-/******************************************************************************/
-static int
-rdpFillBox_yuvalp(int ax, int ay,
- void *dst, int dst_stride)
-{
- dst = ((char *) dst) + (ay << 8) * (dst_stride >> 8) + (ax << 8);
- g_memset(dst, 0, 64 * 64 * 4);
- return 0;
-}
-
-/******************************************************************************/
-/* copy rects with no error checking
- * convert ARGB32 to 64x64 linear planar YUVA */
-/* http://msdn.microsoft.com/en-us/library/ff635643.aspx
- * 0.299 -0.168935 0.499813
- * 0.587 -0.331665 -0.418531
- * 0.114 0.50059 -0.081282
- y = r * 0.299000 + g * 0.587000 + b * 0.114000;
- u = r * -0.168935 + g * -0.331665 + b * 0.500590;
- v = r * 0.499813 + g * -0.418531 + b * -0.081282; */
-/* 19595 38470 7471
- -11071 -21736 32807
- 32756 -27429 -5327 */
-static int
-rdpCopyBox_a8r8g8b8_to_yuvalp(int ax, int ay,
- void *src, int src_stride,
- void *dst, int dst_stride,
- BoxPtr rects, int num_rects)
-{
- char *s8;
- char *d8;
- char *yptr;
- char *uptr;
- char *vptr;
- char *aptr;
- int *s32;
- int index;
- int jndex;
- int kndex;
- int width;
- int height;
- int pixel;
- int a;
- int r;
- int g;
- int b;
- int y;
- int u;
- int v;
- BoxPtr box;
-
- dst = ((char *) dst) + (ay << 8) * (dst_stride >> 8) + (ax << 8);
- for (index = 0; index < num_rects; index++)
- {
- box = rects + index;
- s8 = ((char *) src) + box->y1 * src_stride;
- s8 += box->x1 * 4;
- d8 = ((char *) dst) + (box->y1 - ay) * 64;
- d8 += box->x1 - ax;
- width = box->x2 - box->x1;
- height = box->y2 - box->y1;
- for (jndex = 0; jndex < height; jndex++)
- {
- s32 = (int *) s8;
- yptr = d8;
- uptr = yptr + 64 * 64;
- vptr = uptr + 64 * 64;
- aptr = vptr + 64 * 64;
- kndex = 0;
- while (kndex < width)
- {
- pixel = *(s32++);
- a = (pixel >> 24) & 0xff;
- r = (pixel >> 16) & 0xff;
- g = (pixel >> 8) & 0xff;
- b = (pixel >> 0) & 0xff;
- y = (r * 19595 + g * 38470 + b * 7471) >> 16;
- u = (r * -11071 + g * -21736 + b * 32807) >> 16;
- v = (r * 32756 + g * -27429 + b * -5327) >> 16;
- u = u + 128;
- v = v + 128;
- y = max(y, 0);
- u = max(u, 0);
- v = max(v, 0);
- y = min(y, 255);
- u = min(u, 255);
- v = min(v, 255);
- *(yptr++) = y;
- *(uptr++) = u;
- *(vptr++) = v;
- *(aptr++) = a;
- kndex++;
- }
- d8 += 64;
- s8 += src_stride;
- }
- }
- 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 */
-static int
-rdpCopyBox_a8r8g8b8_to_a8b8g8r8(rdpClientCon *clientCon,
- void *src, int src_stride, int srcx, int srcy,
- void *dst, int dst_stride, int dstx, int dsty,
- BoxPtr rects, int num_rects)
-{
- char *s8;
- char *d8;
- int index;
- int bytes;
- int width;
- int height;
- BoxPtr box;
- copy_box_proc copy_box;
-
- copy_box = clientCon->dev->a8r8g8b8_to_a8b8g8r8_box;
- for (index = 0; index < num_rects; index++)
- {
- box = rects + index;
- s8 = ((char *) src) + (box->y1 - srcy) * src_stride;
- s8 += (box->x1 - srcx) * 4;
- d8 = ((char *) dst) + (box->y1 - dsty) * dst_stride;
- d8 += (box->x1 - dstx) * 4;
- bytes = box->x2 - box->x1;
- bytes *= 4;
- width = box->x2 - box->x1;
- height = box->y2 - box->y1;
- copy_box(s8, src_stride, d8, dst_stride, width, height);
- }
- return 0;
-}
-
-/******************************************************************************/
-static Bool
-rdpCapture0(rdpClientCon *clientCon,
- RegionPtr in_reg, BoxPtr *out_rects, int *num_out_rects,
- void *src, int src_width, int src_height,
- int src_stride, int src_format,
- void *dst, int dst_width, int dst_height,
- int dst_stride, int dst_format, int max_rects)
-{
- BoxPtr psrc_rects;
- BoxRec rect;
- RegionRec reg;
- char *src_rect;
- char *dst_rect;
- int num_rects;
- int src_bytespp;
- int dst_bytespp;
- int width;
- int height;
- int src_offset;
- int dst_offset;
- int i;
- int j;
- int k;
- int red;
- int green;
- int blue;
- Bool rv;
- unsigned int *s32;
- unsigned short *d16;
- unsigned char *d8;
-
- LLOGLN(10, ("rdpCapture0:"));
-
- rv = TRUE;
-
- rect.x1 = 0;
- rect.y1 = 0;
- rect.x2 = RDPMIN(dst_width, src_width);
- rect.y2 = RDPMIN(dst_height, src_height);
- rdpRegionInit(&reg, &rect, 0);
- rdpRegionIntersect(&reg, in_reg, &reg);
-
- psrc_rects = 0;
- num_rects = rdpLimitRects(&reg, max_rects, &psrc_rects);
- if (num_rects < 1)
- {
- rdpRegionUninit(&reg);
- return FALSE;
- }
-
- *num_out_rects = num_rects;
-
- *out_rects = (BoxPtr) g_malloc(sizeof(BoxRec) * num_rects, 0);
- for (i = 0; i < num_rects; i++)
- {
- rect = psrc_rects[i];
- (*out_rects)[i] = rect;
- }
-
- if ((src_format == XRDP_a8r8g8b8) && (dst_format == XRDP_a8r8g8b8))
- {
- rdpCopyBox_a8r8g8b8_to_a8r8g8b8(clientCon,
- src, src_stride, 0, 0,
- dst, dst_stride, 0, 0,
- psrc_rects, num_rects);
- }
- else if ((src_format == XRDP_a8r8g8b8) && (dst_format == XRDP_a8b8g8r8))
- {
- rdpCopyBox_a8r8g8b8_to_a8b8g8r8(clientCon,
- src, src_stride, 0, 0,
- dst, dst_stride, 0, 0,
- psrc_rects, num_rects);
- }
- else if ((src_format == XRDP_a8r8g8b8) && (dst_format == XRDP_r5g6b5))
- {
- src_bytespp = 4;
- dst_bytespp = 2;
-
- for (i = 0; i < num_rects; i++)
- {
- /* get rect to copy */
- rect = (*out_rects)[i];
-
- /* get rect dimensions */
- width = rect.x2 - rect.x1;
- height = rect.y2 - rect.y1;
-
- /* point to start of each rect in respective memory */
- src_offset = rect.y1 * src_stride + rect.x1 * src_bytespp;
- dst_offset = rect.y1 * dst_stride + rect.x1 * dst_bytespp;
- src_rect = src + src_offset;
- dst_rect = dst + dst_offset;
-
- /* copy one line at a time */
- for (j = 0; j < height; j++)
- {
- s32 = (unsigned int *) src_rect;
- d16 = (unsigned short *) dst_rect;
- for (k = 0; k < width; k++)
- {
- SPLITCOLOR32(red, green, blue, *s32);
- *d16 = COLOR16(red, green, blue);
- s32++;
- d16++;
- }
- src_rect += src_stride;
- dst_rect += dst_stride;
- }
- }
- }
- else if ((src_format == XRDP_a8r8g8b8) && (dst_format == XRDP_a1r5g5b5))
- {
- src_bytespp = 4;
- dst_bytespp = 2;
-
- for (i = 0; i < num_rects; i++)
- {
- /* get rect to copy */
- rect = (*out_rects)[i];
-
- /* get rect dimensions */
- width = rect.x2 - rect.x1;
- height = rect.y2 - rect.y1;
-
- /* point to start of each rect in respective memory */
- src_offset = rect.y1 * src_stride + rect.x1 * src_bytespp;
- dst_offset = rect.y1 * dst_stride + rect.x1 * dst_bytespp;
- src_rect = src + src_offset;
- dst_rect = dst + dst_offset;
-
- /* copy one line at a time */
- for (j = 0; j < height; j++)
- {
- s32 = (unsigned int *) src_rect;
- d16 = (unsigned short *) dst_rect;
- for (k = 0; k < width; k++)
- {
- SPLITCOLOR32(red, green, blue, *s32);
- *d16 = COLOR15(red, green, blue);
- s32++;
- d16++;
- }
- src_rect += src_stride;
- dst_rect += dst_stride;
- }
- }
- }
- else if ((src_format == XRDP_a8r8g8b8) && (dst_format == XRDP_r3g3b2))
- {
- src_bytespp = 4;
- dst_bytespp = 1;
-
- for (i = 0; i < num_rects; i++)
- {
- /* get rect to copy */
- rect = (*out_rects)[i];
-
- /* get rect dimensions */
- width = rect.x2 - rect.x1;
- height = rect.y2 - rect.y1;
-
- /* point to start of each rect in respective memory */
- src_offset = rect.y1 * src_stride + rect.x1 * src_bytespp;
- dst_offset = rect.y1 * dst_stride + rect.x1 * dst_bytespp;
- src_rect = src + src_offset;
- dst_rect = dst + dst_offset;
-
- /* copy one line at a time */
- for (j = 0; j < height; j++)
- {
- s32 = (unsigned int *) src_rect;
- d8 = (unsigned char *) dst_rect;
- for (k = 0; k < width; k++)
- {
- SPLITCOLOR32(red, green, blue, *s32);
- *d8 = COLOR8(red, green, blue);
- s32++;
- d8++;
- }
- src_rect += src_stride;
- dst_rect += dst_stride;
- }
- }
- }
- else
- {
- LLOGLN(0, ("rdpCapture0: unimp color conversion"));
- }
- rdpRegionUninit(&reg);
- return rv;
-}
-
-/******************************************************************************/
-/* make out_rects always multiple of 16 width and height */
-static Bool
-rdpCapture1(rdpClientCon *clientCon,
- RegionPtr in_reg, BoxPtr *out_rects, int *num_out_rects,
- void *src, int src_width, int src_height,
- int src_stride, int src_format,
- void *dst, int dst_width, int dst_height,
- int dst_stride, int dst_format, int max_rects)
-{
- BoxPtr psrc_rects;
- BoxRec rect;
- RegionRec reg;
- char *src_rect;
- char *dst_rect;
- int num_regions;
- int src_bytespp;
- int dst_bytespp;
- int width;
- int height;
- int min_width;
- int min_height;
- int src_offset;
- int dst_offset;
- int index;
- int jndex;
- int kndex;
- int red;
- int green;
- int blue;
- int ex;
- int ey;
- Bool rv;
- unsigned int *s32;
- unsigned int *d32;
-
- LLOGLN(10, ("rdpCapture1:"));
-
- rv = TRUE;
-
- min_width = RDPMIN(dst_width, src_width);
- min_height = RDPMIN(dst_height, src_height);
-
- rect.x1 = 0;
- rect.y1 = 0;
- rect.x2 = min_width;
- rect.y2 = min_height;
- rdpRegionInit(&reg, &rect, 0);
- rdpRegionIntersect(&reg, in_reg, &reg);
-
- num_regions = REGION_NUM_RECTS(&reg);
-
- if (num_regions > max_rects)
- {
- num_regions = 1;
- psrc_rects = rdpRegionExtents(&reg);
- }
- else
- {
- psrc_rects = REGION_RECTS(&reg);
- }
-
- if (num_regions < 1)
- {
- return FALSE;
- }
-
- *num_out_rects = num_regions;
-
- *out_rects = (BoxPtr) g_malloc(sizeof(BoxRec) * num_regions * 4, 0);
- index = 0;
- while (index < num_regions)
- {
- rect = psrc_rects[index];
- width = rect.x2 - rect.x1;
- height = rect.y2 - rect.y1;
- ex = ((width + 15) & ~15) - width;
- if (ex != 0)
- {
- rect.x2 += ex;
- if (rect.x2 > min_width)
- {
- rect.x1 -= rect.x2 - min_width;
- rect.x2 = min_width;
- }
- if (rect.x1 < 0)
- {
- rect.x1 += 16;
- }
- }
- ey = ((height + 15) & ~15) - height;
- if (ey != 0)
- {
- rect.y2 += ey;
- if (rect.y2 > min_height)
- {
- rect.y1 -= rect.y2 - min_height;
- rect.y2 = min_height;
- }
- if (rect.y1 < 0)
- {
- rect.y1 += 16;
- }
- }
-#if 0
- if (rect.x1 < 0)
- {
- LLOGLN(0, ("rdpCapture1: error"));
- }
- if (rect.y1 < 0)
- {
- LLOGLN(0, ("rdpCapture1: error"));
- }
- if (rect.x2 > min_width)
- {
- LLOGLN(0, ("rdpCapture1: error"));
- }
- if (rect.y2 > min_height)
- {
- LLOGLN(0, ("rdpCapture1: error"));
- }
- if ((rect.x2 - rect.x1) % 16 != 0)
- {
- LLOGLN(0, ("rdpCapture1: error"));
- }
- if ((rect.y2 - rect.y1) % 16 != 0)
- {
- LLOGLN(0, ("rdpCapture1: error"));
- }
-#endif
- (*out_rects)[index] = rect;
- index++;
- }
-
- if ((src_format == XRDP_a8r8g8b8) && (dst_format == XRDP_a8b8g8r8))
- {
- src_bytespp = 4;
- dst_bytespp = 4;
-
- for (index = 0; index < num_regions; index++)
- {
- /* get rect to copy */
- rect = (*out_rects)[index];
-
- /* get rect dimensions */
- width = rect.x2 - rect.x1;
- height = rect.y2 - rect.y1;
-
- /* point to start of each rect in respective memory */
- src_offset = rect.y1 * src_stride + rect.x1 * src_bytespp;
- dst_offset = rect.y1 * dst_stride + rect.x1 * dst_bytespp;
- src_rect = src + src_offset;
- dst_rect = dst + dst_offset;
-
- /* copy one line at a time */
- for (jndex = 0; jndex < height; jndex++)
- {
- s32 = (unsigned int *) src_rect;
- d32 = (unsigned int *) dst_rect;
- for (kndex = 0; kndex < width; kndex++)
- {
- SPLITCOLOR32(red, green, blue, *s32);
- *d32 = COLOR24(red, green, blue);
- s32++;
- d32++;
- }
- src_rect += src_stride;
- dst_rect += dst_stride;
- }
- }
- }
- else
- {
- LLOGLN(0, ("rdpCapture1: unimp color conversion"));
- }
- rdpRegionUninit(&reg);
- return rv;
-}
-
-/******************************************************************************/
-static Bool
-rdpCapture2(rdpClientCon *clientCon,
- RegionPtr in_reg, BoxPtr *out_rects, int *num_out_rects,
- void *src, int src_width, int src_height,
- int src_stride, int src_format,
- void *dst, int dst_width, int dst_height,
- int dst_stride, int dst_format, int max_rects)
-{
- int x;
- int y;
- int out_rect_index;
- int num_rects;
- int rcode;
- BoxRec rect;
- BoxRec extents_rect;
- BoxPtr rects;
- RegionRec tile_reg;
- RegionRec lin_reg;
- RegionRec temp_reg;
- RegionPtr pin_reg;
-
- LLOGLN(10, ("rdpCapture2:"));
-
- *out_rects = (BoxPtr) g_malloc(sizeof(BoxRec) * RDP_MAX_TILES, 0);
- if (*out_rects == NULL)
- {
- return FALSE;
- }
- out_rect_index = 0;
-
- /* clip for smaller of 2 */
- rect.x1 = 0;
- rect.y1 = 0;
- rect.x2 = min(dst_width, src_width);
- rect.y2 = min(dst_height, src_height);
- rdpRegionInit(&temp_reg, &rect, 0);
- rdpRegionIntersect(&temp_reg, in_reg, &temp_reg);
-
- /* limit the numer of rects */
- num_rects = REGION_NUM_RECTS(&temp_reg);
- if (num_rects > max_rects)
- {
- LLOGLN(10, ("rdpCapture2: too many rects"));
- rdpRegionInit(&lin_reg, rdpRegionExtents(&temp_reg), 0);
- pin_reg = &lin_reg;
- }
- else
- {
- LLOGLN(10, ("rdpCapture2: not too many rects"));
- rdpRegionInit(&lin_reg, NullBox, 0);
- pin_reg = &temp_reg;
- }
- extents_rect = *rdpRegionExtents(pin_reg);
- y = extents_rect.y1 & ~63;
- while (y < extents_rect.y2)
- {
- x = extents_rect.x1 & ~63;
- while (x < extents_rect.x2)
- {
- rect.x1 = x;
- rect.y1 = y;
- rect.x2 = rect.x1 + 64;
- rect.y2 = rect.y1 + 64;
- rcode = rdpRegionContainsRect(pin_reg, &rect);
- LLOGLN(10, ("rdpCapture2: rcode %d", rcode));
-
- if (rcode != rgnOUT)
- {
- if (rcode == rgnPART)
- {
- LLOGLN(10, ("rdpCapture2: rgnPART"));
- rdpFillBox_yuvalp(x, y, dst, dst_stride);
- rdpRegionInit(&tile_reg, &rect, 0);
- rdpRegionIntersect(&tile_reg, pin_reg, &tile_reg);
- rects = REGION_RECTS(&tile_reg);
- num_rects = REGION_NUM_RECTS(&tile_reg);
- rdpCopyBox_a8r8g8b8_to_yuvalp(x, y,
- src, src_stride,
- dst, dst_stride,
- rects, num_rects);
- rdpRegionUninit(&tile_reg);
- }
- else /* rgnIN */
- {
- LLOGLN(10, ("rdpCapture2: rgnIN"));
- rdpCopyBox_a8r8g8b8_to_yuvalp(x, y,
- src, src_stride,
- dst, dst_stride,
- &rect, 1);
- }
- (*out_rects)[out_rect_index] = rect;
- out_rect_index++;
- if (out_rect_index >= RDP_MAX_TILES)
- {
- g_free(*out_rects);
- *out_rects = NULL;
- rdpRegionUninit(&temp_reg);
- rdpRegionUninit(&lin_reg);
- return FALSE;
- }
- }
- x += 64;
- }
- y += 64;
- }
- *num_out_rects = out_rect_index;
- rdpRegionUninit(&temp_reg);
- rdpRegionUninit(&lin_reg);
- return TRUE;
-}
-
-/**
- * Copy an array of rectangles from one memory area to another
- *****************************************************************************/
-Bool
-rdpCapture(rdpClientCon *clientCon,
- RegionPtr in_reg, BoxPtr *out_rects, int *num_out_rects,
- void *src, int src_width, int src_height,
- int src_stride, int src_format,
- void *dst, int dst_width, int dst_height,
- int dst_stride, int dst_format, int mode)
-{
- LLOGLN(10, ("rdpCapture:"));
- LLOGLN(10, ("rdpCapture: src %p dst %p", src, dst));
- switch (mode)
- {
- case 0:
- return rdpCapture0(clientCon, in_reg, out_rects, num_out_rects,
- src, src_width, src_height,
- src_stride, src_format,
- dst, dst_width, dst_height,
- dst_stride, dst_format, 15);
- case 1:
- return rdpCapture1(clientCon, in_reg, out_rects, num_out_rects,
- src, src_width, src_height,
- src_stride, src_format,
- dst, dst_width, dst_height,
- dst_stride, dst_format, 15);
- case 2:
- return rdpCapture2(clientCon, in_reg, out_rects, num_out_rects,
- src, src_width, src_height,
- src_stride, src_format,
- dst, dst_width, dst_height,
- dst_stride, dst_format, 15);
- default:
- LLOGLN(0, ("rdpCapture: unimp mode"));
- break;
- }
- return FALSE;
-}
diff --git a/xorg/server/module/rdpCapture.h b/xorg/server/module/rdpCapture.h
deleted file mode 100644
index c138947a..00000000
--- a/xorg/server/module/rdpCapture.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/**
- * xrdp: A Remote Desktop Protocol server.
- *
- * Copyright (C) Laxmikant Rashinkar 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.
- *
- * Routines to copy regions from framebuffer to shared memory
- */
-
-#ifndef __RDPCAPTURE_H
-#define __RDPCAPTURE_H
-
-#include <xorg-server.h>
-#include <xorgVersion.h>
-#include <xf86.h>
-
-extern _X_EXPORT Bool
-rdpCapture(rdpClientCon *clientCon,
- RegionPtr in_reg, BoxPtr *out_rects, int *num_out_rects,
- void *src, int src_width, int src_height,
- int src_stride, int src_format,
- void *dst, int dst_width, int dst_height,
- 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
diff --git a/xorg/server/module/rdpClientCon.c b/xorg/server/module/rdpClientCon.c
deleted file mode 100644
index 21df291f..00000000
--- a/xorg/server/module/rdpClientCon.c
+++ /dev/null
@@ -1,2283 +0,0 @@
-/*
-Copyright 2005-2014 Jay Sorg
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Client connection to xrdp
-
-*/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <signal.h>
-#include <sys/types.h>
-#include <sys/ipc.h>
-#include <sys/shm.h>
-
-/* this should be before all X11 .h files */
-#include <xorg-server.h>
-#include <xorgVersion.h>
-
-/* all driver need this */
-#include <xf86.h>
-#include <xf86_OSproc.h>
-
-#include "rdp.h"
-#include "rdpDraw.h"
-#include "rdpClientCon.h"
-#include "rdpMisc.h"
-#include "rdpInput.h"
-#include "rdpReg.h"
-#include "rdpCapture.h"
-
-#define LOG_LEVEL 1
-#define LLOGLN(_level, _args) \
- do { if (_level < LOG_LEVEL) { ErrorF _args ; ErrorF("\n"); } } while (0)
-
-#define LTOUI32(_in) ((unsigned int)(_in))
-
-#define USE_MAX_OS_BYTES 1
-#define MAX_OS_BYTES (16 * 1024 * 1024)
-
-/*
-0 GXclear, 0
-1 GXnor, DPon
-2 GXandInverted, DPna
-3 GXcopyInverted, Pn
-4 GXandReverse, PDna
-5 GXinvert, Dn
-6 GXxor, DPx
-7 GXnand, DPan
-8 GXand, DPa
-9 GXequiv, DPxn
-a GXnoop, D
-b GXorInverted, DPno
-c GXcopy, P
-d GXorReverse, PDno
-e GXor, DPo
-f GXset 1
-*/
-
-static int g_rdp_opcodes[16] =
-{
- 0x00, /* GXclear 0x0 0 */
- 0x88, /* GXand 0x1 src AND dst */
- 0x44, /* GXandReverse 0x2 src AND NOT dst */
- 0xcc, /* GXcopy 0x3 src */
- 0x22, /* GXandInverted 0x4 NOT src AND dst */
- 0xaa, /* GXnoop 0x5 dst */
- 0x66, /* GXxor 0x6 src XOR dst */
- 0xee, /* GXor 0x7 src OR dst */
- 0x11, /* GXnor 0x8 NOT src AND NOT dst */
- 0x99, /* GXequiv 0x9 NOT src XOR dst */
- 0x55, /* GXinvert 0xa NOT dst */
- 0xdd, /* GXorReverse 0xb src OR NOT dst */
- 0x33, /* GXcopyInverted 0xc NOT src */
- 0xbb, /* GXorInverted 0xd NOT src OR dst */
- 0x77, /* GXnand 0xe NOT src OR NOT dst */
- 0xff /* GXset 0xf 1 */
-};
-
-static int
-rdpClientConDisconnect(rdpPtr dev, rdpClientCon *clientCon);
-
-/******************************************************************************/
-static int
-rdpClientConGotConnection(ScreenPtr pScreen, rdpPtr dev)
-{
- rdpClientCon *clientCon;
- int new_sck;
-
- LLOGLN(0, ("rdpClientConGotConnection:"));
- clientCon = (rdpClientCon *) g_malloc(sizeof(rdpClientCon), 1);
- clientCon->dev = dev;
- dev->do_dirty_ons = 1;
-
- make_stream(clientCon->in_s);
- init_stream(clientCon->in_s, 8192);
- make_stream(clientCon->out_s);
- init_stream(clientCon->out_s, 8192 * 4 + 100);
-
- new_sck = g_sck_accept(dev->listen_sck);
- if (new_sck == -1)
- {
- LLOGLN(0, ("rdpClientConGotConnection: g_sck_accept failed"));
- }
- else
- {
- LLOGLN(0, ("rdpClientConGotConnection: g_sck_accept ok new_sck %d",
- new_sck));
- clientCon->sck = new_sck;
- g_sck_set_non_blocking(clientCon->sck);
- g_sck_tcp_set_no_delay(clientCon->sck); /* only works if TCP */
- clientCon->connected = TRUE;
- clientCon->sckClosed = FALSE;
- clientCon->begin = FALSE;
- dev->conNumber++;
- clientCon->conNumber = dev->conNumber;
- AddEnabledDevice(clientCon->sck);
- }
-
-#if 0
- if (dev->clientConTail != NULL)
- {
- rdpClientConDisconnect(dev, dev->clientConTail);
- dev->clientConHead = NULL;
- dev->clientConTail = NULL;
- }
-#endif
-
- if (dev->clientConTail == NULL)
- {
- LLOGLN(0, ("rdpClientConGotConnection: adding only clientCon"));
- dev->clientConHead = clientCon;
- dev->clientConTail = clientCon;
- }
- else
- {
- LLOGLN(0, ("rdpClientConGotConnection: adding clientCon"));
- dev->clientConTail->next = clientCon;
- dev->clientConTail = clientCon;
- }
-
- clientCon->dirtyRegion = rdpRegionCreate(NullBox, 0);
- clientCon->shmRegion = rdpRegionCreate(NullBox, 0);
-
- return 0;
-}
-
-/******************************************************************************/
-static CARD32
-rdpDeferredDisconnectCallback(OsTimerPtr timer, CARD32 now, pointer arg)
-{
- CARD32 lnow_ms;
- rdpPtr dev;
-
- dev = (rdpPtr) arg;
- LLOGLN(10, ("rdpDeferredDisconnectCallback"));
- if (dev->clientConHead != NULL)
- {
- /* this should not happen */
- LLOGLN(0, ("rdpDeferredDisconnectCallback: connected"));
- if (dev->disconnectTimer != NULL)
- {
- LLOGLN(0, ("rdpDeferredDisconnectCallback: canceling g_dis_timer"));
- TimerCancel(dev->disconnectTimer);
- TimerFree(dev->disconnectTimer);
- dev->disconnectTimer = NULL;
- }
- dev->disconnect_scheduled = FALSE;
- return 0;
- }
- else
- {
- LLOGLN(10, ("rdpDeferredDisconnectCallback: not connected"));
- }
- lnow_ms = GetTimeInMillis();
- if (lnow_ms - dev->disconnect_time_ms > dev->disconnect_timeout_s * 1000)
- {
- LLOGLN(0, ("rdpDeferredDisconnectCallback: exit X11rdp"));
- kill(getpid(), SIGTERM);
- return 0;
- }
- dev->disconnectTimer = TimerSet(dev->disconnectTimer, 0, 1000 * 10,
- rdpDeferredDisconnectCallback, dev);
- return 0;
-}
-
-/*****************************************************************************/
-static int
-rdpClientConDisconnect(rdpPtr dev, rdpClientCon *clientCon)
-{
- int index;
- rdpClientCon *pcli;
- rdpClientCon *plcli;
-
- LLOGLN(0, ("rdpClientConDisconnect:"));
- if (dev->do_kill_disconnected)
- {
- if (dev->disconnect_scheduled == FALSE)
- {
- LLOGLN(0, ("rdpClientConDisconnect: starting g_dis_timer"));
- dev->disconnectTimer = TimerSet(dev->disconnectTimer, 0, 1000 * 10,
- rdpDeferredDisconnectCallback, dev);
- dev->disconnect_scheduled = TRUE;
- }
- dev->disconnect_time_ms = GetTimeInMillis();
- }
-
- RemoveEnabledDevice(clientCon->sck);
- g_sck_close(clientCon->sck);
- if (clientCon->maxOsBitmaps > 0)
- {
- for (index = 0; index < clientCon->maxOsBitmaps; index++)
- {
- if (clientCon->osBitmaps[index].used)
- {
- if (clientCon->osBitmaps[index].priv != NULL)
- {
- clientCon->osBitmaps[index].priv->status = 0;
- }
- }
- }
- }
- g_free(clientCon->osBitmaps);
-
- plcli = NULL;
- pcli = dev->clientConHead;
- while (pcli != NULL)
- {
- if (pcli == clientCon)
- {
- if (plcli == NULL)
- {
- /* removing first item */
- dev->clientConHead = pcli->next;
- if (dev->clientConHead == NULL)
- {
- /* removed only */
- dev->clientConTail = NULL;
- }
- }
- else
- {
- plcli->next = pcli->next;
- if (pcli == dev->clientConTail)
- {
- /* removed last */
- dev->clientConTail = plcli;
- }
- }
- LLOGLN(0, ("rdpClientConDisconnect: clientCon removed from "
- "dev list"));
- break;
- }
- plcli = pcli;
- pcli = pcli->next;
- }
- rdpRegionDestroy(clientCon->dirtyRegion);
- rdpRegionDestroy(clientCon->shmRegion);
- if (clientCon->updateTimer != NULL)
- {
- TimerCancel(clientCon->updateTimer);
- TimerFree(clientCon->updateTimer);
- }
- g_free(clientCon);
- return 0;
-}
-
-/*****************************************************************************/
-/* returns error */
-static int
-rdpClientConSend(rdpPtr dev, rdpClientCon *clientCon, char *data, int len)
-{
- int sent;
-
- LLOGLN(10, ("rdpClientConSend - sending %d bytes", len));
-
- if (clientCon->sckClosed)
- {
- return 1;
- }
-
- while (len > 0)
- {
- sent = g_sck_send(clientCon->sck, data, len, 0);
-
- if (sent == -1)
- {
- if (g_sck_last_error_would_block(clientCon->sck))
- {
- g_sleep(1);
- }
- else
- {
- LLOGLN(0, ("rdpClientConSend: g_tcp_send failed(returned -1)"));
- rdpClientConDisconnect(dev, clientCon);
- return 1;
- }
- }
- else if (sent == 0)
- {
- LLOGLN(0, ("rdpClientConSend: g_tcp_send failed(returned zero)"));
- rdpClientConDisconnect(dev, clientCon);
- return 1;
- }
- else
- {
- data += sent;
- len -= sent;
- }
- }
-
- return 0;
-}
-
-/******************************************************************************/
-static int
-rdpClientConSendMsg(rdpPtr dev, rdpClientCon *clientCon)
-{
- int len;
- int rv;
- struct stream *s;
-
- rv = 1;
- s = clientCon->out_s;
- if (s != NULL)
- {
- len = (int) (s->end - s->data);
-
- if (len > s->size)
- {
- LLOGLN(0, ("rdpClientConSendMsg: overrun error len %d count %d",
- len, clientCon->count));
- }
-
- s_pop_layer(s, iso_hdr);
- out_uint16_le(s, 3);
- out_uint16_le(s, clientCon->count);
- out_uint32_le(s, len - 8);
- rv = rdpClientConSend(dev, clientCon, s->data, len);
- }
-
- if (rv != 0)
- {
- LLOGLN(0, ("rdpClientConSendMsg: error in rdpup_send_msg"));
- }
-
- return rv;
-}
-
-/******************************************************************************/
-static int
-rdpClientConSendPending(rdpPtr dev, rdpClientCon *clientCon)
-{
- int rv;
-
- rv = 0;
- if (clientCon->connected && clientCon->begin)
- {
- out_uint16_le(clientCon->out_s, 2); /* XR_SERVER_END_UPDATE */
- out_uint16_le(clientCon->out_s, 4); /* size */
- clientCon->count++;
- s_mark_end(clientCon->out_s);
- if (rdpClientConSendMsg(dev, clientCon) != 0)
- {
- LLOGLN(0, ("rdpClientConSendPending: rdpClientConSendMsg failed"));
- rv = 1;
- }
- }
- clientCon->count = 0;
- clientCon->begin = FALSE;
- return rv;
-}
-
-/******************************************************************************/
-/* returns error */
-static int
-rdpClientConRecv(rdpPtr dev, rdpClientCon *clientCon, char *data, int len)
-{
- int rcvd;
-
- if (clientCon->sckClosed)
- {
- return 1;
- }
-
- while (len > 0)
- {
- rcvd = g_sck_recv(clientCon->sck, data, len, 0);
-
- if (rcvd == -1)
- {
- if (g_sck_last_error_would_block(clientCon->sck))
- {
- g_sleep(1);
- }
- else
- {
- LLOGLN(0, ("rdpClientConRecv: g_sck_recv failed(returned -1)"));
- rdpClientConDisconnect(dev, clientCon);
- return 1;
- }
- }
- else if (rcvd == 0)
- {
- LLOGLN(0, ("rdpClientConRecv: g_sck_recv failed(returned 0)"));
- rdpClientConDisconnect(dev, clientCon);
- return 1;
- }
- else
- {
- data += rcvd;
- len -= rcvd;
- }
- }
-
- return 0;
-}
-
-/******************************************************************************/
-static int
-rdpClientConRecvMsg(rdpPtr dev, rdpClientCon *clientCon)
-{
- int len;
- int rv;
- struct stream *s;
-
- rv = 1;
-
- s = clientCon->in_s;
- if (s != 0)
- {
- init_stream(s, 4);
- rv = rdpClientConRecv(dev, clientCon, s->data, 4);
-
- if (rv == 0)
- {
- s->end = s->data + 4;
- in_uint32_le(s, len);
-
- if (len > 3)
- {
- init_stream(s, len);
- rv = rdpClientConRecv(dev, clientCon, s->data, len - 4);
- if (rv == 0)
- {
- s->end = s->data + len;
- }
- }
- }
- }
-
- if (rv != 0)
- {
- LLOGLN(0, ("rdpClientConRecvMsg: error"));
- }
-
- return rv;
-}
-
-/******************************************************************************/
-static int
-rdpClientConSendCaps(rdpPtr dev, rdpClientCon *clientCon)
-{
- struct stream *ls;
- int len;
- int rv;
- int cap_count;
- int cap_bytes;
-
- make_stream(ls);
- init_stream(ls, 8192);
- s_push_layer(ls, iso_hdr, 8);
-
- cap_count = 0;
- cap_bytes = 0;
-
-#if 0
- out_uint16_le(ls, 0);
- out_uint16_le(ls, 4);
- cap_count++;
- cap_bytes += 4;
-
- out_uint16_le(ls, 1);
- out_uint16_le(ls, 4);
- cap_count++;
- cap_bytes += 4;
-#endif
-
- s_mark_end(ls);
- len = (int)(ls->end - ls->data);
- s_pop_layer(ls, iso_hdr);
- out_uint16_le(ls, 2); /* caps */
- out_uint16_le(ls, cap_count); /* num caps */
- out_uint32_le(ls, cap_bytes); /* caps len after header */
-
- rv = rdpClientConSend(dev, clientCon, ls->data, len);
-
- if (rv != 0)
- {
- LLOGLN(0, ("rdpClientConSendCaps: rdpup_send failed"));
- }
-
- free_stream(ls);
- return rv;
-}
-
-/******************************************************************************/
-static int
-rdpClientConProcessMsgVersion(rdpPtr dev, rdpClientCon *clientCon,
- int param1, int param2, int param3, int param4)
-{
- LLOGLN(0, ("rdpClientConProcessMsgVersion: version %d %d %d %d",
- param1, param2, param3, param4));
-
- if ((param1 > 0) || (param2 > 0) || (param3 > 0) || (param4 > 0))
- {
- rdpClientConSendCaps(dev, clientCon);
- }
-
- return 0;
-}
-
-#define LALIGN(_num, _po2) ((_num + ((_po2) - 1)) & ~((_po2) - 1))
-
-/******************************************************************************/
-/*
- this from miScreenInit
- pScreen->mmWidth = (xsize * 254 + dpix * 5) / (dpix * 10);
- pScreen->mmHeight = (ysize * 254 + dpiy * 5) / (dpiy * 10);
-*/
-static int
-rdpClientConProcessScreenSizeMsg(rdpPtr dev, rdpClientCon *clientCon,
- int width, int height, int bpp)
-{
- RRScreenSizePtr pSize;
- int mmwidth;
- int mmheight;
- int bytes;
- Bool ok;
-
- LLOGLN(0, ("rdpClientConProcessScreenSizeMsg: set width %d height %d "
- "bpp %d", width, height, bpp));
- clientCon->rdp_width = width;
- clientCon->rdp_height = height;
- clientCon->rdp_bpp = bpp;
- clientCon->cap_width = width;
- clientCon->cap_height = height;
-
- if (bpp < 15)
- {
- clientCon->rdp_Bpp = 1;
- clientCon->rdp_Bpp_mask = 0xff;
- clientCon->rdp_format = PIXMAN_r3g3b2;
- }
- else if (bpp == 15)
- {
- clientCon->rdp_Bpp = 2;
- clientCon->rdp_Bpp_mask = 0x7fff;
- clientCon->rdp_format = XRDP_a1r5g5b5;
- }
- else if (bpp == 16)
- {
- clientCon->rdp_Bpp = 2;
- clientCon->rdp_Bpp_mask = 0xffff;
- clientCon->rdp_format = XRDP_r5g6b5;
- }
- else if (bpp > 16)
- {
- clientCon->rdp_Bpp = 4;
- clientCon->rdp_Bpp_mask = 0xffffff;
- clientCon->rdp_format = XRDP_a8r8g8b8;
- }
-
- if (clientCon->shmemptr != 0)
- {
- shmdt(clientCon->shmemptr);
- }
- bytes = clientCon->rdp_width * clientCon->rdp_height *
- clientCon->rdp_Bpp;
- clientCon->shmemid = shmget(IPC_PRIVATE, bytes, IPC_CREAT | 0777);
- clientCon->shmemptr = shmat(clientCon->shmemid, 0, 0);
- shmctl(clientCon->shmemid, IPC_RMID, NULL);
- LLOGLN(0, ("rdpClientConProcessScreenSizeMsg: shmemid %d shmemptr %p",
- clientCon->shmemid, clientCon->shmemptr));
- clientCon->shmem_lineBytes = clientCon->rdp_Bpp * clientCon->rdp_width;
-
- if (clientCon->shmRegion != 0)
- {
- rdpRegionDestroy(clientCon->shmRegion);
- }
- clientCon->shmRegion = rdpRegionCreate(NullBox, 0);
-
- mmwidth = PixelToMM(width);
- mmheight = PixelToMM(height);
-
- pSize = RRRegisterSize(dev->pScreen, width, height, mmwidth, mmheight);
- RRSetCurrentConfig(dev->pScreen, RR_Rotate_0, 0, pSize);
-
- if ((dev->width != width) || (dev->height != height))
- {
- ok = RRScreenSizeSet(dev->pScreen, width, height, mmwidth, mmheight);
- LLOGLN(0, ("rdpClientConProcessScreenSizeMsg: RRScreenSizeSet ok=[%d]", ok));
- }
-
- return 0;
-}
-
-/******************************************************************************/
-static int
-rdpClientConProcessMsgClientInput(rdpPtr dev, rdpClientCon *clientCon)
-{
- struct stream *s;
- int msg;
- int param1;
- int param2;
- int param3;
- int param4;
- int x;
- int y;
- int cx;
- int cy;
-
- s = clientCon->in_s;
- in_uint32_le(s, msg);
- in_uint32_le(s, param1);
- in_uint32_le(s, param2);
- in_uint32_le(s, param3);
- in_uint32_le(s, param4);
-
- LLOGLN(10, ("rdpClientConProcessMsgClientInput: msg %d param1 %d param2 %d "
- "param3 %d param4 %d", msg, param1, param2, param3, param4));
-
- if (msg < 100)
- {
- rdpInputKeyboardEvent(dev, msg, param1, param2, param3, param4);
- }
- else if (msg < 200)
- {
- rdpInputMouseEvent(dev, msg, param1, param2, param3, param4);
- }
- else if (msg == 200) /* invalidate */
- {
- x = (param1 >> 16) & 0xffff;
- y = param1 & 0xffff;
- cx = (param2 >> 16) & 0xffff;
- cy = param2 & 0xffff;
- LLOGLN(0, ("rdpClientConProcessMsgClientInput: invalidate x %d y %d "
- "cx %d cy %d", x, y, cx, cy));
- rdpClientConAddDirtyScreen(dev, clientCon, x, y, cx, cy);
- }
- else if (msg == 300) /* resize desktop */
- {
- rdpClientConProcessScreenSizeMsg(dev, clientCon, param1,
- param2, param3);
- }
- else if (msg == 301) /* version */
- {
- rdpClientConProcessMsgVersion(dev, clientCon,
- param1, param2, param3, param4);
- }
- else
- {
- LLOGLN(0, ("rdpClientConProcessMsgClientInput: unknown msg %d", msg));
- }
-
- return 0;
-}
-
-/******************************************************************************/
-static int
-rdpClientConProcessMsgClientInfo(rdpPtr dev, rdpClientCon *clientCon)
-{
- struct stream *s;
- int bytes;
- int i1;
-
- LLOGLN(0, ("rdpClientConProcessMsgClientInfo:"));
- s = clientCon->in_s;
- in_uint32_le(s, bytes);
- if (bytes > sizeof(clientCon->client_info))
- {
- bytes = sizeof(clientCon->client_info);
- }
- memcpy(&(clientCon->client_info), s->p - 4, bytes);
- clientCon->client_info.size = bytes;
-
- LLOGLN(0, (" got client info bytes %d", bytes));
- LLOGLN(0, (" jpeg support %d", clientCon->client_info.jpeg));
- i1 = clientCon->client_info.offscreen_support_level;
- LLOGLN(0, (" offscreen support %d", i1));
- i1 = clientCon->client_info.offscreen_cache_size;
- LLOGLN(0, (" offscreen size %d", i1));
- i1 = clientCon->client_info.offscreen_cache_entries;
- LLOGLN(0, (" offscreen entries %d", i1));
-
- if (clientCon->client_info.capture_format != 0)
- {
- clientCon->rdp_format = clientCon->client_info.capture_format;
- }
-
- if (clientCon->client_info.capture_code == 2) /* RFX */
- {
- LLOGLN(0, ("rdpClientConProcessMsgClientInfo: got RFX capture"));
- clientCon->cap_width = LALIGN(clientCon->rdp_width, 64);
- clientCon->cap_height = LALIGN(clientCon->rdp_height, 64);
- LLOGLN(0, (" cap_width %d cap_height %d",
- clientCon->cap_width, clientCon->cap_height));
- if (clientCon->shmemptr != 0)
- {
- shmdt(clientCon->shmemptr);
- }
- bytes = clientCon->cap_width * clientCon->cap_height *
- clientCon->rdp_Bpp;
- clientCon->shmemid = shmget(IPC_PRIVATE, bytes, IPC_CREAT | 0777);
- clientCon->shmemptr = shmat(clientCon->shmemid, 0, 0);
- shmctl(clientCon->shmemid, IPC_RMID, NULL);
- LLOGLN(0, ("rdpClientConProcessMsgClientInfo: shmemid %d shmemptr %p "
- "bytes %d", clientCon->shmemid, clientCon->shmemptr, bytes));
- clientCon->shmem_lineBytes = clientCon->rdp_Bpp * clientCon->cap_width;
- }
-
- if (clientCon->client_info.offscreen_support_level > 0)
- {
- if (clientCon->client_info.offscreen_cache_entries > 0)
- {
- clientCon->maxOsBitmaps = clientCon->client_info.offscreen_cache_entries;
- g_free(clientCon->osBitmaps);
- clientCon->osBitmaps = (struct rdpup_os_bitmap *)
- g_malloc(sizeof(struct rdpup_os_bitmap) * clientCon->maxOsBitmaps, 1);
- }
- }
-
- if (clientCon->client_info.orders[0x1b]) /* 27 NEG_GLYPH_INDEX_INDEX */
- {
- LLOGLN(0, (" client supports glyph cache but server disabled"));
- //clientCon->doGlyphCache = 1;
- }
- if (clientCon->client_info.order_flags_ex & 0x100)
- {
- clientCon->doComposite = 1;
- }
- if (clientCon->doGlyphCache)
- {
- LLOGLN(0, (" using glyph cache"));
- }
- if (clientCon->doComposite)
- {
- LLOGLN(0, (" using client composite"));
- }
- LLOGLN(10, ("order_flags_ex 0x%x", clientCon->client_info.order_flags_ex));
- if (clientCon->client_info.offscreen_cache_entries == 2000)
- {
- LLOGLN(0, (" client can do offscreen to offscreen blits"));
- clientCon->canDoPixToPix = 1;
- }
- else
- {
- LLOGLN(0, (" client can not do offscreen to offscreen blits"));
- clientCon->canDoPixToPix = 0;
- }
- if (clientCon->client_info.pointer_flags & 1)
- {
- LLOGLN(0, (" client can do new(color) cursor"));
- }
- else
- {
- LLOGLN(0, (" client can not do new(color) cursor"));
- }
- if (clientCon->client_info.monitorCount > 0)
- {
- LLOGLN(0, (" client can do multimon"));
- LLOGLN(0, (" client monitor data, monitorCount= %d", clientCon->client_info.monitorCount));
- clientCon->doMultimon = 1;
- }
- else
- {
- LLOGLN(0, (" client can not do multimon"));
- clientCon->doMultimon = 0;
- }
-
- //rdpLoadLayout(g_rdpScreen.client_info.keylayout);
-
- return 0;
-}
-
-/******************************************************************************/
-static int
-rdpClientConProcessMsgClientRegion(rdpPtr dev, rdpClientCon *clientCon)
-{
- struct stream *s;
- int flags;
- int x;
- int y;
- int cx;
- int cy;
- RegionRec reg;
- BoxRec box;
-
- LLOGLN(10, ("rdpClientConProcessMsgClientRegion:"));
- s = clientCon->in_s;
-
- in_uint32_le(s, flags);
- in_uint32_le(s, clientCon->rect_id_ack);
- in_uint32_le(s, x);
- in_uint32_le(s, y);
- in_uint32_le(s, cx);
- in_uint32_le(s, cy);
- LLOGLN(10, ("rdpClientConProcessMsgClientRegion: %d %d %d %d flags 0x%8.8x",
- x, y, cx, cy, flags));
- LLOGLN(10, ("rdpClientConProcessMsgClientRegion: rect_id %d rect_id_ack %d",
- clientCon->rect_id, clientCon->rect_id_ack));
-
- box.x1 = x;
- box.y1 = y;
- box.x2 = box.x1 + cx;
- box.y2 = box.y1 + cy;
-
- rdpRegionInit(&reg, &box, 0);
- LLOGLN(10, ("rdpClientConProcessMsgClientRegion: %d %d %d %d",
- box.x1, box.y1, box.x2, box.y2));
- rdpRegionSubtract(clientCon->shmRegion, clientCon->shmRegion, &reg);
- rdpRegionUninit(&reg);
-
- return 0;
-}
-
-/******************************************************************************/
-static int
-rdpClientConProcessMsgClientRegionEx(rdpPtr dev, rdpClientCon *clientCon)
-{
- struct stream *s;
- int flags;
-
- LLOGLN(10, ("rdpClientConProcessMsgClientRegionEx:"));
- s = clientCon->in_s;
-
- in_uint32_le(s, flags);
- in_uint32_le(s, clientCon->rect_id_ack);
- LLOGLN(10, ("rdpClientConProcessMsgClientRegionEx: flags 0x%8.8x", flags));
- LLOGLN(10, ("rdpClientConProcessMsgClientRegionEx: rect_id %d "
- "rect_id_ack %d", clientCon->rect_id, clientCon->rect_id_ack));
- return 0;
-}
-
-/******************************************************************************/
-static int
-rdpClientConProcessMsg(rdpPtr dev, rdpClientCon *clientCon)
-{
- int msg_type;
- struct stream *s;
-
- LLOGLN(10, ("rdpClientConProcessMsg:"));
- s = clientCon->in_s;
- in_uint16_le(s, msg_type);
- LLOGLN(10, ("rdpClientConProcessMsg: msg_type %d", msg_type));
- switch (msg_type)
- {
- case 103: /* client input */
- rdpClientConProcessMsgClientInput(dev, clientCon);
- break;
- case 104: /* client info */
- rdpClientConProcessMsgClientInfo(dev, clientCon);
- break;
- case 105: /* client region */
- rdpClientConProcessMsgClientRegion(dev, clientCon);
- break;
- case 106: /* client region ex */
- rdpClientConProcessMsgClientRegionEx(dev, clientCon);
- break;
- default:
- break;
- }
-
- return 0;
-}
-
-/******************************************************************************/
-static int
-rdpClientConGotData(ScreenPtr pScreen, rdpPtr dev, rdpClientCon *clientCon)
-{
- int rv;
-
- LLOGLN(10, ("rdpClientConGotData:"));
-
- rv = rdpClientConRecvMsg(dev, clientCon);
- if (rv == 0)
- {
- rv = rdpClientConProcessMsg(dev, clientCon);
- }
-
- return rv;
-}
-
-/******************************************************************************/
-static int
-rdpClientConGotControlConnection(ScreenPtr pScreen, rdpPtr dev,
- rdpClientCon *clientCon)
-{
- LLOGLN(0, ("rdpClientConGotControlConnection:"));
- return 0;
-}
-
-/******************************************************************************/
-static int
-rdpClientConGotControlData(ScreenPtr pScreen, rdpPtr dev,
- rdpClientCon *clientCon)
-{
- LLOGLN(0, ("rdpClientConGotControlData:"));
- return 0;
-}
-
-/******************************************************************************/
-int
-rdpClientConCheck(ScreenPtr pScreen)
-{
- rdpPtr dev;
- rdpClientCon *clientCon;
- fd_set rfds;
- struct timeval time;
- int max;
- int sel;
- int count;
-
- LLOGLN(10, ("rdpClientConCheck:"));
- dev = rdpGetDevFromScreen(pScreen);
- time.tv_sec = 0;
- time.tv_usec = 0;
- FD_ZERO(&rfds);
- count = 0;
- max = 0;
- if (dev->listen_sck > 0)
- {
- count++;
- FD_SET(LTOUI32(dev->listen_sck), &rfds);
- max = RDPMAX(dev->listen_sck, max);
- }
- clientCon = dev->clientConHead;
- while (clientCon != NULL)
- {
- if (clientCon->sck > 0)
- {
- count++;
- FD_SET(LTOUI32(clientCon->sck), &rfds);
- max = RDPMAX(clientCon->sck, max);
- }
- if (clientCon->sckControl > 0)
- {
- count++;
- FD_SET(LTOUI32(clientCon->sckControl), &rfds);
- max = RDPMAX(clientCon->sckControl, max);
- }
- if (clientCon->sckControlListener > 0)
- {
- count++;
- FD_SET(LTOUI32(clientCon->sckControlListener), &rfds);
- max = RDPMAX(clientCon->sckControlListener, max);
- }
- clientCon = clientCon->next;
- }
- if (count < 1)
- {
- sel = 0;
- }
- else
- {
- sel = select(max + 1, &rfds, 0, 0, &time);
- }
- if (sel < 1)
- {
- LLOGLN(10, ("rdpClientConCheck: no select"));
- return 0;
- }
- if (dev->listen_sck > 0)
- {
- if (FD_ISSET(LTOUI32(dev->listen_sck), &rfds))
- {
- rdpClientConGotConnection(pScreen, dev);
- }
- }
- clientCon = dev->clientConHead;
- while (clientCon != NULL)
- {
- if (clientCon->sck > 0)
- {
- if (FD_ISSET(LTOUI32(clientCon->sck), &rfds))
- {
- if (rdpClientConGotData(pScreen, dev, clientCon) != 0)
- {
- LLOGLN(0, ("rdpClientConCheck: rdpClientConGotData failed"));
- clientCon = dev->clientConHead;
- continue;
- }
- }
- }
- if (clientCon->sckControlListener > 0)
- {
- if (FD_ISSET(LTOUI32(clientCon->sckControlListener), &rfds))
- {
- if (rdpClientConGotControlConnection(pScreen, dev, clientCon) != 0)
- {
- LLOGLN(0, ("rdpClientConCheck: rdpClientConGotControlConnection failed"));
- clientCon = dev->clientConHead;
- continue;
- }
- }
- }
- if (clientCon->sckControl > 0)
- {
- if (FD_ISSET(LTOUI32(clientCon->sckControl), &rfds))
- {
- if (rdpClientConGotControlData(pScreen, dev, clientCon) != 0)
- {
- LLOGLN(0, ("rdpClientConCheck: rdpClientConGotControlData failed"));
- clientCon = dev->clientConHead;
- continue;
- }
- }
- }
- clientCon = clientCon->next;
- }
- return 0;
-}
-
-/******************************************************************************/
-int
-rdpClientConInit(rdpPtr dev)
-{
- int i;
-
- if (!g_directory_exist("/tmp/.xrdp"))
- {
- if (!g_create_dir("/tmp/.xrdp"))
- {
- if (!g_directory_exist("/tmp/.xrdp"))
- {
- LLOGLN(0, ("rdpup_init: g_create_dir failed"));
- return 0;
- }
- }
- g_chmod_hex("/tmp/.xrdp", 0x1777);
- }
- i = atoi(display);
- if (i < 1)
- {
- LLOGLN(0, ("rdpClientConInit: can not run at display < 1"));
- return 0;
- }
- g_sprintf(dev->uds_data, "/tmp/.xrdp/xrdp_display_%s", display);
- if (dev->listen_sck == 0)
- {
- unlink(dev->uds_data);
- dev->listen_sck = g_sck_local_socket_stream();
- if (g_sck_local_bind(dev->listen_sck, dev->uds_data) != 0)
- {
- LLOGLN(0, ("rdpClientConInit: g_tcp_local_bind failed"));
- return 1;
- }
- g_sck_listen(dev->listen_sck);
- AddEnabledDevice(dev->listen_sck);
- }
- return 0;
-}
-
-/******************************************************************************/
-int
-rdpClientConDeinit(rdpPtr dev)
-{
- LLOGLN(0, ("rdpClientConDeinit:"));
- if (dev->listen_sck != 0)
- {
- close(dev->listen_sck);
- unlink(dev->uds_data);
- }
- return 0;
-}
-
-/******************************************************************************/
-int
-rdpClientConBeginUpdate(rdpPtr dev, rdpClientCon *clientCon)
-{
- LLOGLN(10, ("rdpClientConBeginUpdate:"));
-
- if (clientCon->connected)
- {
- if (clientCon->begin)
- {
- return 0;
- }
- init_stream(clientCon->out_s, 0);
- s_push_layer(clientCon->out_s, iso_hdr, 8);
- out_uint16_le(clientCon->out_s, 1); /* begin update */
- out_uint16_le(clientCon->out_s, 4); /* size */
- clientCon->begin = TRUE;
- clientCon->count = 1;
- }
-
- return 0;
-}
-
-/******************************************************************************/
-int
-rdpClientConEndUpdate(rdpPtr dev, rdpClientCon *clientCon)
-{
- LLOGLN(10, ("rdpClientConEndUpdate"));
-
- if (clientCon->connected && clientCon->begin)
- {
- if (dev->do_dirty_ons)
- {
- /* in this mode, end update is only called in check dirty */
- rdpClientConSendPending(dev, clientCon);
- }
- else
- {
- rdpClientConScheduleDeferredUpdate(dev);
- }
- }
-
- return 0;
-}
-
-/******************************************************************************/
-int
-rdpClientConPreCheck(rdpPtr dev, rdpClientCon *clientCon, int in_size)
-{
- int rv;
-
- rv = 0;
- if (clientCon->begin == FALSE)
- {
- rdpClientConBeginUpdate(dev, clientCon);
- }
-
- if ((clientCon->out_s->p - clientCon->out_s->data) >
- (clientCon->out_s->size - (in_size + 20)))
- {
- s_mark_end(clientCon->out_s);
- if (rdpClientConSendMsg(dev, clientCon) != 0)
- {
- LLOGLN(0, ("rdpClientConPreCheck: rdpup_send_msg failed"));
- rv = 1;
- }
- clientCon->count = 0;
- init_stream(clientCon->out_s, 0);
- s_push_layer(clientCon->out_s, iso_hdr, 8);
- }
-
- return rv;
-}
-
-/******************************************************************************/
-int
-rdpClientConFillRect(rdpPtr dev, rdpClientCon *clientCon,
- short x, short y, int cx, int cy)
-{
- if (clientCon->connected)
- {
- LLOGLN(10, ("rdpClientConFillRect:"));
- rdpClientConPreCheck(dev, clientCon, 12);
- out_uint16_le(clientCon->out_s, 3); /* fill rect */
- out_uint16_le(clientCon->out_s, 12); /* size */
- clientCon->count++;
- out_uint16_le(clientCon->out_s, x);
- out_uint16_le(clientCon->out_s, y);
- out_uint16_le(clientCon->out_s, cx);
- out_uint16_le(clientCon->out_s, cy);
- }
-
- return 0;
-}
-
-/******************************************************************************/
-int
-rdpClientConScreenBlt(rdpPtr dev, rdpClientCon *clientCon,
- short x, short y, int cx, int cy, short srcx, short srcy)
-{
- if (clientCon->connected)
- {
- LLOGLN(10, ("rdpClientConScreenBlt: x %d y %d cx %d cy %d "
- "srcx %d srcy %d",
- x, y, cx, cy, srcx, srcy));
- rdpClientConPreCheck(dev, clientCon, 16);
- out_uint16_le(clientCon->out_s, 4); /* screen blt */
- out_uint16_le(clientCon->out_s, 16); /* size */
- clientCon->count++;
- out_uint16_le(clientCon->out_s, x);
- out_uint16_le(clientCon->out_s, y);
- out_uint16_le(clientCon->out_s, cx);
- out_uint16_le(clientCon->out_s, cy);
- out_uint16_le(clientCon->out_s, srcx);
- out_uint16_le(clientCon->out_s, srcy);
- }
-
- return 0;
-}
-
-/******************************************************************************/
-int
-rdpClientConSetClip(rdpPtr dev, rdpClientCon *clientCon,
- short x, short y, int cx, int cy)
-{
- if (clientCon->connected)
- {
- LLOGLN(10, ("rdpClientConSetClip:"));
- rdpClientConPreCheck(dev, clientCon, 12);
- out_uint16_le(clientCon->out_s, 10); /* set clip */
- out_uint16_le(clientCon->out_s, 12); /* size */
- clientCon->count++;
- out_uint16_le(clientCon->out_s, x);
- out_uint16_le(clientCon->out_s, y);
- out_uint16_le(clientCon->out_s, cx);
- out_uint16_le(clientCon->out_s, cy);
- }
-
- return 0;
-}
-
-/******************************************************************************/
-int
-rdpClientConResetClip(rdpPtr dev, rdpClientCon *clientCon)
-{
- if (clientCon->connected)
- {
- LLOGLN(10, ("rdpClientConResetClip:"));
- rdpClientConPreCheck(dev, clientCon, 4);
- out_uint16_le(clientCon->out_s, 11); /* reset clip */
- out_uint16_le(clientCon->out_s, 4); /* size */
- clientCon->count++;
- }
-
- return 0;
-}
-
-/******************************************************************************/
-int
-rdpClientConConvertPixel(rdpPtr dev, rdpClientCon *clientCon, int in_pixel)
-{
- int red;
- int green;
- int blue;
- int rv;
-
- rv = 0;
-
- if (dev->depth == 24)
- {
- if (clientCon->rdp_bpp == 24)
- {
- rv = in_pixel;
- SPLITCOLOR32(red, green, blue, rv);
- rv = COLOR24(red, green, blue);
- }
- else if (clientCon->rdp_bpp == 16)
- {
- rv = in_pixel;
- SPLITCOLOR32(red, green, blue, rv);
- rv = COLOR16(red, green, blue);
- }
- else if (clientCon->rdp_bpp == 15)
- {
- rv = in_pixel;
- SPLITCOLOR32(red, green, blue, rv);
- rv = COLOR15(red, green, blue);
- }
- else if (clientCon->rdp_bpp == 8)
- {
- rv = in_pixel;
- SPLITCOLOR32(red, green, blue, rv);
- rv = COLOR8(red, green, blue);
- }
- }
- else if (dev->depth == clientCon->rdp_bpp)
- {
- return in_pixel;
- }
-
- return rv;
-}
-
-/******************************************************************************/
-int
-rdpClientConConvertPixels(rdpPtr dev, rdpClientCon *clientCon,
- void *src, void *dst, int num_pixels)
-{
- unsigned int pixel;
- unsigned int red;
- unsigned int green;
- unsigned int blue;
- unsigned int *src32;
- unsigned int *dst32;
- unsigned short *dst16;
- unsigned char *dst8;
- int index;
-
- if (dev->depth == clientCon->rdp_bpp)
- {
- memcpy(dst, src, num_pixels * dev->Bpp);
- return 0;
- }
-
- if (dev->depth == 24)
- {
- src32 = (unsigned int *)src;
-
- if (clientCon->rdp_bpp == 24)
- {
- dst32 = (unsigned int *)dst;
-
- for (index = 0; index < num_pixels; index++)
- {
- pixel = *src32;
- *dst32 = pixel;
- dst32++;
- src32++;
- }
- }
- else if (clientCon->rdp_bpp == 16)
- {
- dst16 = (unsigned short *)dst;
-
- for (index = 0; index < num_pixels; index++)
- {
- pixel = *src32;
- SPLITCOLOR32(red, green, blue, pixel);
- pixel = COLOR16(red, green, blue);
- *dst16 = pixel;
- dst16++;
- src32++;
- }
- }
- else if (clientCon->rdp_bpp == 15)
- {
- dst16 = (unsigned short *)dst;
-
- for (index = 0; index < num_pixels; index++)
- {
- pixel = *src32;
- SPLITCOLOR32(red, green, blue, pixel);
- pixel = COLOR15(red, green, blue);
- *dst16 = pixel;
- dst16++;
- src32++;
- }
- }
- else if (clientCon->rdp_bpp == 8)
- {
- dst8 = (unsigned char *)dst;
-
- for (index = 0; index < num_pixels; index++)
- {
- pixel = *src32;
- SPLITCOLOR32(red, green, blue, pixel);
- pixel = COLOR8(red, green, blue);
- *dst8 = pixel;
- dst8++;
- src32++;
- }
- }
- }
-
- return 0;
-}
-
-/******************************************************************************/
-int
-rdpClientConAlphaPixels(void* src, void* dst, int num_pixels)
-{
- unsigned int* src32;
- unsigned char* dst8;
- int index;
-
- src32 = (unsigned int*)src;
- dst8 = (unsigned char*)dst;
- for (index = 0; index < num_pixels; index++)
- {
- *dst8 = (*src32) >> 24;
- dst8++;
- src32++;
- }
- return 0;
-}
-
-/******************************************************************************/
-int
-rdpClientConSetFgcolor(rdpPtr dev, rdpClientCon *clientCon, int fgcolor)
-{
- if (clientCon->connected)
- {
- LLOGLN(10, ("rdpClientConSetFgcolor:"));
- rdpClientConPreCheck(dev, clientCon, 8);
- out_uint16_le(clientCon->out_s, 12); /* set fgcolor */
- out_uint16_le(clientCon->out_s, 8); /* size */
- clientCon->count++;
- fgcolor = fgcolor & dev->Bpp_mask;
- fgcolor = rdpClientConConvertPixel(dev, clientCon, fgcolor) &
- clientCon->rdp_Bpp_mask;
- out_uint32_le(clientCon->out_s, fgcolor);
- }
-
- return 0;
-}
-
-/******************************************************************************/
-int
-rdpClientConSetBgcolor(rdpPtr dev, rdpClientCon *clientCon, int bgcolor)
-{
- if (clientCon->connected)
- {
- LLOGLN(10, ("rdpClientConSetBgcolor:"));
- rdpClientConPreCheck(dev, clientCon, 8);
- out_uint16_le(clientCon->out_s, 13); /* set bg color */
- out_uint16_le(clientCon->out_s, 8); /* size */
- clientCon->count++;
- bgcolor = bgcolor & dev->Bpp_mask;
- bgcolor = rdpClientConConvertPixel(dev, clientCon, bgcolor) &
- clientCon->rdp_Bpp_mask;
- out_uint32_le(clientCon->out_s, bgcolor);
- }
-
- return 0;
-}
-
-/******************************************************************************/
-int
-rdpClientConSetOpcode(rdpPtr dev, rdpClientCon *clientCon, int opcode)
-{
- if (clientCon->connected)
- {
- LLOGLN(10, ("rdpClientConSetOpcode:"));
- rdpClientConPreCheck(dev, clientCon, 6);
- out_uint16_le(clientCon->out_s, 14); /* set opcode */
- out_uint16_le(clientCon->out_s, 6); /* size */
- clientCon->count++;
- out_uint16_le(clientCon->out_s, g_rdp_opcodes[opcode & 0xf]);
- }
-
- return 0;
-}
-
-/******************************************************************************/
-int
-rdpClientConSetPen(rdpPtr dev, rdpClientCon *clientCon, int style, int width)
-{
- if (clientCon->connected)
- {
- LLOGLN(10, ("rdpClientConSetPen:"));
- rdpClientConPreCheck(dev, clientCon, 8);
- out_uint16_le(clientCon->out_s, 17); /* set pen */
- out_uint16_le(clientCon->out_s, 8); /* size */
- clientCon->count++;
- out_uint16_le(clientCon->out_s, style);
- out_uint16_le(clientCon->out_s, width);
- }
-
- return 0;
-}
-
-/******************************************************************************/
-int
-rdpClientConDrawLine(rdpPtr dev, rdpClientCon *clientCon,
- short x1, short y1, short x2, short y2)
-{
- if (clientCon->connected)
- {
- LLOGLN(10, ("rdpClientConDrawLine:"));
- rdpClientConPreCheck(dev, clientCon, 12);
- out_uint16_le(clientCon->out_s, 18); /* draw line */
- out_uint16_le(clientCon->out_s, 12); /* size */
- clientCon->count++;
- out_uint16_le(clientCon->out_s, x1);
- out_uint16_le(clientCon->out_s, y1);
- out_uint16_le(clientCon->out_s, x2);
- out_uint16_le(clientCon->out_s, y2);
- }
-
- return 0;
-}
-
-/******************************************************************************/
-int
-rdpClientConSetCursor(rdpPtr dev, rdpClientCon *clientCon,
- short x, short y, char *cur_data, char *cur_mask)
-{
- int size;
-
- if (clientCon->connected)
- {
- LLOGLN(10, ("rdpClientConSetCursor:"));
- size = 8 + 32 * (32 * 3) + 32 * (32 / 8);
- rdpClientConPreCheck(dev, clientCon, size);
- out_uint16_le(clientCon->out_s, 19); /* set cursor */
- out_uint16_le(clientCon->out_s, size); /* size */
- clientCon->count++;
- x = RDPMAX(0, x);
- x = RDPMIN(31, x);
- y = RDPMAX(0, y);
- y = RDPMIN(31, y);
- out_uint16_le(clientCon->out_s, x);
- out_uint16_le(clientCon->out_s, y);
- out_uint8a(clientCon->out_s, cur_data, 32 * (32 * 3));
- out_uint8a(clientCon->out_s, cur_mask, 32 * (32 / 8));
- }
-
- return 0;
-}
-
-/******************************************************************************/
-int
-rdpClientConSetCursorEx(rdpPtr dev, rdpClientCon *clientCon,
- short x, short y, char *cur_data,
- char *cur_mask, int bpp)
-{
- int size;
- int Bpp;
-
- if (clientCon->connected)
- {
- LLOGLN(10, ("rdpClientConSetCursorEx:"));
- Bpp = (bpp == 0) ? 3 : (bpp + 7) / 8;
- size = 10 + 32 * (32 * Bpp) + 32 * (32 / 8);
- rdpClientConPreCheck(dev, clientCon, size);
- out_uint16_le(clientCon->out_s, 51); /* set cursor ex */
- out_uint16_le(clientCon->out_s, size); /* size */
- clientCon->count++;
- x = RDPMAX(0, x);
- x = RDPMIN(31, x);
- y = RDPMAX(0, y);
- y = RDPMIN(31, y);
- out_uint16_le(clientCon->out_s, x);
- out_uint16_le(clientCon->out_s, y);
- out_uint16_le(clientCon->out_s, bpp);
- out_uint8a(clientCon->out_s, cur_data, 32 * (32 * Bpp));
- out_uint8a(clientCon->out_s, cur_mask, 32 * (32 / 8));
- }
-
- return 0;
-}
-
-/******************************************************************************/
-int
-rdpClientConCreateOsSurface(rdpPtr dev, rdpClientCon *clientCon,
- int rdpindex, int width, int height)
-{
- LLOGLN(10, ("rdpClientConCreateOsSurface:"));
-
- if (clientCon->connected)
- {
- LLOGLN(10, ("rdpClientConCreateOsSurface: width %d height %d", width, height));
- rdpClientConPreCheck(dev, clientCon, 12);
- out_uint16_le(clientCon->out_s, 20);
- out_uint16_le(clientCon->out_s, 12);
- clientCon->count++;
- out_uint32_le(clientCon->out_s, rdpindex);
- out_uint16_le(clientCon->out_s, width);
- out_uint16_le(clientCon->out_s, height);
- }
-
- return 0;
-}
-
-/******************************************************************************/
-int
-rdpClientConCreateOsSurfaceBpp(rdpPtr dev, rdpClientCon *clientCon,
- int rdpindex, int width, int height, int bpp)
-{
- LLOGLN(10, ("rdpClientConCreateOsSurfaceBpp:"));
- if (clientCon->connected)
- {
- LLOGLN(10, ("rdpClientConCreateOsSurfaceBpp: width %d height %d "
- "bpp %d", width, height, bpp));
- rdpClientConPreCheck(dev, clientCon, 13);
- out_uint16_le(clientCon->out_s, 31);
- out_uint16_le(clientCon->out_s, 13);
- clientCon->count++;
- out_uint32_le(clientCon->out_s, rdpindex);
- out_uint16_le(clientCon->out_s, width);
- out_uint16_le(clientCon->out_s, height);
- out_uint8(clientCon->out_s, bpp);
- }
- return 0;
-}
-
-/******************************************************************************/
-int
-rdpClientConSwitchOsSurface(rdpPtr dev, rdpClientCon *clientCon, int rdpindex)
-{
- LLOGLN(10, ("rdpClientConSwitchOsSurface:"));
-
- if (clientCon->connected)
- {
- if (clientCon->rdpIndex == rdpindex)
- {
- return 0;
- }
-
- clientCon->rdpIndex = rdpindex;
- LLOGLN(10, ("rdpClientConSwitchOsSurface: rdpindex %d", rdpindex));
- /* switch surface */
- rdpClientConPreCheck(dev, clientCon, 8);
- out_uint16_le(clientCon->out_s, 21);
- out_uint16_le(clientCon->out_s, 8);
- out_uint32_le(clientCon->out_s, rdpindex);
- clientCon->count++;
- }
-
- return 0;
-}
-
-/******************************************************************************/
-int
-rdpClientConDeleteOsSurface(rdpPtr dev, rdpClientCon *clientCon, int rdpindex)
-{
- LLOGLN(10, ("rdpClientConDeleteOsSurface: rdpindex %d", rdpindex));
-
- if (clientCon->connected)
- {
- LLOGLN(10, ("rdpClientConDeleteOsSurface: rdpindex %d", rdpindex));
- rdpClientConPreCheck(dev, clientCon, 8);
- out_uint16_le(clientCon->out_s, 22);
- out_uint16_le(clientCon->out_s, 8);
- clientCon->count++;
- out_uint32_le(clientCon->out_s, rdpindex);
- }
-
- return 0;
-}
-
-/*****************************************************************************/
-/* returns -1 on error */
-int
-rdpClientConAddOsBitmap(rdpPtr dev, rdpClientCon *clientCon,
- PixmapPtr pixmap, rdpPixmapPtr priv)
-{
- int index;
- int rv;
- int oldest;
- int oldest_index;
- int this_bytes;
-
- LLOGLN(10, ("rdpClientConAddOsBitmap:"));
- if (clientCon->connected == FALSE)
- {
- LLOGLN(10, ("rdpClientConAddOsBitmap: test error 1"));
- return -1;
- }
-
- if (clientCon->osBitmaps == NULL)
- {
- LLOGLN(10, ("rdpClientConAddOsBitmap: test error 2"));
- return -1;
- }
-
- this_bytes = pixmap->devKind * pixmap->drawable.height;
- if (this_bytes > MAX_OS_BYTES)
- {
- LLOGLN(10, ("rdpClientConAddOsBitmap: error, too big this_bytes %d "
- "width %d height %d", this_bytes,
- pixmap->drawable.height, pixmap->drawable.height));
- return -1;
- }
-
- oldest = 0x7fffffff;
- oldest_index = -1;
- rv = -1;
- index = 0;
-
- while (index < clientCon->maxOsBitmaps)
- {
- if (clientCon->osBitmaps[index].used == FALSE)
- {
- clientCon->osBitmaps[index].used = TRUE;
- clientCon->osBitmaps[index].pixmap = pixmap;
- clientCon->osBitmaps[index].priv = priv;
- clientCon->osBitmaps[index].stamp = clientCon->osBitmapStamp;
- clientCon->osBitmapStamp++;
- clientCon->osBitmapNumUsed++;
- rv = index;
- break;
- }
- else
- {
- if (clientCon->osBitmaps[index].stamp < oldest)
- {
- oldest = clientCon->osBitmaps[index].stamp;
- oldest_index = index;
- }
- }
- index++;
- }
-
- if (rv == -1)
- {
- if (oldest_index == -1)
- {
- LLOGLN(0, ("rdpClientConAddOsBitmap: error"));
- }
- else
- {
- LLOGLN(10, ("rdpClientConAddOsBitmap: too many pixmaps removing "
- "oldest_index %d", oldest_index));
- rdpClientConRemoveOsBitmap(dev, clientCon, oldest_index);
- rdpClientConDeleteOsSurface(dev, clientCon, oldest_index);
- clientCon->osBitmaps[oldest_index].used = TRUE;
- clientCon->osBitmaps[oldest_index].pixmap = pixmap;
- clientCon->osBitmaps[oldest_index].priv = priv;
- clientCon->osBitmaps[oldest_index].stamp = clientCon->osBitmapStamp;
- clientCon->osBitmapStamp++;
- clientCon->osBitmapNumUsed++;
- rv = oldest_index;
- }
- }
-
- if (rv < 0)
- {
- LLOGLN(10, ("rdpClientConAddOsBitmap: test error 3"));
- return rv;
- }
-
- clientCon->osBitmapAllocSize += this_bytes;
- LLOGLN(10, ("rdpClientConAddOsBitmap: this_bytes %d "
- "clientCon->osBitmapAllocSize %d",
- this_bytes, clientCon->osBitmapAllocSize));
-#if USE_MAX_OS_BYTES
- while (clientCon->osBitmapAllocSize > MAX_OS_BYTES)
- {
- LLOGLN(10, ("rdpClientConAddOsBitmap: must delete "
- "clientCon->osBitmapNumUsed %d",
- clientCon->osBitmapNumUsed));
- /* find oldest */
- oldest = 0x7fffffff;
- oldest_index = -1;
- index = 0;
- while (index < clientCon->maxOsBitmaps)
- {
- if (clientCon->osBitmaps[index].used &&
- (clientCon->osBitmaps[index].stamp < oldest))
- {
- oldest = clientCon->osBitmaps[index].stamp;
- oldest_index = index;
- }
- index++;
- }
- if (oldest_index == -1)
- {
- LLOGLN(0, ("rdpClientConAddOsBitmap: error 1"));
- break;
- }
- if (oldest_index == rv)
- {
- LLOGLN(0, ("rdpClientConAddOsBitmap: error 2"));
- break;
- }
- rdpClientConRemoveOsBitmap(dev, clientCon, oldest_index);
- rdpClientConDeleteOsSurface(dev, clientCon, oldest_index);
- }
-#endif
- LLOGLN(10, ("rdpClientConAddOsBitmap: new bitmap index %d", rv));
- LLOGLN(10, ("rdpClientConAddOsBitmap: clientCon->osBitmapNumUsed %d "
- "clientCon->osBitmapStamp 0x%8.8x",
- clientCon->osBitmapNumUsed, clientCon->osBitmapStamp));
- return rv;
-}
-
-/*****************************************************************************/
-int
-rdpClientConRemoveOsBitmap(rdpPtr dev, rdpClientCon *clientCon, int rdpindex)
-{
- PixmapPtr pixmap;
- rdpPixmapPtr priv;
- int this_bytes;
-
- if (clientCon->osBitmaps == NULL)
- {
- LLOGLN(10, ("rdpClientConRemoveOsBitmap: test error 1"));
- return 1;
- }
-
- LLOGLN(10, ("rdpClientConRemoveOsBitmap: index %d stamp %d",
- rdpindex, clientCon->osBitmaps[rdpindex].stamp));
-
- if ((rdpindex < 0) && (rdpindex >= clientCon->maxOsBitmaps))
- {
- LLOGLN(10, ("rdpClientConRemoveOsBitmap: test error 2"));
- return 1;
- }
-
- if (clientCon->osBitmaps[rdpindex].used)
- {
- pixmap = clientCon->osBitmaps[rdpindex].pixmap;
- priv = clientCon->osBitmaps[rdpindex].priv;
- rdpDrawItemRemoveAll(dev, priv);
- this_bytes = pixmap->devKind * pixmap->drawable.height;
- clientCon->osBitmapAllocSize -= this_bytes;
- LLOGLN(10, ("rdpClientConRemoveOsBitmap: this_bytes %d "
- "clientCon->osBitmapAllocSize %d", this_bytes,
- clientCon->osBitmapAllocSize));
- clientCon->osBitmaps[rdpindex].used = 0;
- clientCon->osBitmaps[rdpindex].pixmap = 0;
- clientCon->osBitmaps[rdpindex].priv = 0;
- clientCon->osBitmapNumUsed--;
- priv->status = 0;
- priv->con_number = 0;
- priv->use_count = 0;
- }
- else
- {
- LLOGLN(0, ("rdpup_remove_os_bitmap: error"));
- }
-
- LLOGLN(10, ("rdpup_remove_os_bitmap: clientCon->osBitmapNumUsed %d",
- clientCon->osBitmapNumUsed));
- return 0;
-}
-
-/*****************************************************************************/
-int
-rdpClientConUpdateOsUse(rdpPtr dev, rdpClientCon *clientCon, int rdpindex)
-{
- if (clientCon->osBitmaps == NULL)
- {
- return 1;
- }
-
- LLOGLN(10, ("rdpClientConUpdateOsUse: index %d stamp %d",
- rdpindex, clientCon->osBitmaps[rdpindex].stamp));
-
- if ((rdpindex < 0) && (rdpindex >= clientCon->maxOsBitmaps))
- {
- return 1;
- }
-
- if (clientCon->osBitmaps[rdpindex].used)
- {
- clientCon->osBitmaps[rdpindex].stamp = clientCon->osBitmapStamp;
- clientCon->osBitmapStamp++;
- }
- else
- {
- LLOGLN(0, ("rdpClientConUpdateOsUse: error rdpindex %d", rdpindex));
- }
-
- return 0;
-}
-
-/******************************************************************************/
-static CARD32
-rdpClientConDeferredUpdateCallback(OsTimerPtr timer, CARD32 now, pointer arg)
-{
- rdpPtr dev;
- rdpClientCon *clientCon;
-
- LLOGLN(10, ("rdpClientConDeferredUpdateCallback"));
-
- dev = (rdpPtr) arg;
- clientCon = dev->clientConHead;
- while (clientCon != NULL)
- {
- if (dev->do_dirty_ons)
- {
- if (clientCon->rectId == clientCon->rectIdAck)
- {
- rdpClientConCheckDirtyScreen(dev, clientCon);
- }
- else
- {
- LLOGLN(0, ("rdpClientConDeferredUpdateCallback: skipping"));
- }
- }
- else
- {
- rdpClientConSendPending(dev, clientCon);
- }
- clientCon = clientCon->next;
- }
- dev->sendUpdateScheduled = FALSE;
- return 0;
-}
-
-/******************************************************************************/
-void
-rdpClientConScheduleDeferredUpdate(rdpPtr dev)
-{
- if (dev->sendUpdateScheduled == FALSE)
- {
- dev->sendUpdateScheduled = TRUE;
- dev->sendUpdateTimer =
- TimerSet(dev->sendUpdateTimer, 0, 40,
- rdpClientConDeferredUpdateCallback, dev);
- }
-}
-
-/******************************************************************************/
-int
-rdpClientConCheckDirtyScreen(rdpPtr dev, rdpClientCon *clientCon)
-{
- return 0;
-}
-
-/******************************************************************************/
-static int
-rdpClientConSendPaintRectShmEx(rdpPtr dev, rdpClientCon *clientCon,
- struct image_data *id,
- RegionPtr dirtyReg,
- BoxPtr copyRects, int numCopyRects)
-{
- int index;
- int size;
- int num_rects_d;
- int num_rects_c;
- short x;
- short y;
- short cx;
- short cy;
- struct stream *s;
- BoxRec box;
-
- rdpClientConBeginUpdate(dev, clientCon);
-
- num_rects_d = REGION_NUM_RECTS(dirtyReg);
- num_rects_c = numCopyRects;
- if ((num_rects_c < 1) || (num_rects_d < 1))
- {
- LLOGLN(0, ("rdpClientConSendPaintRectShmEx: nothing to send"));
- return 0;
- }
- size = 2 + 2 + 2 + num_rects_d * 8 + 2 + num_rects_c * 8;
- size += 4 + 4 + 4 + 4 + 2 + 2;
- rdpClientConPreCheck(dev, clientCon, size);
-
- s = clientCon->out_s;
- out_uint16_le(s, 61);
- out_uint16_le(s, size);
- clientCon->count++;
-
- out_uint16_le(s, num_rects_d);
- for (index = 0; index < num_rects_d; index++)
- {
- box = REGION_RECTS(dirtyReg)[index];
- x = box.x1;
- y = box.y1;
- cx = box.x2 - box.x1;
- cy = box.y2 - box.y1;
- out_uint16_le(s, x);
- out_uint16_le(s, y);
- out_uint16_le(s, cx);
- out_uint16_le(s, cy);
- }
-
- out_uint16_le(s, num_rects_c);
- for (index = 0; index < num_rects_c; index++)
- {
- box = copyRects[index];
- x = box.x1;
- y = box.y1;
- cx = box.x2 - box.x1;
- cy = box.y2 - box.y1;
- out_uint16_le(s, x);
- out_uint16_le(s, y);
- out_uint16_le(s, cx);
- out_uint16_le(s, cy);
- }
-
- out_uint32_le(s, 0);
- clientCon->rect_id++;
- out_uint32_le(s, clientCon->rect_id);
- out_uint32_le(s, id->shmem_id);
- out_uint32_le(s, id->shmem_offset);
- out_uint16_le(s, clientCon->cap_width);
- out_uint16_le(s, clientCon->cap_height);
-
- rdpClientConEndUpdate(dev, clientCon);
-
- return 0;
-}
-
-/******************************************************************************/
-static CARD32
-rdpDeferredUpdateCallback(OsTimerPtr timer, CARD32 now, pointer arg)
-{
- rdpClientCon *clientCon;
- BoxPtr rects;
- int num_rects;
- struct image_data id;
-
- LLOGLN(10, ("rdpDeferredUpdateCallback:"));
- clientCon = (rdpClientCon *) arg;
-
- if ((clientCon->rect_id > clientCon->rect_id_ack) ||
- /* do not allow captures until we have the client_info */
- clientCon->client_info.size == 0)
- {
- LLOGLN(0, ("rdpDeferredUpdateCallback: reschedual rect_id %d "
- "rect_id_ack %d",
- clientCon->rect_id, clientCon->rect_id_ack));
- clientCon->updateTimer = TimerSet(clientCon->updateTimer, 0, 40,
- rdpDeferredUpdateCallback,
- clientCon);
- return 0;
- }
- else
- {
- LLOGLN(10, ("rdpDeferredUpdateCallback: sending"));
- }
- rdpClientConGetScreenImageRect(clientCon->dev, clientCon, &id);
- LLOGLN(10, ("rdpDeferredUpdateCallback: rdp_width %d rdp_height %d "
- "rdp_Bpp %d screen width %d screen height %d",
- clientCon->rdp_width, clientCon->rdp_height, clientCon->rdp_Bpp,
- id.width, id.height));
- clientCon->updateSchedualed = FALSE;
- rects = 0;
- num_rects = 0;
- LLOGLN(10, ("rdpDeferredUpdateCallback: capture_code %d",
- clientCon->client_info.capture_code));
- if (rdpCapture(clientCon, clientCon->dirtyRegion, &rects, &num_rects,
- id.pixels, id.width, id.height,
- id.lineBytes, XRDP_a8r8g8b8, id.shmem_pixels,
- clientCon->cap_width, clientCon->cap_height,
- clientCon->cap_width * clientCon->rdp_Bpp,
- clientCon->rdp_format, clientCon->client_info.capture_code))
- {
- LLOGLN(10, ("rdpDeferredUpdateCallback: num_rects %d", num_rects));
- rdpClientConSendPaintRectShmEx(clientCon->dev, clientCon, &id,
- clientCon->dirtyRegion,
- rects, num_rects);
- g_free(rects);
- }
- else
- {
- LLOGLN(0, ("rdpDeferredUpdateCallback: rdpCapture failed"));
- }
- rdpRegionDestroy(clientCon->dirtyRegion);
- clientCon->dirtyRegion = rdpRegionCreate(NullBox, 0);
- return 0;
-}
-
-/******************************************************************************/
-int
-rdpClientConAddDirtyScreenReg(rdpPtr dev, rdpClientCon *clientCon,
- RegionPtr reg)
-{
- LLOGLN(10, ("rdpClientConAddDirtyScreenReg:"));
-
- rdpRegionUnion(clientCon->dirtyRegion, clientCon->dirtyRegion, reg);
- if (clientCon->updateSchedualed == FALSE)
- {
- clientCon->updateTimer = TimerSet(clientCon->updateTimer, 0, 40,
- rdpDeferredUpdateCallback, clientCon);
- clientCon->updateSchedualed = TRUE;
- }
- return 0;
-}
-
-/******************************************************************************/
-int
-rdpClientConAddDirtyScreenBox(rdpPtr dev, rdpClientCon *clientCon,
- BoxPtr box)
-{
- RegionPtr reg;
-
- reg = rdpRegionCreate(box, 0);
- rdpClientConAddDirtyScreenReg(dev, clientCon, reg);
- rdpRegionDestroy(reg);
- return 0;
-}
-
-/******************************************************************************/
-int
-rdpClientConAddDirtyScreen(rdpPtr dev, rdpClientCon *clientCon,
- int x, int y, int cx, int cy)
-{
- BoxRec box;
-
- box.x1 = x;
- box.y1 = y;
- box.x2 = box.x1 + cx;
- box.y2 = box.y1 + cy;
- rdpClientConAddDirtyScreenBox(dev, clientCon, &box);
- return 0;
-}
-
-/******************************************************************************/
-void
-rdpClientConGetScreenImageRect(rdpPtr dev, rdpClientCon *clientCon,
- struct image_data *id)
-{
- id->width = dev->width;
- id->height = dev->height;
- id->bpp = clientCon->rdp_bpp;
- id->Bpp = clientCon->rdp_Bpp;
- id->lineBytes = dev->paddedWidthInBytes;
- id->pixels = dev->pfbMemory;
- id->shmem_pixels = clientCon->shmemptr;
- id->shmem_id = clientCon->shmemid;
- id->shmem_offset = 0;
- id->shmem_lineBytes = clientCon->shmem_lineBytes;
-}
-
-/******************************************************************************/
-void
-rdpClientConGetPixmapImageRect(rdpPtr dev, rdpClientCon *clientCon,
- PixmapPtr pPixmap, struct image_data *id)
-{
- id->width = pPixmap->drawable.width;
- id->height = pPixmap->drawable.height;
- id->bpp = clientCon->rdp_bpp;
- id->Bpp = clientCon->rdp_Bpp;
- id->lineBytes = pPixmap->devKind;
- id->pixels = (char *)(pPixmap->devPrivate.ptr);
- id->shmem_pixels = 0;
- id->shmem_id = 0;
- id->shmem_offset = 0;
- id->shmem_lineBytes = 0;
-}
-
-/******************************************************************************/
-void
-rdpClientConSendArea(rdpPtr dev, rdpClientCon *clientCon,
- struct image_data *id, int x, int y, int w, int h)
-{
- struct image_data lid;
- BoxRec box;
- int ly;
- int size;
- char *src;
- char *dst;
- struct stream *s;
-
- LLOGLN(10, ("rdpClientConSendArea: id %p x %d y %d w %d h %d", id, x, y, w, h));
-
- if (id == NULL)
- {
- rdpClientConGetScreenImageRect(dev, clientCon, &lid);
- id = &lid;
- }
-
- if (x >= id->width)
- {
- return;
- }
-
- if (y >= id->height)
- {
- return;
- }
-
- if (x < 0)
- {
- w += x;
- x = 0;
- }
-
- if (y < 0)
- {
- h += y;
- y = 0;
- }
-
- if (w <= 0)
- {
- return;
- }
-
- if (h <= 0)
- {
- return;
- }
-
- if (x + w > id->width)
- {
- w = id->width - x;
- }
-
- if (y + h > id->height)
- {
- h = id->height - y;
- }
-
- if (clientCon->connected && clientCon->begin)
- {
- if (id->shmem_pixels != 0)
- {
- LLOGLN(10, ("rdpClientConSendArea: using shmem"));
- box.x1 = x;
- box.y1 = y;
- box.x2 = box.x1 + w;
- box.y2 = box.y1 + h;
- src = id->pixels;
- src += y * id->lineBytes;
- src += x * dev->Bpp;
- dst = id->shmem_pixels + id->shmem_offset;
- dst += y * id->shmem_lineBytes;
- dst += x * clientCon->rdp_Bpp;
- ly = y;
- while (ly < y + h)
- {
- rdpClientConConvertPixels(dev, clientCon, src, dst, w);
- src += id->lineBytes;
- dst += id->shmem_lineBytes;
- ly += 1;
- }
- size = 36;
- rdpClientConPreCheck(dev, clientCon, size);
- s = clientCon->out_s;
- out_uint16_le(s, 60);
- out_uint16_le(s, size);
- clientCon->count++;
- LLOGLN(10, ("rdpClientConSendArea: 2 x %d y %d w %d h %d", x, y, w, h));
- out_uint16_le(s, x);
- out_uint16_le(s, y);
- out_uint16_le(s, w);
- out_uint16_le(s, h);
- out_uint32_le(s, 0);
- clientCon->rect_id++;
- out_uint32_le(s, clientCon->rect_id);
- out_uint32_le(s, id->shmem_id);
- out_uint32_le(s, id->shmem_offset);
- out_uint16_le(s, id->width);
- out_uint16_le(s, id->height);
- out_uint16_le(s, x);
- out_uint16_le(s, y);
- rdpRegionUnionRect(clientCon->shmRegion, &box);
- return;
- }
- }
-}
-
-/******************************************************************************/
-int
-rdpClientConAddAllReg(rdpPtr dev, RegionPtr reg, DrawablePtr pDrawable)
-{
- rdpClientCon *clientCon;
- Bool drw_is_vis;
-
- drw_is_vis = XRDP_DRAWABLE_IS_VISIBLE(dev, pDrawable);
- if (!drw_is_vis)
- {
- return 0;
- }
- clientCon = dev->clientConHead;
- while (clientCon != NULL)
- {
- rdpClientConAddDirtyScreenReg(dev, clientCon, reg);
- clientCon = clientCon->next;
- }
- return 0;
-}
-
-/******************************************************************************/
-int
-rdpClientConAddAllBox(rdpPtr dev, BoxPtr box, DrawablePtr pDrawable)
-{
- rdpClientCon *clientCon;
- Bool drw_is_vis;
-
- drw_is_vis = XRDP_DRAWABLE_IS_VISIBLE(dev, pDrawable);
- if (!drw_is_vis)
- {
- return 0;
- }
- clientCon = dev->clientConHead;
- while (clientCon != NULL)
- {
- rdpClientConAddDirtyScreenBox(dev, clientCon, box);
- clientCon = clientCon->next;
- }
- return 0;
-}
diff --git a/xorg/server/module/rdpClientCon.h b/xorg/server/module/rdpClientCon.h
deleted file mode 100644
index 954e3ab0..00000000
--- a/xorg/server/module/rdpClientCon.h
+++ /dev/null
@@ -1,168 +0,0 @@
-/*
-Copyright 2005-2014 Jay Sorg
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Client connection to xrdp
-
-*/
-
-#include <xorg-server.h>
-#include <xorgVersion.h>
-#include <xf86.h>
-
-/* in xrdp/common */
-#include "xrdp_client_info.h"
-#include "xrdp_constants.h"
-
-#ifndef _RDPCLIENTCON_H
-#define _RDPCLIENTCON_H
-
-/* used in rdpGlyphs.c */
-struct font_cache
-{
- int offset;
- int baseline;
- int width;
- int height;
- int crc;
- int stamp;
-};
-
-struct rdpup_os_bitmap
-{
- int used;
- PixmapPtr pixmap;
- rdpPixmapPtr priv;
- int stamp;
-};
-
-/* one of these for each client */
-struct _rdpClientCon
-{
- rdpPtr dev;
-
- int sck;
- int sckControlListener;
- int sckControl;
- struct stream *out_s;
- struct stream *in_s;
-
- int rectIdAck;
- int rectId;
- int connected; /* boolean */
- int begin; /* boolean */
- int count;
- int sckClosed; /* boolean */
- struct rdpup_os_bitmap *osBitmaps;
- int maxOsBitmaps;
- int osBitmapStamp;
- int osBitmapAllocSize;
- int osBitmapNumUsed;
- int doComposite;
- int doGlyphCache;
- int canDoPixToPix;
- int doMultimon;
-
- int rdp_bpp; /* client depth */
- int rdp_Bpp;
- int rdp_Bpp_mask;
- int rdp_width;
- int rdp_height;
- int rdp_format; /* XRDP_a8r8g8b8, XRDP_r5g6b5, ... */
- int cap_width;
- int cap_height;
-
- int rdpIndex; /* current os target */
-
- int conNumber;
-
- /* rdpGlyphs.c */
- struct font_cache font_cache[12][256];
- int font_stamp;
-
- struct xrdp_client_info client_info;
-
- char *shmemptr;
- int shmemid;
- int shmem_lineBytes;
- RegionPtr shmRegion;
- int rect_id;
- int rect_id_ack;
-
- OsTimerPtr updateTimer;
- int updateSchedualed; /* boolean */
-
- RegionPtr dirtyRegion;
-
- struct _rdpClientCon *next;
-};
-
-extern _X_EXPORT int
-rdpClientConBeginUpdate(rdpPtr dev, rdpClientCon *clientCon);
-extern _X_EXPORT int
-rdpClientConEndUpdate(rdpPtr dev, rdpClientCon *clientCon);
-extern _X_EXPORT int
-rdpClientConSetFgcolor(rdpPtr dev, rdpClientCon *clientCon, int fgcolor);
-extern _X_EXPORT void
-rdpClientConSendArea(rdpPtr dev, rdpClientCon *clientCon,
- struct image_data *id, int x, int y, int w, int h);
-extern _X_EXPORT int
-rdpClientConFillRect(rdpPtr dev, rdpClientCon *clientCon,
- short x, short y, int cx, int cy);
-extern _X_EXPORT int
-rdpClientConCheck(ScreenPtr pScreen);
-extern _X_EXPORT int
-rdpClientConInit(rdpPtr dev);
-extern _X_EXPORT int
-rdpClientConDeinit(rdpPtr dev);
-
-extern _X_EXPORT int
-rdpClientConDeleteOsSurface(rdpPtr dev, rdpClientCon *clientCon, int rdpindex);
-
-extern _X_EXPORT int
-rdpClientConRemoveOsBitmap(rdpPtr dev, rdpClientCon *clientCon, int rdpindex);
-
-extern _X_EXPORT void
-rdpClientConScheduleDeferredUpdate(rdpPtr dev);
-extern _X_EXPORT int
-rdpClientConCheckDirtyScreen(rdpPtr dev, rdpClientCon *clientCon);
-extern _X_EXPORT int
-rdpClientConAddDirtyScreenReg(rdpPtr dev, rdpClientCon *clientCon,
- RegionPtr reg);
-extern _X_EXPORT int
-rdpClientConAddDirtyScreenBox(rdpPtr dev, rdpClientCon *clientCon,
- BoxPtr box);
-extern _X_EXPORT int
-rdpClientConAddDirtyScreen(rdpPtr dev, rdpClientCon *clientCon,
- int x, int y, int cx, int cy);
-extern _X_EXPORT void
-rdpClientConGetScreenImageRect(rdpPtr dev, rdpClientCon *clientCon,
- struct image_data *id);
-extern _X_EXPORT int
-rdpClientConAddAllReg(rdpPtr dev, RegionPtr reg, DrawablePtr pDrawable);
-extern _X_EXPORT int
-rdpClientConAddAllBox(rdpPtr dev, BoxPtr box, DrawablePtr pDrawable);
-extern _X_EXPORT int
-rdpClientConSetCursor(rdpPtr dev, rdpClientCon *clientCon,
- short x, short y, char *cur_data, char *cur_mask);
-extern _X_EXPORT int
-rdpClientConSetCursorEx(rdpPtr dev, rdpClientCon *clientCon,
- short x, short y, char *cur_data,
- char *cur_mask, int bpp);
-
-#endif
diff --git a/xorg/server/module/rdpComposite.c b/xorg/server/module/rdpComposite.c
deleted file mode 100644
index 8c65ff1b..00000000
--- a/xorg/server/module/rdpComposite.c
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
-Copyright 2005-2014 Jay Sorg
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-composite(alpha blending) calls
-
-*/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-/* this should be before all X11 .h files */
-#include <xorg-server.h>
-#include <xorgVersion.h>
-
-/* all driver need this */
-#include <xf86.h>
-#include <xf86_OSproc.h>
-
-#include "mipict.h"
-#include <picture.h>
-
-#include "rdp.h"
-#include "rdpDraw.h"
-#include "rdpClientCon.h"
-#include "rdpReg.h"
-#include "rdpComposite.h"
-
-/******************************************************************************/
-#define LOG_LEVEL 1
-#define LLOGLN(_level, _args) \
- do { if (_level < LOG_LEVEL) { ErrorF _args ; ErrorF("\n"); } } while (0)
-
-/******************************************************************************/
-static void
-rdpCompositeOrg(PictureScreenPtr ps, rdpPtr dev,
- CARD8 op, PicturePtr pSrc, PicturePtr pMask, PicturePtr pDst,
- INT16 xSrc, INT16 ySrc, INT16 xMask, INT16 yMask,
- INT16 xDst, INT16 yDst, CARD16 width, CARD16 height)
-{
- ps->Composite = dev->Composite;
- ps->Composite(op, pSrc, pMask, pDst, xSrc, ySrc, xMask, yMask,
- xDst, yDst, width, height);
- ps->Composite = rdpComposite;
-}
-
-/******************************************************************************/
-void
-rdpComposite(CARD8 op, PicturePtr pSrc, PicturePtr pMask, PicturePtr pDst,
- INT16 xSrc, INT16 ySrc, INT16 xMask, INT16 yMask, INT16 xDst,
- INT16 yDst, CARD16 width, CARD16 height)
-{
- ScreenPtr pScreen;
- rdpPtr dev;
- PictureScreenPtr ps;
- BoxRec box;
- RegionRec reg;
-
- LLOGLN(10, ("rdpComposite:"));
- pScreen = pDst->pDrawable->pScreen;
- dev = rdpGetDevFromScreen(pScreen);
- dev->counts.rdpCompositeCallCount++;
- box.x1 = xDst + pDst->pDrawable->x;
- box.y1 = yDst + pDst->pDrawable->y;
- box.x2 = box.x1 + width;
- box.y2 = box.y1 + height;
- rdpRegionInit(&reg, &box, 0);
- if (pDst->pCompositeClip != NULL)
- {
- rdpRegionIntersect(&reg, pDst->pCompositeClip, &reg);
- }
- ps = GetPictureScreen(pScreen);
- /* do original call */
- rdpCompositeOrg(ps, dev, op, pSrc, pMask, pDst, xSrc, ySrc,
- xMask, yMask, xDst, yDst, width, height);
- rdpClientConAddAllReg(dev, &reg, pDst->pDrawable);
- rdpRegionUninit(&reg);
-}
diff --git a/xorg/server/module/rdpComposite.h b/xorg/server/module/rdpComposite.h
deleted file mode 100644
index 1c052ed8..00000000
--- a/xorg/server/module/rdpComposite.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
-Copyright 2005-2014 Jay Sorg
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-composite(alpha blending) calls
-
-*/
-
-#ifndef _RDPCOMPOSITE_H
-#define _RDPCOMPOSITE_H
-
-#include <xorg-server.h>
-#include <xorgVersion.h>
-#include <xf86.h>
-
-extern _X_EXPORT void
-rdpComposite(CARD8 op, PicturePtr pSrc, PicturePtr pMask, PicturePtr pDst,
- INT16 xSrc, INT16 ySrc, INT16 xMask, INT16 yMask, INT16 xDst,
- INT16 yDst, CARD16 width, CARD16 height);
-
-#endif
diff --git a/xorg/server/module/rdpCopyArea.c b/xorg/server/module/rdpCopyArea.c
deleted file mode 100644
index f135af6e..00000000
--- a/xorg/server/module/rdpCopyArea.c
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
-Copyright 2005-2014 Jay Sorg
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-*/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-/* this should be before all X11 .h files */
-#include <xorg-server.h>
-#include <xorgVersion.h>
-
-/* all driver need this */
-#include <xf86.h>
-#include <xf86_OSproc.h>
-
-#include "rdp.h"
-#include "rdpDraw.h"
-#include "rdpClientCon.h"
-#include "rdpReg.h"
-#include "rdpCopyArea.h"
-
-#define LOG_LEVEL 1
-#define LLOGLN(_level, _args) \
- do { if (_level < LOG_LEVEL) { ErrorF _args ; ErrorF("\n"); } } while (0)
-
-/******************************************************************************/
-static RegionPtr
-rdpCopyAreaOrg(DrawablePtr pSrc, DrawablePtr pDst, GCPtr pGC,
- int srcx, int srcy, int w, int h, int dstx, int dsty)
-{
- GC_OP_VARS;
- RegionPtr rv;
-
- GC_OP_PROLOGUE(pGC);
- rv = pGC->ops->CopyArea(pSrc, pDst, pGC, srcx, srcy, w, h, dstx, dsty);
- GC_OP_EPILOGUE(pGC);
- return rv;
-}
-
-/******************************************************************************/
-RegionPtr
-rdpCopyArea(DrawablePtr pSrc, DrawablePtr pDst, GCPtr pGC,
- int srcx, int srcy, int w, int h, int dstx, int dsty)
-{
- rdpPtr dev;
- RegionPtr rv;
- RegionRec clip_reg;
- RegionRec reg;
- int cd;
- BoxRec box;
-
- LLOGLN(10, ("rdpCopyArea:"));
- dev = rdpGetDevFromScreen(pGC->pScreen);
- dev->counts.rdpCopyAreaCallCount++;
- box.x1 = dstx + pDst->x;
- box.y1 = dsty + pDst->y;
- box.x2 = box.x1 + w;
- box.y2 = box.y1 + h;
- rdpRegionInit(&reg, &box, 0);
- rdpRegionInit(&clip_reg, NullBox, 0);
- cd = rdpDrawGetClip(dev, &clip_reg, pDst, pGC);
- LLOGLN(10, ("rdpCopyArea: cd %d", cd));
- if (cd == XRDP_CD_CLIP)
- {
- rdpRegionIntersect(&reg, &clip_reg, &reg);
- }
- /* do original call */
- rv = rdpCopyAreaOrg(pSrc, pDst, pGC, srcx, srcy, w, h, dstx, dsty);
- if (cd != XRDP_CD_NODRAW)
- {
- rdpClientConAddAllReg(dev, &reg, pDst);
- }
- rdpRegionUninit(&clip_reg);
- rdpRegionUninit(&reg);
- return rv;
-}
diff --git a/xorg/server/module/rdpCopyArea.h b/xorg/server/module/rdpCopyArea.h
deleted file mode 100644
index 881a8714..00000000
--- a/xorg/server/module/rdpCopyArea.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
-Copyright 2005-2013 Jay Sorg
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-*/
-
-#ifndef __RDPCOPYAREA_H
-#define __RDPCOPYAREA_H
-
-#include <xorg-server.h>
-#include <xorgVersion.h>
-#include <xf86.h>
-
-RegionPtr
-rdpCopyArea(DrawablePtr pSrc, DrawablePtr pDst, GCPtr pGC,
- int srcx, int srcy, int w, int h, int dstx, int dsty);
-
-#endif
diff --git a/xorg/server/module/rdpCopyPlane.c b/xorg/server/module/rdpCopyPlane.c
deleted file mode 100644
index 3ce3d558..00000000
--- a/xorg/server/module/rdpCopyPlane.c
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
-Copyright 2005-2014 Jay Sorg
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-*/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-/* this should be before all X11 .h files */
-#include <xorg-server.h>
-#include <xorgVersion.h>
-
-/* all driver need this */
-#include <xf86.h>
-#include <xf86_OSproc.h>
-
-#include "rdp.h"
-#include "rdpDraw.h"
-#include "rdpClientCon.h"
-#include "rdpReg.h"
-#include "rdpCopyPlane.h"
-
-#define LOG_LEVEL 1
-#define LLOGLN(_level, _args) \
- do { if (_level < LOG_LEVEL) { ErrorF _args ; ErrorF("\n"); } } while (0)
-
-/******************************************************************************/
-static RegionPtr
-rdpCopyPlaneOrg(DrawablePtr pSrc, DrawablePtr pDst,
- GCPtr pGC, int srcx, int srcy, int w, int h,
- int dstx, int dsty, unsigned long bitPlane)
-{
- GC_OP_VARS;
- RegionPtr rv;
-
- GC_OP_PROLOGUE(pGC);
- rv = pGC->ops->CopyPlane(pSrc, pDst, pGC, srcx, srcy,
- w, h, dstx, dsty, bitPlane);
- GC_OP_EPILOGUE(pGC);
- return rv;
-}
-
-/******************************************************************************/
-RegionPtr
-rdpCopyPlane(DrawablePtr pSrc, DrawablePtr pDst,
- GCPtr pGC, int srcx, int srcy, int w, int h,
- int dstx, int dsty, unsigned long bitPlane)
-{
- RegionPtr rv;
- rdpPtr dev;
- RegionRec clip_reg;
- RegionRec reg;
- int cd;
- BoxRec box;
-
- LLOGLN(10, ("rdpCopyPlane:"));
- dev = rdpGetDevFromScreen(pGC->pScreen);
- dev->counts.rdpCopyPlaneCallCount++;
- box.x1 = pDst->x + dstx;
- box.y1 = pDst->y + dsty;
- box.x2 = box.x1 + w;
- box.y2 = box.x1 + h;
- rdpRegionInit(&reg, &box, 0);
- rdpRegionInit(&clip_reg, NullBox, 0);
- cd = rdpDrawGetClip(dev, &clip_reg, pDst, pGC);
- LLOGLN(10, ("rdpCopyPlane: cd %d", cd));
- if (cd == XRDP_CD_CLIP)
- {
- rdpRegionIntersect(&reg, &clip_reg, &reg);
- }
- /* do original call */
- rv = rdpCopyPlaneOrg(pSrc, pDst, pGC, srcx, srcy, w, h,
- dstx, dsty, bitPlane);
- if (cd != XRDP_CD_NODRAW)
- {
- rdpClientConAddAllReg(dev, &reg, pDst);
- }
- rdpRegionUninit(&clip_reg);
- rdpRegionUninit(&reg);
- return rv;
-}
diff --git a/xorg/server/module/rdpCopyPlane.h b/xorg/server/module/rdpCopyPlane.h
deleted file mode 100644
index 66b372c9..00000000
--- a/xorg/server/module/rdpCopyPlane.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
-Copyright 2005-2014 Jay Sorg
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-*/
-
-#ifndef __RDPCOPYPLANE_H
-#define __RDPCOPYPLANE_H
-
-#include <xorg-server.h>
-#include <xorgVersion.h>
-#include <xf86.h>
-
-RegionPtr
-rdpCopyPlane(DrawablePtr pSrcDrawable, DrawablePtr pDstDrawable,
- GCPtr pGC, int srcx, int srcy, int width, int height,
- int dstx, int dsty, unsigned long bitPlane);
-
-#endif
diff --git a/xorg/server/module/rdpCursor.c b/xorg/server/module/rdpCursor.c
deleted file mode 100644
index f85999de..00000000
--- a/xorg/server/module/rdpCursor.c
+++ /dev/null
@@ -1,358 +0,0 @@
-/*
-Copyright 2005-2014 Jay Sorg
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-cursor
-
-*/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-/* this should be before all X11 .h files */
-#include <xorg-server.h>
-#include <xorgVersion.h>
-
-/* all driver need this */
-#include <xf86.h>
-#include <xf86_OSproc.h>
-
-#include <mipointer.h>
-#include <fb.h>
-#include <micmap.h>
-#include <mi.h>
-#include <cursor.h>
-#include <cursorstr.h>
-
-#include <X11/Xarch.h>
-
-#include "rdp.h"
-#include "rdpMain.h"
-#include "rdpDraw.h"
-#include "rdpClientCon.h"
-#include "rdpCursor.h"
-
-#ifndef X_BYTE_ORDER
-#warning X_BYTE_ORDER not defined
-#endif
-
-#if (X_BYTE_ORDER == X_LITTLE_ENDIAN)
-/* Copied from Xvnc/lib/font/util/utilbitmap.c */
-static unsigned char g_reverse_byte[0x100] =
-{
- 0x00, 0x80, 0x40, 0xc0, 0x20, 0xa0, 0x60, 0xe0,
- 0x10, 0x90, 0x50, 0xd0, 0x30, 0xb0, 0x70, 0xf0,
- 0x08, 0x88, 0x48, 0xc8, 0x28, 0xa8, 0x68, 0xe8,
- 0x18, 0x98, 0x58, 0xd8, 0x38, 0xb8, 0x78, 0xf8,
- 0x04, 0x84, 0x44, 0xc4, 0x24, 0xa4, 0x64, 0xe4,
- 0x14, 0x94, 0x54, 0xd4, 0x34, 0xb4, 0x74, 0xf4,
- 0x0c, 0x8c, 0x4c, 0xcc, 0x2c, 0xac, 0x6c, 0xec,
- 0x1c, 0x9c, 0x5c, 0xdc, 0x3c, 0xbc, 0x7c, 0xfc,
- 0x02, 0x82, 0x42, 0xc2, 0x22, 0xa2, 0x62, 0xe2,
- 0x12, 0x92, 0x52, 0xd2, 0x32, 0xb2, 0x72, 0xf2,
- 0x0a, 0x8a, 0x4a, 0xca, 0x2a, 0xaa, 0x6a, 0xea,
- 0x1a, 0x9a, 0x5a, 0xda, 0x3a, 0xba, 0x7a, 0xfa,
- 0x06, 0x86, 0x46, 0xc6, 0x26, 0xa6, 0x66, 0xe6,
- 0x16, 0x96, 0x56, 0xd6, 0x36, 0xb6, 0x76, 0xf6,
- 0x0e, 0x8e, 0x4e, 0xce, 0x2e, 0xae, 0x6e, 0xee,
- 0x1e, 0x9e, 0x5e, 0xde, 0x3e, 0xbe, 0x7e, 0xfe,
- 0x01, 0x81, 0x41, 0xc1, 0x21, 0xa1, 0x61, 0xe1,
- 0x11, 0x91, 0x51, 0xd1, 0x31, 0xb1, 0x71, 0xf1,
- 0x09, 0x89, 0x49, 0xc9, 0x29, 0xa9, 0x69, 0xe9,
- 0x19, 0x99, 0x59, 0xd9, 0x39, 0xb9, 0x79, 0xf9,
- 0x05, 0x85, 0x45, 0xc5, 0x25, 0xa5, 0x65, 0xe5,
- 0x15, 0x95, 0x55, 0xd5, 0x35, 0xb5, 0x75, 0xf5,
- 0x0d, 0x8d, 0x4d, 0xcd, 0x2d, 0xad, 0x6d, 0xed,
- 0x1d, 0x9d, 0x5d, 0xdd, 0x3d, 0xbd, 0x7d, 0xfd,
- 0x03, 0x83, 0x43, 0xc3, 0x23, 0xa3, 0x63, 0xe3,
- 0x13, 0x93, 0x53, 0xd3, 0x33, 0xb3, 0x73, 0xf3,
- 0x0b, 0x8b, 0x4b, 0xcb, 0x2b, 0xab, 0x6b, 0xeb,
- 0x1b, 0x9b, 0x5b, 0xdb, 0x3b, 0xbb, 0x7b, 0xfb,
- 0x07, 0x87, 0x47, 0xc7, 0x27, 0xa7, 0x67, 0xe7,
- 0x17, 0x97, 0x57, 0xd7, 0x37, 0xb7, 0x77, 0xf7,
- 0x0f, 0x8f, 0x4f, 0xcf, 0x2f, 0xaf, 0x6f, 0xef,
- 0x1f, 0x9f, 0x5f, 0xdf, 0x3f, 0xbf, 0x7f, 0xff
-};
-#endif
-
-/******************************************************************************/
-#define LOG_LEVEL 1
-#define LLOGLN(_level, _args) \
- do { if (_level < LOG_LEVEL) { ErrorF _args ; ErrorF("\n"); } } while (0)
-
-/******************************************************************************/
-Bool
-rdpSpriteRealizeCursor(DeviceIntPtr pDev, ScreenPtr pScr, CursorPtr pCurs)
-{
- LLOGLN(10, ("rdpSpriteRealizeCursor:"));
- return TRUE;
-}
-
-/******************************************************************************/
-Bool
-rdpSpriteUnrealizeCursor(DeviceIntPtr pDev, ScreenPtr pScr, CursorPtr pCurs)
-{
- LLOGLN(10, ("rdpSpriteUnrealizeCursor:"));
- return TRUE;
-}
-
-/******************************************************************************/
-static int
-get_pixel_safe(char *data, int x, int y, int width, int height, int bpp)
-{
- int start;
- int shift;
- int c;
- unsigned int *src32;
-
- if (x < 0)
- {
- return 0;
- }
-
- if (y < 0)
- {
- return 0;
- }
-
- if (x >= width)
- {
- return 0;
- }
-
- if (y >= height)
- {
- return 0;
- }
-
- if (bpp == 1)
- {
- width = (width + 7) / 8;
- start = (y * width) + x / 8;
- shift = x % 8;
- c = (unsigned char)(data[start]);
-#if (X_BYTE_ORDER == X_LITTLE_ENDIAN)
- return (g_reverse_byte[c] & (0x80 >> shift)) != 0;
-#else
- return (c & (0x80 >> shift)) != 0;
-#endif
- }
- else if (bpp == 32)
- {
- src32 = (unsigned int*)data;
- return src32[y * width + x];
- }
-
- return 0;
-}
-
-/******************************************************************************/
-static void
-set_pixel_safe(char *data, int x, int y, int width, int height, int bpp,
- int pixel)
-{
- int start;
- int shift;
- unsigned int *dst32;
-
- if (x < 0)
- {
- return;
- }
-
- if (y < 0)
- {
- return;
- }
-
- if (x >= width)
- {
- return;
- }
-
- if (y >= height)
- {
- return;
- }
-
- if (bpp == 1)
- {
- width = (width + 7) / 8;
- start = (y * width) + x / 8;
- shift = x % 8;
-
- if (pixel & 1)
- {
- data[start] = data[start] | (0x80 >> shift);
- }
- else
- {
- data[start] = data[start] & ~(0x80 >> shift);
- }
- }
- else if (bpp == 24)
- {
- *(data + (3 * (y * width + x)) + 0) = pixel >> 0;
- *(data + (3 * (y * width + x)) + 1) = pixel >> 8;
- *(data + (3 * (y * width + x)) + 2) = pixel >> 16;
- }
- else if (bpp == 32)
- {
- dst32 = (unsigned int*)data;
- dst32[y * width + x] = pixel;
- }
-}
-
-/******************************************************************************/
-void
-rdpSpriteSetCursorCon(rdpClientCon *clientCon,
- DeviceIntPtr pDev, ScreenPtr pScr, CursorPtr pCurs,
- int x, int y)
-{
- char cur_data[32 * (32 * 4)];
- char cur_mask[32 * (32 / 8)];
- char *mask;
- char *data;
- int i;
- int j;
- int w;
- int h;
- int p;
- int xhot;
- int yhot;
- int paddedRowBytes;
- int fgcolor;
- int bgcolor;
- int bpp;
-
- LLOGLN(10, ("rdpSpriteSetCursorCon:"));
-
- w = pCurs->bits->width;
- h = pCurs->bits->height;
- if ((pCurs->bits->argb != 0) &&
- (clientCon->client_info.pointer_flags & 1))
- {
- bpp = 32;
- paddedRowBytes = PixmapBytePad(w, 32);
- xhot = pCurs->bits->xhot;
- yhot = pCurs->bits->yhot;
- data = (char *)(pCurs->bits->argb);
- memset(cur_data, 0, sizeof(cur_data));
- memset(cur_mask, 0, sizeof(cur_mask));
-
- for (j = 0; j < 32; j++)
- {
- for (i = 0; i < 32; i++)
- {
- p = get_pixel_safe(data, i, j, paddedRowBytes / 4, h, 32);
- set_pixel_safe(cur_data, i, 31 - j, 32, 32, 32, p);
- }
- }
- }
- else
- {
- bpp = 0;
- paddedRowBytes = PixmapBytePad(w, 1);
- xhot = pCurs->bits->xhot;
- yhot = pCurs->bits->yhot;
- data = (char *)(pCurs->bits->source);
- mask = (char *)(pCurs->bits->mask);
- fgcolor = (((pCurs->foreRed >> 8) & 0xff) << 16) |
- (((pCurs->foreGreen >> 8) & 0xff) << 8) |
- ((pCurs->foreBlue >> 8) & 0xff);
- bgcolor = (((pCurs->backRed >> 8) & 0xff) << 16) |
- (((pCurs->backGreen >> 8) & 0xff) << 8) |
- ((pCurs->backBlue >> 8) & 0xff);
- memset(cur_data, 0, sizeof(cur_data));
- memset(cur_mask, 0, sizeof(cur_mask));
-
- for (j = 0; j < 32; j++)
- {
- for (i = 0; i < 32; i++)
- {
- p = get_pixel_safe(mask, i, j, paddedRowBytes * 8, h, 1);
- set_pixel_safe(cur_mask, i, 31 - j, 32, 32, 1, !p);
-
- if (p != 0)
- {
- p = get_pixel_safe(data, i, j, paddedRowBytes * 8, h, 1);
- p = p ? fgcolor : bgcolor;
- set_pixel_safe(cur_data, i, 31 - j, 32, 32, 24, p);
- }
- }
- }
- }
-
- rdpClientConBeginUpdate(clientCon->dev, clientCon);
- rdpClientConSetCursorEx(clientCon->dev, clientCon, xhot, yhot,
- cur_data, cur_mask, bpp);
- rdpClientConEndUpdate(clientCon->dev, clientCon);
-
-}
-
-/******************************************************************************/
-void
-rdpSpriteSetCursor(DeviceIntPtr pDev, ScreenPtr pScr, CursorPtr pCurs,
- int x, int y)
-{
- rdpPtr dev;
- rdpClientCon *clientCon;
-
- LLOGLN(10, ("rdpSpriteSetCursor:"));
- if (pCurs == 0)
- {
- return;
- }
-
- if (pCurs->bits == 0)
- {
- return;
- }
-
- dev = rdpGetDevFromScreen(pScr);
- clientCon = dev->clientConHead;
- while (clientCon != NULL)
- {
- rdpSpriteSetCursorCon(clientCon, pDev, pScr, pCurs, x, y);
- clientCon = clientCon->next;
- }
-}
-
-/******************************************************************************/
-void
-rdpSpriteMoveCursor(DeviceIntPtr pDev, ScreenPtr pScr, int x, int y)
-{
- LLOGLN(10, ("rdpSpriteMoveCursor:"));
-}
-
-/******************************************************************************/
-Bool
-rdpSpriteDeviceCursorInitialize(DeviceIntPtr pDev, ScreenPtr pScr)
-{
- LLOGLN(10, ("rdpSpriteDeviceCursorInitialize:"));
- return TRUE;
-}
-
-/******************************************************************************/
-void
-rdpSpriteDeviceCursorCleanup(DeviceIntPtr pDev, ScreenPtr pScr)
-{
- LLOGLN(10, ("rdpSpriteDeviceCursorCleanup:"));
- xorgxrdpDownDown(pScr);
-}
diff --git a/xorg/server/module/rdpCursor.h b/xorg/server/module/rdpCursor.h
deleted file mode 100644
index 1be09f61..00000000
--- a/xorg/server/module/rdpCursor.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
-Copyright 2005-2014 Jay Sorg
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-misc draw calls
-
-*/
-
-#ifndef __RDPCURSOR_H
-#define __RDPCURSOR_H
-
-#include <xorg-server.h>
-#include <xorgVersion.h>
-#include <xf86.h>
-
-extern _X_EXPORT Bool
-rdpSpriteRealizeCursor(DeviceIntPtr pDev, ScreenPtr pScr, CursorPtr pCurs);
-extern _X_EXPORT Bool
-rdpSpriteUnrealizeCursor(DeviceIntPtr pDev, ScreenPtr pScr, CursorPtr pCurs);
-extern _X_EXPORT void
-rdpSpriteSetCursor(DeviceIntPtr pDev, ScreenPtr pScr, CursorPtr pCurs,
- int x, int y);
-extern _X_EXPORT void
-rdpSpriteMoveCursor(DeviceIntPtr pDev, ScreenPtr pScr, int x, int y);
-extern _X_EXPORT Bool
-rdpSpriteDeviceCursorInitialize(DeviceIntPtr pDev, ScreenPtr pScr);
-extern _X_EXPORT void
-rdpSpriteDeviceCursorCleanup(DeviceIntPtr pDev, ScreenPtr pScr);
-
-#endif
diff --git a/xorg/server/module/rdpDraw.c b/xorg/server/module/rdpDraw.c
deleted file mode 100644
index b4e689af..00000000
--- a/xorg/server/module/rdpDraw.c
+++ /dev/null
@@ -1,411 +0,0 @@
-/*
-Copyright 2005-2014 Jay Sorg
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-misc draw calls
-
-*/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-/* this should be before all X11 .h files */
-#include <xorg-server.h>
-#include <xorgVersion.h>
-
-/* all driver need this */
-#include <xf86.h>
-#include <xf86_OSproc.h>
-
-#include <mipointer.h>
-#include <fb.h>
-#include <micmap.h>
-#include <mi.h>
-#include <dixfontstr.h>
-
-#include "rdp.h"
-#include "rdpDraw.h"
-#include "rdpClientCon.h"
-#include "rdpMisc.h"
-#include "rdpGlyphs.h"
-#include "rdpReg.h"
-
-#define LOG_LEVEL 1
-#define LLOGLN(_level, _args) \
- do { if (_level < LOG_LEVEL) { ErrorF _args ; ErrorF("\n"); } } while (0)
-
-/******************************************************************************/
-/* return 0, draw nothing */
-/* return 1, draw with no clip */
-/* return 2, draw using clip */
-int
-rdpDrawGetClip(rdpPtr dev, RegionPtr pRegion, DrawablePtr pDrawable, GCPtr pGC)
-{
- WindowPtr pWindow;
- RegionPtr temp;
- BoxRec box;
- int rv;
-
- rv = 0;
-
- if (pDrawable->type == DRAWABLE_PIXMAP)
- {
- switch (pGC->clientClipType)
- {
- case CT_NONE:
- rv = 1;
- break;
- case CT_REGION:
- rv = 2;
- rdpRegionCopy(pRegion, pGC->clientClip);
- break;
- default:
- LLOGLN(0, ("rdpDrawGetClip: unimp clip type %d",
- pGC->clientClipType));
- break;
- }
-
- if (rv == 2) /* check if the clip is the entire pixmap */
- {
- box.x1 = 0;
- box.y1 = 0;
- box.x2 = pDrawable->width;
- box.y2 = pDrawable->height;
-
- if (rdpRegionContainsRect(pRegion, &box) == rgnIN)
- {
- rv = 1;
- }
- }
- }
- else if (pDrawable->type == DRAWABLE_WINDOW)
- {
- pWindow = (WindowPtr)pDrawable;
-
- if (pWindow->viewable)
- {
- if (pGC->subWindowMode == IncludeInferiors)
- {
- temp = &pWindow->borderClip;
- }
- else
- {
- temp = &pWindow->clipList;
- }
-
- if (rdpRegionNotEmpty(temp))
- {
- switch (pGC->clientClipType)
- {
- case CT_NONE:
- rv = 2;
- rdpRegionCopy(pRegion, temp);
- break;
- case CT_REGION:
- rv = 2;
- rdpRegionCopy(pRegion, pGC->clientClip);
- rdpRegionTranslate(pRegion,
- pDrawable->x + pGC->clipOrg.x,
- pDrawable->y + pGC->clipOrg.y);
- rdpRegionIntersect(pRegion, pRegion, temp);
- break;
- default:
- LLOGLN(0, ("rdpDrawGetClip: unimp clip type %d",
- pGC->clientClipType));
- break;
- }
-
- if (rv == 2) /* check if the clip is the entire screen */
- {
- box.x1 = 0;
- box.y1 = 0;
- box.x2 = dev->width;
- box.y2 = dev->height;
-
- if (rdpRegionContainsRect(pRegion, &box) == rgnIN)
- {
- rv = 1;
- }
- }
- }
- }
- }
-
- return rv;
-}
-
-/******************************************************************************/
-void
-GetTextBoundingBox(DrawablePtr pDrawable, FontPtr font, int x, int y,
- int n, BoxPtr pbox)
-{
- int maxAscent;
- int maxDescent;
- int maxCharWidth;
-
- if (FONTASCENT(font) > FONTMAXBOUNDS(font, ascent))
- {
- maxAscent = FONTASCENT(font);
- }
- else
- {
- maxAscent = FONTMAXBOUNDS(font, ascent);
- }
-
- if (FONTDESCENT(font) > FONTMAXBOUNDS(font, descent))
- {
- maxDescent = FONTDESCENT(font);
- }
- else
- {
- maxDescent = FONTMAXBOUNDS(font, descent);
- }
-
- if (FONTMAXBOUNDS(font, rightSideBearing) >
- FONTMAXBOUNDS(font, characterWidth))
- {
- maxCharWidth = FONTMAXBOUNDS(font, rightSideBearing);
- }
- else
- {
- maxCharWidth = FONTMAXBOUNDS(font, characterWidth);
- }
-
- pbox->x1 = pDrawable->x + x;
- pbox->y1 = pDrawable->y + y - maxAscent;
- pbox->x2 = pbox->x1 + maxCharWidth * n;
- pbox->y2 = pbox->y1 + maxAscent + maxDescent;
-
- if (FONTMINBOUNDS(font, leftSideBearing) < 0)
- {
- pbox->x1 += FONTMINBOUNDS(font, leftSideBearing);
- }
-}
-
-/******************************************************************************/
-int
-rdpDrawItemAdd(rdpPtr dev, rdpPixmapRec *priv, struct rdp_draw_item *di)
-{
- priv->is_alpha_dirty_not = FALSE;
-
- if (priv->draw_item_tail == NULL)
- {
- priv->draw_item_tail = di;
- priv->draw_item_head = di;
- }
- else
- {
- di->prev = priv->draw_item_tail;
- priv->draw_item_tail->next = di;
- priv->draw_item_tail = di;
- }
-
- if (priv == &(dev->screenPriv))
- {
- rdpClientConScheduleDeferredUpdate(dev);
- }
-
- return 0;
-}
-
-/******************************************************************************/
-int
-rdpDrawItemRemove(rdpPtr dev, rdpPixmapRec *priv, struct rdp_draw_item *di)
-{
- if (di->prev != NULL)
- {
- di->prev->next = di->next;
- }
-
- if (di->next != NULL)
- {
- di->next->prev = di->prev;
- }
-
- if (priv->draw_item_head == di)
- {
- priv->draw_item_head = di->next;
- }
-
- if (priv->draw_item_tail == di)
- {
- priv->draw_item_tail = di->prev;
- }
-
- if (di->type == RDI_LINE)
- {
- if (di->u.line.segs != NULL)
- {
- g_free(di->u.line.segs);
- }
- }
-
- if (di->type == RDI_TEXT)
- {
- rdpGlyphDeleteRdpText(di->u.text.rtext);
- }
-
- rdpRegionDestroy(di->reg);
- g_free(di);
- return 0;
-}
-
-/******************************************************************************/
-int
-rdpDrawItemRemoveAll(rdpPtr dev, rdpPixmapRec *priv)
-{
- struct rdp_draw_item *di;
-
- di = priv->draw_item_head;
-
- while (di != NULL)
- {
- rdpDrawItemRemove(dev, priv, di);
- di = priv->draw_item_head;
- }
-
- return 0;
-}
-
-/*****************************************************************************/
-void
-rdpCopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg, RegionPtr pOldRegion)
-{
- ScreenPtr pScreen;
- rdpPtr dev;
- RegionRec reg;
- RegionRec clip;
- int dx;
- int dy;
- int num_clip_rects;
- int num_reg_rects;
- BoxPtr box;
- BoxRec box1;
-
- LLOGLN(10, ("rdpCopyWindow:"));
- pScreen = pWin->drawable.pScreen;
- dev = rdpGetDevFromScreen(pScreen);
- dev->counts.rdpCopyWindowCallCount++;
-
- rdpRegionInit(&reg, NullBox, 0);
- rdpRegionCopy(&reg, pOldRegion);
- rdpRegionInit(&clip, NullBox, 0);
- rdpRegionCopy(&clip, &pWin->borderClip);
- dx = pWin->drawable.x - ptOldOrg.x;
- dy = pWin->drawable.y - ptOldOrg.y;
-
- dev->pScreen->CopyWindow = dev->CopyWindow;
- dev->pScreen->CopyWindow(pWin, ptOldOrg, pOldRegion);
- dev->pScreen->CopyWindow = rdpCopyWindow;
-
- num_clip_rects = REGION_NUM_RECTS(&clip);
- num_reg_rects = REGION_NUM_RECTS(&reg);
-
- if ((num_clip_rects == 0) || (num_reg_rects == 0))
- {
- }
- else
- {
- if ((num_clip_rects > 16) || (num_reg_rects > 16))
- {
- LLOGLN(10, ("rdpCopyWindow: big list"));
- box = rdpRegionExtents(&reg);
- box1 = *box;
- box1.x1 += dx;
- box1.y1 += dy;
- box1.x2 += dx;
- box1.y2 += dy;
- rdpClientConAddAllBox(dev, &box1, &(pWin->drawable));
- }
- else
- {
- rdpRegionTranslate(&reg, dx, dy);
- rdpRegionIntersect(&reg, &reg, &clip);
- rdpClientConAddAllReg(dev, &reg, &(pWin->drawable));
- }
- }
- rdpRegionUninit(&reg);
- rdpRegionUninit(&clip);
-}
-
-#if XRDP_CLOSESCR == 1 /* before v1.13 */
-
-/*****************************************************************************/
-Bool
-rdpCloseScreen(int index, ScreenPtr pScreen)
-{
- rdpPtr dev;
- Bool rv;
-
- LLOGLN(0, ("rdpCloseScreen:"));
- dev = rdpGetDevFromScreen(pScreen);
- dev->pScreen->CloseScreen = dev->CloseScreen;
- rv = dev->pScreen->CloseScreen(index, pScreen);
- dev->pScreen->CloseScreen = rdpCloseScreen;
- return rv;
-}
-
-#else
-
-/*****************************************************************************/
-Bool
-rdpCloseScreen(ScreenPtr pScreen)
-{
- rdpPtr dev;
- Bool rv;
-
- LLOGLN(0, ("rdpCloseScreen:"));
- dev = rdpGetDevFromScreen(pScreen);
- dev->pScreen->CloseScreen = dev->CloseScreen;
- rv = dev->pScreen->CloseScreen(pScreen);
- dev->pScreen->CloseScreen = rdpCloseScreen;
- return rv;
-}
-
-#endif
-
-/******************************************************************************/
-WindowPtr
-rdpGetRootWindowPtr(ScreenPtr pScreen)
-{
-#if XORG_VERSION_CURRENT < XORG_VERSION_NUMERIC(1, 9, 0, 0, 0)
- return WindowTable[pScreen->myNum]; /* in globals.c */
-#else
- return pScreen->root;
-#endif
-}
-
-/******************************************************************************/
-rdpPtr
-rdpGetDevFromScreen(ScreenPtr pScreen)
-{
- ScrnInfoPtr pScrn;
- rdpPtr dev;
-
- if (pScreen == NULL)
- {
- pScrn = xf86Screens[0];
- }
- else
- {
- pScrn = xf86Screens[pScreen->myNum];
- }
- dev = XRDPPTR(pScrn);
- return dev;
-}
diff --git a/xorg/server/module/rdpDraw.h b/xorg/server/module/rdpDraw.h
deleted file mode 100644
index 583ac7d1..00000000
--- a/xorg/server/module/rdpDraw.h
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
-Copyright 2005-2014 Jay Sorg
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-misc draw calls
-
-*/
-
-#ifndef __RDPDRAW_H
-#define __RDPDRAW_H
-
-#include <xorg-server.h>
-#include <xorgVersion.h>
-#include <xf86.h>
-
-#if XORG_VERSION_CURRENT < XORG_VERSION_NUMERIC(1, 13, 0, 0, 0)
-/* 1.1, 1.2, 1.3, 1.4 1.5, 1.6, 1.7, 1.8, 1.9, 1.10, 1.11, 1.12 */
-#define XRDP_CLOSESCR 1
-#else
-/* 1.13 */
-#define XRDP_CLOSESCR 2
-#endif
-
-/* true if drawable is window or pixmap is screen */
-#define XRDP_DRAWABLE_IS_VISIBLE(_dev, _drw) \
-(((_drw)->type == DRAWABLE_WINDOW && ((WindowPtr)(_drw))->viewable) || \
- ((_drw)->type == DRAWABLE_PIXMAP && \
- ((PixmapPtr)(_drw))->devPrivate.ptr == (_dev)->pfbMemory))
-
-/******************************************************************************/
-#define GC_OP_VARS rdpPtr dev; rdpGCPtr priv; GCFuncs *oldFuncs
-
-/******************************************************************************/
-#define GC_OP_PROLOGUE(_pGC) \
-do { \
- dev = rdpGetDevFromScreen((_pGC)->pScreen); \
- priv = (rdpGCPtr)rdpGetGCPrivate(_pGC, dev->privateKeyRecGC); \
- oldFuncs = (_pGC)->funcs; \
- (_pGC)->funcs = priv->funcs; \
- (_pGC)->ops = priv->ops; \
-} while (0)
-
-/******************************************************************************/
-#define GC_OP_EPILOGUE(_pGC) \
-do { \
- priv->ops = (_pGC)->ops; \
- (_pGC)->funcs = oldFuncs; \
- (_pGC)->ops = &g_rdpGCOps; \
-} while (0)
-
-extern GCOps g_rdpGCOps; /* in rdpGC.c */
-
-extern _X_EXPORT int
-rdpDrawGetClip(rdpPtr dev, RegionPtr pRegion, DrawablePtr pDrawable, GCPtr pGC);
-extern _X_EXPORT void
-GetTextBoundingBox(DrawablePtr pDrawable, FontPtr font, int x, int y,
- int n, BoxPtr pbox);
-extern _X_EXPORT int
-rdpDrawItemAdd(rdpPtr dev, rdpPixmapRec *priv, struct rdp_draw_item *di);
-extern _X_EXPORT int
-rdpDrawItemRemove(rdpPtr dev, rdpPixmapRec *priv, struct rdp_draw_item *di);
-extern _X_EXPORT int
-rdpDrawItemRemoveAll(rdpPtr dev, rdpPixmapRec *priv);
-extern _X_EXPORT void
-rdpCopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg, RegionPtr pOldRegion);
-#if XRDP_CLOSESCR == 1
-extern _X_EXPORT Bool
-rdpCloseScreen(int index, ScreenPtr pScreen);
-#else
-extern _X_EXPORT Bool
-rdpCloseScreen(ScreenPtr pScreen);
-#endif
-extern _X_EXPORT WindowPtr
-rdpGetRootWindowPtr(ScreenPtr pScreen);
-extern _X_EXPORT rdpPtr
-rdpGetDevFromScreen(ScreenPtr pScreen);
-
-#endif
diff --git a/xorg/server/module/rdpFillPolygon.c b/xorg/server/module/rdpFillPolygon.c
deleted file mode 100644
index fdcc3472..00000000
--- a/xorg/server/module/rdpFillPolygon.c
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
-Copyright 2005-2014 Jay Sorg
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-*/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-/* this should be before all X11 .h files */
-#include <xorg-server.h>
-#include <xorgVersion.h>
-
-/* all driver need this */
-#include <xf86.h>
-#include <xf86_OSproc.h>
-
-#include "rdp.h"
-#include "rdpDraw.h"
-#include "rdpClientCon.h"
-#include "rdpReg.h"
-#include "rdpFillPolygon.h"
-
-#define LOG_LEVEL 1
-#define LLOGLN(_level, _args) \
- do { if (_level < LOG_LEVEL) { ErrorF _args ; ErrorF("\n"); } } while (0)
-
-/******************************************************************************/
-void
-rdpFillPolygonOrg(DrawablePtr pDrawable, GCPtr pGC,
- int shape, int mode, int count,
- DDXPointPtr pPts)
-{
- GC_OP_VARS;
-
- GC_OP_PROLOGUE(pGC);
- pGC->ops->FillPolygon(pDrawable, pGC, shape, mode, count, pPts);
- GC_OP_EPILOGUE(pGC);
-}
-
-/******************************************************************************/
-void
-rdpFillPolygon(DrawablePtr pDrawable, GCPtr pGC,
- int shape, int mode, int count,
- DDXPointPtr pPts)
-{
- rdpPtr dev;
- RegionRec clip_reg;
- RegionRec reg;
- int cd;
- int maxx;
- int maxy;
- int minx;
- int miny;
- int index;
- int x;
- int y;
- BoxRec box;
-
- LLOGLN(10, ("rdpFillPolygon:"));
- dev = rdpGetDevFromScreen(pGC->pScreen);
- dev->counts.rdpFillPolygonCallCount++;
- box.x1 = 0;
- box.y1 = 0;
- box.x2 = 0;
- box.y2 = 0;
- if (count > 0)
- {
- maxx = pPts[0].x;
- maxy = pPts[0].y;
- minx = maxx;
- miny = maxy;
- for (index = 1; index < count; index++)
- {
- x = pPts[index].x;
- y = pPts[index].y;
- maxx = RDPMAX(x, maxx);
- minx = RDPMIN(x, minx);
- maxy = RDPMAX(y, maxy);
- miny = RDPMIN(y, miny);
- }
- box.x1 = pDrawable->x + minx;
- box.y1 = pDrawable->y + miny;
- box.x2 = pDrawable->x + maxx + 1;
- box.y2 = pDrawable->y + maxy + 1;
- }
- rdpRegionInit(&reg, &box, 0);
- rdpRegionInit(&clip_reg, NullBox, 0);
- cd = rdpDrawGetClip(dev, &clip_reg, pDrawable, pGC);
- LLOGLN(10, ("rdpFillPolygon: cd %d", cd));
- if (cd == XRDP_CD_CLIP)
- {
- rdpRegionIntersect(&reg, &clip_reg, &reg);
- }
- /* do original call */
- rdpFillPolygonOrg(pDrawable, pGC, shape, mode, count, pPts);
- if (cd != XRDP_CD_NODRAW)
- {
- rdpClientConAddAllReg(dev, &reg, pDrawable);
- }
- rdpRegionUninit(&clip_reg);
- rdpRegionUninit(&reg);
-}
diff --git a/xorg/server/module/rdpFillPolygon.h b/xorg/server/module/rdpFillPolygon.h
deleted file mode 100644
index 6c929dd9..00000000
--- a/xorg/server/module/rdpFillPolygon.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
-Copyright 2005-2014 Jay Sorg
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-*/
-
-#ifndef __RDPFILLPOLYGON_H
-#define __RDPFILLPOLYGON_H
-
-#include <xorg-server.h>
-#include <xorgVersion.h>
-#include <xf86.h>
-
-extern _X_EXPORT void
-rdpFillPolygon(DrawablePtr pDrawable, GCPtr pGC,
- int shape, int mode, int count,
- DDXPointPtr pPts);
-
-#endif
diff --git a/xorg/server/module/rdpFillSpans.c b/xorg/server/module/rdpFillSpans.c
deleted file mode 100644
index 0afb664d..00000000
--- a/xorg/server/module/rdpFillSpans.c
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
-Copyright 2005-2014 Jay Sorg
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-*/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-/* this should be before all X11 .h files */
-#include <xorg-server.h>
-#include <xorgVersion.h>
-
-/* all driver need this */
-#include <xf86.h>
-#include <xf86_OSproc.h>
-
-#include "rdp.h"
-#include "rdpDraw.h"
-#include "rdpFillSpans.h"
-
-#define LOG_LEVEL 1
-#define LLOGLN(_level, _args) \
- do { if (_level < LOG_LEVEL) { ErrorF _args ; ErrorF("\n"); } } while (0)
-
-/******************************************************************************/
-static void
-rdpFillSpansOrg(DrawablePtr pDrawable, GCPtr pGC, int nInit,
- DDXPointPtr pptInit, int *pwidthInit, int fSorted)
-{
- GC_OP_VARS;
-
- GC_OP_PROLOGUE(pGC);
- pGC->ops->FillSpans(pDrawable, pGC, nInit, pptInit, pwidthInit, fSorted);
- GC_OP_EPILOGUE(pGC);
-}
-
-/******************************************************************************/
-void
-rdpFillSpans(DrawablePtr pDrawable, GCPtr pGC, int nInit,
- DDXPointPtr pptInit, int *pwidthInit, int fSorted)
-{
- LLOGLN(0, ("rdpFillSpans:"));
- /* do original call */
- rdpFillSpansOrg(pDrawable, pGC, nInit, pptInit, pwidthInit, fSorted);
-}
diff --git a/xorg/server/module/rdpFillSpans.h b/xorg/server/module/rdpFillSpans.h
deleted file mode 100644
index ed1f6331..00000000
--- a/xorg/server/module/rdpFillSpans.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
-Copyright 2005-2014 Jay Sorg
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-*/
-
-#ifndef __RDPFILLSPANS_H
-#define __RDPFILLSPANS_H
-
-#include <xorg-server.h>
-#include <xorgVersion.h>
-#include <xf86.h>
-
-void
-rdpFillSpans(DrawablePtr pDrawable, GCPtr pGC, int nInit,
- DDXPointPtr pptInit, int* pwidthInit, int fSorted);
-
-#endif
diff --git a/xorg/server/module/rdpGC.c b/xorg/server/module/rdpGC.c
deleted file mode 100644
index db5983e2..00000000
--- a/xorg/server/module/rdpGC.c
+++ /dev/null
@@ -1,235 +0,0 @@
-/*
-Copyright 2005-2014 Jay Sorg
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-GC related calls
-
-*/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-/* this should be before all X11 .h files */
-#include <xorg-server.h>
-#include <xorgVersion.h>
-
-/* all driver need this */
-#include <xf86.h>
-#include <xf86_OSproc.h>
-
-#include <mipointer.h>
-#include <fb.h>
-#include <micmap.h>
-#include <mi.h>
-
-#include "rdp.h"
-#include "rdpFillSpans.h"
-#include "rdpSetSpans.h"
-#include "rdpPutImage.h"
-#include "rdpCopyArea.h"
-#include "rdpCopyPlane.h"
-#include "rdpPolyPoint.h"
-#include "rdpPolylines.h"
-#include "rdpPolySegment.h"
-#include "rdpPolyRectangle.h"
-#include "rdpPolyArc.h"
-#include "rdpFillPolygon.h"
-#include "rdpPolyFillRect.h"
-#include "rdpPolyFillArc.h"
-#include "rdpPolyText8.h"
-#include "rdpPolyText16.h"
-#include "rdpImageText8.h"
-#include "rdpImageText16.h"
-#include "rdpImageGlyphBlt.h"
-#include "rdpPolyGlyphBlt.h"
-#include "rdpPushPixels.h"
-#include "rdpDraw.h"
-#include "rdpGC.h"
-
-/******************************************************************************/
-#define LOG_LEVEL 1
-#define LLOGLN(_level, _args) \
- do { if (_level < LOG_LEVEL) { ErrorF _args ; ErrorF("\n"); } } while (0)
-
-/******************************************************************************/
-#define GC_FUNC_VARS rdpPtr dev; rdpGCPtr priv;
-
-/******************************************************************************/
-#define GC_FUNC_PROLOGUE(_pGC) \
- do { \
- dev = rdpGetDevFromScreen((_pGC)->pScreen); \
- priv = (rdpGCPtr)rdpGetGCPrivate(_pGC, dev->privateKeyRecGC); \
- (_pGC)->funcs = priv->funcs; \
- if (priv->ops != 0) \
- { \
- (_pGC)->ops = priv->ops; \
- } \
- } while (0)
-
-/******************************************************************************/
-#define GC_FUNC_EPILOGUE(_pGC) \
- do { \
- priv->funcs = (_pGC)->funcs; \
- (_pGC)->funcs = &g_rdpGCFuncs; \
- if (priv->ops != 0) \
- { \
- priv->ops = (_pGC)->ops; \
- (_pGC)->ops = &g_rdpGCOps; \
- } \
- } while (0)
-
-static void
-rdpValidateGC(GCPtr pGC, unsigned long changes, DrawablePtr d);
-static void
-rdpChangeGC(GCPtr pGC, unsigned long mask);
-static void
-rdpCopyGC(GCPtr src, unsigned long mask, GCPtr dst);
-static void
-rdpDestroyGC(GCPtr pGC);
-static void
-rdpChangeClip(GCPtr pGC, int type, pointer pValue, int nrects);
-static void
-rdpDestroyClip(GCPtr pGC);
-static void
-rdpCopyClip(GCPtr dst, GCPtr src);
-
-GCFuncs g_rdpGCFuncs =
-{
- rdpValidateGC, rdpChangeGC, rdpCopyGC, rdpDestroyGC, rdpChangeClip,
- rdpDestroyClip, rdpCopyClip
-};
-
-GCOps g_rdpGCOps =
-{
- rdpFillSpans, rdpSetSpans, rdpPutImage, rdpCopyArea, rdpCopyPlane,
- rdpPolyPoint, rdpPolylines, rdpPolySegment, rdpPolyRectangle,
- rdpPolyArc, rdpFillPolygon, rdpPolyFillRect, rdpPolyFillArc,
- rdpPolyText8, rdpPolyText16, rdpImageText8, rdpImageText16,
- rdpImageGlyphBlt, rdpPolyGlyphBlt, rdpPushPixels
-};
-
-/******************************************************************************/
-static void
-rdpValidateGC(GCPtr pGC, unsigned long changes, DrawablePtr d)
-{
- GC_FUNC_VARS;
-
- LLOGLN(10, ("rdpValidateGC:"));
- GC_FUNC_PROLOGUE(pGC);
- pGC->funcs->ValidateGC(pGC, changes, d);
- priv->ops = pGC->ops;
- GC_FUNC_EPILOGUE(pGC);
-}
-
-/******************************************************************************/
-static void
-rdpChangeGC(GCPtr pGC, unsigned long mask)
-{
- GC_FUNC_VARS;
-
- LLOGLN(10, ("rdpChangeGC:"));
- GC_FUNC_PROLOGUE(pGC);
- pGC->funcs->ChangeGC(pGC, mask);
- GC_FUNC_EPILOGUE(pGC);
-}
-
-/******************************************************************************/
-static void
-rdpCopyGC(GCPtr src, unsigned long mask, GCPtr dst)
-{
- GC_FUNC_VARS;
-
- LLOGLN(10, ("rdpCopyGC:"));
- GC_FUNC_PROLOGUE(dst);
- dst->funcs->CopyGC(src, mask, dst);
- GC_FUNC_EPILOGUE(dst);
-}
-
-/******************************************************************************/
-static void
-rdpDestroyGC(GCPtr pGC)
-{
- GC_FUNC_VARS;
-
- LLOGLN(10, ("rdpDestroyGC:"));
- GC_FUNC_PROLOGUE(pGC);
- pGC->funcs->DestroyGC(pGC);
- GC_FUNC_EPILOGUE(pGC);
-}
-
-/******************************************************************************/
-static void
-rdpChangeClip(GCPtr pGC, int type, pointer pValue, int nrects)
-{
- GC_FUNC_VARS;
-
- LLOGLN(10, ("rdpChangeClip:"));
- GC_FUNC_PROLOGUE(pGC);
- pGC->funcs->ChangeClip(pGC, type, pValue, nrects);
- GC_FUNC_EPILOGUE(pGC);
-}
-
-/******************************************************************************/
-static void
-rdpDestroyClip(GCPtr pGC)
-{
- GC_FUNC_VARS;
-
- LLOGLN(10, ("rdpDestroyClip:"));
- GC_FUNC_PROLOGUE(pGC);
- pGC->funcs->DestroyClip(pGC);
- GC_FUNC_EPILOGUE(pGC);
-}
-
-/******************************************************************************/
-static void
-rdpCopyClip(GCPtr dst, GCPtr src)
-{
- GC_FUNC_VARS;
-
- LLOGLN(10, ("rdpCopyClip:"));
- GC_FUNC_PROLOGUE(dst);
- dst->funcs->CopyClip(dst, src);
- GC_FUNC_EPILOGUE(dst);
-}
-
-/*****************************************************************************/
-Bool
-rdpCreateGC(GCPtr pGC)
-{
- Bool rv;
- rdpPtr dev;
- ScreenPtr pScreen;
- rdpGCPtr priv;
-
- LLOGLN(10, ("rdpCreateGC:"));
- pScreen = pGC->pScreen;
- dev = rdpGetDevFromScreen(pScreen);
- priv = (rdpGCPtr)rdpGetGCPrivate(pGC, dev->privateKeyRecGC);
- pScreen->CreateGC = dev->CreateGC;
- rv = pScreen->CreateGC(pGC);
- if (rv)
- {
- priv->funcs = pGC->funcs;
- priv->ops = 0;
- pGC->funcs = &g_rdpGCFuncs;
- }
- pScreen->CreateGC = rdpCreateGC;
- return rv;
-}
diff --git a/xorg/server/module/rdpGC.h b/xorg/server/module/rdpGC.h
deleted file mode 100644
index 11b0ef8b..00000000
--- a/xorg/server/module/rdpGC.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
-Copyright 2005-2014 Jay Sorg
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-GC related calls
-
-*/
-
-#ifndef _RDPGC_H
-#define _RDPGC_H
-
-#include <xorg-server.h>
-#include <xorgVersion.h>
-#include <xf86.h>
-
-extern _X_EXPORT Bool
-rdpCreateGC(GCPtr pGC);
-
-#endif
diff --git a/xorg/server/module/rdpGlyphs.c b/xorg/server/module/rdpGlyphs.c
deleted file mode 100644
index 1f97c3f1..00000000
--- a/xorg/server/module/rdpGlyphs.c
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
-Copyright 2012-2014 Jay Sorg
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-gylph(font) calls
-
-*/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-/* this should be before all X11 .h files */
-#include <xorg-server.h>
-#include <xorgVersion.h>
-
-/* all driver need this */
-#include <xf86.h>
-#include <xf86_OSproc.h>
-
-#include <picture.h>
-#include <glyphstr.h>
-
-#include "rdp.h"
-#include "rdpGlyphs.h"
-#include "rdpDraw.h"
-#include "rdpMisc.h"
-#include "rdpReg.h"
-
-/******************************************************************************/
-#define LOG_LEVEL 1
-#define LLOGLN(_level, _args) \
- do { if (_level < LOG_LEVEL) { ErrorF _args ; ErrorF("\n"); } } while (0)
-
-/******************************************************************************/
-int
-rdpGlyphDeleteRdpText(struct rdp_text *rtext)
-{
- int index;
-
- if (rtext == NULL)
- {
- return 0;
- }
- for (index = 0; index < rtext->num_chars; index++)
- {
- if (rtext->chars[index] != NULL)
- {
- g_free(rtext->chars[index]->data);
- g_free(rtext->chars[index]);
- }
- }
- rdpRegionDestroy(rtext->reg);
- rdpGlyphDeleteRdpText(rtext->next);
- g_free(rtext);
- return 0;
-}
-
-/******************************************************************************/
-static void
-rdpGlyphsOrg(PictureScreenPtr ps, rdpPtr dev,
- CARD8 op, PicturePtr pSrc, PicturePtr pDst,
- PictFormatPtr maskFormat,
- INT16 xSrc, INT16 ySrc, int nlists, GlyphListPtr lists,
- GlyphPtr *glyphs)
-{
- ps->Glyphs = dev->Glyphs;
- ps->Glyphs(op, pSrc, pDst, maskFormat, xSrc, ySrc,
- nlists, lists, glyphs);
- ps->Glyphs = rdpGlyphs;
-}
-
-/******************************************************************************/
-void
-rdpGlyphs(CARD8 op, PicturePtr pSrc, PicturePtr pDst,
- PictFormatPtr maskFormat,
- INT16 xSrc, INT16 ySrc, int nlists, GlyphListPtr lists,
- GlyphPtr *glyphs)
-{
- ScreenPtr pScreen;
- rdpPtr dev;
- PictureScreenPtr ps;
-
- LLOGLN(10, ("rdpGlyphs:"));
- pScreen = pDst->pDrawable->pScreen;
- dev = rdpGetDevFromScreen(pScreen);
- ps = GetPictureScreen(pScreen);
- rdpGlyphsOrg(ps, dev, op, pSrc, pDst, maskFormat, xSrc, ySrc,
- nlists, lists, glyphs);
-}
diff --git a/xorg/server/module/rdpGlyphs.h b/xorg/server/module/rdpGlyphs.h
deleted file mode 100644
index cbb2ca8b..00000000
--- a/xorg/server/module/rdpGlyphs.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
-Copyright 2012-2014 Jay Sorg
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-gylph(font) calls
-
-*/
-
-#ifndef _RDPGLYPHS_H
-#define _RDPGLYPHS_H
-
-#include <xorg-server.h>
-#include <xorgVersion.h>
-#include <xf86.h>
-
-struct rdp_font_char
-{
- int offset; /* x */
- int baseline; /* y */
- int width; /* cx */
- int height; /* cy */
- int incby;
- int bpp;
- char *data;
- int data_bytes;
-};
-
-struct rdp_text
-{
- RegionPtr reg;
- int font;
- int x;
- int y;
- int flags;
- int mixmode;
- char data[256];
- int data_bytes;
- struct rdp_font_char* chars[256];
- int num_chars;
- struct rdp_text* next;
-};
-
-extern _X_EXPORT int
-rdpGlyphDeleteRdpText(struct rdp_text* rtext);
-extern _X_EXPORT void
-rdpGlyphs(CARD8 op, PicturePtr pSrc, PicturePtr pDst,
- PictFormatPtr maskFormat,
- INT16 xSrc, INT16 ySrc, int nlists, GlyphListPtr lists,
- GlyphPtr *glyphs);
-
-#endif
diff --git a/xorg/server/module/rdpImageGlyphBlt.c b/xorg/server/module/rdpImageGlyphBlt.c
deleted file mode 100644
index 0d1a7d6e..00000000
--- a/xorg/server/module/rdpImageGlyphBlt.c
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
-Copyright 2005-2014 Jay Sorg
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-*/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-/* this should be before all X11 .h files */
-#include <xorg-server.h>
-#include <xorgVersion.h>
-
-/* all driver need this */
-#include <xf86.h>
-#include <xf86_OSproc.h>
-
-#include "rdp.h"
-#include "rdpDraw.h"
-#include "rdpClientCon.h"
-#include "rdpReg.h"
-#include "rdpImageGlyphBlt.h"
-
-#define LOG_LEVEL 1
-#define LLOGLN(_level, _args) \
- do { if (_level < LOG_LEVEL) { ErrorF _args ; ErrorF("\n"); } } while (0)
-
-/******************************************************************************/
-static void
-rdpImageGlyphBltOrg(DrawablePtr pDrawable, GCPtr pGC,
- int x, int y, unsigned int nglyph,
- CharInfoPtr *ppci, pointer pglyphBase)
-{
- GC_OP_VARS;
-
- GC_OP_PROLOGUE(pGC);
- pGC->ops->ImageGlyphBlt(pDrawable, pGC, x, y, nglyph, ppci, pglyphBase);
- GC_OP_EPILOGUE(pGC);
-}
-
-/******************************************************************************/
-void
-rdpImageGlyphBlt(DrawablePtr pDrawable, GCPtr pGC,
- int x, int y, unsigned int nglyph,
- CharInfoPtr *ppci, pointer pglyphBase)
-{
- rdpPtr dev;
- RegionRec clip_reg;
- RegionRec reg;
- int cd;
- BoxRec box;
-
- LLOGLN(0, ("rdpImageGlyphBlt:"));
- dev = rdpGetDevFromScreen(pGC->pScreen);
- dev->counts.rdpImageGlyphBltCallCount++;
- GetTextBoundingBox(pDrawable, pGC->font, x, y, nglyph, &box);
- rdpRegionInit(&reg, &box, 0);
- rdpRegionInit(&clip_reg, NullBox, 0);
- cd = rdpDrawGetClip(dev, &clip_reg, pDrawable, pGC);
- LLOGLN(10, ("rdpImageGlyphBlt: cd %d", cd));
- if (cd == XRDP_CD_CLIP)
- {
- rdpRegionIntersect(&reg, &clip_reg, &reg);
- }
- /* do original call */
- rdpImageGlyphBltOrg(pDrawable, pGC, x, y, nglyph, ppci, pglyphBase);
- if (cd != XRDP_CD_NODRAW)
- {
- rdpClientConAddAllReg(dev, &reg, pDrawable);
- }
- rdpRegionUninit(&clip_reg);
- rdpRegionUninit(&reg);
-}
diff --git a/xorg/server/module/rdpImageGlyphBlt.h b/xorg/server/module/rdpImageGlyphBlt.h
deleted file mode 100644
index 6857ee1b..00000000
--- a/xorg/server/module/rdpImageGlyphBlt.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
-Copyright 2005-2014 Jay Sorg
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-*/
-
-#ifndef __RDPIMAGEGLYPHBLT_H
-#define __RDPIMAGEGLYPHBLT_H
-
-#include <xorg-server.h>
-#include <xorgVersion.h>
-#include <xf86.h>
-
-extern _X_EXPORT void
-rdpImageGlyphBlt(DrawablePtr pDrawable, GCPtr pGC,
- int x, int y, unsigned int nglyph,
- CharInfoPtr* ppci, pointer pglyphBase);
-
-#endif
diff --git a/xorg/server/module/rdpImageText16.c b/xorg/server/module/rdpImageText16.c
deleted file mode 100644
index d1038912..00000000
--- a/xorg/server/module/rdpImageText16.c
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
-Copyright 2005-2014 Jay Sorg
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-*/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-/* this should be before all X11 .h files */
-#include <xorg-server.h>
-#include <xorgVersion.h>
-
-/* all driver need this */
-#include <xf86.h>
-#include <xf86_OSproc.h>
-
-#include "rdp.h"
-#include "rdpDraw.h"
-#include "rdpClientCon.h"
-#include "rdpReg.h"
-#include "rdpImageText16.h"
-
-#define LOG_LEVEL 1
-#define LLOGLN(_level, _args) \
- do { if (_level < LOG_LEVEL) { ErrorF _args ; ErrorF("\n"); } } while (0)
-
-/******************************************************************************/
-static void
-rdpImageText16Org(DrawablePtr pDrawable, GCPtr pGC,
- int x, int y, int count, unsigned short *chars)
-{
- GC_OP_VARS;
-
- GC_OP_PROLOGUE(pGC);
- pGC->ops->ImageText16(pDrawable, pGC, x, y, count, chars);
- GC_OP_EPILOGUE(pGC);
-}
-
-/******************************************************************************/
-void
-rdpImageText16(DrawablePtr pDrawable, GCPtr pGC,
- int x, int y, int count, unsigned short *chars)
-{
- rdpPtr dev;
- RegionRec clip_reg;
- RegionRec reg;
- int cd;
- BoxRec box;
-
- LLOGLN(10, ("rdpImageText16:"));
- dev = rdpGetDevFromScreen(pGC->pScreen);
- dev->counts.rdpImageText16CallCount++;
- GetTextBoundingBox(pDrawable, pGC->font, x, y, count, &box);
- rdpRegionInit(&reg, &box, 0);
- rdpRegionInit(&clip_reg, NullBox, 0);
- cd = rdpDrawGetClip(dev, &clip_reg, pDrawable, pGC);
- LLOGLN(10, ("rdpImageText16: cd %d", cd));
- if (cd == XRDP_CD_CLIP)
- {
- rdpRegionIntersect(&reg, &clip_reg, &reg);
- }
- /* do original call */
- rdpImageText16Org(pDrawable, pGC, x, y, count, chars);
- if (cd != XRDP_CD_NODRAW)
- {
- rdpClientConAddAllReg(dev, &reg, pDrawable);
- }
- rdpRegionUninit(&clip_reg);
- rdpRegionUninit(&reg);
-}
diff --git a/xorg/server/module/rdpImageText16.h b/xorg/server/module/rdpImageText16.h
deleted file mode 100644
index e2f2b03e..00000000
--- a/xorg/server/module/rdpImageText16.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
-Copyright 2005-2014 Jay Sorg
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-*/
-
-#ifndef __RDPIMAGETEXT16_H
-#define __RDPIMAGETEXT16_H
-
-#include <xorg-server.h>
-#include <xorgVersion.h>
-#include <xf86.h>
-
-extern _X_EXPORT void
-rdpImageText16(DrawablePtr pDrawable, GCPtr pGC,
- int x, int y, int count, unsigned short* chars);
-
-#endif
diff --git a/xorg/server/module/rdpImageText8.c b/xorg/server/module/rdpImageText8.c
deleted file mode 100644
index 068f6d6d..00000000
--- a/xorg/server/module/rdpImageText8.c
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
-Copyright 2005-2014 Jay Sorg
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-*/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-/* this should be before all X11 .h files */
-#include <xorg-server.h>
-#include <xorgVersion.h>
-
-/* all driver need this */
-#include <xf86.h>
-#include <xf86_OSproc.h>
-
-#include "rdp.h"
-#include "rdpDraw.h"
-#include "rdpClientCon.h"
-#include "rdpReg.h"
-#include "rdpImageText8.h"
-
-#define LOG_LEVEL 1
-#define LLOGLN(_level, _args) \
- do { if (_level < LOG_LEVEL) { ErrorF _args ; ErrorF("\n"); } } while (0)
-
-/******************************************************************************/
-static void
-rdpImageText8Org(DrawablePtr pDrawable, GCPtr pGC,
- int x, int y, int count, char *chars)
-{
- GC_OP_VARS;
-
- GC_OP_PROLOGUE(pGC);
- pGC->ops->ImageText8(pDrawable, pGC, x, y, count, chars);
- GC_OP_EPILOGUE(pGC);
-}
-
-/******************************************************************************/
-void
-rdpImageText8(DrawablePtr pDrawable, GCPtr pGC,
- int x, int y, int count, char *chars)
-{
- rdpPtr dev;
- RegionRec clip_reg;
- RegionRec reg;
- int cd;
- BoxRec box;
-
- LLOGLN(10, ("rdpImageText8:"));
- dev = rdpGetDevFromScreen(pGC->pScreen);
- dev->counts.rdpImageText8CallCount++;
- GetTextBoundingBox(pDrawable, pGC->font, x, y, count, &box);
- rdpRegionInit(&reg, &box, 0);
- rdpRegionInit(&clip_reg, NullBox, 0);
- cd = rdpDrawGetClip(dev, &clip_reg, pDrawable, pGC);
- LLOGLN(10, ("rdpImageText8: cd %d", cd));
- if (cd == XRDP_CD_CLIP)
- {
- rdpRegionIntersect(&reg, &clip_reg, &reg);
- }
- /* do original call */
- rdpImageText8Org(pDrawable, pGC, x, y, count, chars);
- if (cd != XRDP_CD_NODRAW)
- {
- rdpClientConAddAllReg(dev, &reg, pDrawable);
- }
- rdpRegionUninit(&clip_reg);
- rdpRegionUninit(&reg);
-}
diff --git a/xorg/server/module/rdpImageText8.h b/xorg/server/module/rdpImageText8.h
deleted file mode 100644
index fbc67a10..00000000
--- a/xorg/server/module/rdpImageText8.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
-Copyright 2005-2014 Jay Sorg
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-*/
-
-#ifndef __RDPIMAGETEXT8_H
-#define __RDPIMAGETEXT8_H
-
-#include <xorg-server.h>
-#include <xorgVersion.h>
-#include <xf86.h>
-
-extern _X_EXPORT void
-rdpImageText8(DrawablePtr pDrawable, GCPtr pGC,
- int x, int y, int count, char* chars);
-
-#endif
diff --git a/xorg/server/module/rdpInput.c b/xorg/server/module/rdpInput.c
deleted file mode 100644
index baf1ff3c..00000000
--- a/xorg/server/module/rdpInput.c
+++ /dev/null
@@ -1,133 +0,0 @@
-/*
-Copyright 2013-2014 Jay Sorg
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-*/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-/* this should be before all X11 .h files */
-#include <xorg-server.h>
-#include <xorgVersion.h>
-
-/* all driver need this */
-#include <xf86.h>
-#include <xf86_OSproc.h>
-
-#include "rdp.h"
-#include "rdpDraw.h"
-#include "rdpInput.h"
-#include "rdpMisc.h"
-
-#define LOG_LEVEL 1
-#define LLOGLN(_level, _args) \
- do { if (_level < LOG_LEVEL) { ErrorF _args ; ErrorF("\n"); } } while (0)
-
-#define MAX_INPUT_PROC 4
-
-struct input_proc_list
-{
- int type;
- rdpInputEventProcPtr proc;
-};
-
-static struct input_proc_list g_input_proc[MAX_INPUT_PROC];
-
-/******************************************************************************/
-int
-rdpRegisterInputCallback(int type, rdpInputEventProcPtr proc)
-{
- LLOGLN(0, ("rdpRegisterInputCallback: type %d proc %p", type, proc));
- if (type == 0)
- {
- g_input_proc[0].proc = proc;
- }
- else if (type == 1)
- {
- g_input_proc[1].proc = proc;
- }
- else
- {
- return 1;
- }
- return 0;
-}
-
-/******************************************************************************/
-int
-rdpUnregisterInputCallback(rdpInputEventProcPtr proc)
-{
- int index;
- char text[256];
-
- LLOGLN(0, ("rdpUnregisterInputCallback: proc %p", proc));
- for (index = 0; index < MAX_INPUT_PROC; index++)
- {
- if (g_input_proc[index].proc == proc)
- {
- 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 1;
-}
-
-/******************************************************************************/
-int
-rdpInputKeyboardEvent(rdpPtr dev, int msg,
- long param1, long param2,
- long param3, long param4)
-{
- if (g_input_proc[0].proc != 0)
- {
- return g_input_proc[0].proc(dev, msg, param1, param2, param3, param4);
- }
- return 0;
-}
-
-/******************************************************************************/
-int
-rdpInputMouseEvent(rdpPtr dev, int msg,
- long param1, long param2,
- long param3, long param4)
-{
- if (g_input_proc[1].proc != 0)
- {
- return g_input_proc[1].proc(dev, msg, param1, param2, param3, param4);
- }
- return 0;
-}
-
-/******************************************************************************/
-/* called when module loads */
-int
-rdpInputInit(void)
-{
- g_memset(g_input_proc, 0, sizeof(g_input_proc));
- return 0;
-}
diff --git a/xorg/server/module/rdpInput.h b/xorg/server/module/rdpInput.h
deleted file mode 100644
index 98a0c239..00000000
--- a/xorg/server/module/rdpInput.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
-Copyright 2013-2014 Jay Sorg
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-input
-
-*/
-
-#ifndef _RDPINPUT_H
-#define _RDPINPUT_H
-
-#include <xorg-server.h>
-#include <xorgVersion.h>
-#include <xf86.h>
-
-typedef int (*rdpInputEventProcPtr)(rdpPtr dev, int msg,
- long param1, long param2,
- long param3, long param4);
-
-extern _X_EXPORT int
-rdpRegisterInputCallback(int type, rdpInputEventProcPtr proc);
-extern _X_EXPORT int
-rdpUnregisterInputCallback(rdpInputEventProcPtr proc);
-extern _X_EXPORT int
-rdpInputKeyboardEvent(rdpPtr dev, int msg,
- long param1, long param2,
- long param3, long param4);
-extern _X_EXPORT int
-rdpInputMouseEvent(rdpPtr dev, int msg,
- long param1, long param2,
- long param3, long param4);
-extern _X_EXPORT int
-rdpInputInit(void);
-
-#endif
diff --git a/xorg/server/module/rdpMain.c b/xorg/server/module/rdpMain.c
deleted file mode 100644
index 835be9db..00000000
--- a/xorg/server/module/rdpMain.c
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
-Copyright 2013-2014 Jay Sorg
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-rdp module main
-
-*/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-/* this should be before all X11 .h files */
-#include <xorg-server.h>
-#include <xorgVersion.h>
-
-/* all driver need this */
-#include <xf86.h>
-#include <xf86_OSproc.h>
-
-#include <mipointer.h>
-#include <fb.h>
-#include <micmap.h>
-#include <mi.h>
-
-#include "rdp.h"
-#include "rdpInput.h"
-#include "rdpDraw.h"
-#include "rdpClientCon.h"
-#include "rdpMain.h"
-
-/******************************************************************************/
-#define LOG_LEVEL 1
-#define LLOGLN(_level, _args) \
- do { if (_level < LOG_LEVEL) { ErrorF _args ; ErrorF("\n"); } } while (0)
-
-static Bool g_initialised = FALSE;
-
-/*****************************************************************************/
-static pointer
-xorgxrdpSetup(pointer Module, pointer Options,
- int *ErrorMajor, int *ErrorMinor)
-{
- LLOGLN(0, ("xorgxrdpSetup:"));
- if (!g_initialised)
- {
- g_initialised = TRUE;
- }
- rdpInputInit();
- rdpPrivateInit();
- return (pointer) 1;
-}
-
-/*****************************************************************************/
-static void
-xorgxrdpTearDown(pointer Module)
-{
- LLOGLN(0, ("xorgxrdpTearDown:"));
-}
-
-/*****************************************************************************/
-void
-xorgxrdpDownDown(ScreenPtr pScreen)
-{
- LLOGLN(0, ("xorgxrdpDownDown:"));
- if (g_initialised)
- {
- g_initialised = FALSE;
- LLOGLN(0, ("xorgxrdpDownDown: 1"));
- rdpClientConDeinit(rdpGetDevFromScreen(pScreen));
- }
-}
-
-static MODULESETUPPROTO(xorgxrdpSetup);
-static XF86ModuleVersionInfo RDPVersRec =
-{
- XRDP_MODULE_NAME,
- MODULEVENDORSTRING,
- MODINFOSTRING1,
- MODINFOSTRING2,
- XORG_VERSION_CURRENT,
- PACKAGE_VERSION_MAJOR,
- PACKAGE_VERSION_MINOR,
- PACKAGE_VERSION_PATCHLEVEL,
- ABI_CLASS_VIDEODRV,
- ABI_VIDEODRV_VERSION,
- 0,
- { 0, 0, 0, 0 }
-};
-
-_X_EXPORT XF86ModuleData xorgxrdpModuleData =
-{
- &RDPVersRec,
- xorgxrdpSetup,
- xorgxrdpTearDown
-};
diff --git a/xorg/server/module/rdpMain.h b/xorg/server/module/rdpMain.h
deleted file mode 100644
index 33fc0e04..00000000
--- a/xorg/server/module/rdpMain.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
-Copyright 2013-2014 Jay Sorg
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-rdp module main
-
-*/
-
-#ifndef __RDPMAIN_H
-#define __RDPMAIN_H
-
-#include <xorg-server.h>
-#include <xorgVersion.h>
-#include <xf86.h>
-
-extern _X_EXPORT void
-xorgxrdpDownDown(ScreenPtr pScreen);
-
-#endif
diff --git a/xorg/server/module/rdpMisc.c b/xorg/server/module/rdpMisc.c
deleted file mode 100644
index c7a61fc8..00000000
--- a/xorg/server/module/rdpMisc.c
+++ /dev/null
@@ -1,446 +0,0 @@
-/*
-Copyright 2005-2014 Jay Sorg
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-the rest
-
-*/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <sys/un.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <sys/stat.h>
-#include <netinet/in.h>
-#include <netinet/tcp.h>
-
-/* this should be before all X11 .h files */
-#include <xorg-server.h>
-#include <xorgVersion.h>
-
-/* all driver need this */
-#include <xf86.h>
-#include <xf86_OSproc.h>
-
-#include "rdpMisc.h"
-
-/******************************************************************************/
-int
-rdpBitsPerPixel(int depth)
-{
- if (depth == 1)
- {
- return 1;
- }
- else if (depth <= 8)
- {
- return 8;
- }
- else if (depth <= 16)
- {
- return 16;
- }
- else
- {
- return 32;
- }
-}
-
-/* the g_ functions from os_calls.c */
-
-/*****************************************************************************/
-/* wait 'millis' milliseconds for the socket to be able to receive */
-/* returns boolean */
-int
-g_sck_can_recv(int sck, int millis)
-{
- fd_set rfds;
- struct timeval time;
- int rv;
-
- time.tv_sec = millis / 1000;
- time.tv_usec = (millis * 1000) % 1000000;
- FD_ZERO(&rfds);
-
- if (sck > 0)
- {
- FD_SET(((unsigned int)sck), &rfds);
- rv = select(sck + 1, &rfds, 0, 0, &time);
-
- if (rv > 0)
- {
- return 1;
- }
- }
-
- return 0;
-}
-
-/*****************************************************************************/
-int
-g_sck_recv(int sck, void *ptr, int len, int flags)
-{
- return recv(sck, ptr, len, flags);
-}
-
-/*****************************************************************************/
-void
-g_sck_close(int sck)
-{
- if (sck == 0)
- {
- return;
- }
-
- shutdown(sck, 2);
- close(sck);
-}
-
-/*****************************************************************************/
-int
-g_sck_last_error_would_block(int sck)
-{
- return (errno == EWOULDBLOCK) || (errno == EINPROGRESS);
-}
-
-/*****************************************************************************/
-void
-g_sleep(int msecs)
-{
- usleep(msecs * 1000);
-}
-
-/*****************************************************************************/
-int
-g_sck_send(int sck, void *ptr, int len, int flags)
-{
- return send(sck, ptr, len, flags);
-}
-
-/*****************************************************************************/
-void *
-g_malloc(int size, int zero)
-{
- char *rv;
-
- rv = (char *)malloc(size);
- if (zero)
- {
- if (rv != 0)
- {
- memset(rv, 0, size);
- }
- }
- return rv;
-}
-
-/*****************************************************************************/
-void
-g_free(void *ptr)
-{
- if (ptr != 0)
- {
- free(ptr);
- }
-}
-
-/*****************************************************************************/
-void
-g_sprintf(char *dest, char *format, ...)
-{
- va_list ap;
-
- va_start(ap, format);
- vsprintf(dest, format, ap);
- va_end(ap);
-}
-
-/*****************************************************************************/
-int
-g_sck_tcp_socket(void)
-{
- int rv;
- int i;
-
- i = 1;
- rv = socket(PF_INET, SOCK_STREAM, 0);
- setsockopt(rv, IPPROTO_TCP, TCP_NODELAY, (void *)&i, sizeof(i));
- setsockopt(rv, SOL_SOCKET, SO_REUSEADDR, (void *)&i, sizeof(i));
- return rv;
-}
-
-/*****************************************************************************/
-int
-g_sck_local_socket_dgram(void)
-{
- return socket(AF_UNIX, SOCK_DGRAM, 0);
-}
-
-/*****************************************************************************/
-int
-g_sck_local_socket_stream(void)
-{
- return socket(AF_UNIX, SOCK_STREAM, 0);
-}
-
-/*****************************************************************************/
-void
-g_memcpy(void *d_ptr, const void *s_ptr, int size)
-{
- memcpy(d_ptr, s_ptr, size);
-}
-
-/*****************************************************************************/
-void
-g_memset(void *d_ptr, const unsigned char chr, int size)
-{
- memset(d_ptr, chr, size);
-}
-
-/*****************************************************************************/
-int
-g_sck_tcp_set_no_delay(int sck)
-{
- int i;
-
- i = 1;
- setsockopt(sck, IPPROTO_TCP, TCP_NODELAY, (void *)&i, sizeof(i));
- return 0;
-}
-
-/*****************************************************************************/
-int
-g_sck_set_non_blocking(int sck)
-{
- unsigned long i;
-
- i = fcntl(sck, F_GETFL);
- i = i | O_NONBLOCK;
- fcntl(sck, F_SETFL, i);
- return 0;
-}
-
-/*****************************************************************************/
-int
-g_sck_accept(int sck)
-{
- struct sockaddr_in s;
- unsigned int i;
-
- i = sizeof(struct sockaddr_in);
- memset(&s, 0, i);
- return accept(sck, (struct sockaddr *)&s, &i);
-}
-
-/*****************************************************************************/
-int
-g_sck_select(int sck1, int sck2, int sck3)
-{
- fd_set rfds;
- struct timeval time;
- int max;
- int rv;
-
- time.tv_sec = 0;
- time.tv_usec = 0;
- FD_ZERO(&rfds);
-
- if (sck1 > 0)
- {
- FD_SET(((unsigned int)sck1), &rfds);
- }
-
- if (sck2 > 0)
- {
- FD_SET(((unsigned int)sck2), &rfds);
- }
-
- if (sck3 > 0)
- {
- FD_SET(((unsigned int)sck3), &rfds);
- }
-
- max = sck1;
-
- if (sck2 > max)
- {
- max = sck2;
- }
-
- if (sck3 > max)
- {
- max = sck3;
- }
-
- rv = select(max + 1, &rfds, 0, 0, &time);
-
- if (rv > 0)
- {
- rv = 0;
-
- if (FD_ISSET(((unsigned int)sck1), &rfds))
- {
- rv = rv | 1;
- }
-
- if (FD_ISSET(((unsigned int)sck2), &rfds))
- {
- rv = rv | 2;
- }
-
- if (FD_ISSET(((unsigned int)sck3), &rfds))
- {
- rv = rv | 4;
- }
- }
- else
- {
- rv = 0;
- }
-
- return rv;
-}
-
-/*****************************************************************************/
-int
-g_sck_tcp_bind(int sck, char *port)
-{
- struct sockaddr_in s;
-
- memset(&s, 0, sizeof(struct sockaddr_in));
- s.sin_family = AF_INET;
- s.sin_port = htons(atoi(port));
- s.sin_addr.s_addr = INADDR_ANY;
- return bind(sck, (struct sockaddr *)&s, sizeof(struct sockaddr_in));
-}
-
-/*****************************************************************************/
-int
-g_sck_local_bind(int sck, char *port)
-{
- struct sockaddr_un s;
-
- memset(&s, 0, sizeof(struct sockaddr_un));
- s.sun_family = AF_UNIX;
- strcpy(s.sun_path, port);
- return bind(sck, (struct sockaddr *)&s, sizeof(struct sockaddr_un));
-}
-
-/*****************************************************************************/
-int
-g_sck_listen(int sck)
-{
- return listen(sck, 2);
-}
-
-/*****************************************************************************/
-/* returns boolean */
-int
-g_create_dir(const char *dirname)
-{
- return mkdir(dirname, (mode_t) - 1) == 0;
-}
-
-/*****************************************************************************/
-/* returns boolean, non zero if the directory exists */
-int
-g_directory_exist(const char *dirname)
-{
- struct stat st;
-
- if (stat(dirname, &st) == 0)
- {
- return S_ISDIR(st.st_mode);
- }
- else
- {
- return 0;
- }
-}
-
-/*****************************************************************************/
-/* returns error */
-int
-g_chmod_hex(const char *filename, int flags)
-{
- int fl;
-
- fl = 0;
- fl |= (flags & 0x4000) ? S_ISUID : 0;
- fl |= (flags & 0x2000) ? S_ISGID : 0;
- fl |= (flags & 0x1000) ? S_ISVTX : 0;
- fl |= (flags & 0x0400) ? S_IRUSR : 0;
- fl |= (flags & 0x0200) ? S_IWUSR : 0;
- fl |= (flags & 0x0100) ? S_IXUSR : 0;
- fl |= (flags & 0x0040) ? S_IRGRP : 0;
- fl |= (flags & 0x0020) ? S_IWGRP : 0;
- fl |= (flags & 0x0010) ? S_IXGRP : 0;
- fl |= (flags & 0x0004) ? S_IROTH : 0;
- fl |= (flags & 0x0002) ? S_IWOTH : 0;
- fl |= (flags & 0x0001) ? S_IXOTH : 0;
- return chmod(filename, fl);
-}
-
-/*****************************************************************************/
-/* produce a hex dump */
-void
-g_hexdump(void *p, long len)
-{
- unsigned char *line;
- int i;
- int thisline;
- int offset;
-
- offset = 0;
- line = (unsigned char *) p;
-
- while (offset < (int) len)
- {
- ErrorF("%04x ", offset);
- thisline = len - offset;
-
- if (thisline > 16)
- {
- thisline = 16;
- }
-
- for (i = 0; i < thisline; i++)
- {
- ErrorF("%02x ", line[i]);
- }
-
- for (; i < 16; i++)
- {
- ErrorF(" ");
- }
-
- for (i = 0; i < thisline; i++)
- {
- ErrorF("%c", (line[i] >= 0x20 && line[i] < 0x7f) ? line[i] : '.');
- }
-
- ErrorF("\n");
- offset += thisline;
- line += thisline;
- }
-}
diff --git a/xorg/server/module/rdpMisc.h b/xorg/server/module/rdpMisc.h
deleted file mode 100644
index 07c6ec0d..00000000
--- a/xorg/server/module/rdpMisc.h
+++ /dev/null
@@ -1,265 +0,0 @@
-/*
-Copyright 2005-2014 Jay Sorg
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-the rest
-
-*/
-
-#ifndef __RDPMISC_H
-#define __RDPMISC_H
-
-#include <xorg-server.h>
-#include <xorgVersion.h>
-#include <xf86.h>
-
-#include <X11/Xos.h>
-
-extern _X_EXPORT int
-rdpBitsPerPixel(int depth);
-extern _X_EXPORT int
-g_sck_can_recv(int sck, int millis);
-extern _X_EXPORT int
-g_sck_recv(int sck, void *ptr, int len, int flags);
-extern _X_EXPORT void
-g_sck_close(int sck);
-extern _X_EXPORT int
-g_sck_last_error_would_block(int sck);
-extern _X_EXPORT void
-g_sleep(int msecs);
-extern _X_EXPORT int
-g_sck_send(int sck, void *ptr, int len, int flags);
-extern _X_EXPORT void *
-g_malloc(int size, int zero);
-extern _X_EXPORT void
-g_free(void *ptr);
-extern _X_EXPORT void
-g_sprintf(char *dest, char *format, ...);
-extern _X_EXPORT int
-g_sck_tcp_socket(void);
-extern _X_EXPORT int
-g_sck_local_socket_dgram(void);
-extern _X_EXPORT int
-g_sck_local_socket_stream(void);
-extern _X_EXPORT void
-g_memcpy(void *d_ptr, const void *s_ptr, int size);
-extern _X_EXPORT void
-g_memset(void *d_ptr, const unsigned char chr, int size);
-extern _X_EXPORT int
-g_sck_tcp_set_no_delay(int sck);
-extern _X_EXPORT int
-g_sck_set_non_blocking(int sck);
-extern _X_EXPORT int
-g_sck_accept(int sck);
-extern _X_EXPORT int
-g_sck_select(int sck1, int sck2, int sck3);
-extern _X_EXPORT int
-g_sck_tcp_bind(int sck, char *port);
-extern _X_EXPORT int
-g_sck_local_bind(int sck, char *port);
-extern _X_EXPORT int
-g_sck_listen(int sck);
-extern _X_EXPORT int
-g_create_dir(const char *dirname);
-extern _X_EXPORT int
-g_directory_exist(const char *dirname);
-extern _X_EXPORT int
-g_chmod_hex(const char *filename, int flags);
-extern _X_EXPORT void
-g_hexdump(void *p, long len);
-
-#if defined(X_BYTE_ORDER)
-# if X_BYTE_ORDER == X_LITTLE_ENDIAN
-# define L_ENDIAN
-# else
-# define B_ENDIAN
-# endif
-#else
-# error Unknown endianness in rdp.h
-#endif
-/* check if we need to align data */
-#if defined(__sparc__) || defined(__alpha__) || defined(__hppa__) || \
- defined(__AIX__) || defined(__PPC__) || defined(__mips__) || \
- defined(__ia64__) || defined(__ppc__) || defined(__arm__)
-#define NEED_ALIGN
-#endif
-
-/* parser state */
-struct stream
-{
- char *p;
- char *end;
- char *data;
- int size;
- /* offsets of various headers */
- char *iso_hdr;
- char *mcs_hdr;
- char *sec_hdr;
- char *rdp_hdr;
- char *channel_hdr;
- char *next_packet;
-};
-
-/******************************************************************************/
-#define s_push_layer(s, h, n) \
-do { \
- (s)->h = (s)->p; \
- (s)->p += (n); \
-} while (0)
-
-/******************************************************************************/
-#define s_pop_layer(s, h) \
-do { \
- (s)->p = (s)->h; \
-} while (0)
-
-/******************************************************************************/
-#if defined(B_ENDIAN) || defined(NEED_ALIGN)
-#define out_uint16_le(s, v) \
-do { \
- *((s)->p) = (unsigned char)((v) >> 0); \
- (s)->p++; \
- *((s)->p) = (unsigned char)((v) >> 8); \
- (s)->p++; \
-} while (0)
-#else
-#define out_uint16_le(s, v) \
-do { \
- *((unsigned short*)((s)->p)) = (unsigned short)(v); \
- (s)->p += 2; \
-} while (0)
-#endif
-
-/******************************************************************************/
-#define init_stream(s, v) \
-do { \
- if ((v) > (s)->size) \
- { \
- g_free((s)->data); \
- (s)->data = (char*)g_malloc((v), 0); \
- (s)->size = (v); \
- } \
- (s)->p = (s)->data; \
- (s)->end = (s)->data; \
- (s)->next_packet = 0; \
-} while (0)
-
-/******************************************************************************/
-#define out_uint8p(s, v, n) \
-do { \
- g_memcpy((s)->p, (v), (n)); \
- (s)->p += (n); \
-} while (0)
-
-/******************************************************************************/
-#define out_uint8a(s, v, n) \
-do { \
- out_uint8p((s), (v), (n)); \
-} while (0)
-
-/******************************************************************************/
-#define out_uint8(s, v) \
-do { \
- *((s)->p) = (unsigned char)((v) >> 0); \
- (s)->p++; \
-} while (0)
-
-/******************************************************************************/
-#if defined(B_ENDIAN) || defined(NEED_ALIGN)
-#define out_uint32_le(s, v) \
-do { \
- *((s)->p) = (unsigned char)((v) >> 0); \
- (s)->p++; \
- *((s)->p) = (unsigned char)((v) >> 8); \
- (s)->p++; \
- *((s)->p) = (unsigned char)((v) >> 16); \
- (s)->p++; \
- *((s)->p) = (unsigned char)((v) >> 24); \
- (s)->p++; \
-} while (0)
-#else
-#define out_uint32_le(s, v) \
-do { \
- *((unsigned int*)((s)->p)) = (v); \
- (s)->p += 4; \
-} while (0)
-#endif
-
-/******************************************************************************/
-#if defined(B_ENDIAN) || defined(NEED_ALIGN)
-#define in_uint32_le(s, v) \
-do { \
- (v) = (unsigned int) \
- ( \
- (*((unsigned char*)((s)->p + 0)) << 0) | \
- (*((unsigned char*)((s)->p + 1)) << 8) | \
- (*((unsigned char*)((s)->p + 2)) << 16) | \
- (*((unsigned char*)((s)->p + 3)) << 24) \
- ); \
- (s)->p += 4; \
-} while (0)
-#else
-#define in_uint32_le(s, v) \
-do { \
- (v) = *((unsigned int*)((s)->p)); \
- (s)->p += 4; \
-} while (0)
-#endif
-
-/******************************************************************************/
-#if defined(B_ENDIAN) || defined(NEED_ALIGN)
-#define in_uint16_le(s, v) \
-do { \
- (v) = (unsigned short) \
- ( \
- (*((unsigned char*)((s)->p + 0)) << 0) | \
- (*((unsigned char*)((s)->p + 1)) << 8) \
- ); \
- (s)->p += 2; \
-} while (0)
-#else
-#define in_uint16_le(s, v) \
-do { \
- (v) = *((unsigned short*)((s)->p)); \
- (s)->p += 2; \
-} while (0)
-#endif
-
-/******************************************************************************/
-#define s_mark_end(s) \
-do { \
- (s)->end = (s)->p; \
-} while (0)
-
-/******************************************************************************/
-#define make_stream(s) \
-do { \
- (s) = (struct stream*)g_malloc(sizeof(struct stream), 1); \
-} while (0)
-
-/******************************************************************************/
-#define free_stream(s) \
-do { \
- if ((s) != 0) \
- { \
- g_free((s)->data); \
- } \
- g_free((s)); \
-} while (0)
-
-#endif
diff --git a/xorg/server/module/rdpPixmap.c b/xorg/server/module/rdpPixmap.c
deleted file mode 100644
index 967438e0..00000000
--- a/xorg/server/module/rdpPixmap.c
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
-Copyright 2005-2014 Jay Sorg
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-pixmap calls
-
-*/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-/* this should be before all X11 .h files */
-#include <xorg-server.h>
-#include <xorgVersion.h>
-
-/* all driver need this */
-#include <xf86.h>
-#include <xf86_OSproc.h>
-
-#include "rdp.h"
-#include "rdpDraw.h"
-#include "rdpPixmap.h"
-
-#ifndef XRDP_PIX
-#warning XRDP_PIX not defined
-#endif
-
-/******************************************************************************/
-#define LOG_LEVEL 1
-#define LLOGLN(_level, _args) \
- do { if (_level < LOG_LEVEL) { ErrorF _args ; ErrorF("\n"); } } while (0)
-
-#if XRDP_PIX == 2
-
-/*****************************************************************************/
-PixmapPtr
-rdpCreatePixmap(ScreenPtr pScreen, int width, int height, int depth,
- unsigned usage_hint)
-{
- rdpPtr dev;
- PixmapPtr rv;
-
- LLOGLN(10, ("rdpCreatePixmap: width %d height %d depth %d",
- width, height, depth));
- dev = rdpGetDevFromScreen(pScreen);
- pScreen->CreatePixmap = dev->CreatePixmap;
- rv = pScreen->CreatePixmap(pScreen, width, height, depth, usage_hint);
- pScreen->CreatePixmap = rdpCreatePixmap;
- return rv;
-}
-
-#else
-
-/*****************************************************************************/
-PixmapPtr
-rdpCreatePixmap(ScreenPtr pScreen, int width, int height, int depth)
-{
- rdpPtr dev;
- PixmapPtr rv;
-
- LLOGLN(10, ("rdpCreatePixmap: width %d height %d depth %d",
- width, height, depth));
- dev = rdpGetDevFromScreen(pScreen);
- pScreen->CreatePixmap = dev->CreatePixmap;
- rv = pScreen->CreatePixmap(pScreen, width, height, depth);
- pScreen->CreatePixmap = rdpCreatePixmap;
- return rv;
-}
-
-#endif
-
-/******************************************************************************/
-Bool
-rdpDestroyPixmap(PixmapPtr pPixmap)
-{
- Bool rv;
- ScreenPtr pScreen;
- rdpPtr dev;
-
- LLOGLN(10, ("rdpDestroyPixmap: refcnt %d", pPixmap->refcnt));
- pScreen = pPixmap->drawable.pScreen;
- dev = rdpGetDevFromScreen(pScreen);
- pScreen->DestroyPixmap = dev->DestroyPixmap;
- rv = pScreen->DestroyPixmap(pPixmap);
- pScreen->DestroyPixmap = rdpDestroyPixmap;
- return rv;
-}
-
-/******************************************************************************/
-Bool
-rdpModifyPixmapHeader(PixmapPtr pPixmap, int width, int height, int depth,
- int bitsPerPixel, int devKind, pointer pPixData)
-{
- Bool rv;
- ScreenPtr pScreen;
- rdpPtr dev;
-
- LLOGLN(10, ("rdpModifyPixmapHeader:"));
- pScreen = pPixmap->drawable.pScreen;
- dev = rdpGetDevFromScreen(pScreen);
- pScreen->ModifyPixmapHeader = dev->ModifyPixmapHeader;
- rv = pScreen->ModifyPixmapHeader(pPixmap, width, height, depth, bitsPerPixel,
- devKind, pPixData);
- pScreen->ModifyPixmapHeader = rdpModifyPixmapHeader;
- return rv;
-}
diff --git a/xorg/server/module/rdpPixmap.h b/xorg/server/module/rdpPixmap.h
deleted file mode 100644
index e1c7c7ac..00000000
--- a/xorg/server/module/rdpPixmap.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
-Copyright 2005-2014 Jay Sorg
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-pixmap calls
-
-*/
-
-#ifndef __RDPPIXMAP_H
-#define __RDPPIXAMP_H
-
-#include <xorg-server.h>
-#include <xorgVersion.h>
-#include <xf86.h>
-
-#if XORG_VERSION_CURRENT < XORG_VERSION_NUMERIC(1, 5, 0, 0, 0)
-/* 1.1, 1.2, 1.3, 1.4 */
-#define XRDP_PIX 1
-#else
-/* 1.5, 1.6, 1.7, 1.8, 1.9, 1.10, 1.11, 1.12 */
-#define XRDP_PIX 2
-#endif
-
-#if XRDP_PIX == 2
-extern _X_EXPORT PixmapPtr
-rdpCreatePixmap(ScreenPtr pScreen, int width, int height, int depth,
- unsigned usage_hint);
-#else
-extern _X_EXPORT PixmapPtr
-rdpCreatePixmap(ScreenPtr pScreen, int width, int height, int depth);
-#endif
-extern _X_EXPORT Bool
-rdpDestroyPixmap(PixmapPtr pPixmap);
-extern _X_EXPORT Bool
-rdpModifyPixmapHeader(PixmapPtr pPixmap, int width, int height, int depth,
- int bitsPerPixel, int devKind, pointer pPixData);
-
-#endif
diff --git a/xorg/server/module/rdpPolyArc.c b/xorg/server/module/rdpPolyArc.c
deleted file mode 100644
index 8db3cffe..00000000
--- a/xorg/server/module/rdpPolyArc.c
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
-Copyright 2005-2014 Jay Sorg
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-*/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-/* this should be before all X11 .h files */
-#include <xorg-server.h>
-#include <xorgVersion.h>
-
-/* all driver need this */
-#include <xf86.h>
-#include <xf86_OSproc.h>
-
-#include "rdp.h"
-#include "rdpDraw.h"
-#include "rdpClientCon.h"
-#include "rdpReg.h"
-#include "rdpPolyArc.h"
-
-#define LOG_LEVEL 1
-#define LLOGLN(_level, _args) \
- do { if (_level < LOG_LEVEL) { ErrorF _args ; ErrorF("\n"); } } while (0)
-
-/******************************************************************************/
-static void
-rdpPolyArcOrg(DrawablePtr pDrawable, GCPtr pGC, int narcs, xArc *parcs)
-{
- GC_OP_VARS;
-
- GC_OP_PROLOGUE(pGC);
- pGC->ops->PolyArc(pDrawable, pGC, narcs, parcs);
- GC_OP_EPILOGUE(pGC);
-}
-
-/******************************************************************************/
-void
-rdpPolyArc(DrawablePtr pDrawable, GCPtr pGC, int narcs, xArc *parcs)
-{
- rdpPtr dev;
- BoxRec box;
- int index;
- int cd;
- int lw;
- int extra;
- RegionRec clip_reg;
- RegionRec reg;
-
- LLOGLN(0, ("rdpPolyArc:"));
- dev = rdpGetDevFromScreen(pGC->pScreen);
- dev->counts.rdpPolyArcCallCount++;
- rdpRegionInit(&reg, NullBox, 0);
- if (narcs > 0)
- {
- lw = pGC->lineWidth;
- if (lw == 0)
- {
- lw = 1;
- }
- extra = lw / 2;
- for (index = 0; index < narcs; index++)
- {
- box.x1 = (parcs[index].x - extra) + pDrawable->x;
- box.y1 = (parcs[index].y - extra) + pDrawable->y;
- box.x2 = box.x1 + parcs[index].width + lw;
- box.y2 = box.y1 + parcs[index].height + lw;
- rdpRegionUnionRect(&reg, &box);
- }
- }
- rdpRegionInit(&clip_reg, NullBox, 0);
- cd = rdpDrawGetClip(dev, &clip_reg, pDrawable, pGC);
- LLOGLN(10, ("rdpPolyArc: cd %d", cd));
- if (cd == XRDP_CD_CLIP)
- {
- rdpRegionIntersect(&reg, &clip_reg, &reg);
- }
- /* do original call */
- rdpPolyArcOrg(pDrawable, pGC, narcs, parcs);
- if (cd != XRDP_CD_NODRAW)
- {
- rdpClientConAddAllReg(dev, &reg, pDrawable);
- }
- rdpRegionUninit(&clip_reg);
- rdpRegionUninit(&reg);
-}
diff --git a/xorg/server/module/rdpPolyArc.h b/xorg/server/module/rdpPolyArc.h
deleted file mode 100644
index 9af6566f..00000000
--- a/xorg/server/module/rdpPolyArc.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
-Copyright 2005-2013 Jay Sorg
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-*/
-
-#ifndef __RDPPOLYARC_H
-#define __RDPPOLYARC_H
-
-#include <xorg-server.h>
-#include <xorgVersion.h>
-#include <xf86.h>
-
-extern _X_EXPORT void
-rdpPolyArc(DrawablePtr pDrawable, GCPtr pGC, int narcs, xArc* parcs);
-
-#endif
diff --git a/xorg/server/module/rdpPolyFillArc.c b/xorg/server/module/rdpPolyFillArc.c
deleted file mode 100644
index 2ba49854..00000000
--- a/xorg/server/module/rdpPolyFillArc.c
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
-Copyright 2005-2014 Jay Sorg
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-*/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-/* this should be before all X11 .h files */
-#include <xorg-server.h>
-#include <xorgVersion.h>
-
-/* all driver need this */
-#include <xf86.h>
-#include <xf86_OSproc.h>
-
-#include "rdp.h"
-#include "rdpDraw.h"
-#include "rdpClientCon.h"
-#include "rdpReg.h"
-#include "rdpPolyFillArc.h"
-
-#define LOG_LEVEL 1
-#define LLOGLN(_level, _args) \
- do { if (_level < LOG_LEVEL) { ErrorF _args ; ErrorF("\n"); } } while (0)
-
-/******************************************************************************/
-static void
-rdpPolyFillArcOrg(DrawablePtr pDrawable, GCPtr pGC, int narcs, xArc *parcs)
-{
- GC_OP_VARS;
-
- GC_OP_PROLOGUE(pGC);
- pGC->ops->PolyFillArc(pDrawable, pGC, narcs, parcs);
- GC_OP_EPILOGUE(pGC);
-}
-
-/******************************************************************************/
-void
-rdpPolyFillArc(DrawablePtr pDrawable, GCPtr pGC, int narcs, xArc *parcs)
-{
- rdpPtr dev;
- BoxRec box;
- int index;
- int cd;
- int lw;
- int extra;
- RegionRec clip_reg;
- RegionRec reg;
-
- LLOGLN(10, ("rdpPolyFillArc:"));
- dev = rdpGetDevFromScreen(pGC->pScreen);
- dev->counts.rdpPolyFillArcCallCount++;
- rdpRegionInit(&reg, NullBox, 0);
- if (narcs > 0)
- {
- lw = pGC->lineWidth;
- if (lw == 0)
- {
- lw = 1;
- }
- extra = lw / 2;
- for (index = 0; index < narcs; index++)
- {
- box.x1 = (parcs[index].x - extra) + pDrawable->x;
- box.y1 = (parcs[index].y - extra) + pDrawable->y;
- box.x2 = box.x1 + parcs[index].width + lw;
- box.y2 = box.y1 + parcs[index].height + lw;
- rdpRegionUnionRect(&reg, &box);
- }
- }
- rdpRegionInit(&clip_reg, NullBox, 0);
- cd = rdpDrawGetClip(dev, &clip_reg, pDrawable, pGC);
- LLOGLN(10, ("rdpPolyFillArc: cd %d", cd));
- if (cd == XRDP_CD_CLIP)
- {
- rdpRegionIntersect(&reg, &clip_reg, &reg);
- }
- /* do original call */
- rdpPolyFillArcOrg(pDrawable, pGC, narcs, parcs);
- if (cd != XRDP_CD_NODRAW)
- {
- rdpClientConAddAllReg(dev, &reg, pDrawable);
- }
- rdpRegionUninit(&clip_reg);
- rdpRegionUninit(&reg);
-}
diff --git a/xorg/server/module/rdpPolyFillArc.h b/xorg/server/module/rdpPolyFillArc.h
deleted file mode 100644
index 708f8eae..00000000
--- a/xorg/server/module/rdpPolyFillArc.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
-Copyright 2005-2013 Jay Sorg
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-*/
-
-#ifndef __RDPPOLYFILLARC_H
-#define __RDPPOLYFILLARC_H
-
-#include <xorg-server.h>
-#include <xorgVersion.h>
-#include <xf86.h>
-
-extern _X_EXPORT void
-rdpPolyFillArc(DrawablePtr pDrawable, GCPtr pGC, int narcs, xArc* parcs);
-
-#endif
diff --git a/xorg/server/module/rdpPolyFillRect.c b/xorg/server/module/rdpPolyFillRect.c
deleted file mode 100644
index 1b99b1e8..00000000
--- a/xorg/server/module/rdpPolyFillRect.c
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
-Copyright 2005-2014 Jay Sorg
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-*/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-/* this should be before all X11 .h files */
-#include <xorg-server.h>
-#include <xorgVersion.h>
-
-/* all driver need this */
-#include <xf86.h>
-#include <xf86_OSproc.h>
-
-#include "rdp.h"
-#include "rdpDraw.h"
-#include "rdpClientCon.h"
-#include "rdpReg.h"
-#include "rdpPolyFillRect.h"
-
-#define LOG_LEVEL 1
-#define LLOGLN(_level, _args) \
- do { if (_level < LOG_LEVEL) { ErrorF _args ; ErrorF("\n"); } } while (0)
-
-/******************************************************************************/
-static void
-rdpPolyFillRectOrg(DrawablePtr pDrawable, GCPtr pGC, int nrectFill,
- xRectangle *prectInit)
-{
- GC_OP_VARS;
-
- GC_OP_PROLOGUE(pGC);
- pGC->ops->PolyFillRect(pDrawable, pGC, nrectFill, prectInit);
- GC_OP_EPILOGUE(pGC);
-}
-
-/******************************************************************************/
-void
-rdpPolyFillRect(DrawablePtr pDrawable, GCPtr pGC, int nrectFill,
- xRectangle *prectInit)
-{
- rdpPtr dev;
- RegionRec clip_reg;
- RegionPtr reg;
- int cd;
-
- LLOGLN(10, ("rdpPolyFillRect:"));
- dev = rdpGetDevFromScreen(pGC->pScreen);
- dev->counts.rdpPolyFillRectCallCount++;
- /* make a copy of rects */
- reg = rdpRegionFromRects(nrectFill, prectInit, CT_NONE);
- rdpRegionTranslate(reg, pDrawable->x, pDrawable->y);
- rdpRegionInit(&clip_reg, NullBox, 0);
- cd = rdpDrawGetClip(dev, &clip_reg, pDrawable, pGC);
- LLOGLN(10, ("rdpPolyFillRect: cd %d", cd));
- if (cd == XRDP_CD_CLIP)
- {
- rdpRegionIntersect(reg, &clip_reg, reg);
- }
- /* do original call */
- rdpPolyFillRectOrg(pDrawable, pGC, nrectFill, prectInit);
- if (cd != XRDP_CD_NODRAW)
- {
- rdpClientConAddAllReg(dev, reg, pDrawable);
- }
- rdpRegionUninit(&clip_reg);
- rdpRegionDestroy(reg);
-}
diff --git a/xorg/server/module/rdpPolyFillRect.h b/xorg/server/module/rdpPolyFillRect.h
deleted file mode 100644
index ab2c3c5f..00000000
--- a/xorg/server/module/rdpPolyFillRect.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
-Copyright 2005-2013 Jay Sorg
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-*/
-
-#ifndef __RDPPOLYFILLRECT_H
-#define __RDPPOLYFILLRECT_H
-
-#include <xorg-server.h>
-#include <xorgVersion.h>
-#include <xf86.h>
-
-extern _X_EXPORT void
-rdpPolyFillRect(DrawablePtr pDrawable, GCPtr pGC, int nrectFill,
- xRectangle* prectInit);
-
-#endif
diff --git a/xorg/server/module/rdpPolyGlyphBlt.c b/xorg/server/module/rdpPolyGlyphBlt.c
deleted file mode 100644
index df48dcd4..00000000
--- a/xorg/server/module/rdpPolyGlyphBlt.c
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
-Copyright 2005-2014 Jay Sorg
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-*/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-/* this should be before all X11 .h files */
-#include <xorg-server.h>
-#include <xorgVersion.h>
-
-/* all driver need this */
-#include <xf86.h>
-#include <xf86_OSproc.h>
-
-#include "rdp.h"
-#include "rdpDraw.h"
-#include "rdpClientCon.h"
-#include "rdpReg.h"
-#include "rdpPolyGlyphBlt.h"
-
-#define LOG_LEVEL 1
-#define LLOGLN(_level, _args) \
- do { if (_level < LOG_LEVEL) { ErrorF _args ; ErrorF("\n"); } } while (0)
-
-/******************************************************************************/
-void
-rdpPolyGlyphBltOrg(DrawablePtr pDrawable, GCPtr pGC,
- int x, int y, unsigned int nglyph,
- CharInfoPtr *ppci, pointer pglyphBase)
-{
- GC_OP_VARS;
-
- GC_OP_PROLOGUE(pGC);
- pGC->ops->PolyGlyphBlt(pDrawable, pGC, x, y, nglyph, ppci, pglyphBase);
- GC_OP_EPILOGUE(pGC);
-}
-
-/******************************************************************************/
-void
-rdpPolyGlyphBlt(DrawablePtr pDrawable, GCPtr pGC,
- int x, int y, unsigned int nglyph,
- CharInfoPtr *ppci, pointer pglyphBase)
-{
- rdpPtr dev;
- RegionRec clip_reg;
- RegionRec reg;
- int cd;
- BoxRec box;
-
- LLOGLN(0, ("rdpPolyGlyphBlt:"));
- dev = rdpGetDevFromScreen(pGC->pScreen);
- dev->counts.rdpPolyGlyphBltCallCount++;
- GetTextBoundingBox(pDrawable, pGC->font, x, y, nglyph, &box);
- rdpRegionInit(&reg, &box, 0);
- rdpRegionInit(&clip_reg, NullBox, 0);
- cd = rdpDrawGetClip(dev, &clip_reg, pDrawable, pGC);
- LLOGLN(10, ("rdpPolyGlyphBlt: cd %d", cd));
- if (cd == XRDP_CD_CLIP)
- {
- rdpRegionIntersect(&reg, &clip_reg, &reg);
- }
- /* do original call */
- rdpPolyGlyphBltOrg(pDrawable, pGC, x, y, nglyph, ppci, pglyphBase);
- if (cd != XRDP_CD_NODRAW)
- {
- rdpClientConAddAllReg(dev, &reg, pDrawable);
- }
- rdpRegionUninit(&clip_reg);
- rdpRegionUninit(&reg);
-}
diff --git a/xorg/server/module/rdpPolyGlyphBlt.h b/xorg/server/module/rdpPolyGlyphBlt.h
deleted file mode 100644
index 92b2dfbe..00000000
--- a/xorg/server/module/rdpPolyGlyphBlt.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
-Copyright 2005-2014 Jay Sorg
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-*/
-
-#ifndef __RDPPOLYGLYPHBLT_H
-#define __RDPPOLYGLYPHBLT_H
-
-#include <xorg-server.h>
-#include <xorgVersion.h>
-#include <xf86.h>
-
-extern _X_EXPORT void
-rdpPolyGlyphBlt(DrawablePtr pDrawable, GCPtr pGC,
- int x, int y, unsigned int nglyph,
- CharInfoPtr* ppci, pointer pglyphBase);
-
-#endif
diff --git a/xorg/server/module/rdpPolyPoint.c b/xorg/server/module/rdpPolyPoint.c
deleted file mode 100644
index 9624f829..00000000
--- a/xorg/server/module/rdpPolyPoint.c
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
-Copyright 2005-2014 Jay Sorg
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-*/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-/* this should be before all X11 .h files */
-#include <xorg-server.h>
-#include <xorgVersion.h>
-
-/* all driver need this */
-#include <xf86.h>
-#include <xf86_OSproc.h>
-
-#include "rdp.h"
-#include "rdpDraw.h"
-#include "rdpClientCon.h"
-#include "rdpReg.h"
-#include "rdpPolyPoint.h"
-
-#define LOG_LEVEL 1
-#define LLOGLN(_level, _args) \
- do { if (_level < LOG_LEVEL) { ErrorF _args ; ErrorF("\n"); } } while (0)
-
-/******************************************************************************/
-static void
-rdpPolyPointOrg(DrawablePtr pDrawable, GCPtr pGC, int mode,
- int npt, DDXPointPtr in_pts)
-{
- GC_OP_VARS;
-
- GC_OP_PROLOGUE(pGC);
- pGC->ops->PolyPoint(pDrawable, pGC, mode, npt, in_pts);
- GC_OP_EPILOGUE(pGC);
-}
-
-/******************************************************************************/
-void
-rdpPolyPoint(DrawablePtr pDrawable, GCPtr pGC, int mode,
- int npt, DDXPointPtr in_pts)
-{
- rdpPtr dev;
- RegionRec clip_reg;
- RegionRec reg;
- int cd;
- int index;
- BoxRec box;
-
- LLOGLN(10, ("rdpPolyPoint:"));
- dev = rdpGetDevFromScreen(pGC->pScreen);
- dev->counts.rdpPolyPointCallCount++;
- rdpRegionInit(&reg, NullBox, 0);
- for (index = 0; index < npt; index++)
- {
- box.x1 = in_pts[index].x + pDrawable->x;
- box.y1 = in_pts[index].y + pDrawable->y;
- box.x2 = box.x1 + 1;
- box.y2 = box.y1 + 1;
- rdpRegionUnionRect(&reg, &box);
- }
- rdpRegionInit(&clip_reg, NullBox, 0);
- cd = rdpDrawGetClip(dev, &clip_reg, pDrawable, pGC);
- LLOGLN(10, ("rdpPolyPoint: cd %d", cd));
- if (cd == XRDP_CD_CLIP)
- {
- rdpRegionIntersect(&reg, &clip_reg, &reg);
- }
- /* do original call */
- rdpPolyPointOrg(pDrawable, pGC, mode, npt, in_pts);
- if (cd != XRDP_CD_NODRAW)
- {
- rdpClientConAddAllReg(dev, &reg, pDrawable);
- }
- rdpRegionUninit(&clip_reg);
- rdpRegionUninit(&reg);
-}
diff --git a/xorg/server/module/rdpPolyPoint.h b/xorg/server/module/rdpPolyPoint.h
deleted file mode 100644
index 9acc4d10..00000000
--- a/xorg/server/module/rdpPolyPoint.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
-Copyright 2005-2014 Jay Sorg
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-*/
-
-#ifndef __RDPPOLYPOINT_H
-#define __RDPPOLYPOINT_H
-
-#include <xorg-server.h>
-#include <xorgVersion.h>
-#include <xf86.h>
-
-extern _X_EXPORT void
-rdpPolyPoint(DrawablePtr pDrawable, GCPtr pGC, int mode,
- int npt, DDXPointPtr in_pts);
-
-#endif
diff --git a/xorg/server/module/rdpPolyRectangle.c b/xorg/server/module/rdpPolyRectangle.c
deleted file mode 100644
index 946e798a..00000000
--- a/xorg/server/module/rdpPolyRectangle.c
+++ /dev/null
@@ -1,134 +0,0 @@
-/*
-Copyright 2005-2014 Jay Sorg
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-*/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-/* this should be before all X11 .h files */
-#include <xorg-server.h>
-#include <xorgVersion.h>
-
-/* all driver need this */
-#include <xf86.h>
-#include <xf86_OSproc.h>
-
-#include "rdp.h"
-#include "rdpDraw.h"
-#include "rdpClientCon.h"
-#include "rdpReg.h"
-#include "rdpPolyRectangle.h"
-
-#define LOG_LEVEL 1
-#define LLOGLN(_level, _args) \
- do { if (_level < LOG_LEVEL) { ErrorF _args ; ErrorF("\n"); } } while (0)
-
-/******************************************************************************/
-static void
-rdpPolyRectangleOrg(DrawablePtr pDrawable, GCPtr pGC, int nrects,
- xRectangle *rects)
-{
- GC_OP_VARS;
-
- GC_OP_PROLOGUE(pGC);
- pGC->ops->PolyRectangle(pDrawable, pGC, nrects, rects);
- GC_OP_EPILOGUE(pGC);
-}
-
-/******************************************************************************/
-void
-rdpPolyRectangle(DrawablePtr pDrawable, GCPtr pGC, int nrects,
- xRectangle *rects)
-{
- rdpPtr dev;
- BoxRec box;
- int index;
- int up;
- int down;
- int lw;
- int cd;
- int x1;
- int y1;
- int x2;
- int y2;
- RegionRec clip_reg;
- RegionRec reg;
-
- LLOGLN(10, ("rdpPolyRectangle:"));
- dev = rdpGetDevFromScreen(pGC->pScreen);
- dev->counts.rdpPolyRectangleCallCount++;
- rdpRegionInit(&reg, NullBox, 0);
- lw = pGC->lineWidth;
- if (lw < 1)
- {
- lw = 1;
- }
- up = lw / 2;
- down = 1 + (lw - 1) / 2;
- index = 0;
- while (index < nrects)
- {
- x1 = rects[index].x + pDrawable->x;
- y1 = rects[index].y + pDrawable->y;
- x2 = x1 + rects[index].width;
- y2 = y1 + rects[index].height;
- /* top */
- box.x1 = x1 - up;
- box.y1 = y1 - up;
- box.x2 = x2 + down;
- box.y2 = y1 + down;
- rdpRegionUnionRect(&reg, &box);
- /* left */
- box.x1 = x1 - up;
- box.y1 = y1 - up;
- box.x2 = x1 + down;
- box.y2 = y2 + down;
- rdpRegionUnionRect(&reg, &box);
- /* right */
- box.x1 = x2 - up;
- box.y1 = y1 - up;
- box.x2 = x2 + down;
- box.y2 = y2 + down;
- rdpRegionUnionRect(&reg, &box);
- /* bottom */
- box.x1 = x1 - up;
- box.y1 = y2 - up;
- box.x2 = x2 + down;
- box.y2 = y2 + down;
- rdpRegionUnionRect(&reg, &box);
- index++;
- }
- rdpRegionInit(&clip_reg, NullBox, 0);
- cd = rdpDrawGetClip(dev, &clip_reg, pDrawable, pGC);
- LLOGLN(10, ("rdpPolyRectangle: cd %d", cd));
- if (cd == XRDP_CD_CLIP)
- {
- rdpRegionIntersect(&reg, &clip_reg, &reg);
- }
- /* do original call */
- rdpPolyRectangleOrg(pDrawable, pGC, nrects, rects);
- if (cd != XRDP_CD_NODRAW)
- {
- rdpClientConAddAllReg(dev, &reg, pDrawable);
- }
- rdpRegionUninit(&clip_reg);
- rdpRegionUninit(&reg);
-}
diff --git a/xorg/server/module/rdpPolyRectangle.h b/xorg/server/module/rdpPolyRectangle.h
deleted file mode 100644
index 6cd190d9..00000000
--- a/xorg/server/module/rdpPolyRectangle.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
-Copyright 2005-2013 Jay Sorg
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-*/
-
-#ifndef __RDPPOLYRECTANGLE_H
-#define __RDPPOLYRECTANGLE_H
-
-#include <xorg-server.h>
-#include <xorgVersion.h>
-#include <xf86.h>
-
-extern _X_EXPORT void
-rdpPolyRectangle(DrawablePtr pDrawable, GCPtr pGC, int nrects,
- xRectangle* rects);
-
-#endif
diff --git a/xorg/server/module/rdpPolySegment.c b/xorg/server/module/rdpPolySegment.c
deleted file mode 100644
index ad01bda1..00000000
--- a/xorg/server/module/rdpPolySegment.c
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
-Copyright 2005-2014 Jay Sorg
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-*/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-/* this should be before all X11 .h files */
-#include <xorg-server.h>
-#include <xorgVersion.h>
-
-/* all driver need this */
-#include <xf86.h>
-#include <xf86_OSproc.h>
-
-#include "rdp.h"
-#include "rdpDraw.h"
-#include "rdpClientCon.h"
-#include "rdpReg.h"
-#include "rdpPolySegment.h"
-
-#define LOG_LEVEL 1
-#define LLOGLN(_level, _args) \
- do { if (_level < LOG_LEVEL) { ErrorF _args ; ErrorF("\n"); } } while (0)
-
-/******************************************************************************/
-void
-rdpPolySegmentOrg(DrawablePtr pDrawable, GCPtr pGC, int nseg, xSegment *pSegs)
-{
- GC_OP_VARS;
-
- GC_OP_PROLOGUE(pGC);
- pGC->ops->PolySegment(pDrawable, pGC, nseg, pSegs);
- GC_OP_EPILOGUE(pGC);
-}
-
-/******************************************************************************/
-void
-rdpPolySegment(DrawablePtr pDrawable, GCPtr pGC, int nseg, xSegment *pSegs)
-{
- rdpPtr dev;
- RegionRec clip_reg;
- RegionRec reg;
- int cd;
- int index;
- int x1;
- int y1;
- int x2;
- int y2;
- BoxRec box;
-
- LLOGLN(10, ("rdpPolySegment:"));
- dev = rdpGetDevFromScreen(pGC->pScreen);
- dev->counts.rdpPolySegmentCallCount++;
- rdpRegionInit(&reg, NullBox, 0);
- for (index = 0; index < nseg; index++)
- {
- x1 = pSegs[index].x1 + pDrawable->x;
- y1 = pSegs[index].y1 + pDrawable->y;
- x2 = pSegs[index].x2 + pDrawable->x;
- y2 = pSegs[index].y2 + pDrawable->y;
- box.x1 = RDPMIN(x1, x2);
- box.y1 = RDPMIN(y1, y2);
- box.x2 = RDPMAX(x1, x2) + 1;
- box.y2 = RDPMAX(y1, y2) + 1;
- rdpRegionUnionRect(&reg, &box);
- }
- rdpRegionInit(&clip_reg, NullBox, 0);
- cd = rdpDrawGetClip(dev, &clip_reg, pDrawable, pGC);
- LLOGLN(10, ("rdpPolySegment: cd %d", cd));
- if (cd == XRDP_CD_CLIP)
- {
- rdpRegionIntersect(&reg, &clip_reg, &reg);
- }
- /* do original call */
- rdpPolySegmentOrg(pDrawable, pGC, nseg, pSegs);
- if (cd != XRDP_CD_NODRAW)
- {
- rdpClientConAddAllReg(dev, &reg, pDrawable);
- }
- rdpRegionUninit(&clip_reg);
- rdpRegionUninit(&reg);
-}
diff --git a/xorg/server/module/rdpPolySegment.h b/xorg/server/module/rdpPolySegment.h
deleted file mode 100644
index 37756ae1..00000000
--- a/xorg/server/module/rdpPolySegment.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
-Copyright 2005-2014 Jay Sorg
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-*/
-
-#ifndef __RDPPOLYSEGMENT_H
-#define __RDPPOLYSEGMENT_H
-
-#include <xorg-server.h>
-#include <xorgVersion.h>
-#include <xf86.h>
-
-extern _X_EXPORT void
-rdpPolySegment(DrawablePtr pDrawable, GCPtr pGC, int nseg, xSegment* pSegs);
-
-#endif
diff --git a/xorg/server/module/rdpPolyText16.c b/xorg/server/module/rdpPolyText16.c
deleted file mode 100644
index eaa34323..00000000
--- a/xorg/server/module/rdpPolyText16.c
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
-Copyright 2005-2014 Jay Sorg
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-*/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-/* this should be before all X11 .h files */
-#include <xorg-server.h>
-#include <xorgVersion.h>
-
-/* all driver need this */
-#include <xf86.h>
-#include <xf86_OSproc.h>
-
-#include "rdp.h"
-#include "rdpDraw.h"
-#include "rdpClientCon.h"
-#include "rdpReg.h"
-#include "rdpPolyText16.h"
-
-#define LOG_LEVEL 1
-#define LLOGLN(_level, _args) \
- do { if (_level < LOG_LEVEL) { ErrorF _args ; ErrorF("\n"); } } while (0)
-
-/******************************************************************************/
-static int
-rdpPolyText16Org(DrawablePtr pDrawable, GCPtr pGC,
- int x, int y, int count, unsigned short *chars)
-{
- GC_OP_VARS;
- int rv;
-
- GC_OP_PROLOGUE(pGC);
- rv = pGC->ops->PolyText16(pDrawable, pGC, x, y, count, chars);
- GC_OP_EPILOGUE(pGC);
- return rv;
-}
-
-/******************************************************************************/
-int
-rdpPolyText16(DrawablePtr pDrawable, GCPtr pGC,
- int x, int y, int count, unsigned short *chars)
-{
- int rv;
- rdpPtr dev;
- RegionRec clip_reg;
- RegionRec reg;
- int cd;
- BoxRec box;
-
- LLOGLN(10, ("rdpPolyText16:"));
- dev = rdpGetDevFromScreen(pGC->pScreen);
- dev->counts.rdpPolyText16CallCount++;
- GetTextBoundingBox(pDrawable, pGC->font, x, y, count, &box);
- rdpRegionInit(&reg, &box, 0);
- rdpRegionInit(&clip_reg, NullBox, 0);
- cd = rdpDrawGetClip(dev, &clip_reg, pDrawable, pGC);
- LLOGLN(10, ("rdpPolyText16: cd %d", cd));
- if (cd == XRDP_CD_CLIP)
- {
- rdpRegionIntersect(&reg, &clip_reg, &reg);
- }
- /* do original call */
- rv = rdpPolyText16Org(pDrawable, pGC, x, y, count, chars);
- if (cd != XRDP_CD_NODRAW)
- {
- rdpClientConAddAllReg(dev, &reg, pDrawable);
- }
- rdpRegionUninit(&clip_reg);
- rdpRegionUninit(&reg);
- return rv;
-}
diff --git a/xorg/server/module/rdpPolyText16.h b/xorg/server/module/rdpPolyText16.h
deleted file mode 100644
index c94a8fd9..00000000
--- a/xorg/server/module/rdpPolyText16.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
-Copyright 2005-2014 Jay Sorg
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-*/
-
-#ifndef __RDPPOLYTEXT16_H
-#define __RDPPOLYTEXT16_H
-
-#include <xorg-server.h>
-#include <xorgVersion.h>
-#include <xf86.h>
-
-extern _X_EXPORT int
-rdpPolyText16(DrawablePtr pDrawable, GCPtr pGC,
- int x, int y, int count, unsigned short* chars);
-
-#endif
diff --git a/xorg/server/module/rdpPolyText8.c b/xorg/server/module/rdpPolyText8.c
deleted file mode 100644
index aa744b59..00000000
--- a/xorg/server/module/rdpPolyText8.c
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
-Copyright 2005-2014 Jay Sorg
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-*/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-/* this should be before all X11 .h files */
-#include <xorg-server.h>
-#include <xorgVersion.h>
-
-/* all driver need this */
-#include <xf86.h>
-#include <xf86_OSproc.h>
-
-#include "rdp.h"
-#include "rdpDraw.h"
-#include "rdpClientCon.h"
-#include "rdpReg.h"
-#include "rdpPolyText8.h"
-
-#define LOG_LEVEL 1
-#define LLOGLN(_level, _args) \
- do { if (_level < LOG_LEVEL) { ErrorF _args ; ErrorF("\n"); } } while (0)
-
-/******************************************************************************/
-static int
-rdpPolyText8Org(DrawablePtr pDrawable, GCPtr pGC,
- int x, int y, int count, char *chars)
-{
- GC_OP_VARS;
- int rv;
-
- GC_OP_PROLOGUE(pGC);
- rv = pGC->ops->PolyText8(pDrawable, pGC, x, y, count, chars);
- GC_OP_EPILOGUE(pGC);
- return rv;
-}
-
-/******************************************************************************/
-int
-rdpPolyText8(DrawablePtr pDrawable, GCPtr pGC,
- int x, int y, int count, char *chars)
-{
- int rv;
- rdpPtr dev;
- RegionRec clip_reg;
- RegionRec reg;
- int cd;
- BoxRec box;
-
- LLOGLN(10, ("rdpPolyText8:"));
- dev = rdpGetDevFromScreen(pGC->pScreen);
- dev->counts.rdpPolyText8CallCount++;
- GetTextBoundingBox(pDrawable, pGC->font, x, y, count, &box);
- rdpRegionInit(&reg, &box, 0);
- rdpRegionInit(&clip_reg, NullBox, 0);
- cd = rdpDrawGetClip(dev, &clip_reg, pDrawable, pGC);
- LLOGLN(10, ("rdpPolyText8: cd %d", cd));
- if (cd == XRDP_CD_CLIP)
- {
- rdpRegionIntersect(&reg, &clip_reg, &reg);
- }
- /* do original call */
- rv = rdpPolyText8Org(pDrawable, pGC, x, y, count, chars);
- if (cd != XRDP_CD_NODRAW)
- {
- rdpClientConAddAllReg(dev, &reg, pDrawable);
- }
- rdpRegionUninit(&clip_reg);
- rdpRegionUninit(&reg);
- return rv;
-}
diff --git a/xorg/server/module/rdpPolyText8.h b/xorg/server/module/rdpPolyText8.h
deleted file mode 100644
index 64ce2f3e..00000000
--- a/xorg/server/module/rdpPolyText8.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
-Copyright 2005-2014 Jay Sorg
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-*/
-
-#ifndef __RDPPOLYTEXT8_H
-#define __RDPPOLYTEXT8_H
-
-#include <xorg-server.h>
-#include <xorgVersion.h>
-#include <xf86.h>
-
-int
-rdpPolyText8(DrawablePtr pDrawable, GCPtr pGC,
- int x, int y, int count, char* chars);
-
-#endif
diff --git a/xorg/server/module/rdpPolylines.c b/xorg/server/module/rdpPolylines.c
deleted file mode 100644
index cd87ecf3..00000000
--- a/xorg/server/module/rdpPolylines.c
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
-Copyright 2005-2014 Jay Sorg
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-*/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-/* this should be before all X11 .h files */
-#include <xorg-server.h>
-#include <xorgVersion.h>
-
-/* all driver need this */
-#include <xf86.h>
-#include <xf86_OSproc.h>
-
-#include "rdp.h"
-#include "rdpDraw.h"
-#include "rdpClientCon.h"
-#include "rdpReg.h"
-#include "rdpPolylines.h"
-
-#define LOG_LEVEL 1
-#define LLOGLN(_level, _args) \
- do { if (_level < LOG_LEVEL) { ErrorF _args ; ErrorF("\n"); } } while (0)
-
-/******************************************************************************/
-static void
-rdpPolylinesOrg(DrawablePtr pDrawable, GCPtr pGC, int mode,
- int npt, DDXPointPtr pptInit)
-{
- GC_OP_VARS;
-
- GC_OP_PROLOGUE(pGC);
- pGC->ops->Polylines(pDrawable, pGC, mode, npt, pptInit);
- GC_OP_EPILOGUE(pGC);
-}
-
-/******************************************************************************/
-void
-rdpPolylines(DrawablePtr pDrawable, GCPtr pGC, int mode,
- int npt, DDXPointPtr pptInit)
-{
- rdpPtr dev;
- RegionRec clip_reg;
- RegionRec reg;
- int cd;
- int index;
- int x1;
- int y1;
- int x2;
- int y2;
- BoxRec box;
-
- LLOGLN(10, ("rdpPolylines:"));
- dev = rdpGetDevFromScreen(pGC->pScreen);
- dev->counts.rdpPolylinesCallCount++;
- rdpRegionInit(&reg, NullBox, 0);
- for (index = 1; index < npt; index++)
- {
- x1 = pptInit[index - 1].x + pDrawable->x;
- y1 = pptInit[index - 1].y + pDrawable->y;
- x2 = pptInit[index].x + pDrawable->x;
- y2 = pptInit[index].y + pDrawable->y;
- box.x1 = RDPMIN(x1, x2);
- box.y1 = RDPMIN(y1, y2);
- box.x2 = RDPMAX(x1, x2) + 1;
- box.y2 = RDPMAX(y1, y2) + 1;
- rdpRegionUnionRect(&reg, &box);
- }
- rdpRegionInit(&clip_reg, NullBox, 0);
- cd = rdpDrawGetClip(dev, &clip_reg, pDrawable, pGC);
- LLOGLN(10, ("rdpPolylines: cd %d", cd));
- if (cd == XRDP_CD_CLIP)
- {
- rdpRegionIntersect(&reg, &clip_reg, &reg);
- }
- /* do original call */
- rdpPolylinesOrg(pDrawable, pGC, mode, npt, pptInit);
- if (cd != XRDP_CD_NODRAW)
- {
- rdpClientConAddAllReg(dev, &reg, pDrawable);
- }
- rdpRegionUninit(&clip_reg);
- rdpRegionUninit(&reg);
-}
diff --git a/xorg/server/module/rdpPolylines.h b/xorg/server/module/rdpPolylines.h
deleted file mode 100644
index db11d69c..00000000
--- a/xorg/server/module/rdpPolylines.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
-Copyright 2005-2014 Jay Sorg
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-*/
-
-#ifndef __RDPPOLYLINES_H
-#define __RDPPOLYLINES_H
-
-#include <xorg-server.h>
-#include <xorgVersion.h>
-#include <xf86.h>
-
-void
-rdpPolylines(DrawablePtr pDrawable, GCPtr pGC, int mode,
- int npt, DDXPointPtr pptInit);
-
-#endif
diff --git a/xorg/server/module/rdpPri.c b/xorg/server/module/rdpPri.c
deleted file mode 100644
index 3ceedc9c..00000000
--- a/xorg/server/module/rdpPri.c
+++ /dev/null
@@ -1,177 +0,0 @@
-/*
-Copyright 2013-2014 Jay Sorg
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-to deal with privates changing in xorg versions
-
-*/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-/* this should be before all X11 .h files */
-#include <xorg-server.h>
-#include <xorgVersion.h>
-
-/* all driver need this */
-#include <xf86.h>
-#include <xf86_OSproc.h>
-
-#include <mipointer.h>
-#include <fb.h>
-#include <micmap.h>
-#include <mi.h>
-
-#include "rdpPri.h"
-#include "rdpMisc.h"
-
-#if XORG_VERSION_CURRENT < XORG_VERSION_NUMERIC(1, 5, 0, 0, 0)
-/* 1.1, 1.2, 1.3, 1.4 */
-#define XRDP_PRI 1
-#elif XORG_VERSION_CURRENT < XORG_VERSION_NUMERIC(1, 9, 0, 0, 0)
-/* 1.5, 1.6, 1.7, 1.8 */
-#define XRDP_PRI 2
-#else
-/* 1.9, 1.10, 1.11, 1.12 */
-#define XRDP_PRI 3
-#endif
-
-#define PTR2INT(_ptr) ((int) ((long) ((void*) (_ptr))))
-#define INT2PTR(_int) ((void *) ((long) ((int) (_int))))
-
-#if XRDP_PRI == 3
-static DevPrivateKeyRec g_privateKeyRecGC;
-static DevPrivateKeyRec g_privateKeyRecPixmap;
-static DevPrivateKeyRec g_privateKeyRecWindow;
-#elif XRDP_PRI == 2
-static int g_privateKeyRecGC = 0;
-static int g_privateKeyRecPixmap = 0;
-static int g_privateKeyRecWindow = 0;
-#endif
-
-/*****************************************************************************/
-rdpDevPrivateKey
-rdpAllocateGCPrivate(ScreenPtr pScreen, int bytes)
-{
- rdpDevPrivateKey rv;
-
-#if XRDP_PRI == 1
- rv = INT2PTR(AllocateGCPrivateIndex());
- AllocateGCPrivate(pScreen, PTR2INT(rv), bytes);
-#elif XRDP_PRI == 2
- dixRequestPrivate(&g_privateKeyRecGC, bytes);
- rv = &g_privateKeyRecGC;
-#else
- dixRegisterPrivateKey(&g_privateKeyRecGC, PRIVATE_GC, bytes);
- rv = &g_privateKeyRecGC;
-#endif
- return rv;
-}
-
-/*****************************************************************************/
-rdpDevPrivateKey
-rdpAllocatePixmapPrivate(ScreenPtr pScreen, int bytes)
-{
- rdpDevPrivateKey rv;
-
-#if XRDP_PRI == 1
- rv = INT2PTR(AllocatePixmapPrivateIndex());
- AllocatePixmapPrivate(pScreen, PTR2INT(rv), bytes);
-#elif XRDP_PRI == 2
- dixRequestPrivate(&g_privateKeyRecPixmap, bytes);
- rv = &g_privateKeyRecPixmap;
-#else
- dixRegisterPrivateKey(&g_privateKeyRecPixmap, PRIVATE_PIXMAP, bytes);
- rv = &g_privateKeyRecPixmap;
-#endif
- return rv;
-}
-
-/*****************************************************************************/
-rdpDevPrivateKey
-rdpAllocateWindowPrivate(ScreenPtr pScreen, int bytes)
-{
- rdpDevPrivateKey rv;
-
-#if XRDP_PRI == 1
- rv = INT2PTR(AllocateWindowPrivateIndex());
- AllocateWindowPrivate(pScreen, PTR2INT(rv), bytes);
-#elif XRDP_PRI == 2
- dixRequestPrivate(&g_privateKeyRecWindow, bytes);
- rv = &g_privateKeyRecWindow;
-#else
- dixRegisterPrivateKey(&g_privateKeyRecWindow, PRIVATE_WINDOW, bytes);
- rv = &g_privateKeyRecWindow;
-#endif
- return rv;
-}
-
-/*****************************************************************************/
-void *
-rdpGetGCPrivate(GCPtr pGC, rdpDevPrivateKey key)
-{
- void *rv;
-
-#if XRDP_PRI == 1
- rv = pGC->devPrivates[PTR2INT(key)].ptr;
-#else
- rv = dixLookupPrivate(&(pGC->devPrivates), key);
-#endif
- return rv;
-}
-
-/*****************************************************************************/
-void *
-rdpGetPixmapPrivate(PixmapPtr pPixmap, rdpDevPrivateKey key)
-{
- void *rv;
-
-#if XRDP_PRI == 1
- rv = pPixmap->devPrivates[PTR2INT(key)].ptr;
-#else
- rv = dixLookupPrivate(&(pPixmap->devPrivates), key);
-#endif
- return rv;
-}
-
-/*****************************************************************************/
-void *
-rdpGetWindowPrivate(WindowPtr pWindow, rdpDevPrivateKey key)
-{
- void *rv;
-
-#if XRDP_PRI == 1
- rv = pWindow->devPrivates[PTR2INT(key)].ptr;
-#else
- rv = dixLookupPrivate(&(pWindow->devPrivates), key);
-#endif
- return rv;
-}
-
-/*****************************************************************************/
-int
-rdpPrivateInit(void)
-{
-#if XRDP_PRI == 3
- g_memset(&g_privateKeyRecGC, 0, sizeof(g_privateKeyRecGC));
- g_memset(&g_privateKeyRecWindow, 0, sizeof(g_privateKeyRecWindow));
- g_memset(&g_privateKeyRecPixmap, 0, sizeof(g_privateKeyRecPixmap));
-#endif
- return 0;
-}
diff --git a/xorg/server/module/rdpPri.h b/xorg/server/module/rdpPri.h
deleted file mode 100644
index f312c88c..00000000
--- a/xorg/server/module/rdpPri.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
-Copyright 2013-2014 Jay Sorg
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-to deal with privates changing in xorg versions
-
-*/
-
-#ifndef _XRDPPRI_H
-#define _XRDPPRI_H
-
-#include <xorg-server.h>
-#include <xorgVersion.h>
-#include <xf86.h>
-
-#include <screenint.h>
-#include <gc.h>
-
-typedef void* rdpDevPrivateKey;
-
-extern _X_EXPORT rdpDevPrivateKey
-rdpAllocateGCPrivate(ScreenPtr pScreen, int bytes);
-extern _X_EXPORT rdpDevPrivateKey
-rdpAllocatePixmapPrivate(ScreenPtr pScreen, int bytes);
-extern _X_EXPORT rdpDevPrivateKey
-rdpAllocateWindowPrivate(ScreenPtr pScreen, int bytes);
-extern _X_EXPORT void*
-rdpGetGCPrivate(GCPtr pGC, rdpDevPrivateKey key);
-extern _X_EXPORT void*
-rdpGetPixmapPrivate(PixmapPtr pPixmap, rdpDevPrivateKey key);
-extern _X_EXPORT void*
-rdpGetWindowPrivate(WindowPtr pWindow, rdpDevPrivateKey key);
-extern _X_EXPORT int
-rdpPrivateInit(void);
-
-#endif
diff --git a/xorg/server/module/rdpPushPixels.c b/xorg/server/module/rdpPushPixels.c
deleted file mode 100644
index 902b4251..00000000
--- a/xorg/server/module/rdpPushPixels.c
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
-Copyright 2005-2014 Jay Sorg
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-*/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-/* this should be before all X11 .h files */
-#include <xorg-server.h>
-#include <xorgVersion.h>
-
-/* all driver need this */
-#include <xf86.h>
-#include <xf86_OSproc.h>
-
-#include "rdp.h"
-#include "rdpDraw.h"
-#include "rdpPushPixels.h"
-
-#define LOG_LEVEL 1
-#define LLOGLN(_level, _args) \
- do { if (_level < LOG_LEVEL) { ErrorF _args ; ErrorF("\n"); } } while (0)
-
-/******************************************************************************/
-static void
-rdpPushPixelsOrg(GCPtr pGC, PixmapPtr pBitMap, DrawablePtr pDst,
- int w, int h, int x, int y)
-{
- GC_OP_VARS;
-
- GC_OP_PROLOGUE(pGC);
- pGC->ops->PushPixels(pGC, pBitMap, pDst, w, h, x, y);
- GC_OP_EPILOGUE(pGC);
-}
-
-/******************************************************************************/
-void
-rdpPushPixels(GCPtr pGC, PixmapPtr pBitMap, DrawablePtr pDst,
- int w, int h, int x, int y)
-{
- LLOGLN(0, ("rdpPushPixels:"));
- /* do original call */
- rdpPushPixelsOrg(pGC, pBitMap, pDst, w, h, x, y);
-}
diff --git a/xorg/server/module/rdpPushPixels.h b/xorg/server/module/rdpPushPixels.h
deleted file mode 100644
index afc336de..00000000
--- a/xorg/server/module/rdpPushPixels.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
-Copyright 2005-2014 Jay Sorg
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-*/
-
-#ifndef __RDPPUSHPIXELS_H
-#define __RDPPUSHPIXELS_H
-
-#include <xorg-server.h>
-#include <xorgVersion.h>
-#include <xf86.h>
-
-extern _X_EXPORT void
-rdpPushPixels(GCPtr pGC, PixmapPtr pBitMap, DrawablePtr pDst,
- int w, int h, int x, int y);
-
-#endif
diff --git a/xorg/server/module/rdpPutImage.c b/xorg/server/module/rdpPutImage.c
deleted file mode 100644
index 39bf284e..00000000
--- a/xorg/server/module/rdpPutImage.c
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
-Copyright 2005-2014 Jay Sorg
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-*/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-/* this should be before all X11 .h files */
-#include <xorg-server.h>
-#include <xorgVersion.h>
-
-/* all driver need this */
-#include <xf86.h>
-#include <xf86_OSproc.h>
-
-#include "rdp.h"
-#include "rdpDraw.h"
-#include "rdpClientCon.h"
-#include "rdpReg.h"
-#include "rdpPutImage.h"
-
-#define LOG_LEVEL 1
-#define LLOGLN(_level, _args) \
- do { if (_level < LOG_LEVEL) { ErrorF _args ; ErrorF("\n"); } } while (0)
-
-/******************************************************************************/
-static void
-rdpPutImageOrg(DrawablePtr pDst, GCPtr pGC, int depth, int x, int y,
- int w, int h, int leftPad, int format, char *pBits)
-{
- GC_OP_VARS;
-
- GC_OP_PROLOGUE(pGC);
- pGC->ops->PutImage(pDst, pGC, depth, x, y, w, h, leftPad,
- format, pBits);
- GC_OP_EPILOGUE(pGC);
-}
-
-/******************************************************************************/
-void
-rdpPutImage(DrawablePtr pDst, GCPtr pGC, int depth, int x, int y,
- int w, int h, int leftPad, int format, char *pBits)
-{
- rdpPtr dev;
- RegionRec clip_reg;
- RegionRec reg;
- int cd;
- BoxRec box;
-
- LLOGLN(10, ("rdpPutImage:"));
- dev = rdpGetDevFromScreen(pGC->pScreen);
- dev->counts.rdpPutImageCallCount++;
- box.x1 = x + pDst->x;
- box.y1 = y + pDst->y;
- box.x2 = box.x1 + w;
- box.y2 = box.y1 + h;
- rdpRegionInit(&reg, &box, 0);
- rdpRegionInit(&clip_reg, NullBox, 0);
- cd = rdpDrawGetClip(dev, &clip_reg, pDst, pGC);
- LLOGLN(10, ("rdpPutImage: cd %d", cd));
- if (cd == XRDP_CD_CLIP)
- {
- rdpRegionIntersect(&reg, &clip_reg, &reg);
- }
- /* do original call */
- rdpPutImageOrg(pDst, pGC, depth, x, y, w, h, leftPad, format, pBits);
- if (cd != XRDP_CD_NODRAW)
- {
- rdpClientConAddAllReg(dev, &reg, pDst);
- }
- rdpRegionUninit(&clip_reg);
- rdpRegionUninit(&reg);
-}
diff --git a/xorg/server/module/rdpPutImage.h b/xorg/server/module/rdpPutImage.h
deleted file mode 100644
index 2df9a801..00000000
--- a/xorg/server/module/rdpPutImage.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
-Copyright 2005-2014 Jay Sorg
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-*/
-
-#ifndef __RDPPUTIMAGE_H
-#define __RDPPUTIMAGE_H
-
-#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,
- int w, int h, int leftPad, int format, char* pBits);
-
-#endif
diff --git a/xorg/server/module/rdpRandR.c b/xorg/server/module/rdpRandR.c
deleted file mode 100644
index 049aafab..00000000
--- a/xorg/server/module/rdpRandR.c
+++ /dev/null
@@ -1,273 +0,0 @@
-/*
-Copyright 2011-2014 Jay Sorg
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-RandR draw calls
-
-*/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-/* this should be before all X11 .h files */
-#include <xorg-server.h>
-#include <xorgVersion.h>
-
-/* all driver need this */
-#include <xf86.h>
-#include <xf86_OSproc.h>
-
-#include <mipointer.h>
-#include <fb.h>
-#include <micmap.h>
-#include <mi.h>
-
-#include "rdp.h"
-#include "rdpDraw.h"
-#include "rdpReg.h"
-#include "rdpMisc.h"
-#include "rdpRandR.h"
-
-/******************************************************************************/
-#define LOG_LEVEL 1
-#define LLOGLN(_level, _args) \
- do { if (_level < LOG_LEVEL) { ErrorF _args ; ErrorF("\n"); } } while (0)
-
-/******************************************************************************/
-Bool
-rdpRRRegisterSize(ScreenPtr pScreen, int width, int height)
-{
- int mmwidth;
- int mmheight;
- RRScreenSizePtr pSize;
-
- LLOGLN(0, ("rdpRRRegisterSize: width %d height %d", width, height));
- mmwidth = PixelToMM(width);
- mmheight = PixelToMM(height);
- pSize = RRRegisterSize(pScreen, width, height, mmwidth, mmheight);
- /* Tell RandR what the current config is */
- RRSetCurrentConfig(pScreen, RR_Rotate_0, 0, pSize);
- return TRUE;
-}
-
-/******************************************************************************/
-Bool
-rdpRRSetConfig(ScreenPtr pScreen, Rotation rotateKind, int rate,
- RRScreenSizePtr pSize)
-{
- LLOGLN(0, ("rdpRRSetConfig:"));
- return TRUE;
-}
-
-/******************************************************************************/
-Bool
-rdpRRGetInfo(ScreenPtr pScreen, Rotation *pRotations)
-{
- int width;
- int height;
- rdpPtr dev;
-
- LLOGLN(0, ("rdpRRGetInfo:"));
- dev = rdpGetDevFromScreen(pScreen);
- *pRotations = RR_Rotate_0;
- width = dev->width;
- height = dev->height;
- rdpRRRegisterSize(pScreen, width, height);
- return TRUE;
-}
-
-/******************************************************************************/
-Bool
-rdpRRScreenSetSize(ScreenPtr pScreen, CARD16 width, CARD16 height,
- CARD32 mmWidth, CARD32 mmHeight)
-{
- WindowPtr root;
- PixmapPtr screenPixmap;
- BoxRec box;
- rdpPtr dev;
-
- LLOGLN(0, ("rdpRRScreenSetSize: width %d height %d mmWidth %d mmHeight %d",
- width, height, (int)mmWidth, (int)mmHeight));
- dev = rdpGetDevFromScreen(pScreen);
- root = rdpGetRootWindowPtr(pScreen);
- if ((width < 1) || (height < 1))
- {
- LLOGLN(10, (" error width %d height %d", width, height));
- return FALSE;
- }
- dev->width = width;
- dev->height = height;
- dev->paddedWidthInBytes = PixmapBytePad(dev->width, dev->depth);
- dev->sizeInBytes = dev->paddedWidthInBytes * dev->height;
- pScreen->width = width;
- pScreen->height = height;
- pScreen->mmWidth = mmWidth;
- pScreen->mmHeight = mmHeight;
- screenPixmap = pScreen->GetScreenPixmap(pScreen);
- g_free(dev->pfbMemory_alloc);
- dev->pfbMemory_alloc = (char *) g_malloc(dev->sizeInBytes + 16, 1);
- dev->pfbMemory = (char *) RDPALIGN(dev->pfbMemory_alloc, 16);
- if (screenPixmap != 0)
- {
- pScreen->ModifyPixmapHeader(screenPixmap, width, height,
- -1, -1,
- dev->paddedWidthInBytes,
- dev->pfbMemory);
- }
- box.x1 = 0;
- box.y1 = 0;
- box.x2 = width;
- box.y2 = height;
- rdpRegionInit(&root->winSize, &box, 1);
- rdpRegionInit(&root->borderSize, &box, 1);
- rdpRegionReset(&root->borderClip, &box);
- rdpRegionBreak(&root->clipList);
- root->drawable.width = width;
- root->drawable.height = height;
- ResizeChildrenWinSize(root, 0, 0, 0, 0);
- RRGetInfo(pScreen, 1);
- LLOGLN(0, (" screen resized to %dx%d", pScreen->width, pScreen->height));
- RRScreenSizeNotify(pScreen);
-#if XORG_VERSION_CURRENT < XORG_VERSION_NUMERIC(1, 13, 0, 0, 0)
- xf86EnableDisableFBAccess(pScreen->myNum, FALSE);
- xf86EnableDisableFBAccess(pScreen->myNum, TRUE);
-#else
- xf86EnableDisableFBAccess(xf86Screens[pScreen->myNum], FALSE);
- xf86EnableDisableFBAccess(xf86Screens[pScreen->myNum], TRUE);
-#endif
- return TRUE;
-}
-
-/******************************************************************************/
-Bool
-rdpRRCrtcSet(ScreenPtr pScreen, RRCrtcPtr crtc, RRModePtr mode,
- int x, int y, Rotation rotation, int numOutputs,
- RROutputPtr *outputs)
-{
- LLOGLN(0, ("rdpRRCrtcSet:"));
- return TRUE;
-}
-
-/******************************************************************************/
-Bool
-rdpRRCrtcSetGamma(ScreenPtr pScreen, RRCrtcPtr crtc)
-{
- LLOGLN(0, ("rdpRRCrtcSetGamma:"));
- return TRUE;
-}
-
-/******************************************************************************/
-Bool
-rdpRRCrtcGetGamma(ScreenPtr pScreen, RRCrtcPtr crtc)
-{
- LLOGLN(0, ("rdpRRCrtcGetGamma: %p %p %p %p", crtc, crtc->gammaRed,
- crtc->gammaBlue, crtc->gammaGreen));
- crtc->gammaSize = 1;
- if (crtc->gammaRed == NULL)
- {
- crtc->gammaRed = g_malloc(32, 1);
- }
- if (crtc->gammaBlue == NULL)
- {
- crtc->gammaBlue = g_malloc(32, 1);
- }
- if (crtc->gammaGreen == NULL)
- {
- crtc->gammaGreen = g_malloc(32, 1);
- }
- return TRUE;
-}
-
-/******************************************************************************/
-Bool
-rdpRROutputSetProperty(ScreenPtr pScreen, RROutputPtr output, Atom property,
- RRPropertyValuePtr value)
-{
- LLOGLN(0, ("rdpRROutputSetProperty:"));
- return TRUE;
-}
-
-/******************************************************************************/
-Bool
-rdpRROutputValidateMode(ScreenPtr pScreen, RROutputPtr output,
- RRModePtr mode)
-{
- LLOGLN(0, ("rdpRROutputValidateMode:"));
- return TRUE;
-}
-
-/******************************************************************************/
-void
-rdpRRModeDestroy(ScreenPtr pScreen, RRModePtr mode)
-{
- LLOGLN(0, ("rdpRRModeDestroy:"));
-}
-
-/******************************************************************************/
-Bool
-rdpRROutputGetProperty(ScreenPtr pScreen, RROutputPtr output, Atom property)
-{
- LLOGLN(0, ("rdpRROutputGetProperty:"));
- return TRUE;
-}
-
-/******************************************************************************/
-Bool
-rdpRRGetPanning(ScreenPtr pScreen, RRCrtcPtr crtc, BoxPtr totalArea,
- BoxPtr trackingArea, INT16 *border)
-{
- rdpPtr dev;
-
- LLOGLN(0, ("rdpRRGetPanning: %p", crtc));
- dev = rdpGetDevFromScreen(pScreen);
-
- if (totalArea != 0)
- {
- totalArea->x1 = 0;
- totalArea->y1 = 0;
- totalArea->x2 = dev->width;
- totalArea->y2 = dev->height;
- }
-
- if (trackingArea != 0)
- {
- trackingArea->x1 = 0;
- trackingArea->y1 = 0;
- trackingArea->x2 = dev->width;
- trackingArea->y2 = dev->height;
- }
-
- if (border != 0)
- {
- border[0] = 0;
- border[1] = 0;
- border[2] = 0;
- border[3] = 0;
- }
- return TRUE;
-}
-
-/******************************************************************************/
-Bool
-rdpRRSetPanning(ScreenPtr pScreen, RRCrtcPtr crtc, BoxPtr totalArea,
- BoxPtr trackingArea, INT16 *border)
-{
- LLOGLN(0, ("rdpRRSetPanning:"));
- return TRUE;
-}
diff --git a/xorg/server/module/rdpRandR.h b/xorg/server/module/rdpRandR.h
deleted file mode 100644
index ab31e345..00000000
--- a/xorg/server/module/rdpRandR.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
-Copyright 2011-2014 Jay Sorg
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-*/
-
-#ifndef _RDPRANDR_H
-#define _RDPRANDR_H
-
-#include <xorg-server.h>
-#include <xorgVersion.h>
-#include <xf86.h>
-
-extern _X_EXPORT Bool
-rdpRRRegisterSize(ScreenPtr pScreen, int width, int height);
-extern _X_EXPORT Bool
-rdpRRGetInfo(ScreenPtr pScreen, Rotation* pRotations);
-extern _X_EXPORT Bool
-rdpRRSetConfig(ScreenPtr pScreen, Rotation rotateKind, int rate,
- RRScreenSizePtr pSize);
-extern _X_EXPORT Bool
-rdpRRScreenSetSize(ScreenPtr pScreen, CARD16 width, CARD16 height,
- CARD32 mmWidth, CARD32 mmHeight);
-extern _X_EXPORT Bool
-rdpRRCrtcSet(ScreenPtr pScreen, RRCrtcPtr crtc, RRModePtr mode,
- int x, int y, Rotation rotation, int numOutputs,
- RROutputPtr* outputs);
-extern _X_EXPORT Bool
-rdpRRCrtcSetGamma(ScreenPtr pScreen, RRCrtcPtr crtc);
-extern _X_EXPORT Bool
-rdpRRCrtcGetGamma(ScreenPtr pScreen, RRCrtcPtr crtc);
-extern _X_EXPORT Bool
-rdpRROutputSetProperty(ScreenPtr pScreen, RROutputPtr output, Atom property,
- RRPropertyValuePtr value);
-extern _X_EXPORT Bool
-rdpRROutputValidateMode(ScreenPtr pScreen, RROutputPtr output,
- RRModePtr mode);
-extern _X_EXPORT void
-rdpRRModeDestroy(ScreenPtr pScreen, RRModePtr mode);
-extern _X_EXPORT Bool
-rdpRROutputGetProperty(ScreenPtr pScreen, RROutputPtr output, Atom property);
-extern _X_EXPORT Bool
-rdpRRGetPanning(ScreenPtr pScrn, RRCrtcPtr crtc, BoxPtr totalArea,
- BoxPtr trackingArea, INT16* border);
-extern _X_EXPORT Bool
-rdpRRSetPanning(ScreenPtr pScrn, RRCrtcPtr crtc, BoxPtr totalArea,
- BoxPtr trackingArea, INT16* border);
-
-#endif
diff --git a/xorg/server/module/rdpReg.c b/xorg/server/module/rdpReg.c
deleted file mode 100644
index 30b13438..00000000
--- a/xorg/server/module/rdpReg.c
+++ /dev/null
@@ -1,267 +0,0 @@
-/*
-Copyright 2013-2014 Jay Sorg
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-to deal with regions changing in xorg versions
-
-*/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-/* this should be before all X11 .h files */
-#include <xorg-server.h>
-#include <xorgVersion.h>
-
-/* all driver need this */
-#include <xf86.h>
-#include <xf86_OSproc.h>
-
-#include "rdpReg.h"
-
-/*
-miRegionCopy -> RegionCopy
-miTranslateRegion -> RegionTranslate
-miRegionNotEmpty -> RegionNotEmpty
-miIntersect -> RegionIntersect
-miRectIn -> RegionContainsRect
-miRegionInit -> RegionInit
-miRegionUninit -> RegionUninit
-miRectsToRegion -> RegionFromRects
-miRegionDestroy -> RegionDestroy
-miRegionCreate -> RegionCreate
-miUnion -> RegionUnion
-miRegionExtents -> RegionExtents
-miRegionReset -> RegionReset
-miRegionBreak -> RegionBreak
-*/
-
-#if XORG_VERSION_CURRENT < XORG_VERSION_NUMERIC(1, 9, 0, 0, 0)
-/* 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8 */
-#define XRDP_REG 1
-#else
-/* 1.9, 1.10, 1.11, 1.12 */
-#define XRDP_REG 2
-#endif
-
-/*****************************************************************************/
-Bool
-rdpRegionCopy(RegionPtr dst, RegionPtr src)
-{
-#if XRDP_REG == 1
- return miRegionCopy(dst, src);
-#else
- return RegionCopy(dst, src);
-#endif
-}
-
-/*****************************************************************************/
-void
-rdpRegionTranslate(RegionPtr pReg, int x, int y)
-{
-#if XRDP_REG == 1
- miTranslateRegion(pReg, x, y);
-#else
- RegionTranslate(pReg, x, y);
-#endif
-}
-
-/*****************************************************************************/
-Bool
-rdpRegionNotEmpty(RegionPtr pReg)
-{
-#if XRDP_REG == 1
- return miRegionNotEmpty(pReg);
-#else
- return RegionNotEmpty(pReg);
-#endif
-}
-
-/*****************************************************************************/
-Bool
-rdpRegionIntersect(RegionPtr newReg, RegionPtr reg1, RegionPtr reg2)
-{
-#if XRDP_REG == 1
- return miIntersect(newReg, reg1, reg2);
-#else
- return RegionIntersect(newReg, reg1, reg2);
-#endif
-}
-
-/*****************************************************************************/
-int
-rdpRegionContainsRect(RegionPtr region, BoxPtr prect)
-{
-#if XRDP_REG == 1
- return miRectIn(region, prect);
-#else
- return RegionContainsRect(region, prect);
-#endif
-}
-
-/*****************************************************************************/
-void
-rdpRegionInit(RegionPtr pReg, BoxPtr rect, int size)
-{
-#if XRDP_REG == 1
- miRegionInit(pReg, rect, size);
-#else
- RegionInit(pReg, rect, size);
-#endif
-}
-
-/*****************************************************************************/
-void
-rdpRegionUninit(RegionPtr pReg)
-{
-#if XRDP_REG == 1
- miRegionUninit(pReg);
-#else
- RegionUninit(pReg);
-#endif
-}
-
-/*****************************************************************************/
-RegionPtr
-rdpRegionFromRects(int nrects, xRectanglePtr prect, int ctype)
-{
-#if XRDP_REG == 1
- return miRectsToRegion(nrects, prect, ctype);
-#else
- return RegionFromRects(nrects, prect, ctype);
-#endif
-}
-
-/*****************************************************************************/
-void
-rdpRegionDestroy(RegionPtr pReg)
-{
-#if XRDP_REG == 1
- miRegionDestroy(pReg);
-#else
- RegionDestroy(pReg);
-#endif
-}
-
-/*****************************************************************************/
-RegionPtr
-rdpRegionCreate(BoxPtr rect, int size)
-{
-#if XRDP_REG == 1
- return miRegionCreate(rect, size);
-#else
- return RegionCreate(rect, size);
-#endif
-}
-
-/*****************************************************************************/
-Bool
-rdpRegionUnion(RegionPtr newReg, RegionPtr reg1, RegionPtr reg2)
-{
-#if XRDP_REG == 1
- return miUnion(newReg, reg1, reg2);
-#else
- return RegionUnion(newReg, reg1, reg2);
-#endif
-}
-
-/*****************************************************************************/
-Bool
-rdpRegionSubtract(RegionPtr newReg, RegionPtr reg1, RegionPtr reg2)
-{
-#if XRDP_REG == 1
- return miSubtract(newReg, reg1, reg2);
-#else
- return RegionSubtract(newReg, reg1, reg2);
-#endif
-}
-
-/*****************************************************************************/
-Bool
-rdpRegionInverse(RegionPtr newReg, RegionPtr reg1, BoxPtr invRect)
-{
-#if XRDP_REG == 1
- return miInverse(newReg, reg1, invRect);
-#else
- return RegionInverse(newReg, reg1, invRect);
-#endif
-}
-
-/*****************************************************************************/
-BoxPtr
-rdpRegionExtents(RegionPtr pReg)
-{
-#if XRDP_REG == 1
- return miRegionExtents(pReg);
-#else
- return RegionExtents(pReg);
-#endif
-}
-
-/*****************************************************************************/
-void
-rdpRegionReset(RegionPtr pReg, BoxPtr pBox)
-{
-#if XRDP_REG == 1
- miRegionReset(pReg, pBox);
-#else
- RegionReset(pReg, pBox);
-#endif
-}
-
-/*****************************************************************************/
-Bool
-rdpRegionBreak(RegionPtr pReg)
-{
-#if XRDP_REG == 1
- return miRegionBreak(pReg);
-#else
- return RegionBreak(pReg);
-#endif
-}
-
-/*****************************************************************************/
-void
-rdpRegionUnionRect(RegionPtr pReg, BoxPtr prect)
-{
- RegionRec reg;
-
- rdpRegionInit(&reg, prect, 0);
- rdpRegionUnion(pReg, pReg, &reg);
- rdpRegionUninit(&reg);
-}
-
-/*****************************************************************************/
-int
-rdpRegionPixelCount(RegionPtr pReg)
-{
- int index;
- int count;
- int rv;
- BoxRec box;
-
- rv = 0;
- count = REGION_NUM_RECTS(pReg);
- for (index = 0; index < count; index++)
- {
- box = REGION_RECTS(pReg)[index];
- rv += (box.x2 - box.x1) * (box.y2 - box.y1);
- }
- return rv;
-}
diff --git a/xorg/server/module/rdpReg.h b/xorg/server/module/rdpReg.h
deleted file mode 100644
index 053cf6dd..00000000
--- a/xorg/server/module/rdpReg.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
-Copyright 2013-2014 Jay Sorg
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-to deal with regions changing in xorg versions
-
-*/
-
-#ifndef __RDPREG_H
-#define __RDPREG_H
-
-#include <xorg-server.h>
-#include <xorgVersion.h>
-#include <xf86.h>
-
-extern _X_EXPORT Bool
-rdpRegionCopy(RegionPtr dst, RegionPtr src);
-extern _X_EXPORT void
-rdpRegionTranslate(RegionPtr pReg, int x, int y);
-extern _X_EXPORT Bool
-rdpRegionNotEmpty(RegionPtr pReg);
-extern _X_EXPORT Bool
-rdpRegionIntersect(RegionPtr newReg, RegionPtr reg1, RegionPtr reg2);
-extern _X_EXPORT int
-rdpRegionContainsRect(RegionPtr region, BoxPtr prect);
-extern _X_EXPORT void
-rdpRegionInit(RegionPtr pReg, BoxPtr rect, int size);
-extern _X_EXPORT void
-rdpRegionUninit(RegionPtr pReg);
-extern _X_EXPORT RegionPtr
-rdpRegionFromRects(int nrects, xRectanglePtr prect, int ctype);
-extern _X_EXPORT void
-rdpRegionDestroy(RegionPtr pReg);
-extern _X_EXPORT RegionPtr
-rdpRegionCreate(BoxPtr rect, int size);
-extern _X_EXPORT Bool
-rdpRegionUnion(RegionPtr newReg, RegionPtr reg1, RegionPtr reg2);
-extern _X_EXPORT Bool
-rdpRegionSubtract(RegionPtr newReg, RegionPtr reg1, RegionPtr reg2);
-extern _X_EXPORT Bool
-rdpRegionInverse(RegionPtr newReg, RegionPtr reg1, BoxPtr invRect);
-extern _X_EXPORT BoxPtr
-rdpRegionExtents(RegionPtr pReg);
-extern _X_EXPORT void
-rdpRegionReset(RegionPtr pReg, BoxPtr pBox);
-extern _X_EXPORT Bool
-rdpRegionBreak(RegionPtr pReg);
-extern _X_EXPORT void
-rdpRegionUnionRect(RegionPtr pReg, BoxPtr prect);
-extern _X_EXPORT int
-rdpRegionPixelCount(RegionPtr pReg);
-
-#endif
diff --git a/xorg/server/module/rdpSetSpans.c b/xorg/server/module/rdpSetSpans.c
deleted file mode 100644
index 3cb30321..00000000
--- a/xorg/server/module/rdpSetSpans.c
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
-Copyright 2005-2014 Jay Sorg
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-*/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-/* this should be before all X11 .h files */
-#include <xorg-server.h>
-#include <xorgVersion.h>
-
-/* all driver need this */
-#include <xf86.h>
-#include <xf86_OSproc.h>
-
-#include "rdp.h"
-#include "rdpDraw.h"
-#include "rdpSetSpans.h"
-
-#define LDEBUG 0
-
-#define LOG_LEVEL 1
-#define LLOGLN(_level, _args) \
- do { if (_level < LOG_LEVEL) { ErrorF _args ; ErrorF("\n"); } } while (0)
-
-/******************************************************************************/
-void
-rdpSetSpansOrg(DrawablePtr pDrawable, GCPtr pGC, char *psrc,
- DDXPointPtr ppt, int *pwidth, int nspans, int fSorted)
-{
- GC_OP_VARS;
-
- GC_OP_PROLOGUE(pGC);
- pGC->ops->SetSpans(pDrawable, pGC, psrc, ppt, pwidth, nspans, fSorted);
- GC_OP_EPILOGUE(pGC);
-}
-
-/******************************************************************************/
-void
-rdpSetSpans(DrawablePtr pDrawable, GCPtr pGC, char *psrc,
- DDXPointPtr ppt, int *pwidth, int nspans, int fSorted)
-{
- LLOGLN(0, ("rdpSetSpans:"));
- /* do original call */
- rdpSetSpansOrg(pDrawable, pGC, psrc, ppt, pwidth, nspans, fSorted);
-}
diff --git a/xorg/server/module/rdpSetSpans.h b/xorg/server/module/rdpSetSpans.h
deleted file mode 100644
index 3b277f92..00000000
--- a/xorg/server/module/rdpSetSpans.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
-Copyright 2005-2014 Jay Sorg
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-*/
-
-#ifndef __RDPSETSPANS_H
-#define __RDPSETSPANS_H
-
-#include <xorg-server.h>
-#include <xorgVersion.h>
-#include <xf86.h>
-
-extern _X_EXPORT void
-rdpSetSpans(DrawablePtr pDrawable, GCPtr pGC, char* psrc,
- DDXPointPtr ppt, int* pwidth, int nspans, int fSorted);
-
-#endif
diff --git a/xorg/server/module/rdpSimd.c b/xorg/server/module/rdpSimd.c
deleted file mode 100644
index be4bc736..00000000
--- a/xorg/server/module/rdpSimd.c
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
-Copyright 2014 Jay Sorg
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-SIMD function asign
-
-*/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-/* this should be before all X11 .h files */
-#include <xorg-server.h>
-#include <xorgVersion.h>
-
-/* all driver need this */
-#include <xf86.h>
-#include <xf86_OSproc.h>
-
-#include "rdp.h"
-#include "rdpXv.h"
-#include "rdpCapture.h"
-#include "rdpSimd.h"
-
-/* use simd, run time */
-int g_simd_use_accel = 1;
-
-/* use simd, compile time, if zero, g_simd_use_accel does not matter */
-#if !defined(SIMD_USE_ACCEL)
-#define SIMD_USE_ACCEL 0
-#endif
-
-#if SIMD_USE_ACCEL
-#if defined(__x86_64__) || defined(__AMD64__) || defined (_M_AMD64)
-#include "amd64/funcs_amd64.h"
-#elif defined(__x86__) || defined(_M_IX86) || defined(__i386__)
-#include "x86/funcs_x86.h"
-#endif
-#endif
-
-#define LOG_LEVEL 1
-#define LLOGLN(_level, _args) \
- do { if (_level < LOG_LEVEL) { ErrorF _args ; ErrorF("\n"); } } while (0)
-
-/*****************************************************************************/
-Bool
-rdpSimdInit(ScreenPtr pScreen, ScrnInfoPtr pScrn)
-{
- rdpPtr dev;
-
- dev = XRDPPTR(pScrn);
- /* assign functions */
- LLOGLN(0, ("rdpSimdInit: assigning yuv functions"));
- dev->yv12_to_rgb32 = YV12_to_RGB32;
- dev->i420_to_rgb32 = I420_to_RGB32;
- dev->yuy2_to_rgb32 = YUY2_to_RGB32;
- dev->uyvy_to_rgb32 = UYVY_to_RGB32;
- dev->a8r8g8b8_to_a8b8g8r8_box = a8r8g8b8_to_a8b8g8r8_box;
-#if SIMD_USE_ACCEL
- if (g_simd_use_accel)
- {
-#if defined(__x86_64__) || defined(__AMD64__) || defined (_M_AMD64)
- int ax, bx, cx, dx;
- cpuid_amd64(1, 0, &ax, &bx, &cx, &dx);
- LLOGLN(0, ("rdpSimdInit: cpuid ax 1 cx 0 return ax 0x%8.8x bx "
- "0x%8.8x cx 0x%8.8x dx 0x%8.8x", ax, bx, cx, dx));
- if (dx & (1 << 26)) /* SSE 2 */
- {
- dev->yv12_to_rgb32 = yv12_to_rgb32_amd64_sse2;
- dev->i420_to_rgb32 = i420_to_rgb32_amd64_sse2;
- dev->yuy2_to_rgb32 = yuy2_to_rgb32_amd64_sse2;
- dev->uyvy_to_rgb32 = uyvy_to_rgb32_amd64_sse2;
- LLOGLN(0, ("rdpSimdInit: sse2 amd64 yuv functions assigned"));
- }
-#elif defined(__x86__) || defined(_M_IX86) || defined(__i386__)
- int ax, bx, cx, dx;
- cpuid_x86(1, 0, &ax, &bx, &cx, &dx);
- LLOGLN(0, ("rdpSimdInit: cpuid ax 1 cx 0 return ax 0x%8.8x bx "
- "0x%8.8x cx 0x%8.8x dx 0x%8.8x", ax, bx, cx, dx));
- if (dx & (1 << 26)) /* SSE 2 */
- {
- dev->yv12_to_rgb32 = yv12_to_rgb32_x86_sse2;
- dev->i420_to_rgb32 = i420_to_rgb32_x86_sse2;
- dev->yuy2_to_rgb32 = yuy2_to_rgb32_x86_sse2;
- dev->uyvy_to_rgb32 = uyvy_to_rgb32_x86_sse2;
- dev->a8r8g8b8_to_a8b8g8r8_box = a8r8g8b8_to_a8b8g8r8_box_x86_sse2;
- LLOGLN(0, ("rdpSimdInit: sse2 x86 yuv functions assigned"));
- }
-#endif
- }
-#endif
- return 1;
-}
-
diff --git a/xorg/server/module/rdpSimd.h b/xorg/server/module/rdpSimd.h
deleted file mode 100644
index f73e110f..00000000
--- a/xorg/server/module/rdpSimd.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
-Copyright 2014 Jay Sorg
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-SIMD function asign
-
-*/
-
-#ifndef __RDPSIMD_H
-#define __RDPSIMD_H
-
-#include <xorg-server.h>
-#include <xorgVersion.h>
-#include <xf86.h>
-
-extern _X_EXPORT Bool
-rdpSimdInit(ScreenPtr pScreen, ScrnInfoPtr pScrn);
-
-#endif
diff --git a/xorg/server/module/rdpTrapezoids.c b/xorg/server/module/rdpTrapezoids.c
deleted file mode 100644
index 41304a71..00000000
--- a/xorg/server/module/rdpTrapezoids.c
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
-Copyright 2014 Jay Sorg
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-*/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-/* this should be before all X11 .h files */
-#include <xorg-server.h>
-#include <xorgVersion.h>
-
-/* all driver need this */
-#include <xf86.h>
-#include <xf86_OSproc.h>
-
-#include <mipict.h>
-#include <picture.h>
-
-#include "rdp.h"
-#include "rdpDraw.h"
-#include "rdpClientCon.h"
-#include "rdpReg.h"
-#include "rdpTrapezoids.h"
-
-/******************************************************************************/
-#define LOG_LEVEL 1
-#define LLOGLN(_level, _args) \
- do { if (_level < LOG_LEVEL) { ErrorF _args ; ErrorF("\n"); } } while (0)
-
-/******************************************************************************/
-static void
-rdpTrapezoidsOrg(PictureScreenPtr ps, rdpPtr dev,
- CARD8 op, PicturePtr pSrc, PicturePtr pDst,
- PictFormatPtr maskFormat, INT16 xSrc, INT16 ySrc,
- int ntrap, xTrapezoid *traps)
-{
- ps->Trapezoids = dev->Trapezoids;
- ps->Trapezoids(op, pSrc, pDst, maskFormat, xSrc, ySrc, ntrap, traps);
- ps->Trapezoids = rdpTrapezoids;
-}
-
-/******************************************************************************/
-void
-rdpTrapezoids(CARD8 op, PicturePtr pSrc, PicturePtr pDst,
- PictFormatPtr maskFormat, INT16 xSrc, INT16 ySrc,
- int ntrap, xTrapezoid *traps)
-{
- ScreenPtr pScreen;
- rdpPtr dev;
- PictureScreenPtr ps;
- BoxRec box;
- RegionRec reg;
-
- LLOGLN(10, ("rdpTrapezoids:"));
- pScreen = pDst->pDrawable->pScreen;
- dev = rdpGetDevFromScreen(pScreen);
- dev->counts.rdpTrapezoidsCallCount++;
- miTrapezoidBounds(ntrap, traps, &box);
- box.x1 += pDst->pDrawable->x;
- box.y1 += pDst->pDrawable->y;
- box.x2 += pDst->pDrawable->x;
- box.y2 += pDst->pDrawable->y;
- rdpRegionInit(&reg, &box, 0);
- ps = GetPictureScreen(pScreen);
- /* do original call */
- rdpTrapezoidsOrg(ps, dev, op, pSrc, pDst, maskFormat, xSrc, ySrc,
- ntrap, traps);
- rdpClientConAddAllReg(dev, &reg, pDst->pDrawable);
- rdpRegionUninit(&reg);
-}
diff --git a/xorg/server/module/rdpTrapezoids.h b/xorg/server/module/rdpTrapezoids.h
deleted file mode 100644
index a98cacd3..00000000
--- a/xorg/server/module/rdpTrapezoids.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
-Copyright 2014 Jay Sorg
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-*/
-
-#ifndef _RDPTRAPEZOIDS_H
-#define _RDPTRAPEZOIDS_H
-
-#include <xorg-server.h>
-#include <xorgVersion.h>
-#include <xf86.h>
-
-extern _X_EXPORT void
-rdpTrapezoids(CARD8 op, PicturePtr pSrc, PicturePtr pDst,
- PictFormatPtr maskFormat, INT16 xSrc, INT16 ySrc,
- int ntrap, xTrapezoid *traps);
-
-#endif
diff --git a/xorg/server/module/rdpXv.c b/xorg/server/module/rdpXv.c
deleted file mode 100644
index 15375720..00000000
--- a/xorg/server/module/rdpXv.c
+++ /dev/null
@@ -1,690 +0,0 @@
-/*
-Copyright 2014 Jay Sorg
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-XVideo
-
-*/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-/* this should be before all X11 .h files */
-#include <xorg-server.h>
-#include <xorgVersion.h>
-
-/* all driver need this */
-#include <xf86.h>
-#include <xf86_OSproc.h>
-
-#include <xf86xv.h>
-#include <X11/extensions/Xv.h>
-#include <fourcc.h>
-
-#include <fb.h>
-
-#include "rdp.h"
-#include "rdpMisc.h"
-#include "rdpReg.h"
-#include "rdpClientCon.h"
-#include "rdpXv.h"
-
-#define LOG_LEVEL 1
-#define LLOGLN(_level, _args) \
- do { if (_level < LOG_LEVEL) { ErrorF _args ; ErrorF("\n"); } } while (0)
-
-#define T_NUM_ENCODINGS 1
-static XF86VideoEncodingRec g_xrdpVidEncodings[T_NUM_ENCODINGS] =
-{ { 0, "XV_IMAGE", 2046, 2046, { 1, 1 } } };
-
-#define T_NUM_FORMATS 1
-static XF86VideoFormatRec g_xrdpVidFormats[T_NUM_FORMATS] =
-{ { 0, TrueColor } };
-
-/* YV12
- I420
- 12 bpp planar
- YUV 4:2:0 8 bit Y plane followed by 8 bit 2x2 subsampled
- U and V planes. */
-
-/* YUY2
- UYVY
- 16 bpp packed
- YUV 4:2:2 Y sample at every pixel, U and V sampled at
- every second pixel */
-
-/* XVIMAGE_YV12 FOURCC_YV12 0x32315659 */
-/* XVIMAGE_I420 FOURCC_I420 0x30323449 */
-/* XVIMAGE_YUY2 FOURCC_YUY2 0x32595559 */
-/* XVIMAGE_UYVY FOURCC_UYVY 0x59565955 */
-
-static XF86ImageRec g_xrdpVidImages[] =
-{ XVIMAGE_YV12, XVIMAGE_I420, XVIMAGE_YUY2, XVIMAGE_UYVY };
-
-#define T_MAX_PORTS 1
-
-/*****************************************************************************/
-static int
-xrdpVidPutVideo(ScrnInfoPtr pScrn, short vid_x, short vid_y,
- short drw_x, short drw_y, short vid_w, short vid_h,
- short drw_w, short drw_h, RegionPtr clipBoxes,
- pointer data, DrawablePtr pDraw)
-{
- LLOGLN(0, ("xrdpVidPutVideo:"));
- return Success;
-}
-
-/*****************************************************************************/
-static int
-xrdpVidPutStill(ScrnInfoPtr pScrn, short vid_x, short vid_y,
- short drw_x, short drw_y, short vid_w, short vid_h,
- short drw_w, short drw_h, RegionPtr clipBoxes,
- pointer data, DrawablePtr pDraw)
-{
- LLOGLN(0, ("xrdpVidPutStill:"));
- return Success;
-}
-
-/*****************************************************************************/
-static int
-xrdpVidGetVideo(ScrnInfoPtr pScrn, short vid_x, short vid_y,
- short drw_x, short drw_y, short vid_w, short vid_h,
- short drw_w, short drw_h, RegionPtr clipBoxes,
- pointer data, DrawablePtr pDraw)
-{
- LLOGLN(0, ("xrdpVidGetVideo:"));
- return Success;
-}
-
-/*****************************************************************************/
-static int
-xrdpVidGetStill(ScrnInfoPtr pScrn, short vid_x, short vid_y,
- short drw_x, short drw_y, short vid_w, short vid_h,
- short drw_w, short drw_h, RegionPtr clipBoxes,
- pointer data, DrawablePtr pDraw)
-{
- LLOGLN(0, ("FBDevTIVidGetStill:"));
- return Success;
-}
-
-/*****************************************************************************/
-static void
-xrdpVidStopVideo(ScrnInfoPtr pScrn, pointer data, Bool Cleanup)
-{
- LLOGLN(0, ("xrdpVidStopVideo:"));
-}
-
-/*****************************************************************************/
-static int
-xrdpVidSetPortAttribute(ScrnInfoPtr pScrn, Atom attribute,
- INT32 value, pointer data)
-{
- LLOGLN(0, ("xrdpVidSetPortAttribute:"));
- return Success;
-}
-
-/*****************************************************************************/
-static int
-xrdpVidGetPortAttribute(ScrnInfoPtr pScrn, Atom attribute,
- INT32 *value, pointer data)
-{
- LLOGLN(0, ("xrdpVidGetPortAttribute:"));
- return Success;
-}
-
-/*****************************************************************************/
-static void
-xrdpVidQueryBestSize(ScrnInfoPtr pScrn, Bool motion,
- short vid_w, short vid_h, short drw_w, short drw_h,
- unsigned int *p_w, unsigned int *p_h, pointer data)
-{
- LLOGLN(0, ("xrdpVidQueryBestSize:"));
-}
-
-/*****************************************************************************/
-int
-YV12_to_RGB32(unsigned char *yuvs, int width, int height, int *rgbs)
-{
- int size_total;
- int y;
- int u;
- int v;
- int c;
- int d;
- int e;
- int r;
- int g;
- int b;
- int t;
- int i;
- int j;
-
- size_total = width * height;
- for (j = 0; j < height; j++)
- {
- for (i = 0; i < width; i++)
- {
- y = yuvs[j * width + i];
- u = yuvs[(j / 2) * (width / 2) + (i / 2) + size_total];
- v = yuvs[(j / 2) * (width / 2) + (i / 2) + size_total + (size_total / 4)];
- c = y - 16;
- d = u - 128;
- e = v - 128;
- t = (298 * c + 409 * e + 128) >> 8;
- b = RDPCLAMP(t, 0, 255);
- t = (298 * c - 100 * d - 208 * e + 128) >> 8;
- g = RDPCLAMP(t, 0, 255);
- t = (298 * c + 516 * d + 128) >> 8;
- r = RDPCLAMP(t, 0, 255);
- rgbs[j * width + i] = (r << 16) | (g << 8) | b;
- }
- }
- return 0;
-}
-
-/*****************************************************************************/
-int
-I420_to_RGB32(unsigned char *yuvs, int width, int height, int *rgbs)
-{
- int size_total;
- int y;
- int u;
- int v;
- int c;
- int d;
- int e;
- int r;
- int g;
- int b;
- int t;
- int i;
- int j;
-
- size_total = width * height;
- for (j = 0; j < height; j++)
- {
- for (i = 0; i < width; i++)
- {
- y = yuvs[j * width + i];
- v = yuvs[(j / 2) * (width / 2) + (i / 2) + size_total];
- u = yuvs[(j / 2) * (width / 2) + (i / 2) + size_total + (size_total / 4)];
- c = y - 16;
- d = u - 128;
- e = v - 128;
- t = (298 * c + 409 * e + 128) >> 8;
- b = RDPCLAMP(t, 0, 255);
- t = (298 * c - 100 * d - 208 * e + 128) >> 8;
- g = RDPCLAMP(t, 0, 255);
- t = (298 * c + 516 * d + 128) >> 8;
- r = RDPCLAMP(t, 0, 255);
- rgbs[j * width + i] = (r << 16) | (g << 8) | b;
- }
- }
- return 0;
-}
-
-/*****************************************************************************/
-int
-YUY2_to_RGB32(unsigned char *yuvs, int width, int height, int *rgbs)
-{
- int y1;
- int y2;
- int u;
- int v;
- int c;
- int d;
- int e;
- int r;
- int g;
- int b;
- int t;
- int i;
- int j;
-
- for (j = 0; j < height; j++)
- {
- for (i = 0; i < width; i++)
- {
- y1 = *(yuvs++);
- v = *(yuvs++);
- y2 = *(yuvs++);
- u = *(yuvs++);
-
- c = y1 - 16;
- d = u - 128;
- e = v - 128;
- t = (298 * c + 409 * e + 128) >> 8;
- b = RDPCLAMP(t, 0, 255);
- t = (298 * c - 100 * d - 208 * e + 128) >> 8;
- g = RDPCLAMP(t, 0, 255);
- t = (298 * c + 516 * d + 128) >> 8;
- r = RDPCLAMP(t, 0, 255);
- rgbs[j * width + i] = (r << 16) | (g << 8) | b;
-
- i++;
- c = y2 - 16;
- d = u - 128;
- e = v - 128;
- t = (298 * c + 409 * e + 128) >> 8;
- b = RDPCLAMP(t, 0, 255);
- t = (298 * c - 100 * d - 208 * e + 128) >> 8;
- g = RDPCLAMP(t, 0, 255);
- t = (298 * c + 516 * d + 128) >> 8;
- r = RDPCLAMP(t, 0, 255);
- rgbs[j * width + i] = (r << 16) | (g << 8) | b;
- }
- }
- return 0;
-}
-
-/*****************************************************************************/
-int
-UYVY_to_RGB32(unsigned char *yuvs, int width, int height, int *rgbs)
-{
- int y1;
- int y2;
- int u;
- int v;
- int c;
- int d;
- int e;
- int r;
- int g;
- int b;
- int t;
- int i;
- int j;
-
- for (j = 0; j < height; j++)
- {
- for (i = 0; i < width; i++)
- {
- v = *(yuvs++);
- y1 = *(yuvs++);
- u = *(yuvs++);
- y2 = *(yuvs++);
-
- c = y1 - 16;
- d = u - 128;
- e = v - 128;
- t = (298 * c + 409 * e + 128) >> 8;
- b = RDPCLAMP(t, 0, 255);
- t = (298 * c - 100 * d - 208 * e + 128) >> 8;
- g = RDPCLAMP(t, 0, 255);
- t = (298 * c + 516 * d + 128) >> 8;
- r = RDPCLAMP(t, 0, 255);
- rgbs[j * width + i] = (r << 16) | (g << 8) | b;
-
- i++;
- c = y2 - 16;
- d = u - 128;
- e = v - 128;
- t = (298 * c + 409 * e + 128) >> 8;
- b = RDPCLAMP(t, 0, 255);
- t = (298 * c - 100 * d - 208 * e + 128) >> 8;
- g = RDPCLAMP(t, 0, 255);
- t = (298 * c + 516 * d + 128) >> 8;
- r = RDPCLAMP(t, 0, 255);
- rgbs[j * width + i] = (r << 16) | (g << 8) | b;
- }
- }
- return 0;
-}
-
-#if 0
-/*****************************************************************************/
-static int
-stretch_RGB32_RGB32(int *src, int src_width, int src_height,
- int src_x, int src_y, int src_w, int src_h,
- int *dst, int dst_w, int dst_h)
-{
- int mwidth;
- int mheight;
- int index;
-
- mwidth = RDPMIN(src_width, dst_w);
- mheight = RDPMIN(src_height, dst_h);
- for (index = 0; index < mheight; index++)
- {
- g_memcpy(dst, src, mwidth * 4);
- src += src_width;
- dst += dst_w;
- }
- return 0;
-}
-#endif
-
-/*****************************************************************************/
-static int
-stretch_RGB32_RGB32(int *src, int src_width, int src_height,
- int src_x, int src_y, int src_w, int src_h,
- int *dst, int dst_w, int dst_h)
-{
- int index;
- int jndex;
- int lndex;
- int last_lndex;
- int oh;
- int ih;
- int ov;
- int iv;
- int pix;
- int *src32;
- int *dst32;
-
- LLOGLN(10, ("stretch_RGB32_RGB32: oh 0x%8.8x ov 0x%8.8x", oh, ov));
- oh = (src_w << 16) / dst_w;
- ov = (src_h << 16) / dst_h;
- iv = ov;
- lndex = src_y;
- last_lndex = -1;
- for (index = 0; index < dst_h; index++)
- {
- if (lndex == last_lndex)
- {
- /* repeat line */
- dst32 = dst + index * dst_w;
- src32 = dst32 - dst_w;
- g_memcpy(dst32, src32, dst_w * 4);
- }
- else
- {
- ih = oh;
- src32 = src + lndex * src_width + src_x;
- pix = *src32;
- dst32 = dst + index * dst_w;
- for (jndex = 0; jndex < dst_w; jndex++)
- {
- *dst32 = pix;
- while (ih > (1 << 16) - 1)
- {
- ih -= 1 << 16;
- src32++;
- }
- pix = *src32;
- ih += oh;
- dst32++;
- }
- }
- last_lndex = lndex;
- while (iv > (1 << 16) - 1)
- {
- iv -= 1 << 16;
- lndex++;
- }
- iv += ov;
-
- }
- LLOGLN(10, ("stretch_RGB32_RGB32: out"));
- return 0;
-}
-
-/******************************************************************************/
-/* returns error */
-static CARD32
-rdpDeferredXvCleanup(OsTimerPtr timer, CARD32 now, pointer arg)
-{
- rdpPtr dev;
-
- LLOGLN(0, ("rdpDeferredXvCleanup:"));
- dev = (rdpPtr) arg;
- dev->xv_timer_schedualed = 0;
- dev->xv_data_bytes = 0;
- g_free(dev->xv_data);
- dev->xv_data = 0;
- return 0;
-}
-
-/*****************************************************************************/
-/* see hw/xfree86/common/xf86xv.c for info */
-static int
-xrdpVidPutImage(ScrnInfoPtr pScrn,
- short src_x, short src_y, short drw_x, short drw_y,
- short src_w, short src_h, short drw_w, short drw_h,
- int format, unsigned char* buf,
- short width, short height,
- Bool sync, RegionPtr clipBoxes,
- pointer data, DrawablePtr dst)
-{
- rdpPtr dev;
- int *rgborg32;
- int *rgbend32;
- int index;
- int error;
- GCPtr tempGC;
-
- LLOGLN(10, ("xrdpVidPutImage: format 0x%8.8x", format));
- LLOGLN(10, ("xrdpVidPutImage: src_x %d srcy_y %d", src_x, src_y));
- dev = XRDPPTR(pScrn);
-
- if (dev->xv_timer_schedualed)
- {
- TimerCancel(dev->xv_timer);
- dev->xv_timer = TimerSet(dev->xv_timer, 0, 2000,
- rdpDeferredXvCleanup, dev);
- }
- else
- {
- dev->xv_timer_schedualed = 1;
- dev->xv_timer = TimerSet(dev->xv_timer, 0, 2000,
- rdpDeferredXvCleanup, dev);
- }
-
- index = width * height * 4 + drw_w * drw_h * 4 + 64;
- if (index > dev->xv_data_bytes)
- {
- g_free(dev->xv_data);
- dev->xv_data = g_malloc(index, 0);
- if (dev->xv_data == NULL)
- {
- LLOGLN(0, ("xrdpVidPutImage: memory alloc error"));
- dev->xv_data_bytes = 0;
- return Success;
- }
- dev->xv_data_bytes = index;
- }
- rgborg32 = (int *) RDPALIGN(dev->xv_data, 16);
- rgbend32 = rgborg32 + width * height;
- rgbend32 = (int *) RDPALIGN(rgbend32, 16);
- error = 0;
-
- switch (format)
- {
- case FOURCC_YV12:
- LLOGLN(10, ("xrdpVidPutImage: FOURCC_YV12"));
- error = dev->yv12_to_rgb32(buf, width, height, rgborg32);
- break;
- case FOURCC_I420:
- LLOGLN(10, ("xrdpVidPutImage: FOURCC_I420"));
- error = dev->i420_to_rgb32(buf, width, height, rgborg32);
- break;
- case FOURCC_YUY2:
- LLOGLN(10, ("xrdpVidPutImage: FOURCC_YUY2"));
- error = dev->yuy2_to_rgb32(buf, width, height, rgborg32);
- break;
- case FOURCC_UYVY:
- LLOGLN(10, ("xrdpVidPutImage: FOURCC_UYVY"));
- error = dev->uyvy_to_rgb32(buf, width, height, rgborg32);
- break;
- default:
- LLOGLN(0, ("xrdpVidPutImage: unknown format 0x%8.8x", format));
- return Success;
- }
- if (error != 0)
- {
- return Success;
- }
- if ((width == drw_w) && (height == drw_h))
- {
- LLOGLN(10, ("xrdpVidPutImage: strech skip"));
- rgbend32 = rgborg32;
- }
- else
- {
- error = stretch_RGB32_RGB32(rgborg32, width, height,
- src_x, src_y, src_w, src_h,
- rgbend32, drw_w, drw_h);
- if (error != 0)
- {
- return Success;
- }
-
- }
-
- tempGC = GetScratchGC(dst->depth, pScrn->pScreen);
- if (tempGC != NULL)
- {
- ValidateGC(dst, tempGC);
- (*tempGC->ops->PutImage)(dst, tempGC, 24,
- drw_x - dst->x, drw_y - dst->y,
- drw_w, drw_h, 0, ZPixmap,
- (char *) rgbend32);
- FreeScratchGC(tempGC);
- }
-
- return Success;
-}
-
-/*****************************************************************************/
-static int
-xrdpVidQueryImageAttributes(ScrnInfoPtr pScrn, int id,
- unsigned short *w, unsigned short *h,
- int *pitches, int *offsets)
-{
- int size, tmp;
-
- LLOGLN(10, ("xrdpVidQueryImageAttributes:"));
- /* this is same code as all drivers currently have */
- if (*w > 2046)
- {
- *w = 2046;
- }
- if (*h > 2046)
- {
- *h = 2046;
- }
- /* make w multiple of 4 so that resizing works properly */
- *w = (*w + 3) & ~3;
- if (offsets != NULL)
- {
- offsets[0] = 0;
- }
- switch (id)
- {
- case FOURCC_YV12:
- case FOURCC_I420:
- /* make h be even */
- *h = (*h + 1) & ~1;
- /* make w be multiple of 4 (ie. pad it) */
- size = (*w + 3) & ~3;
- /* width of a Y row => width of image */
- if (pitches != NULL)
- {
- pitches[0] = size;
- }
- /* offset of U plane => w * h */
- size *= *h;
- if (offsets != NULL)
- {
- offsets[1] = size;
- }
- /* width of U, V row => width / 2 */
- tmp = ((*w >> 1) + 3) & ~3;
- if (pitches != NULL)
- {
- pitches[1] = pitches[2] = tmp;
- }
- /* offset of V => Y plane + U plane (w * h + w / 2 * h / 2) */
- tmp *= (*h >> 1);
- size += tmp;
- if (offsets != NULL)
- {
- offsets[2] = size;
- }
- size += tmp;
- break;
- case FOURCC_YUY2:
- case FOURCC_UYVY:
- size = (*w) * 2;
- if (pitches != NULL)
- {
- pitches[0] = size;
- }
- size *= *h;
- break;
- default:
- LLOGLN(0, ("xrdpVidQueryImageAttributes: Unsupported image"));
- return 0;
- }
- LLOGLN(10, ("xrdpVidQueryImageAttributes: finished size %d id 0x%x", size, id));
- return size;
-}
-
-/*****************************************************************************/
-Bool
-rdpXvInit(ScreenPtr pScreen, ScrnInfoPtr pScrn)
-{
- XF86VideoAdaptorPtr adaptor;
- DevUnion* pDevUnion;
- int bytes;
-
- adaptor = xf86XVAllocateVideoAdaptorRec(pScrn);
- if (adaptor == 0)
- {
- LLOGLN(0, ("rdpXvInit: xf86XVAllocateVideoAdaptorRec failed"));
- return 0;
- }
- adaptor->type = XvInputMask | XvImageMask | XvVideoMask | XvStillMask | XvWindowMask | XvPixmapMask;
- //adaptor->flags = VIDEO_NO_CLIPPING;
- //adaptor->flags = VIDEO_CLIP_TO_VIEWPORT;
- adaptor->flags = 0;
- adaptor->name = XRDP_MODULE_NAME " XVideo Adaptor";
- adaptor->nEncodings = T_NUM_ENCODINGS;
- adaptor->pEncodings = &(g_xrdpVidEncodings[0]);
- adaptor->nFormats = T_NUM_FORMATS;
- adaptor->pFormats = &(g_xrdpVidFormats[0]);
- adaptor->pFormats[0].depth = pScrn->depth;
- LLOGLN(0, ("rdpXvInit: depth %d", pScrn->depth));
- adaptor->nImages = sizeof(g_xrdpVidImages) / sizeof(XF86ImageRec);
- adaptor->pImages = g_xrdpVidImages;
- adaptor->nAttributes = 0;
- adaptor->pAttributes = 0;
- adaptor->nPorts = T_MAX_PORTS;
- bytes = sizeof(DevUnion) * T_MAX_PORTS;
- pDevUnion = (DevUnion*) g_malloc(bytes, 1);
- adaptor->pPortPrivates = pDevUnion;
- adaptor->PutVideo = xrdpVidPutVideo;
- adaptor->PutStill = xrdpVidPutStill;
- adaptor->GetVideo = xrdpVidGetVideo;
- adaptor->GetStill = xrdpVidGetStill;
- adaptor->StopVideo = xrdpVidStopVideo;
- adaptor->SetPortAttribute = xrdpVidSetPortAttribute;
- adaptor->GetPortAttribute = xrdpVidGetPortAttribute;
- adaptor->QueryBestSize = xrdpVidQueryBestSize;
- adaptor->PutImage = xrdpVidPutImage;
- adaptor->QueryImageAttributes = xrdpVidQueryImageAttributes;
- if (!xf86XVScreenInit(pScreen, &adaptor, 1))
- {
- LLOGLN(0, ("rdpXvInit: xf86XVScreenInit failed"));
- return 0;
- }
- xf86XVFreeVideoAdaptorRec(adaptor);
- return 1;
-}
-
diff --git a/xorg/server/module/rdpXv.h b/xorg/server/module/rdpXv.h
deleted file mode 100644
index 2dbbc729..00000000
--- a/xorg/server/module/rdpXv.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
-Copyright 2014 Jay Sorg
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-XVideo
-
-*/
-
-#ifndef __RDPXV_H
-#define __RDPXV_H
-
-#include <xorg-server.h>
-#include <xorgVersion.h>
-#include <xf86.h>
-
-extern _X_EXPORT Bool
-rdpXvInit(ScreenPtr pScreen, ScrnInfoPtr pScrn);
-extern _X_EXPORT int
-YV12_to_RGB32(unsigned char *yuvs, int width, int height, int *rgbs);
-extern _X_EXPORT int
-I420_to_RGB32(unsigned char *yuvs, int width, int height, int *rgbs);
-extern _X_EXPORT int
-YUY2_to_RGB32(unsigned char *yuvs, int width, int height, int *rgbs);
-extern _X_EXPORT int
-UYVY_to_RGB32(unsigned char *yuvs, int width, int height, int *rgbs);
-
-#endif
diff --git a/xorg/server/module/x86/a8r8g8b8_to_a8b8g8r8_box_x86_sse2.asm b/xorg/server/module/x86/a8r8g8b8_to_a8b8g8r8_box_x86_sse2.asm
deleted file mode 100644
index 72563214..00000000
--- a/xorg/server/module/x86/a8r8g8b8_to_a8b8g8r8_box_x86_sse2.asm
+++ /dev/null
@@ -1,174 +0,0 @@
-;
-;Copyright 2014 Jay Sorg
-;
-;Permission to use, copy, modify, distribute, and sell this software and its
-;documentation for any purpose is hereby granted without fee, provided that
-;the above copyright notice appear in all copies and that both that
-;copyright notice and this permission notice appear in supporting
-;documentation.
-;
-;The above copyright notice and this permission notice shall be included in
-;all copies or substantial portions of the Software.
-;
-;THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-;IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-;FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-;OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-;AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-;CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-;
-;ARGB to ABGR
-;x86 SSE2 32 bit
-;
-
-SECTION .data
-align 16
-c1 times 4 dd 0xFF00FF00
-c2 times 4 dd 0x00FF0000
-c3 times 4 dd 0x000000FF
-
-SECTION .text
-
-%macro PROC 1
- align 16
- global %1
- %1:
-%endmacro
-
-;int
-;a8r8g8b8_to_a8b8g8r8_box_x86_sse2(char *s8, int src_stride,
-; char *d8, int dst_stride,
-; int width, int height);
-PROC a8r8g8b8_to_a8b8g8r8_box_x86_sse2
- push ebx
- push esi
- push edi
- push ebp
-
- movdqa xmm4, [c1]
- movdqa xmm5, [c2]
- movdqa xmm6, [c3]
-
- mov esi, [esp + 20] ; src
- mov edi, [esp + 28] ; dst
-
-loop_y:
- mov ecx, [esp + 36] ; width
-
-loop_xpre:
- mov eax, esi ; look for aligned
- and eax, 0x0F ; we can jump to next
- mov ebx, eax
- mov eax, edi
- and eax, 0x0F
- or eax, ebx
- cmp eax, 0
- je done_loop_xpre
- cmp ecx, 1
- jl done_loop_x ; all done with this row
- mov eax, [esi]
- lea esi, [esi + 4]
- mov edx, eax ; a and g
- and edx, 0xFF00FF00
- mov ebx, eax ; r
- and ebx, 0x00FF0000
- shr ebx, 16
- or edx, ebx
- mov ebx, eax ; b
- and ebx, 0x000000FF
- shl ebx, 16
- or edx, ebx
- mov [edi], edx
- lea edi, [edi + 4]
- dec ecx
- jmp loop_xpre;
-done_loop_xpre:
-
- prefetchnta [esi]
-
-; A R G B A R G B A R G B A R G B to
-; A B G R A B G R A B G R A B G R
-
-loop_x8:
- cmp ecx, 8
- jl done_loop_x8
-
- prefetchnta [esi + 32]
-
- movdqa xmm0, [esi]
- lea esi, [esi + 16]
- movdqa xmm3, xmm0 ; a and g
- pand xmm3, xmm4
- movdqa xmm1, xmm0 ; r
- pand xmm1, xmm5
- psrld xmm1, 16
- por xmm3, xmm1
- movdqa xmm1, xmm0 ; b
- pand xmm1, xmm6
- pslld xmm1, 16
- por xmm3, xmm1
- movdqa [edi], xmm3
- lea edi, [edi + 16]
- sub ecx, 4
-
- movdqa xmm0, [esi]
- lea esi, [esi + 16]
- movdqa xmm3, xmm0 ; a and g
- pand xmm3, xmm4
- movdqa xmm1, xmm0 ; r
- pand xmm1, xmm5
- psrld xmm1, 16
- por xmm3, xmm1
- movdqa xmm1, xmm0 ; b
- pand xmm1, xmm6
- pslld xmm1, 16
- por xmm3, xmm1
- movdqa [edi], xmm3
- lea edi, [edi + 16]
- sub ecx, 4
-
- jmp loop_x8;
-done_loop_x8:
-
-loop_x:
- cmp ecx, 1
- jl done_loop_x
- mov eax, [esi]
- lea esi, [esi + 4]
- mov edx, eax ; a and g
- and edx, 0xFF00FF00
- mov ebx, eax ; r
- and ebx, 0x00FF0000
- shr ebx, 16
- or edx, ebx
- mov ebx, eax ; b
- and ebx, 0x000000FF
- shl ebx, 16
- or edx, ebx
- mov [edi], edx
- lea edi, [edi + 4]
- dec ecx
- jmp loop_x;
-done_loop_x:
-
- mov esi, [esp + 20]
- add esi, [esp + 24]
- mov [esp + 20], esi
-
- mov edi, [esp + 28]
- add edi, [esp + 32]
- mov [esp + 28], edi
-
- mov ecx, [esp + 40] ; height
- dec ecx
- mov [esp + 40], ecx
- jnz loop_y
-
- mov eax, 0 ; return value
- pop ebp
- pop edi
- pop esi
- pop ebx
- ret
- align 16
-
diff --git a/xorg/server/module/x86/cpuid_x86.asm b/xorg/server/module/x86/cpuid_x86.asm
deleted file mode 100644
index 6f9e8c2d..00000000
--- a/xorg/server/module/x86/cpuid_x86.asm
+++ /dev/null
@@ -1,39 +0,0 @@
-
-SECTION .text
-
-%macro PROC 1
- align 16
- global %1
- %1:
-%endmacro
-
-;int
-;cpuid_x86(int eax_in, int ecx_in, int *eax, int *ebx, int *ecx, int *edx)
-
-PROC cpuid_x86
- ; save registers
- push ebx
- push ecx
- push edx
- push edi
- ; cpuid
- mov eax, [esp + 20]
- mov ecx, [esp + 24]
- cpuid
- mov edi, [esp + 28]
- mov [edi], eax
- mov edi, [esp + 32]
- mov [edi], ebx
- mov edi, [esp + 36]
- mov [edi], ecx
- mov edi, [esp + 40]
- mov [edi], edx
- mov eax, 0
- ; restore registers
- pop edi
- pop edx
- pop ecx
- pop ebx
- ret;
- align 16
-
diff --git a/xorg/server/module/x86/funcs_x86.h b/xorg/server/module/x86/funcs_x86.h
deleted file mode 100644
index 775dd12d..00000000
--- a/xorg/server/module/x86/funcs_x86.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
-Copyright 2014 Jay Sorg
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-x86 asm files
-
-*/
-
-#ifndef __FUNCS_X86_H
-#define __FUNCS_X86_H
-
-int
-cpuid_x86(int eax_in, int ecx_in, int *eax, int *ebx, int *ecx, int *edx);
-int
-yv12_to_rgb32_x86_sse2(unsigned char *yuvs, int width, int height, int *rgbs);
-int
-i420_to_rgb32_x86_sse2(unsigned char *yuvs, int width, int height, int *rgbs);
-int
-yuy2_to_rgb32_x86_sse2(unsigned char *yuvs, int width, int height, int *rgbs);
-int
-uyvy_to_rgb32_x86_sse2(unsigned char *yuvs, int width, int height, int *rgbs);
-int
-a8r8g8b8_to_a8b8g8r8_box_x86_sse2(char *s8, int src_stride,
- char *d8, int dst_stride,
- int width, int height);
-
-#endif
-
diff --git a/xorg/server/module/x86/i420_to_rgb32_x86_sse2.asm b/xorg/server/module/x86/i420_to_rgb32_x86_sse2.asm
deleted file mode 100644
index 0c7a6e1e..00000000
--- a/xorg/server/module/x86/i420_to_rgb32_x86_sse2.asm
+++ /dev/null
@@ -1,243 +0,0 @@
-;
-;Copyright 2014 Jay Sorg
-;
-;Permission to use, copy, modify, distribute, and sell this software and its
-;documentation for any purpose is hereby granted without fee, provided that
-;the above copyright notice appear in all copies and that both that
-;copyright notice and this permission notice appear in supporting
-;documentation.
-;
-;The above copyright notice and this permission notice shall be included in
-;all copies or substantial portions of the Software.
-;
-;THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-;IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-;FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-;OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-;AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-;CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-;
-;I420 to RGB32
-;x86 SSE2 32 bit
-;
-; RGB to YUV
-; 0.299 0.587 0.114
-; -0.14713 -0.28886 0.436
-; 0.615 -0.51499 -0.10001
-; YUV to RGB
-; 1 0 1.13983
-; 1 -0.39465 -0.58060
-; 1 2.03211 0
-; shift left 12
-; 4096 0 4669
-; 4096 -1616 -2378
-; 4096 9324 0
-
-SECTION .data
-align 16
-c128 times 8 dw 128
-c4669 times 8 dw 4669
-c1616 times 8 dw 1616
-c2378 times 8 dw 2378
-c9324 times 8 dw 9324
-
-SECTION .text
-
-%macro PROC 1
- align 16
- global %1
- %1:
-%endmacro
-
-do8_uv:
-
- ; v
- movd xmm1, [ebx] ; 4 at a time
- lea ebx, [ebx + 4]
- punpcklbw xmm1, xmm1
- pxor xmm6, xmm6
- punpcklbw xmm1, xmm6
- movdqa xmm7, [c128]
- psubw xmm1, xmm7
- psllw xmm1, 4
-
- ; u
- movd xmm2, [edx] ; 4 at a time
- lea edx, [edx + 4]
- punpcklbw xmm2, xmm2
- punpcklbw xmm2, xmm6
- psubw xmm2, xmm7
- psllw xmm2, 4
-
-do8:
-
- ; y
- movq xmm0, [esi] ; 8 at a time
- lea esi, [esi + 8]
- pxor xmm6, xmm6
- punpcklbw xmm0, xmm6
-
- ; r = y + hiword(4669 * (v << 4))
- movdqa xmm4, [c4669]
- pmulhw xmm4, xmm1
- movdqa xmm3, xmm0
- paddw xmm3, xmm4
-
- ; g = y - hiword(1616 * (u << 4)) - hiword(2378 * (v << 4))
- movdqa xmm5, [c1616]
- pmulhw xmm5, xmm2
- movdqa xmm6, [c2378]
- pmulhw xmm6, xmm1
- movdqa xmm4, xmm0
- psubw xmm4, xmm5
- psubw xmm4, xmm6
-
- ; b = y + hiword(9324 * (u << 4))
- movdqa xmm6, [c9324]
- pmulhw xmm6, xmm2
- movdqa xmm5, xmm0
- paddw xmm5, xmm6
-
- packuswb xmm3, xmm3 ; b
- packuswb xmm4, xmm4 ; g
- punpcklbw xmm3, xmm4 ; gb
-
- pxor xmm4, xmm4 ; a
- packuswb xmm5, xmm5 ; r
- punpcklbw xmm5, xmm4 ; ar
-
- movdqa xmm4, xmm3
- punpcklwd xmm3, xmm5 ; argb
- movdqa [edi], xmm3
- lea edi, [edi + 16]
- punpckhwd xmm4, xmm5 ; argb
- movdqa [edi], xmm4
- lea edi, [edi + 16]
-
- ret;
-
-;int
-;i420_to_rgb32_x86_sse2(unsigned char *yuvs, int width, int height, int *rgbs)
-
-PROC i420_to_rgb32_x86_sse2
- push ebx
- push esi
- push edi
- push ebp
-
- mov edi, [esp + 32] ; rgbs
-
- mov ecx, [esp + 24] ; width
- mov edx, ecx
- mov ebp, [esp + 28] ; height
- mov eax, ebp
- shr ebp, 1
- imul eax, ecx ; eax = width * height
-
- mov esi, [esp + 20] ; y
-
- mov ebx, esi ; u = y + width * height
- add ebx, eax
-
- ; local vars
- ; char* yptr1
- ; char* yptr2
- ; char* uptr
- ; char* vptr
- ; int* rgbs1
- ; int* rgbs2
- ; int width
- sub esp, 28 ; local vars, 28 bytes
- mov [esp + 0], esi ; save y1
- add esi, edx
- mov [esp + 4], esi ; save y2
- mov [esp + 8], ebx ; save u
- shr eax, 2
- add ebx, eax ; v = u + (width * height / 4)
- mov [esp + 12], ebx ; save v
-
- mov [esp + 16], edi ; save rgbs1
- mov eax, edx
- shl eax, 2
- add edi, eax
- mov [esp + 20], edi ; save rgbs2
-
-loop_y:
-
- mov ecx, edx ; width
- shr ecx, 3
-
- ; save edx
- mov [esp + 24], edx
-
- ;prefetchnta 4096[esp + 0] ; y
- ;prefetchnta 1024[esp + 8] ; u
- ;prefetchnta 1024[esp + 12] ; v
-
-loop_x:
-
- mov esi, [esp + 0] ; y1
- mov ebx, [esp + 8] ; u
- mov edx, [esp + 12] ; v
- mov edi, [esp + 16] ; rgbs1
-
- ; y1
- call do8_uv
-
- mov [esp + 0], esi ; y1
- mov [esp + 16], edi ; rgbs1
-
- mov esi, [esp + 4] ; y2
- mov edi, [esp + 20] ; rgbs2
-
- ; y2
- call do8
-
- mov [esp + 4], esi ; y2
- mov [esp + 8], ebx ; u
- mov [esp + 12], edx ; v
- mov [esp + 20], edi ; rgbs2
-
- dec ecx ; width
- jnz loop_x
-
- ; restore edx
- mov edx, [esp + 24]
-
- ; update y1 and 2
- mov eax, [esp + 0]
- mov ebx, edx
- add eax, ebx
- mov [esp + 0], eax
-
- mov eax, [esp + 4]
- add eax, ebx
- mov [esp + 4], eax
-
- ; update rgb1 and 2
- mov eax, [esp + 16]
- mov ebx, edx
- shl ebx, 2
- add eax, ebx
- mov [esp + 16], eax
-
- mov eax, [esp + 20]
- add eax, ebx
- mov [esp + 20], eax
-
- mov ecx, ebp
- dec ecx ; height
- mov ebp, ecx
- jnz loop_y
-
- add esp, 28
-
- mov eax, 0
- pop ebp
- pop edi
- pop esi
- pop ebx
- ret
- align 16
-
-
diff --git a/xorg/server/module/x86/uyvy_to_rgb32_x86_sse2.asm b/xorg/server/module/x86/uyvy_to_rgb32_x86_sse2.asm
deleted file mode 100644
index d3ba81d3..00000000
--- a/xorg/server/module/x86/uyvy_to_rgb32_x86_sse2.asm
+++ /dev/null
@@ -1,22 +0,0 @@
-
-%macro PROC 1
- align 16
- global %1
- %1:
-%endmacro
-
-;int
-;uyvy_to_rgb32_x86_sse2(unsigned char *yuvs, int width, int height, int *rgbs)
-
-PROC uyvy_to_rgb32_x86_sse2
- push ebx
- push esi
- push edi
-
- mov eax, 0
- pop edi
- pop esi
- pop ebx
- ret
- align 16
-
diff --git a/xorg/server/module/x86/yuy2_to_rgb32_x86_sse2.asm b/xorg/server/module/x86/yuy2_to_rgb32_x86_sse2.asm
deleted file mode 100644
index da03e26f..00000000
--- a/xorg/server/module/x86/yuy2_to_rgb32_x86_sse2.asm
+++ /dev/null
@@ -1,22 +0,0 @@
-
-%macro PROC 1
- align 16
- global %1
- %1:
-%endmacro
-
-;int
-;yuy2_to_rgb32_x86_sse2(unsigned char *yuvs, int width, int height, int *rgbs)
-
-PROC yuy2_to_rgb32_x86_sse2
- push ebx
- push esi
- push edi
-
- mov eax, 0
- pop edi
- pop esi
- pop ebx
- ret
- align 16
-
diff --git a/xorg/server/module/x86/yv12_to_rgb32_x86_sse2.asm b/xorg/server/module/x86/yv12_to_rgb32_x86_sse2.asm
deleted file mode 100644
index d50a65a2..00000000
--- a/xorg/server/module/x86/yv12_to_rgb32_x86_sse2.asm
+++ /dev/null
@@ -1,243 +0,0 @@
-;
-;Copyright 2014 Jay Sorg
-;
-;Permission to use, copy, modify, distribute, and sell this software and its
-;documentation for any purpose is hereby granted without fee, provided that
-;the above copyright notice appear in all copies and that both that
-;copyright notice and this permission notice appear in supporting
-;documentation.
-;
-;The above copyright notice and this permission notice shall be included in
-;all copies or substantial portions of the Software.
-;
-;THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-;IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-;FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-;OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-;AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-;CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-;
-;YV12 to RGB32
-;x86 SSE2 32 bit
-;
-; RGB to YUV
-; 0.299 0.587 0.114
-; -0.14713 -0.28886 0.436
-; 0.615 -0.51499 -0.10001
-; YUV to RGB
-; 1 0 1.13983
-; 1 -0.39465 -0.58060
-; 1 2.03211 0
-; shift left 12
-; 4096 0 4669
-; 4096 -1616 -2378
-; 4096 9324 0
-
-SECTION .data
-align 16
-c128 times 8 dw 128
-c4669 times 8 dw 4669
-c1616 times 8 dw 1616
-c2378 times 8 dw 2378
-c9324 times 8 dw 9324
-
-SECTION .text
-
-%macro PROC 1
- align 16
- global %1
- %1:
-%endmacro
-
-do8_uv:
-
- ; u
- movd xmm1, [ebx] ; 4 at a time
- lea ebx, [ebx + 4]
- punpcklbw xmm1, xmm1
- pxor xmm6, xmm6
- punpcklbw xmm1, xmm6
- movdqa xmm7, [c128]
- psubw xmm1, xmm7
- psllw xmm1, 4
-
- ; v
- movd xmm2, [edx] ; 4 at a time
- lea edx, [edx + 4]
- punpcklbw xmm2, xmm2
- punpcklbw xmm2, xmm6
- psubw xmm2, xmm7
- psllw xmm2, 4
-
-do8:
-
- ; y
- movq xmm0, [esi] ; 8 at a time
- lea esi, [esi + 8]
- pxor xmm6, xmm6
- punpcklbw xmm0, xmm6
-
- ; r = y + hiword(4669 * (v << 4))
- movdqa xmm4, [c4669]
- pmulhw xmm4, xmm2
- movdqa xmm3, xmm0
- paddw xmm3, xmm4
-
- ; g = y - hiword(1616 * (u << 4)) - hiword(2378 * (v << 4))
- movdqa xmm5, [c1616]
- pmulhw xmm5, xmm1
- movdqa xmm6, [c2378]
- pmulhw xmm6, xmm2
- movdqa xmm4, xmm0
- psubw xmm4, xmm5
- psubw xmm4, xmm6
-
- ; b = y + hiword(9324 * (u << 4))
- movdqa xmm6, [c9324]
- pmulhw xmm6, xmm1
- movdqa xmm5, xmm0
- paddw xmm5, xmm6
-
- packuswb xmm3, xmm3 ; b
- packuswb xmm4, xmm4 ; g
- punpcklbw xmm3, xmm4 ; gb
-
- pxor xmm4, xmm4 ; a
- packuswb xmm5, xmm5 ; r
- punpcklbw xmm5, xmm4 ; ar
-
- movdqa xmm4, xmm3
- punpcklwd xmm3, xmm5 ; argb
- movdqa [edi], xmm3
- lea edi, [edi + 16]
- punpckhwd xmm4, xmm5 ; argb
- movdqa [edi], xmm4
- lea edi, [edi + 16]
-
- ret;
-
-;int
-;yv12_to_rgb32_x86_sse2(unsigned char *yuvs, int width, int height, int *rgbs)
-
-PROC yv12_to_rgb32_x86_sse2
- push ebx
- push esi
- push edi
- push ebp
-
- mov edi, [esp + 32] ; rgbs
-
- mov ecx, [esp + 24] ; width
- mov edx, ecx
- mov ebp, [esp + 28] ; height
- mov eax, ebp
- shr ebp, 1
- imul eax, ecx ; eax = width * height
-
- mov esi, [esp + 20] ; y
-
- mov ebx, esi ; u = y + width * height
- add ebx, eax
-
- ; local vars
- ; char* yptr1
- ; char* yptr2
- ; char* uptr
- ; char* vptr
- ; int* rgbs1
- ; int* rgbs2
- ; int width
- sub esp, 28 ; local vars, 28 bytes
- mov [esp + 0], esi ; save y1
- add esi, edx
- mov [esp + 4], esi ; save y2
- mov [esp + 8], ebx ; save u
- shr eax, 2
- add ebx, eax ; v = u + (width * height / 4)
- mov [esp + 12], ebx ; save v
-
- mov [esp + 16], edi ; save rgbs1
- mov eax, edx
- shl eax, 2
- add edi, eax
- mov [esp + 20], edi ; save rgbs2
-
-loop_y:
-
- mov ecx, edx ; width
- shr ecx, 3
-
- ; save edx
- mov [esp + 24], edx
-
- ;prefetchnta 4096[esp + 0] ; y
- ;prefetchnta 1024[esp + 8] ; u
- ;prefetchnta 1024[esp + 12] ; v
-
-loop_x:
-
- mov esi, [esp + 0] ; y1
- mov ebx, [esp + 8] ; u
- mov edx, [esp + 12] ; v
- mov edi, [esp + 16] ; rgbs1
-
- ; y1
- call do8_uv
-
- mov [esp + 0], esi ; y1
- mov [esp + 16], edi ; rgbs1
-
- mov esi, [esp + 4] ; y2
- mov edi, [esp + 20] ; rgbs2
-
- ; y2
- call do8
-
- mov [esp + 4], esi ; y2
- mov [esp + 8], ebx ; u
- mov [esp + 12], edx ; v
- mov [esp + 20], edi ; rgbs2
-
- dec ecx ; width
- jnz loop_x
-
- ; restore edx
- mov edx, [esp + 24]
-
- ; update y1 and 2
- mov eax, [esp + 0]
- mov ebx, edx
- add eax, ebx
- mov [esp + 0], eax
-
- mov eax, [esp + 4]
- add eax, ebx
- mov [esp + 4], eax
-
- ; update rgb1 and 2
- mov eax, [esp + 16]
- mov ebx, edx
- shl ebx, 2
- add eax, ebx
- mov [esp + 16], eax
-
- mov eax, [esp + 20]
- add eax, ebx
- mov [esp + 20], eax
-
- mov ecx, ebp
- dec ecx ; height
- mov ebp, ecx
- jnz loop_y
-
- add esp, 28
-
- mov eax, 0
- pop ebp
- pop edi
- pop esi
- pop ebx
- ret
- align 16
-
-
diff --git a/xorg/server/readme.txt b/xorg/server/readme.txt
deleted file mode 100644
index 13fd064e..00000000
--- a/xorg/server/readme.txt
+++ /dev/null
@@ -1,100 +0,0 @@
-
-------------------------------------------------------
-11/01/2014
-------------------------------------------------------
-
-There are four modules built for the Xorg driver model and one configuration file
-This works best with newer Xorg installs, xserver 1.10 +, example Debian 7 +, Ubuntu 12.04 +
-
-To see what version you have, run
-xdpyinfo | grep version:
-or
-dpkg -l | grep xserver-xorg-core
-or
-yum list | grep xorg-x11-server-Xorg
-
-It should compile with older version and may run but may be problems.
-Usually, the problems are related to startup / login.
-
-autotools should build and install them
-
-./bootstrap
-./configure
-make
-sudo make install
-
-This should install the following...
-
-libxorgxrdp.so goes in /usr/lib/xorg/modules/
-xrdpdev_drv.so goes in /usr/lib/xorg/modules/drivers/
-xrdpkeyb_drv.so goes in /usr/lib/xorg/modules/input/
-xrdpmouse_drv.so goes in /usr/lib/xorg/modules/input/
-xorg.conf goes in /etc/X11/xrdp/
-
-with all these components in place, you can start Xorg with the xrdp modules with
-Xorg -config xrdp/xorg.conf -logfile /tmp/Xtmp.log -noreset -ac :10
-or
-Xorg -config xrdp/xorg.conf -logfile /dev/null -noreset -ac :10
-
-
-
-
-older notes
-
-------------------------------------------------------
- Notes for building xrdpdev_drv.so and libxorgxrdp.so
-------------------------------------------------------
-
-Pre-requisites:
- o sudo apt-get install xserver-xorg-dev
-
-quick and easy way to build and run the driver
- o cd xorg/server
- o ./test-in-home.sh
-
- o see /etc/X11/xrdp/xorg.conf to see how things are configured
-
-to run it
-create /etc/X11/xrdp
-copy xorg.conf into it
-
-copy xrdpdev_drv.so to /usr/lib/xorg/modules/drivers
-copy libxorgxrdp.so to /usr/lib/xorg/modules
-
-copy xrdpmouse_drv.so to /usr/lib/xorg/modules/input
-copy xrdpkeyb_drv.so to /usr/lib/xorg/modules/input
-
-start xserver like this
-Xorg -modulepath /usr/lib/xorg/modules -config xrdp/xorg.conf -logfile /tmp/Xjay.log -novtswitch -sharevts -noreset -nohwaccess -ac :10
-or this on older Xorg but need /dev/vc/ thing below
-Xorg -modulepath /home/jay/xorg-modules -config xrdp/xorg.conf -logfile /tmp/Xjay.log -novtswitch -sharevts -noreset -ac vt7 :10
-
-older Xorg don't have -nohwaccess so you need to run Xorg as root
-or do something like this.
-
-sudo rm /dev/tty0
-sudo mknod -m 666 /dev/tty0 c 4 0
-
-sudo mkdir /dev/vc/
-sudo mknod -m 666 /dev/vc/7 c 7 7
-
---modules
- libfb.so
- libint10.so
- libvbe.so
- libxorgxrdp.so
-----drivers
- xrdpdev_drv.so
-----extensions
- libdbe.so
- libdri.so
- libdri2.so
- libextmod.so
- libglx.so
- librecord.so
-----input
- xrdpkeyb_drv.so
- xrdpmouse_drv.so
-
-dpkg -S /usr/lib/xorg/modules/extensions/libglx.so
-xserver-xorg-core
diff --git a/xorg/server/test-in-home.sh b/xorg/server/test-in-home.sh
deleted file mode 100755
index 87c73a11..00000000
--- a/xorg/server/test-in-home.sh
+++ /dev/null
@@ -1,41 +0,0 @@
-#!/bin/sh
-
-if [ -e /etc/X11/xrdp/xorg.conf ]; then
- echo "/etc/X11/xrdp/xorg.conf ok"
-else
- echo "/etc/X11/xrdp/xorg.conf missing, run"
- echo "sudo mkdir /etc/X11/xrdp"
- echo "sudo cp xrdpdev/xorg.conf /etc/X11/xrdp/"
- exit 1
-fi
-
-if [ -d $HOME/xorg-modules ]; then
- echo "found directory ok"
-else
- echo "creating directory"
- mkdir $HOME/xorg-modules
- mkdir $HOME/xorg-modules/drivers
- mkdir $HOME/xorg-modules/extensions
- mkdir $HOME/xorg-modules/input
-
- cp /usr/lib/xorg/modules/libfb.so $HOME/xorg-modules/
- cp /usr/lib/xorg/modules/libint10.so $HOME/xorg-modules/
- cp /usr/lib/xorg/modules/libvbe.so $HOME/xorg-modules/
-
- cp /usr/lib/xorg/modules/extensions/libdbe.so $HOME/xorg-modules/extensions/
- cp /usr/lib/xorg/modules/extensions/libdri.so $HOME/xorg-modules/extensions/
- cp /usr/lib/xorg/modules/extensions/libdri2.so $HOME/xorg-modules/extensions/
- cp /usr/lib/xorg/modules/extensions/libextmod.so $HOME/xorg-modules/extensions/
- cp /usr/lib/xorg/modules/extensions/libglx.so $HOME/xorg-modules/extensions/
- cp /usr/lib/xorg/modules/extensions/librecord.so $HOME/xorg-modules/extensions/
-
-fi
-
-make
-if test $? -ne 0
-then
- echo "make failed"
- exit 1
-fi
-make xinstall
-exec Xorg -modulepath $HOME/xorg-modules -config xrdp/xorg.conf -logfile /tmp/Xtmp.log -novtswitch -sharevts -noreset -ac vt7 :20
diff --git a/xorg/server/xrdpdev/Makefile.am b/xorg/server/xrdpdev/Makefile.am
deleted file mode 100644
index be7f3689..00000000
--- a/xorg/server/xrdpdev/Makefile.am
+++ /dev/null
@@ -1,17 +0,0 @@
-EXTRA_DIST = \
- xorg.conf
-
-AM_CFLAGS = \
- $(XORG_SERVER_CFLAGS) \
- -I../module \
- -I../../../common
-
-xrdpdev_drv_la_LTLIBRARIES = xrdpdev_drv.la
-
-xrdpdev_drv_la_LDFLAGS = -module -avoid-version
-
-xrdpdev_drv_ladir = $(moduledir)/drivers
-
-xrdpdev_drv_la_SOURCES = xrdpdev.c
-
-xrdpdev_drv_la_LIBADD =
diff --git a/xorg/server/xrdpdev/xorg.conf b/xorg/server/xrdpdev/xorg.conf
deleted file mode 100644
index 1c9d7cfc..00000000
--- a/xorg/server/xrdpdev/xorg.conf
+++ /dev/null
@@ -1,68 +0,0 @@
-
-Section "ServerLayout"
- Identifier "X11 Server"
- Screen "Screen (xrdpdev)"
- InputDevice "xrdpMouse" "CorePointer"
- InputDevice "xrdpKeyboard" "CoreKeyboard"
-EndSection
-
-Section "ServerFlags"
- Option "DontVTSwitch" "on"
- Option "AutoAddDevices" "off"
-EndSection
-
-Section "Files"
- FontPath "/usr/X11R6/lib/X11/fonts/misc/:unscaled"
- FontPath "/usr/X11R6/lib/X11/fonts/75dpi/:unscaled"
- FontPath "/usr/X11R6/lib/X11/fonts/100dpi/:unscaled"
- FontPath "/usr/X11R6/lib/X11/fonts/viewtouch"
-EndSection
-
-Section "Module"
- Load "dbe"
- Load "ddc"
- Load "extmod"
- Load "glx"
- Load "int10"
- Load "record"
- Load "vbe"
- Load "xorgxrdp"
- Load "fb"
-EndSection
-
-Section "InputDevice"
- Identifier "xrdpKeyboard"
- Driver "xrdpkeyb"
-EndSection
-
-Section "InputDevice"
- Identifier "xrdpMouse"
- Driver "xrdpmouse"
-EndSection
-
-Section "Monitor"
- Identifier "Monitor"
- Option "DPMS"
- HorizSync 30-80
- VertRefresh 60-75
- ModeLine "1920x1080" 138.500 1920 1968 2000 2080 1080 1083 1088 1111 +hsync -vsync
- ModeLine "1280x720" 74.25 1280 1720 1760 1980 720 725 730 750 +HSync +VSync
- Modeline "1368x768" 72.25 1368 1416 1448 1528 768 771 781 790 +hsync -vsync
- Modeline "1600x900" 119.00 1600 1696 1864 2128 900 901 904 932 -hsync +vsync
-EndSection
-
-Section "Device"
- Identifier "Video Card (xrdpdev)"
- Driver "xrdpdev"
-EndSection
-
-Section "Screen"
- Identifier "Screen (xrdpdev)"
- Device "Video Card (xrdpdev)"
- Monitor "Monitor"
- DefaultDepth 24
- SubSection "Display"
- Depth 24
- Modes "640x480" "800x600" "1024x768" "1280x720" "1280x1024" "1600x900" "1920x1080"
- EndSubSection
-EndSection
diff --git a/xorg/server/xrdpdev/xrdpdev.c b/xorg/server/xrdpdev/xrdpdev.c
deleted file mode 100644
index 29de4688..00000000
--- a/xorg/server/xrdpdev/xrdpdev.c
+++ /dev/null
@@ -1,779 +0,0 @@
-/*
-Copyright 2013-2014 Jay Sorg
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-This is the main driver file
-
-*/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-/* this should be before all X11 .h files */
-#include <xorg-server.h>
-#include <xorgVersion.h>
-
-/* all driver need this */
-#include <xf86.h>
-#include <xf86_OSproc.h>
-
-#include <mipointer.h>
-#include <fb.h>
-#include <micmap.h>
-#include <mi.h>
-#include <randrstr.h>
-
-#include <xf86Modes.h>
-
-#include "rdp.h"
-#include "rdpPri.h"
-#include "rdpDraw.h"
-#include "rdpGC.h"
-#include "rdpCursor.h"
-#include "rdpRandR.h"
-#include "rdpMisc.h"
-#include "rdpComposite.h"
-#include "rdpTrapezoids.h"
-#include "rdpGlyphs.h"
-#include "rdpPixmap.h"
-#include "rdpClientCon.h"
-#include "rdpXv.h"
-#include "rdpSimd.h"
-
-#define LLOG_LEVEL 1
-#define LLOGLN(_level, _args) \
- do \
- { \
- if (_level < LLOG_LEVEL) \
- { \
- ErrorF _args ; \
- ErrorF("\n"); \
- } \
- } \
- while (0)
-
-int g_bpp = 32;
-int g_depth = 24;
-int g_rgb_bits = 8;
-int g_redOffset = 16;
-int g_redBits = 8;
-int g_greenOffset = 8;
-int g_greenBits = 8;
-int g_blueOffset = 0;
-int g_blueBits = 8;
-
-static int g_setup_done = 0;
-static OsTimerPtr g_timer = 0;
-
-/* Supported "chipsets" */
-static SymTabRec g_Chipsets[] =
-{
- { 0, XRDP_DRIVER_NAME },
- { -1, 0 }
-};
-
-static XF86ModuleVersionInfo g_VersRec =
-{
- XRDP_DRIVER_NAME,
- MODULEVENDORSTRING,
- MODINFOSTRING1,
- MODINFOSTRING2,
- XORG_VERSION_CURRENT,
- PACKAGE_VERSION_MAJOR,
- PACKAGE_VERSION_MINOR,
- PACKAGE_VERSION_PATCHLEVEL,
- ABI_CLASS_VIDEODRV,
- ABI_VIDEODRV_VERSION,
- 0,
- { 0, 0, 0, 0 }
-};
-
-/*****************************************************************************/
-static Bool
-rdpAllocRec(ScrnInfoPtr pScrn)
-{
- LLOGLN(10, ("rdpAllocRec:"));
- if (pScrn->driverPrivate != 0)
- {
- return TRUE;
- }
- /* xnfcalloc exits if alloc failed */
- pScrn->driverPrivate = xnfcalloc(sizeof(rdpRec), 1);
- return TRUE;
-}
-
-/*****************************************************************************/
-static void
-rdpFreeRec(ScrnInfoPtr pScrn)
-{
- LLOGLN(10, ("rdpFreeRec:"));
- if (pScrn->driverPrivate == 0)
- {
- return;
- }
- free(pScrn->driverPrivate);
- pScrn->driverPrivate = 0;
-}
-
-/*****************************************************************************/
-static Bool
-rdpPreInit(ScrnInfoPtr pScrn, int flags)
-{
- rgb zeros1;
- Gamma zeros2;
- int got_res_match;
- char **modename;
- DisplayModePtr mode;
- rdpPtr dev;
-
- LLOGLN(0, ("rdpPreInit:"));
- if (flags & PROBE_DETECT)
- {
- return FALSE;
- }
- if (pScrn->numEntities != 1)
- {
- return FALSE;
- }
-
- rdpAllocRec(pScrn);
- dev = XRDPPTR(pScrn);
-
- dev->width = 1024;
- dev->height = 768;
-
- pScrn->monitor = pScrn->confScreen->monitor;
- pScrn->bitsPerPixel = g_bpp;
- pScrn->virtualX = dev->width;
- pScrn->displayWidth = dev->width;
- pScrn->virtualY = dev->height;
- pScrn->progClock = 1;
- pScrn->rgbBits = g_rgb_bits;
- pScrn->depth = g_depth;
- pScrn->chipset = XRDP_DRIVER_NAME;
- pScrn->currentMode = pScrn->modes;
- pScrn->offset.blue = g_blueOffset;
- pScrn->offset.green = g_greenOffset;
- pScrn->offset.red = g_redOffset;
- pScrn->mask.blue = ((1 << g_blueBits) - 1) << pScrn->offset.blue;
- pScrn->mask.green = ((1 << g_greenBits) - 1) << pScrn->offset.green;
- pScrn->mask.red = ((1 << g_redBits) - 1) << pScrn->offset.red;
-
- if (!xf86SetDepthBpp(pScrn, g_depth, g_bpp, g_bpp,
- Support24bppFb | Support32bppFb |
- SupportConvert32to24 | SupportConvert24to32))
- {
- LLOGLN(0, ("rdpPreInit: xf86SetDepthBpp failed"));
- rdpFreeRec(pScrn);
- return FALSE;
- }
- xf86PrintDepthBpp(pScrn);
- g_memset(&zeros1, 0, sizeof(zeros1));
- if (!xf86SetWeight(pScrn, zeros1, zeros1))
- {
- LLOGLN(0, ("rdpPreInit: xf86SetWeight failed"));
- rdpFreeRec(pScrn);
- return FALSE;
- }
- g_memset(&zeros2, 0, sizeof(zeros2));
- if (!xf86SetGamma(pScrn, zeros2))
- {
- LLOGLN(0, ("rdpPreInit: xf86SetGamma failed"));
- rdpFreeRec(pScrn);
- return FALSE;
- }
- if (!xf86SetDefaultVisual(pScrn, -1))
- {
- LLOGLN(0, ("rdpPreInit: xf86SetDefaultVisual failed"));
- rdpFreeRec(pScrn);
- return FALSE;
- }
- xf86SetDpi(pScrn, 0, 0);
- if (0 == pScrn->display->modes)
- {
- LLOGLN(0, ("rdpPreInit: modes error"));
- rdpFreeRec(pScrn);
- return FALSE;
- }
-
- pScrn->virtualX = pScrn->display->virtualX;
- pScrn->virtualY = pScrn->display->virtualY;
-
- got_res_match = 0;
- for (modename = pScrn->display->modes; *modename != 0; modename++)
- {
- for (mode = pScrn->monitor->Modes; mode != 0; mode = mode->next)
- {
- LLOGLN(10, ("%s %s", mode->name, *modename));
- if (0 == strcmp(mode->name, *modename))
- {
- break;
- }
- }
- if (0 == mode)
- {
- xf86DrvMsg(pScrn->scrnIndex, X_INFO, "\tmode \"%s\" not found\n",
- *modename);
- continue;
- }
- xf86DrvMsg(pScrn->scrnIndex, X_INFO, "\tmode \"%s\" ok\n", *modename);
- LLOGLN(10, ("%d %d %d %d", mode->HDisplay, dev->width,
- mode->VDisplay, dev->height));
- if ((mode->HDisplay == dev->width) && (mode->VDisplay == dev->height))
- {
- pScrn->virtualX = mode->HDisplay;
- pScrn->virtualY = mode->VDisplay;
- got_res_match = 1;
- }
- if (got_res_match)
- {
- pScrn->modes = xf86DuplicateMode(mode);
- pScrn->modes->next = pScrn->modes;
- pScrn->modes->prev = pScrn->modes;
- dev->num_modes = 1;
- break;
- }
- }
- pScrn->currentMode = pScrn->modes;
- xf86PrintModes(pScrn);
- LLOGLN(10, ("rdpPreInit: out fPtr->num_modes %d", dev->num_modes));
- if (!got_res_match)
- {
- LLOGLN(0, ("rdpPreInit: could not find screen resolution %dx%d",
- dev->width, dev->height));
- return FALSE;
- }
- return TRUE;
-}
-
-/******************************************************************************/
-static miPointerSpriteFuncRec g_rdpSpritePointerFuncs =
-{
- /* these are in rdpCursor.c */
- rdpSpriteRealizeCursor,
- rdpSpriteUnrealizeCursor,
- rdpSpriteSetCursor,
- rdpSpriteMoveCursor,
- rdpSpriteDeviceCursorInitialize,
- rdpSpriteDeviceCursorCleanup
-};
-
-/******************************************************************************/
-static Bool
-rdpSaveScreen(ScreenPtr pScreen, int on)
-{
- LLOGLN(0, ("rdpSaveScreen:"));
- return TRUE;
-}
-
-/******************************************************************************/
-static Bool
-rdpResizeSession(rdpPtr dev, int width, int height)
-{
- int mmwidth;
- int mmheight;
- RRScreenSizePtr pSize;
- Bool ok;
-
- LLOGLN(0, ("rdpResizeSession: width %d height %d", width, height));
- mmwidth = PixelToMM(width);
- mmheight = PixelToMM(height);
-
- pSize = RRRegisterSize(dev->pScreen, width, height, mmwidth, mmheight);
- RRSetCurrentConfig(dev->pScreen, RR_Rotate_0, 0, pSize);
-
- ok = TRUE;
- if ((dev->width != width) || (dev->height != height))
- {
- LLOGLN(0, (" calling RRScreenSizeSet"));
- ok = RRScreenSizeSet(dev->pScreen, width, height, mmwidth, mmheight);
- LLOGLN(0, (" RRScreenSizeSet ok %d", ok));
- }
- return ok;
-}
-
-/******************************************************************************/
-/* returns error */
-static CARD32
-rdpDeferredRandR(OsTimerPtr timer, CARD32 now, pointer arg)
-{
- ScreenPtr pScreen;
- rrScrPrivPtr pRRScrPriv;
- rdpPtr dev;
- char *envvar;
- int width;
- int height;
-
- pScreen = (ScreenPtr) arg;
- dev = rdpGetDevFromScreen(pScreen);
- LLOGLN(0, ("rdpDeferredRandR:"));
- pRRScrPriv = rrGetScrPriv(pScreen);
- if (pRRScrPriv == 0)
- {
- LLOGLN(0, ("rdpDeferredRandR: rrGetScrPriv failed"));
- return 1;
- }
-
- dev->rrSetConfig = pRRScrPriv->rrSetConfig;
- dev->rrGetInfo = pRRScrPriv->rrGetInfo;
- dev->rrScreenSetSize = pRRScrPriv->rrScreenSetSize;
- dev->rrCrtcSet = pRRScrPriv->rrCrtcSet;
- dev->rrCrtcSetGamma = pRRScrPriv->rrCrtcSetGamma;
- dev->rrCrtcGetGamma = pRRScrPriv->rrCrtcGetGamma;
- dev->rrOutputSetProperty = pRRScrPriv->rrOutputSetProperty;
- dev->rrOutputValidateMode = pRRScrPriv->rrOutputValidateMode;
- dev->rrModeDestroy = pRRScrPriv->rrModeDestroy;
- dev->rrOutputGetProperty = pRRScrPriv->rrOutputGetProperty;
- dev->rrGetPanning = pRRScrPriv->rrGetPanning;
- dev->rrSetPanning = pRRScrPriv->rrSetPanning;
-
- LLOGLN(10, (" rrSetConfig = %p", dev->rrSetConfig));
- LLOGLN(10, (" rrGetInfo = %p", dev->rrGetInfo));
- LLOGLN(10, (" rrScreenSetSize = %p", dev->rrScreenSetSize));
- LLOGLN(10, (" rrCrtcSet = %p", dev->rrCrtcSet));
- LLOGLN(10, (" rrCrtcSetGamma = %p", dev->rrCrtcSetGamma));
- LLOGLN(10, (" rrCrtcGetGamma = %p", dev->rrCrtcGetGamma));
- LLOGLN(10, (" rrOutputSetProperty = %p", dev->rrOutputSetProperty));
- LLOGLN(10, (" rrOutputValidateMode = %p", dev->rrOutputValidateMode));
- LLOGLN(10, (" rrModeDestroy = %p", dev->rrModeDestroy));
- LLOGLN(10, (" rrOutputGetProperty = %p", dev->rrOutputGetProperty));
- LLOGLN(10, (" rrGetPanning = %p", dev->rrGetPanning));
- LLOGLN(10, (" rrSetPanning = %p", dev->rrSetPanning));
-
- pRRScrPriv->rrSetConfig = rdpRRSetConfig;
- pRRScrPriv->rrGetInfo = rdpRRGetInfo;
- pRRScrPriv->rrScreenSetSize = rdpRRScreenSetSize;
- pRRScrPriv->rrCrtcSet = rdpRRCrtcSet;
- pRRScrPriv->rrCrtcSetGamma = rdpRRCrtcSetGamma;
- pRRScrPriv->rrCrtcGetGamma = rdpRRCrtcGetGamma;
- pRRScrPriv->rrOutputSetProperty = rdpRROutputSetProperty;
- pRRScrPriv->rrOutputValidateMode = rdpRROutputValidateMode;
- pRRScrPriv->rrModeDestroy = rdpRRModeDestroy;
- pRRScrPriv->rrOutputGetProperty = rdpRROutputGetProperty;
- pRRScrPriv->rrGetPanning = rdpRRGetPanning;
- pRRScrPriv->rrSetPanning = rdpRRSetPanning;
-
- rdpResizeSession(dev, dev->width, dev->height);
-
- envvar = getenv("XRDP_START_WIDTH");
- if (envvar != 0)
- {
- width = atoi(envvar);
- if ((width >= 16) && (width < 8192))
- {
- envvar = getenv("XRDP_START_HEIGHT");
- if (envvar != 0)
- {
- height = atoi(envvar);
- if ((height >= 16) && (height < 8192))
- {
- rdpResizeSession(dev, width, height);
- }
- }
- }
- }
-
- return 0;
-}
-
-/******************************************************************************/
-static void
-rdpBlockHandler1(pointer blockData, OSTimePtr pTimeout, pointer pReadmask)
-{
-}
-
-/******************************************************************************/
-static void
-rdpWakeupHandler1(pointer blockData, int result, pointer pReadmask)
-{
- rdpClientConCheck((ScreenPtr)blockData);
-}
-
-/*****************************************************************************/
-static Bool
-#if XORG_VERSION_CURRENT < XORG_VERSION_NUMERIC(1, 13, 0, 0, 0)
-rdpScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
-#else
-rdpScreenInit(ScreenPtr pScreen, int argc, char **argv)
-#endif
-{
- ScrnInfoPtr pScrn;
- rdpPtr dev;
- VisualPtr vis;
- Bool vis_found;
- PictureScreenPtr ps;
-
- pScrn = xf86Screens[pScreen->myNum];
- dev = XRDPPTR(pScrn);
-
- dev->pScreen = pScreen;
-
- miClearVisualTypes();
- miSetVisualTypes(pScrn->depth, miGetDefaultVisualMask(pScrn->depth),
- pScrn->rgbBits, TrueColor);
- miSetPixmapDepths();
- LLOGLN(0, ("rdpScreenInit: virtualX %d virtualY %d rgbBits %d depth %d",
- pScrn->virtualX, pScrn->virtualY, pScrn->rgbBits, pScrn->depth));
-
- dev->depth = pScrn->depth;
- dev->paddedWidthInBytes = PixmapBytePad(dev->width, dev->depth);
- dev->bitsPerPixel = rdpBitsPerPixel(dev->depth);
- dev->sizeInBytes = dev->paddedWidthInBytes * dev->height;
- LLOGLN(0, ("rdpScreenInit: pfbMemory bytes %d", dev->sizeInBytes));
- dev->pfbMemory_alloc = (char *) g_malloc(dev->sizeInBytes + 16, 1);
- dev->pfbMemory = (char*) RDPALIGN(dev->pfbMemory_alloc, 16);
- LLOGLN(0, ("rdpScreenInit: pfbMemory %p", dev->pfbMemory));
- if (!fbScreenInit(pScreen, dev->pfbMemory,
- pScrn->virtualX, pScrn->virtualY,
- pScrn->xDpi, pScrn->yDpi, pScrn->displayWidth,
- pScrn->bitsPerPixel))
- {
- LLOGLN(0, ("rdpScreenInit: fbScreenInit failed"));
- return FALSE;
- }
-
-#if XORG_VERSION_CURRENT < XORG_VERSION_NUMERIC(1, 14, 0, 0, 0)
- /* 1.13 has this function, 1.14 and up does not */
- miInitializeBackingStore(pScreen);
-#endif
-
- /* try in init simd functions */
- rdpSimdInit(pScreen, pScrn);
-
-#if defined(XvExtension) && XvExtension
- /* XVideo */
- if (!rdpXvInit(pScreen, pScrn))
- {
- LLOGLN(0, ("rdpScreenInit: rdpXvInit failed"));
- }
-#endif
-
- vis = pScreen->visuals + (pScreen->numVisuals - 1);
- while (vis >= pScreen->visuals)
- {
- if ((vis->class | DynamicClass) == DirectColor)
- {
- vis->offsetBlue = pScrn->offset.blue;
- vis->blueMask = pScrn->mask.blue;
- vis->offsetGreen = pScrn->offset.green;
- vis->greenMask = pScrn->mask.green;
- vis->offsetRed = pScrn->offset.red;
- vis->redMask = pScrn->mask.red;
- }
- vis--;
- }
- fbPictureInit(pScreen, 0, 0);
- xf86SetBlackWhitePixels(pScreen);
- xf86SetBackingStore(pScreen);
-
-#if 1
- /* hardware cursor */
- dev->pCursorFuncs = xf86GetPointerScreenFuncs();
- miPointerInitialize(pScreen, &g_rdpSpritePointerFuncs,
- dev->pCursorFuncs, 0);
-#else
- /* software cursor */
- dev->pCursorFuncs = xf86GetPointerScreenFuncs();
- miDCInitialize(pScreen, dev->pCursorFuncs);
-#endif
-
- fbCreateDefColormap(pScreen);
-
- /* must assign this one */
- pScreen->SaveScreen = rdpSaveScreen;
-
- vis_found = FALSE;
- vis = pScreen->visuals + (pScreen->numVisuals - 1);
- while (vis >= pScreen->visuals)
- {
- if (vis->vid == pScreen->rootVisual)
- {
- vis_found = TRUE;
- }
- vis--;
- }
- if (!vis_found)
- {
- LLOGLN(0, ("rdpScreenInit: no root visual"));
- return FALSE;
- }
-
- dev->privateKeyRecGC = rdpAllocateGCPrivate(pScreen, sizeof(rdpGCRec));
- dev->privateKeyRecPixmap = rdpAllocatePixmapPrivate(pScreen, sizeof(rdpPixmapRec));
-
- dev->CopyWindow = pScreen->CopyWindow;
- pScreen->CopyWindow = rdpCopyWindow;
-
- dev->CreateGC = pScreen->CreateGC;
- pScreen->CreateGC = rdpCreateGC;
-
- dev->CreatePixmap = pScreen->CreatePixmap;
- pScreen->CreatePixmap = rdpCreatePixmap;
-
- dev->DestroyPixmap = pScreen->DestroyPixmap;
- pScreen->DestroyPixmap = rdpDestroyPixmap;
-
- dev->ModifyPixmapHeader = pScreen->ModifyPixmapHeader;
- pScreen->ModifyPixmapHeader = rdpModifyPixmapHeader;
-
- ps = GetPictureScreenIfSet(pScreen);
- if (ps != 0)
- {
- /* composite */
- dev->Composite = ps->Composite;
- ps->Composite = rdpComposite;
- /* glyphs */
- dev->Glyphs = ps->Glyphs;
- ps->Glyphs = rdpGlyphs;
- /* trapezoids */
- dev->Trapezoids = ps->Trapezoids;
- ps->Trapezoids = rdpTrapezoids;
- }
-
- RegisterBlockAndWakeupHandlers(rdpBlockHandler1, rdpWakeupHandler1, pScreen);
-
- g_timer = TimerSet(g_timer, 0, 10, rdpDeferredRandR, pScreen);
-
- if (rdpClientConInit(dev) != 0)
- {
- LLOGLN(0, ("rdpScreenInit: rdpClientConInit failed"));
- }
-
- dev->Bpp_mask = 0x00FFFFFF;
- dev->Bpp = 4;
- dev->bitsPerPixel = 32;
-
- LLOGLN(0, ("rdpScreenInit: out"));
- return TRUE;
-}
-
-/*****************************************************************************/
-static Bool
-#if XORG_VERSION_CURRENT < XORG_VERSION_NUMERIC(1, 13, 0, 0, 0)
-rdpSwitchMode(int a, DisplayModePtr b, int c)
-#else
-rdpSwitchMode(ScrnInfoPtr a, DisplayModePtr b)
-#endif
-{
- LLOGLN(0, ("rdpSwitchMode:"));
- return TRUE;
-}
-
-/*****************************************************************************/
-static void
-#if XORG_VERSION_CURRENT < XORG_VERSION_NUMERIC(1, 13, 0, 0, 0)
-rdpAdjustFrame(int a, int b, int c, int d)
-#else
-rdpAdjustFrame(ScrnInfoPtr a, int b, int c)
-#endif
-{
- LLOGLN(10, ("rdpAdjustFrame:"));
-}
-
-/*****************************************************************************/
-static Bool
-#if XORG_VERSION_CURRENT < XORG_VERSION_NUMERIC(1, 13, 0, 0, 0)
-rdpEnterVT(int a, int b)
-#else
-rdpEnterVT(ScrnInfoPtr a)
-#endif
-{
- LLOGLN(0, ("rdpEnterVT:"));
- return TRUE;
-}
-
-/*****************************************************************************/
-static void
-#if XORG_VERSION_CURRENT < XORG_VERSION_NUMERIC(1, 13, 0, 0, 0)
-rdpLeaveVT(int a, int b)
-#else
-rdpLeaveVT(ScrnInfoPtr a)
-#endif
-{
- LLOGLN(0, ("rdpLeaveVT:"));
-}
-
-/*****************************************************************************/
-static ModeStatus
-#if XORG_VERSION_CURRENT < XORG_VERSION_NUMERIC(1, 13, 0, 0, 0)
-rdpValidMode(int a, DisplayModePtr b, Bool c, int d)
-#else
-rdpValidMode(ScrnInfoPtr a, DisplayModePtr b, Bool c, int d)
-#endif
-{
- LLOGLN(0, ("rdpValidMode:"));
- return 0;
-}
-
-/*****************************************************************************/
-static void
-#if XORG_VERSION_CURRENT < XORG_VERSION_NUMERIC(1, 13, 0, 0, 0)
-rdpFreeScreen(int a, int b)
-#else
-rdpFreeScreen(ScrnInfoPtr a)
-#endif
-{
- LLOGLN(0, ("rdpFreeScreen:"));
-}
-
-/*****************************************************************************/
-static Bool
-rdpProbe(DriverPtr drv, int flags)
-{
- int num_dev_sections;
- int i;
- int entity;
- GDevPtr *dev_sections;
- Bool found_screen;
- ScrnInfoPtr pscrn;
-
- LLOGLN(0, ("rdpProbe:"));
- if (flags & PROBE_DETECT)
- {
- return FALSE;
- }
- /* fbScreenInit, fbPictureInit, ... */
- if (!xf86LoadDrvSubModule(drv, "fb"))
- {
- LLOGLN(0, ("rdpProbe: xf86LoadDrvSubModule for fb failed"));
- return FALSE;
- }
-
- num_dev_sections = xf86MatchDevice(XRDP_DRIVER_NAME, &dev_sections);
- if (num_dev_sections <= 0)
- {
- LLOGLN(0, ("rdpProbe: xf86MatchDevice failed"));
- return FALSE;
- }
-
- pscrn = 0;
- found_screen = FALSE;
- for (i = 0; i < num_dev_sections; i++)
- {
- entity = xf86ClaimFbSlot(drv, 0, dev_sections[i], 1);
- pscrn = xf86ConfigFbEntity(pscrn, 0, entity, 0, 0, 0, 0);
- if (pscrn)
- {
- LLOGLN(10, ("rdpProbe: found screen"));
- found_screen = 1;
- pscrn->driverVersion = XRDP_VERSION;
- pscrn->driverName = XRDP_DRIVER_NAME;
- pscrn->name = XRDP_DRIVER_NAME;
- pscrn->Probe = rdpProbe;
- pscrn->PreInit = rdpPreInit;
- pscrn->ScreenInit = rdpScreenInit;
- pscrn->SwitchMode = rdpSwitchMode;
- pscrn->AdjustFrame = rdpAdjustFrame;
- pscrn->EnterVT = rdpEnterVT;
- pscrn->LeaveVT = rdpLeaveVT;
- pscrn->ValidMode = rdpValidMode;
- pscrn->FreeScreen = rdpFreeScreen;
- xf86DrvMsg(pscrn->scrnIndex, X_INFO, "%s", "using default device\n");
- }
- }
- free(dev_sections);
- return found_screen;
-}
-
-/*****************************************************************************/
-static const OptionInfoRec *
-rdpAvailableOptions(int chipid, int busid)
-{
- LLOGLN(0, ("rdpAvailableOptions:"));
- return 0;
-}
-
-#ifndef HW_SKIP_CONSOLE
-#define HW_SKIP_CONSOLE 4
-#endif
-
-/*****************************************************************************/
-static Bool
-rdpDriverFunc(ScrnInfoPtr pScrn, xorgDriverFuncOp op, pointer ptr)
-{
- xorgHWFlags *flags;
- int rv;
-
- rv = FALSE;
- LLOGLN(0, ("rdpDriverFunc: op %d", (int)op));
- if (op == GET_REQUIRED_HW_INTERFACES)
- {
- flags = (xorgHWFlags *) ptr;
- *flags = HW_SKIP_CONSOLE;
- rv = TRUE;
- }
- return rv;
-}
-
-/*****************************************************************************/
-static void
-rdpIdentify(int flags)
-{
- LLOGLN(0, ("rdpIdentify:"));
- xf86PrintChipsets(XRDP_DRIVER_NAME, "driver for xrdp", g_Chipsets);
-}
-
-/*****************************************************************************/
-_X_EXPORT DriverRec g_DriverRec =
-{
- XRDP_VERSION,
- XRDP_DRIVER_NAME,
- rdpIdentify,
- rdpProbe,
- rdpAvailableOptions,
- 0,
- 0,
- rdpDriverFunc
-};
-
-/*****************************************************************************/
-static pointer
-xrdpdevSetup(pointer module, pointer opts, int *errmaj, int *errmin)
-{
- LLOGLN(0, ("xrdpdevSetup:"));
- if (!g_setup_done)
- {
- g_setup_done = 1;
- xf86AddDriver(&g_DriverRec, module, HaveDriverFuncs);
- return (pointer)1;
- }
- else
- {
- if (errmaj != 0)
- {
- *errmaj = LDR_ONCEONLY;
- }
- return 0;
- }
-}
-
-/*****************************************************************************/
-static void
-xrdpdevTearDown(pointer Module)
-{
- LLOGLN(0, ("xrdpdevTearDown:"));
-}
-
-/* <drivername>ModuleData */
-_X_EXPORT XF86ModuleData xrdpdevModuleData =
-{
- &g_VersRec,
- xrdpdevSetup,
- xrdpdevTearDown
-};
diff --git a/xorg/server/xrdpkeyb/Makefile.am b/xorg/server/xrdpkeyb/Makefile.am
deleted file mode 100644
index f79f7af2..00000000
--- a/xorg/server/xrdpkeyb/Makefile.am
+++ /dev/null
@@ -1,16 +0,0 @@
-EXTRA_DIST =
-
-AM_CFLAGS = \
- $(XORG_SERVER_CFLAGS) \
- -I../module \
- -I../../../common
-
-xrdpkeyb_drv_la_LTLIBRARIES = xrdpkeyb_drv.la
-
-xrdpkeyb_drv_la_LDFLAGS = -module -avoid-version
-
-xrdpkeyb_drv_ladir = $(moduledir)/input
-
-xrdpkeyb_drv_la_SOURCES = rdpKeyboard.c
-
-xrdpkeyb_drv_la_LIBADD =
diff --git a/xorg/server/xrdpkeyb/rdpKeyboard.c b/xorg/server/xrdpkeyb/rdpKeyboard.c
deleted file mode 100644
index 8c8a7c27..00000000
--- a/xorg/server/xrdpkeyb/rdpKeyboard.c
+++ /dev/null
@@ -1,732 +0,0 @@
-/*
-Copyright 2013-2014 Jay Sorg
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-xrdp keyboard module
-
-*/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-/* this should be before all X11 .h files */
-#include <xorg-server.h>
-#include <xorgVersion.h>
-
-/* all driver need this */
-#include <xf86.h>
-#include <xf86_OSproc.h>
-
-#include "xf86Xinput.h"
-
-#include <mipointer.h>
-#include <fb.h>
-#include <micmap.h>
-#include <mi.h>
-
-#include <xkbsrv.h>
-
-#include "X11/keysym.h"
-
-#include "rdp.h"
-#include "rdpInput.h"
-#include "rdpDraw.h"
-
-/******************************************************************************/
-#define LOG_LEVEL 1
-#define LLOGLN(_level, _args) \
- do { if (_level < LOG_LEVEL) { ErrorF _args ; ErrorF("\n"); } } while (0)
-
-#define MIN_KEY_CODE 8
-#define MAX_KEY_CODE 255
-#define NO_OF_KEYS ((MAX_KEY_CODE - MIN_KEY_CODE) + 1)
-#define GLYPHS_PER_KEY 2
-/* control */
-#define CONTROL_L_KEY_CODE 37
-#define CONTROL_R_KEY_CODE 109
-/* shift */
-#define SHIFT_L_KEY_CODE 50
-#define SHIFT_R_KEY_CODE 62
-/* win keys */
-#define SUPER_L_KEY_CODE 115
-#define SUPER_R_KEY_CODE 116
-/* alt */
-#define ALT_L_KEY_CODE 64
-#define ALT_R_KEY_CODE 113
-/* caps lock */
-#define CAPS_LOCK_KEY_CODE 66
-/* num lock */
-#define NUM_LOCK_KEY_CODE 77
-
-#define N_PREDEFINED_KEYS \
- (sizeof(g_kbdMap) / (sizeof(KeySym) * GLYPHS_PER_KEY))
-
-static KeySym g_kbdMap[] =
-{
- NoSymbol, NoSymbol, /* 8 */
- XK_Escape, NoSymbol, /* 9 */
- XK_1, XK_exclam, /* 10 */
- XK_2, XK_at,
- XK_3, XK_numbersign,
- XK_4, XK_dollar,
- XK_5, XK_percent,
- XK_6, XK_asciicircum,
- XK_7, XK_ampersand,
- XK_8, XK_asterisk,
- XK_9, XK_parenleft,
- XK_0, XK_parenright,
- XK_minus, XK_underscore, /* 20 */
- XK_equal, XK_plus,
- XK_BackSpace, NoSymbol,
- XK_Tab, XK_ISO_Left_Tab,
- XK_Q, NoSymbol,
- XK_W, NoSymbol,
- XK_E, NoSymbol,
- XK_R, NoSymbol,
- XK_T, NoSymbol,
- XK_Y, NoSymbol,
- XK_U, NoSymbol, /* 30 */
- XK_I, NoSymbol,
- XK_O, NoSymbol,
- XK_P, NoSymbol,
- XK_bracketleft, XK_braceleft,
- XK_bracketright, XK_braceright,
- XK_Return, NoSymbol,
- XK_Control_L, NoSymbol,
- XK_A, NoSymbol,
- XK_S, NoSymbol,
- XK_D, NoSymbol, /* 40 */
- XK_F, NoSymbol,
- XK_G, NoSymbol,
- XK_H, NoSymbol,
- XK_J, NoSymbol,
- XK_K, NoSymbol,
- XK_L, NoSymbol,
- XK_semicolon, XK_colon,
- XK_apostrophe, XK_quotedbl,
- XK_grave, XK_asciitilde,
- XK_Shift_L, NoSymbol, /* 50 */
- XK_backslash, XK_bar,
- XK_Z, NoSymbol,
- XK_X, NoSymbol,
- XK_C, NoSymbol,
- XK_V, NoSymbol,
- XK_B, NoSymbol,
- XK_N, NoSymbol,
- XK_M, NoSymbol,
- XK_comma, XK_less,
- XK_period, XK_greater, /* 60 */
- XK_slash, XK_question,
- XK_Shift_R, NoSymbol,
- XK_KP_Multiply, NoSymbol,
- XK_Alt_L, NoSymbol,
- XK_space, NoSymbol,
- XK_Caps_Lock, NoSymbol,
- XK_F1, NoSymbol,
- XK_F2, NoSymbol,
- XK_F3, NoSymbol,
- XK_F4, NoSymbol, /* 70 */
- XK_F5, NoSymbol,
- XK_F6, NoSymbol,
- XK_F7, NoSymbol,
- XK_F8, NoSymbol,
- XK_F9, NoSymbol,
- XK_F10, NoSymbol,
- XK_Num_Lock, NoSymbol,
- XK_Scroll_Lock, NoSymbol,
- XK_KP_Home, XK_KP_7,
- XK_KP_Up, XK_KP_8, /* 80 */
- XK_KP_Prior, XK_KP_9,
- XK_KP_Subtract, NoSymbol,
- XK_KP_Left, XK_KP_4,
- XK_KP_Begin, XK_KP_5,
- XK_KP_Right, XK_KP_6,
- XK_KP_Add, NoSymbol,
- XK_KP_End, XK_KP_1,
- XK_KP_Down, XK_KP_2,
- XK_KP_Next, XK_KP_3,
- XK_KP_Insert, XK_KP_0, /* 90 */
- XK_KP_Delete, XK_KP_Decimal,
- NoSymbol, NoSymbol,
- NoSymbol, NoSymbol,
- NoSymbol, NoSymbol,
- XK_F11, NoSymbol,
- XK_F12, NoSymbol,
- XK_Home, NoSymbol,
- XK_Up, NoSymbol,
- XK_Prior, NoSymbol,
- XK_Left, NoSymbol, /* 100 */
- XK_Print, NoSymbol,
- XK_Right, NoSymbol,
- XK_End, NoSymbol,
- XK_Down, NoSymbol,
- XK_Next, NoSymbol,
- XK_Insert, NoSymbol,
- XK_Delete, NoSymbol,
- XK_KP_Enter, NoSymbol,
- XK_Control_R, NoSymbol,
- XK_Pause, NoSymbol, /* 110 */
- XK_Print, NoSymbol,
- XK_KP_Divide, NoSymbol,
- XK_Alt_R, NoSymbol,
- NoSymbol, NoSymbol,
- XK_Super_L, NoSymbol,
- XK_Super_R, NoSymbol,
- XK_Menu, NoSymbol,
- NoSymbol, NoSymbol,
- NoSymbol, NoSymbol,
- NoSymbol, NoSymbol, /* 120 */
- NoSymbol, NoSymbol
-};
-
-/******************************************************************************/
-static void
-rdpEnqueueKey(DeviceIntPtr device, int type, int scancode)
-{
- if (type == KeyPress)
- {
- xf86PostKeyboardEvent(device, scancode, TRUE);
- }
- else
- {
- xf86PostKeyboardEvent(device, scancode, FALSE);
- }
-}
-
-/******************************************************************************/
-static void
-sendDownUpKeyEvent(DeviceIntPtr device, int type, int x_scancode)
-{
- /* need this cause rdp and X11 repeats are different */
- /* if type is keydown, send keyup + keydown */
- if (type == KeyPress)
- {
- rdpEnqueueKey(device, KeyRelease, x_scancode);
- rdpEnqueueKey(device, KeyPress, x_scancode);
- }
- else
- {
- rdpEnqueueKey(device, KeyRelease, x_scancode);
- }
-}
-
-/******************************************************************************/
-static void
-check_keysa(rdpKeyboard *keyboard)
-{
- if (keyboard->ctrl_down != 0)
- {
- rdpEnqueueKey(keyboard->device, KeyRelease, keyboard->ctrl_down);
- keyboard->ctrl_down = 0;
- }
-
- if (keyboard->alt_down != 0)
- {
- rdpEnqueueKey(keyboard->device, KeyRelease, keyboard->alt_down);
- keyboard->alt_down = 0;
- }
-
- if (keyboard->shift_down != 0)
- {
- rdpEnqueueKey(keyboard->device, KeyRelease, keyboard->shift_down);
- keyboard->shift_down = 0;
- }
-}
-
-/**
- * @param down - true for KeyDown events, false otherwise
- * @param param1 - ASCII code of pressed key
- * @param param2 -
- * @param param3 - scancode of pressed key
- * @param param4 -
- ******************************************************************************/
-static void
-KbdAddEvent(rdpKeyboard *keyboard, int down, int param1, int param2,
- int param3, int param4)
-{
- int rdp_scancode;
- int x_scancode;
- int is_ext;
- int is_spe;
- int type;
-
- type = down ? KeyPress : KeyRelease;
- rdp_scancode = param3;
- is_ext = param4 & 256; /* 0x100 */
- is_spe = param4 & 512; /* 0x200 */
- x_scancode = 0;
-
- switch (rdp_scancode)
- {
- case 58: /* caps lock */
- case 42: /* left shift */
- case 54: /* right shift */
- case 70: /* scroll lock */
- x_scancode = rdp_scancode + MIN_KEY_CODE;
-
- if (x_scancode > 0)
- {
- rdpEnqueueKey(keyboard->device, type, x_scancode);
- }
-
- break;
-
- case 56: /* left - right alt button */
-
- if (is_ext)
- {
- x_scancode = 113; /* right alt button */
- }
- else
- {
- x_scancode = 64; /* left alt button */
- }
-
- rdpEnqueueKey(keyboard->device, type, x_scancode);
- break;
-
- case 15: /* tab */
-
- if (!down && !keyboard->tab_down)
- {
- /* leave x_scancode 0 here, we don't want the tab key up */
- check_keysa(keyboard);
- }
- else
- {
- sendDownUpKeyEvent(keyboard->device, type, 23);
- }
-
- keyboard->tab_down = down;
- break;
-
- case 29: /* left or right ctrl */
-
- /* this is to handle special case with pause key sending control first */
- if (is_spe)
- {
- if (down)
- {
- keyboard->pause_spe = 1;
- /* leave x_scancode 0 here, we don't want the control key down */
- }
- }
- else
- {
- x_scancode = is_ext ? 109 : 37;
- keyboard->ctrl_down = down ? x_scancode : 0;
- rdpEnqueueKey(keyboard->device, type, x_scancode);
- }
-
- break;
-
- case 69: /* Pause or Num Lock */
-
- if (keyboard->pause_spe)
- {
- x_scancode = 110;
-
- if (!down)
- {
- keyboard->pause_spe = 0;
- }
- }
- else
- {
- x_scancode = keyboard->ctrl_down ? 110 : 77;
- }
-
- sendDownUpKeyEvent(keyboard->device, type, x_scancode);
- break;
-
- case 28: /* Enter or Return */
- x_scancode = is_ext ? 108 : 36;
- sendDownUpKeyEvent(keyboard->device, type, x_scancode);
- break;
-
- case 53: /* / */
- x_scancode = is_ext ? 112 : 61;
- sendDownUpKeyEvent(keyboard->device, type, x_scancode);
- break;
-
- case 55: /* * on KP or Print Screen */
- x_scancode = is_ext ? 111 : 63;
- sendDownUpKeyEvent(keyboard->device, type, x_scancode);
- break;
-
- case 71: /* 7 or Home */
- x_scancode = is_ext ? 97 : 79;
- sendDownUpKeyEvent(keyboard->device, type, x_scancode);
- break;
-
- case 72: /* 8 or Up */
- x_scancode = is_ext ? 98 : 80;
- sendDownUpKeyEvent(keyboard->device, type, x_scancode);
- break;
-
- case 73: /* 9 or PgUp */
- x_scancode = is_ext ? 99 : 81;
- sendDownUpKeyEvent(keyboard->device, type, x_scancode);
- break;
-
- case 75: /* 4 or Left */
- x_scancode = is_ext ? 100 : 83;
- sendDownUpKeyEvent(keyboard->device, type, x_scancode);
- break;
-
- case 77: /* 6 or Right */
- x_scancode = is_ext ? 102 : 85;
- sendDownUpKeyEvent(keyboard->device, type, x_scancode);
- break;
-
- case 79: /* 1 or End */
- x_scancode = is_ext ? 103 : 87;
- sendDownUpKeyEvent(keyboard->device, type, x_scancode);
- break;
-
- case 80: /* 2 or Down */
- x_scancode = is_ext ? 104 : 88;
- sendDownUpKeyEvent(keyboard->device, type, x_scancode);
- break;
-
- case 81: /* 3 or PgDn */
- x_scancode = is_ext ? 105 : 89;
- sendDownUpKeyEvent(keyboard->device, type, x_scancode);
- break;
-
- case 82: /* 0 or Insert */
- x_scancode = is_ext ? 106 : 90;
- sendDownUpKeyEvent(keyboard->device, type, x_scancode);
- break;
-
- case 83: /* . or Delete */
- x_scancode = is_ext ? 107 : 91;
- sendDownUpKeyEvent(keyboard->device, type, x_scancode);
- break;
-
- case 91: /* left win key */
- rdpEnqueueKey(keyboard->device, type, 115);
- break;
-
- case 92: /* right win key */
- rdpEnqueueKey(keyboard->device, type, 116);
- break;
-
- case 93: /* menu key */
- rdpEnqueueKey(keyboard->device, type, 117);
- break;
-
- default:
- x_scancode = rdp_scancode + MIN_KEY_CODE;
-
- if (x_scancode > 0)
- {
- sendDownUpKeyEvent(keyboard->device, type, x_scancode);
- }
-
- break;
- }
-}
-
-/******************************************************************************/
-/* notes -
- scroll lock doesn't seem to be a modifier in X
-*/
-static void
-KbdSync(rdpKeyboard *keyboard, int param1)
-{
- int xkb_state;
-
- xkb_state = XkbStateFieldFromRec(&(keyboard->device->key->xkbInfo->state));
-
- if ((!(xkb_state & 0x02)) != (!(param1 & 4))) /* caps lock */
- {
- LLOGLN(0, ("KbdSync: toggling caps lock"));
- KbdAddEvent(keyboard, 1, 58, 0, 58, 0);
- KbdAddEvent(keyboard, 0, 58, 49152, 58, 49152);
- }
-
- if ((!(xkb_state & 0x10)) != (!(param1 & 2))) /* num lock */
- {
- LLOGLN(0, ("KbdSync: toggling num lock"));
- KbdAddEvent(keyboard, 1, 69, 0, 69, 0);
- KbdAddEvent(keyboard, 0, 69, 49152, 69, 49152);
- }
-
- if ((!(keyboard->scroll_lock_down)) != (!(param1 & 1))) /* scroll lock */
- {
- LLOGLN(0, ("KbdSync: toggling scroll lock"));
- KbdAddEvent(keyboard, 1, 70, 0, 70, 0);
- KbdAddEvent(keyboard, 0, 70, 49152, 70, 49152);
- }
-}
-
-/******************************************************************************/
-static int
-rdpInputKeyboard(rdpPtr dev, int msg, long param1, long param2,
- long param3, long param4)
-{
- rdpKeyboard *keyboard;
-
- keyboard = &(dev->keyboard);
- LLOGLN(10, ("rdpInputKeyboard:"));
- switch (msg)
- {
- case 15: /* key down */
- case 16: /* key up */
- KbdAddEvent(keyboard, msg == 15, param1, param2, param3, param4);
- break;
- case 17: /* from RDP_INPUT_SYNCHRONIZE */
- KbdSync(keyboard, param1);
- break;
- }
- return 0;
-}
-
-/******************************************************************************/
-void
-rdpkeybDeviceInit(DeviceIntPtr pDevice, KeySymsPtr pKeySyms, CARD8 *pModMap)
-{
- int i;
-
- LLOGLN(0, ("rdpkeybDeviceInit:"));
- LLOGLN(10, (" MAP_LENGTH %d GLYPHS_PER_KEY %d N_PREDEFINED_KEYS %d",
- MAP_LENGTH, GLYPHS_PER_KEY, (int) N_PREDEFINED_KEYS));
-
- for (i = 0; i < MAP_LENGTH; i++)
- {
- pModMap[i] = NoSymbol;
- }
-
- pModMap[SHIFT_L_KEY_CODE] = ShiftMask;
- pModMap[SHIFT_R_KEY_CODE] = ShiftMask;
- pModMap[CAPS_LOCK_KEY_CODE] = LockMask;
- pModMap[CONTROL_L_KEY_CODE] = ControlMask;
- pModMap[CONTROL_R_KEY_CODE] = ControlMask;
- pModMap[ALT_L_KEY_CODE] = Mod1Mask;
- pModMap[ALT_R_KEY_CODE] = Mod1Mask;
- pModMap[NUM_LOCK_KEY_CODE] = Mod2Mask;
- pModMap[SUPER_L_KEY_CODE] = Mod4Mask;
- pModMap[SUPER_R_KEY_CODE] = Mod4Mask;
- pKeySyms->minKeyCode = MIN_KEY_CODE;
- pKeySyms->maxKeyCode = MAX_KEY_CODE;
- pKeySyms->mapWidth = GLYPHS_PER_KEY;
- i = sizeof(KeySym) * MAP_LENGTH * GLYPHS_PER_KEY;
- pKeySyms->map = (KeySym *)malloc(i);
- if (pKeySyms->map == 0)
- {
- LLOGLN(0, ("rdpkeybDeviceInit: malloc failed"));
- exit(1);
- }
- else
- {
- memset(pKeySyms->map, 0, i);
- }
-
- for (i = 0; i < MAP_LENGTH * GLYPHS_PER_KEY; i++)
- {
- pKeySyms->map[i] = NoSymbol;
- }
-
- for (i = 0; i < N_PREDEFINED_KEYS * GLYPHS_PER_KEY; i++)
- {
- pKeySyms->map[i] = g_kbdMap[i];
- }
-}
-
-/******************************************************************************/
-static void
-rdpkeybDeviceOn(void)
-{
- LLOGLN(0, ("rdpkeybDeviceOn:"));
-}
-
-/******************************************************************************/
-static void
-rdpkeybDeviceOff(void)
-{
- LLOGLN(0, ("rdpkeybDeviceOff:"));
-}
-
-/******************************************************************************/
-static void
-rdpkeybBell(int volume, DeviceIntPtr pDev, pointer ctrl, int cls)
-{
- LLOGLN(0, ("rdpkeybBell:"));
-}
-
-/******************************************************************************/
-static void
-rdpkeybChangeKeyboardControl(DeviceIntPtr pDev, KeybdCtrl *ctrl)
-{
- LLOGLN(0, ("rdpkeybChangeKeyboardControl:"));
-}
-
-/******************************************************************************/
-static int
-rdpkeybControl(DeviceIntPtr device, int what)
-{
- KeySymsRec keySyms;
- CARD8 modMap[MAP_LENGTH];
- DevicePtr pDev;
- XkbRMLVOSet set;
- rdpPtr dev;
-
- LLOGLN(0, ("rdpkeybControl: what %d", what));
- pDev = (DevicePtr)device;
-
- switch (what)
- {
- case DEVICE_INIT:
- rdpkeybDeviceInit(device, &keySyms, modMap);
- memset(&set, 0, sizeof(set));
- set.rules = "base";
- set.model = "pc104";
- set.layout = "us";
- set.variant = "";
- set.options = "";
- InitKeyboardDeviceStruct(device, &set, rdpkeybBell,
- rdpkeybChangeKeyboardControl);
- dev = rdpGetDevFromScreen(NULL);
- dev->keyboard.device = device;
- rdpRegisterInputCallback(0, rdpInputKeyboard);
- break;
- case DEVICE_ON:
- pDev->on = 1;
- rdpkeybDeviceOn();
- break;
- case DEVICE_OFF:
- pDev->on = 0;
- rdpkeybDeviceOff();
- break;
- case DEVICE_CLOSE:
- if (pDev->on)
- {
- rdpkeybDeviceOff();
- }
- break;
- }
- return Success;
-}
-
-#if XORG_VERSION_CURRENT < (((1) * 10000000) + ((9) * 100000) + ((0) * 1000) + 1)
-
-/* debian 6
- ubuntu 10.04 */
-
-/******************************************************************************/
-static InputInfoPtr
-rdpkeybPreInit(InputDriverPtr drv, IDevPtr dev, int flags)
-{
- InputInfoPtr info;
-
- LLOGLN(0, ("rdpkeybPreInit: drv %p dev %p, flags 0x%x",
- drv, dev, flags));
- info = xf86AllocateInput(drv, 0);
- info->name = dev->identifier;
- info->device_control = rdpkeybControl;
- info->flags = XI86_CONFIGURED | XI86_ALWAYS_CORE | XI86_SEND_DRAG_EVENTS |
- XI86_CORE_KEYBOARD | XI86_KEYBOARD_CAPABLE;
- info->type_name = "Keyboard";
- info->fd = -1;
- info->conf_idev = dev;
-
- return info;
-}
-
-#else
-
-/* debian 7
- ubuntu 12.04 */
-
-/******************************************************************************/
-static int
-rdpkeybPreInit(InputDriverPtr drv, InputInfoPtr info, int flags)
-{
- LLOGLN(0, ("rdpkeybPreInit: drv %p info %p, flags 0x%x",
- drv, info, flags));
- info->device_control = rdpkeybControl;
- info->type_name = "Keyboard";
-
- return 0;
-}
-
-#endif
-
-/******************************************************************************/
-static void
-rdpkeybUnInit(InputDriverPtr drv, InputInfoPtr info, int flags)
-{
- LLOGLN(0, ("rdpkeybUnInit: drv %p info %p, flags 0x%x",
- drv, info, flags));
- rdpUnregisterInputCallback(rdpInputKeyboard);
-}
-
-/******************************************************************************/
-static InputDriverRec rdpkeyb =
-{
- PACKAGE_VERSION_MAJOR, /* version */
- XRDP_KEYB_NAME, /* name */
- NULL, /* identify */
- rdpkeybPreInit, /* preinit */
- rdpkeybUnInit, /* uninit */
- NULL, /* module */
- 0 /* ref count */
-};
-
-/******************************************************************************/
-static pointer
-rdpkeybPlug(pointer module, pointer options, int *errmaj, int *errmin)
-{
- LLOGLN(0, ("rdpkeybPlug:"));
- xf86AddInputDriver(&rdpkeyb, module, 0);
- return module;
-}
-
-/******************************************************************************/
-static void
-rdpkeybUnplug(pointer p)
-{
- LLOGLN(0, ("rdpkeybUnplug:"));
-}
-
-/******************************************************************************/
-static XF86ModuleVersionInfo rdpkeybVersionRec =
-{
- XRDP_KEYB_NAME,
- MODULEVENDORSTRING,
- MODINFOSTRING1,
- MODINFOSTRING2,
- XORG_VERSION_CURRENT,
- PACKAGE_VERSION_MAJOR,
- PACKAGE_VERSION_MINOR,
- PACKAGE_VERSION_PATCHLEVEL,
- ABI_CLASS_XINPUT,
- ABI_XINPUT_VERSION,
- MOD_CLASS_XINPUT,
- { 0, 0, 0, 0 }
-};
-
-/******************************************************************************/
-_X_EXPORT XF86ModuleData xrdpkeybModuleData =
-{
- &rdpkeybVersionRec,
- rdpkeybPlug,
- rdpkeybUnplug
-};
diff --git a/xorg/server/xrdpmouse/Makefile.am b/xorg/server/xrdpmouse/Makefile.am
deleted file mode 100644
index 367342a4..00000000
--- a/xorg/server/xrdpmouse/Makefile.am
+++ /dev/null
@@ -1,16 +0,0 @@
-EXTRA_DIST =
-
-AM_CFLAGS = \
- $(XORG_SERVER_CFLAGS) \
- -I../module \
- -I../../../common
-
-xrdpmouse_drv_la_LTLIBRARIES = xrdpmouse_drv.la
-
-xrdpmouse_drv_la_LDFLAGS = -module -avoid-version
-
-xrdpmouse_drv_ladir = $(moduledir)/input
-
-xrdpmouse_drv_la_SOURCES = rdpMouse.c
-
-xrdpmouse_drv_la_LIBADD =
diff --git a/xorg/server/xrdpmouse/rdpMouse.c b/xorg/server/xrdpmouse/rdpMouse.c
deleted file mode 100644
index bb70e8a7..00000000
--- a/xorg/server/xrdpmouse/rdpMouse.c
+++ /dev/null
@@ -1,367 +0,0 @@
-/*
-Copyright 2013-2014 Jay Sorg
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-xrdp mouse module
-
-*/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-/* this should be before all X11 .h files */
-#include <xorg-server.h>
-#include <xorgVersion.h>
-
-/* all driver need this */
-#include <xf86.h>
-#include <xf86_OSproc.h>
-
-#include "xf86Xinput.h"
-
-#include <mipointer.h>
-#include <fb.h>
-#include <micmap.h>
-#include <mi.h>
-#include <exevents.h>
-#include <xserver-properties.h>
-
-#include "rdp.h"
-#include "rdpInput.h"
-#include "rdpDraw.h"
-
-/******************************************************************************/
-#define LOG_LEVEL 1
-#define LLOGLN(_level, _args) \
- do { if (_level < LOG_LEVEL) { ErrorF _args ; ErrorF("\n"); } } while (0)
-
-/******************************************************************************/
-static void
-rdpmouseDeviceInit(void)
-{
- LLOGLN(0, ("rdpmouseDeviceInit:"));
-}
-
-/******************************************************************************/
-static void
-rdpmouseDeviceOn(DeviceIntPtr pDev)
-{
- LLOGLN(0, ("rdpmouseDeviceOn:"));
-}
-
-/******************************************************************************/
-static void
-rdpmouseDeviceOff(void)
-{
- LLOGLN(0, ("rdpmouseDeviceOff:"));
-}
-
-/******************************************************************************/
-static void
-rdpmouseCtrl(DeviceIntPtr pDevice, PtrCtrl *pCtrl)
-{
- LLOGLN(0, ("rdpmouseCtrl:"));
-}
-
-/******************************************************************************/
-static int
-l_bound_by(int val, int low, int high)
-{
- val = RDPCLAMP(val, low, high);
- return val;
-}
-
-/******************************************************************************/
-static void
-rdpEnqueueMotion(DeviceIntPtr device, int x, int y)
-{
- LLOGLN(10, ("rdpEnqueueMotion:"));
- xf86PostMotionEvent(device, TRUE, 0, 2, x, y);
-}
-
-/******************************************************************************/
-static void
-rdpEnqueueButton(DeviceIntPtr device, int type, int buttons)
-{
- LLOGLN(10, ("rdpEnqueueButton:"));
- xf86PostButtonEvent(device, FALSE, buttons, type == ButtonPress, 0, 0);
-}
-
-/******************************************************************************/
-static void
-PtrAddEvent(rdpPointer *pointer)
-{
- int i;
- int type;
- int buttons;
-
- rdpEnqueueMotion(pointer->device, pointer->cursor_x, pointer->cursor_y);
-
- LLOGLN(10, ("PtrAddEvent: x %d y %d", pointer->cursor_x, pointer->cursor_y));
-
- for (i = 0; i < 5; i++)
- {
- if ((pointer->button_mask ^ pointer->old_button_mask) & (1 << i))
- {
- if (pointer->button_mask & (1 << i))
- {
- type = ButtonPress;
- buttons = i + 1;
- rdpEnqueueButton(pointer->device, type, buttons);
- }
- else
- {
- type = ButtonRelease;
- buttons = i + 1;
- rdpEnqueueButton(pointer->device, type, buttons);
- }
- }
- }
-
- pointer->old_button_mask = pointer->button_mask;
-}
-
-/******************************************************************************/
-static int
-rdpInputMouse(rdpPtr dev, int msg,
- long param1, long param2,
- long param3, long param4)
-{
- rdpPointer *pointer;
-
- LLOGLN(10, ("rdpInputMouse: msg %d param1 %ld param2 %ld param3 %ld param4 %ld",
- msg, param1, param2, param3, param4));
- pointer = &(dev->pointer);
- switch (msg)
- {
- case 100:
- /* without the minus 2, strange things happen when dragging
- past the width or height */
- pointer->cursor_x = l_bound_by(param1, 0, dev->width - 2);
- pointer->cursor_y = l_bound_by(param2, 0, dev->height - 2);
- PtrAddEvent(pointer);
- break;
- case 101:
- pointer->button_mask = pointer->button_mask & (~1);
- PtrAddEvent(pointer);
- break;
- case 102:
- pointer->button_mask = pointer->button_mask | 1;
- PtrAddEvent(pointer);
- break;
- case 103:
- pointer->button_mask = pointer->button_mask & (~4);
- PtrAddEvent(pointer);
- break;
- case 104:
- pointer->button_mask = pointer->button_mask | 4;
- PtrAddEvent(pointer);
- break;
- case 105:
- pointer->button_mask = pointer->button_mask & (~2);
- PtrAddEvent(pointer);
- break;
- case 106:
- pointer->button_mask = pointer->button_mask | 2;
- PtrAddEvent(pointer);
- break;
- case 107:
- pointer->button_mask = pointer->button_mask & (~8);
- PtrAddEvent(pointer);
- break;
- case 108:
- pointer->button_mask = pointer->button_mask | 8;
- PtrAddEvent(pointer);
- break;
- case 109:
- pointer->button_mask = pointer->button_mask & (~16);
- PtrAddEvent(pointer);
- break;
- case 110:
- pointer->button_mask = pointer->button_mask | 16;
- PtrAddEvent(pointer);
- break;
- }
- return 0;
-}
-
-/******************************************************************************/
-static int
-rdpmouseControl(DeviceIntPtr device, int what)
-{
- BYTE map[6];
- DevicePtr pDev;
- Atom btn_labels[6];
- Atom axes_labels[2];
- rdpPtr dev;
-
- LLOGLN(0, ("rdpmouseControl: what %d", what));
- pDev = (DevicePtr)device;
-
- switch (what)
- {
- case DEVICE_INIT:
- rdpmouseDeviceInit();
- map[0] = 0;
- map[1] = 1;
- map[2] = 2;
- map[3] = 3;
- map[4] = 4;
- map[5] = 5;
-
- btn_labels[0] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_LEFT);
- btn_labels[1] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_MIDDLE);
- btn_labels[2] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_RIGHT);
- btn_labels[3] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_WHEEL_UP);
- btn_labels[4] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_WHEEL_DOWN);
-
- axes_labels[0] = XIGetKnownProperty(AXIS_LABEL_PROP_REL_X);
- axes_labels[1] = XIGetKnownProperty(AXIS_LABEL_PROP_REL_Y);
-
- InitPointerDeviceStruct(pDev, map, 5, btn_labels, rdpmouseCtrl,
- GetMotionHistorySize(), 2, axes_labels);
- dev = rdpGetDevFromScreen(NULL);
- dev->pointer.device = device;
- rdpRegisterInputCallback(1, rdpInputMouse);
- break;
- case DEVICE_ON:
- pDev->on = 1;
- rdpmouseDeviceOn(device);
- break;
- case DEVICE_OFF:
- pDev->on = 0;
- rdpmouseDeviceOff();
- break;
- case DEVICE_CLOSE:
-
- if (pDev->on)
- {
- rdpmouseDeviceOff();
- }
-
- break;
- }
-
- return Success;
-}
-
-#if XORG_VERSION_CURRENT < (((1) * 10000000) + ((9) * 100000) + ((0) * 1000) + 1)
-
-/* debian 6
- ubuntu 10.04 */
-
-/******************************************************************************/
-static InputInfoPtr
-rdpmousePreInit(InputDriverPtr drv, IDevPtr dev, int flags)
-{
- InputInfoPtr info;
-
- LLOGLN(0, ("rdpmousePreInit: drv %p dev %p, flags 0x%x",
- drv, dev, flags));
- info = xf86AllocateInput(drv, 0);
- info->name = dev->identifier;
- info->device_control = rdpmouseControl;
- info->flags = XI86_CONFIGURED | XI86_ALWAYS_CORE | XI86_SEND_DRAG_EVENTS |
- XI86_CORE_POINTER | XI86_POINTER_CAPABLE;
- info->type_name = "Mouse";
- info->fd = -1;
- info->conf_idev = dev;
-
- return info;
-}
-
-#else
-
-/* debian 7
- ubuntu 12.04 */
-
-/******************************************************************************/
-static int
-rdpmousePreInit(InputDriverPtr drv, InputInfoPtr info, int flags)
-{
- LLOGLN(0, ("rdpmousePreInit: drv %p info %p, flags 0x%x",
- drv, info, flags));
- info->device_control = rdpmouseControl;
- info->type_name = "Mouse";
- return 0;
-}
-
-#endif
-
-/******************************************************************************/
-static void
-rdpmouseUnInit(InputDriverPtr drv, InputInfoPtr info, int flags)
-{
- LLOGLN(0, ("rdpmouseUnInit: drv %p info %p, flags 0x%x",
- drv, info, flags));
- rdpUnregisterInputCallback(rdpInputMouse);
-}
-
-/******************************************************************************/
-static InputDriverRec rdpmouse =
-{
- PACKAGE_VERSION_MAJOR, /* version */
- XRDP_MOUSE_NAME, /* name */
- NULL, /* identify */
- rdpmousePreInit, /* preinit */
- rdpmouseUnInit, /* uninit */
- NULL, /* module */
- 0 /* ref count */
-};
-
-/******************************************************************************/
-static pointer
-rdpmousePlug(pointer module, pointer options, int *errmaj, int *errmin)
-{
- LLOGLN(0, ("rdpmousePlug:"));
- xf86AddInputDriver(&rdpmouse, module, 0);
- return module;
-}
-
-/******************************************************************************/
-static void
-rdpmouseUnplug(pointer p)
-{
- LLOGLN(0, ("rdpmouseUnplug:"));
-}
-
-/******************************************************************************/
-static XF86ModuleVersionInfo rdpmouseVersionRec =
-{
- XRDP_MOUSE_NAME,
- MODULEVENDORSTRING,
- MODINFOSTRING1,
- MODINFOSTRING2,
- XORG_VERSION_CURRENT,
- PACKAGE_VERSION_MAJOR,
- PACKAGE_VERSION_MINOR,
- PACKAGE_VERSION_PATCHLEVEL,
- ABI_CLASS_XINPUT,
- ABI_XINPUT_VERSION,
- MOD_CLASS_XINPUT,
- { 0, 0, 0, 0 }
-};
-
-/******************************************************************************/
-_X_EXPORT XF86ModuleData xrdpmouseModuleData =
-{
- &rdpmouseVersionRec,
- rdpmousePlug,
- rdpmouseUnplug
-};
diff --git a/xrdp/xrdp_keyboard.ini b/xrdp/xrdp_keyboard.ini
index 433d71cf..24722736 100644
--- a/xrdp/xrdp_keyboard.ini
+++ b/xrdp/xrdp_keyboard.ini
@@ -62,6 +62,9 @@ rdp_layout_de=0x00000407
rdp_layout_fr=0x0000040C
rdp_layout_it=0x00000410
rdp_layout_jp=0x00000411
+rdp_layout_jp2=0xe0010411
+rdp_layout_jp3=0xe0200411
+rdp_layout_jp4=0xe0210411
rdp_layout_ru=0x00000419
rdp_layout_se=0x0000041D
rdp_layout_pt=0x00000816
@@ -75,6 +78,9 @@ rdp_layout_de=de
rdp_layout_fr=fr
rdp_layout_it=it
rdp_layout_jp=jp
+rdp_layout_jp2=jp
+rdp_layout_jp3=jp
+rdp_layout_jp4=jp
rdp_layout_ru=ru
rdp_layout_se=se
rdp_layout_pt=pt
@@ -100,6 +106,9 @@ rdp_layout_us=us
rdp_layout_de=de
rdp_layout_fr=fr
rdp_layout_jp=jp
+rdp_layout_jp2=jp
+rdp_layout_jp3=jp
+rdp_layout_jp4=jp
rdp_layout_it=it
rdp_layout_ru=ru
rdp_layout_se=se