commit
32f172853f
@ -1,3 +1,6 @@
|
||||
[submodule "librfxcodec"]
|
||||
path = librfxcodec
|
||||
url = git://github.com/neutrinolabs/librfxcodec
|
||||
[submodule "xorgxrdp"]
|
||||
path = xorgxrdp
|
||||
url = git://github.com/neutrinolabs/xorgxrdp
|
||||
|
@ -0,0 +1,156 @@
|
||||
/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 4; tab-width: 4 -*- */
|
||||
/*
|
||||
* evdev-map.c
|
||||
* Copyright (C) Michał Górny 2014 <mgorny@gentoo.org>
|
||||
*
|
||||
* You may redistribute it and/or modify it under the terms of the
|
||||
* GNU General Public License, as published by the Free Software
|
||||
* Foundation; either version 2 of the License, or (at your option)
|
||||
* any later version.
|
||||
*
|
||||
* main.cc is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* See the GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with main.cc. If not, write to:
|
||||
* The Free Software Foundation, Inc.,
|
||||
* 51 Franklin Street, Fifth Floor
|
||||
* Boston, MA 02110-1301, USA
|
||||
*
|
||||
* xfree86(base)->evdev keycode mapping
|
||||
*/
|
||||
|
||||
int xfree86_to_evdev[137-8+1] = {
|
||||
/* MDSW */ 203,
|
||||
/* ESC */ 9,
|
||||
/* AE01 */ 10,
|
||||
/* AE02 */ 11,
|
||||
/* AE03 */ 12,
|
||||
/* AE04 */ 13,
|
||||
/* AE05 */ 14,
|
||||
/* AE06 */ 15,
|
||||
/* AE07 */ 16,
|
||||
/* AE08 */ 17,
|
||||
/* AE09 */ 18,
|
||||
/* AE10 */ 19,
|
||||
/* AE11 */ 20,
|
||||
/* AE12 */ 21,
|
||||
/* BKSP */ 22,
|
||||
/* TAB */ 23,
|
||||
/* AD01 */ 24,
|
||||
/* AD02 */ 25,
|
||||
/* AD03 */ 26,
|
||||
/* AD04 */ 27,
|
||||
/* AD05 */ 28,
|
||||
/* AD06 */ 29,
|
||||
/* AD07 */ 30,
|
||||
/* AD08 */ 31,
|
||||
/* AD09 */ 32,
|
||||
/* AD10 */ 33,
|
||||
/* AD11 */ 34,
|
||||
/* AD12 */ 35,
|
||||
/* RTRN */ 36,
|
||||
/* LCTL */ 37,
|
||||
/* AC01 */ 38,
|
||||
/* AC02 */ 39,
|
||||
/* AC03 */ 40,
|
||||
/* AC04 */ 41,
|
||||
/* AC05 */ 42,
|
||||
/* AC06 */ 43,
|
||||
/* AC07 */ 44,
|
||||
/* AC08 */ 45,
|
||||
/* AC09 */ 46,
|
||||
/* AC10 */ 47,
|
||||
/* AC11 */ 48,
|
||||
/* TLDE */ 49,
|
||||
/* LFSH */ 50,
|
||||
/* BKSL */ 51,
|
||||
/* AB01 */ 52,
|
||||
/* AB02 */ 53,
|
||||
/* AB03 */ 54,
|
||||
/* AB04 */ 55,
|
||||
/* AB05 */ 56,
|
||||
/* AB06 */ 57,
|
||||
/* AB07 */ 58,
|
||||
/* AB08 */ 59,
|
||||
/* AB09 */ 60,
|
||||
/* AB10 */ 61,
|
||||
/* RTSH */ 62,
|
||||
/* KPMU */ 63,
|
||||
/* LALT */ 64,
|
||||
/* SPCE */ 65,
|
||||
/* CAPS */ 66,
|
||||
/* FK01 */ 67,
|
||||
/* FK02 */ 68,
|
||||
/* FK03 */ 69,
|
||||
/* FK04 */ 70,
|
||||
/* FK05 */ 71,
|
||||
/* FK06 */ 72,
|
||||
/* FK07 */ 73,
|
||||
/* FK08 */ 74,
|
||||
/* FK09 */ 75,
|
||||
/* FK10 */ 76,
|
||||
/* NMLK */ 77,
|
||||
/* SCLK */ 78,
|
||||
/* KP7 */ 79,
|
||||
/* KP8 */ 80,
|
||||
/* KP9 */ 81,
|
||||
/* KPSU */ 82,
|
||||
/* KP4 */ 83,
|
||||
/* KP5 */ 84,
|
||||
/* KP6 */ 85,
|
||||
/* KPAD */ 86,
|
||||
/* KP1 */ 87,
|
||||
/* KP2 */ 88,
|
||||
/* KP3 */ 89,
|
||||
/* KP0 */ 90,
|
||||
/* KPDL */ 91,
|
||||
/* SYRQ */ 107,
|
||||
/* II5D */ 0,
|
||||
/* LSGT */ 94,
|
||||
/* FK11 */ 95,
|
||||
/* FK12 */ 96,
|
||||
/* HOME */ 110,
|
||||
/* UP */ 111,
|
||||
/* PGUP */ 112,
|
||||
/* LEFT */ 113,
|
||||
/* II65 */ 0,
|
||||
/* RGHT */ 114,
|
||||
/* END */ 115,
|
||||
/* DOWN */ 116,
|
||||
/* PGDN */ 117,
|
||||
/* INS */ 118,
|
||||
/* DELE */ 119,
|
||||
/* KPEN */ 104,
|
||||
/* RCTL */ 105,
|
||||
/* PAUS */ 127,
|
||||
/* PRSC */ 107,
|
||||
/* KPDV */ 106,
|
||||
/* RALT */ 108,
|
||||
/* BRK */ 419,
|
||||
/* LWIN */ 133,
|
||||
/* RWIN */ 134,
|
||||
/* MENU */ 0,
|
||||
/* FK13 */ 191,
|
||||
/* FK14 */ 192,
|
||||
/* FK15 */ 193,
|
||||
/* FK16 */ 194,
|
||||
/* FK17 */ 195,
|
||||
/* KPDC */ 0,
|
||||
/* LVL3 */ 92,
|
||||
/* ALT */ 204,
|
||||
/* KPEQ */ 125,
|
||||
/* SUPR */ 206,
|
||||
/* HYPR */ 207,
|
||||
/* XFER */ 0,
|
||||
/* I02 */ 0,
|
||||
/* NFER */ 0,
|
||||
/* I04 */ 0,
|
||||
/* AE13 */ 132,
|
||||
/* I06 */ 0,
|
||||
/* I07 */ 0,
|
||||
0,
|
||||
0
|
||||
};
|
@ -0,0 +1,791 @@
|
||||
[noshift]
|
||||
Key8=65406:0
|
||||
Key9=65307:27
|
||||
Key10=49:49
|
||||
Key11=50:50
|
||||
Key12=51:51
|
||||
Key13=52:52
|
||||
Key14=53:53
|
||||
Key15=54:54
|
||||
Key16=55:55
|
||||
Key17=56:56
|
||||
Key18=57:57
|
||||
Key19=48:48
|
||||
Key20=45:45
|
||||
Key21=61:61
|
||||
Key22=65288:8
|
||||
Key23=65289:9
|
||||
Key24=113:113
|
||||
Key25=119:119
|
||||
Key26=101:101
|
||||
Key27=114:114
|
||||
Key28=116:116
|
||||
Key29=121:121
|
||||
Key30=117:117
|
||||
Key31=105:105
|
||||
Key32=111:111
|
||||
Key33=112:112
|
||||
Key34=91:91
|
||||
Key35=93:93
|
||||
Key36=65293:13
|
||||
Key37=65507:0
|
||||
Key38=97:97
|
||||
Key39=115:115
|
||||
Key40=100:100
|
||||
Key41=102:102
|
||||
Key42=103:103
|
||||
Key43=104:104
|
||||
Key44=106:106
|
||||
Key45=107:107
|
||||
Key46=108:108
|
||||
Key47=59:59
|
||||
Key48=39:39
|
||||
Key49=96:96
|
||||
Key50=65505:0
|
||||
Key51=92:92
|
||||
Key52=122:122
|
||||
Key53=120:120
|
||||
Key54=99:99
|
||||
Key55=118:118
|
||||
Key56=98:98
|
||||
Key57=110:110
|
||||
Key58=109:109
|
||||
Key59=44:44
|
||||
Key60=46:46
|
||||
Key61=47:47
|
||||
Key62=65506:0
|
||||
Key63=65450:42
|
||||
Key64=65513:0
|
||||
Key65=32:32
|
||||
Key66=65509:0
|
||||
Key67=65470:0
|
||||
Key68=65471:0
|
||||
Key69=65472:0
|
||||
Key70=65473:0
|
||||
Key71=65474:0
|
||||
Key72=65475:0
|
||||
Key73=65476:0
|
||||
Key74=65477:0
|
||||
Key75=65478:0
|
||||
Key76=65479:0
|
||||
Key77=65407:0
|
||||
Key78=65300:0
|
||||
Key79=65429:0
|
||||
Key80=65431:0
|
||||
Key81=65434:0
|
||||
Key82=65453:45
|
||||
Key83=65430:0
|
||||
Key84=65437:0
|
||||
Key85=65432:0
|
||||
Key86=65451:43
|
||||
Key87=65436:0
|
||||
Key88=65433:0
|
||||
Key89=65435:0
|
||||
Key90=65438:0
|
||||
Key91=65439:0
|
||||
Key92=65377:0
|
||||
Key93=0:0
|
||||
Key94=60:60
|
||||
Key95=65480:0
|
||||
Key96=65481:0
|
||||
Key97=65360:0
|
||||
Key98=65362:0
|
||||
Key99=65365:0
|
||||
Key100=65361:0
|
||||
Key101=0:0
|
||||
Key102=65363:0
|
||||
Key103=65367:0
|
||||
Key104=65364:0
|
||||
Key105=65366:0
|
||||
Key106=65379:0
|
||||
Key107=65535:127
|
||||
Key108=65421:13
|
||||
Key109=65508:0
|
||||
Key110=65299:0
|
||||
Key111=65377:0
|
||||
Key112=65455:47
|
||||
Key113=65027:0
|
||||
Key114=269025049:0
|
||||
Key115=65515:0
|
||||
Key116=65312:0
|
||||
Key117=0:0
|
||||
Key118=269025153:0
|
||||
Key119=269025093:0
|
||||
Key120=269025094:0
|
||||
Key121=269025095:0
|
||||
Key122=269025096:0
|
||||
Key123=0:0
|
||||
Key124=65027:0
|
||||
Key125=0:0
|
||||
Key126=65469:61
|
||||
Key127=0:0
|
||||
Key128=0:0
|
||||
Key129=0:0
|
||||
Key130=0:0
|
||||
Key131=0:0
|
||||
Key132=0:0
|
||||
Key133=0:0
|
||||
Key134=0:0
|
||||
Key135=0:0
|
||||
Key136=0:0
|
||||
Key137=0:0
|
||||
|
||||
[shift]
|
||||
Key8=65406:0
|
||||
Key9=65307:27
|
||||
Key10=33:33
|
||||
Key11=64:64
|
||||
Key12=35:35
|
||||
Key13=36:36
|
||||
Key14=37:37
|
||||
Key15=94:94
|
||||
Key16=38:38
|
||||
Key17=42:42
|
||||
Key18=40:40
|
||||
Key19=41:41
|
||||
Key20=95:95
|
||||
Key21=43:43
|
||||
Key22=65288:8
|
||||
Key23=65056:0
|
||||
Key24=81:81
|
||||
Key25=87:87
|
||||
Key26=69:69
|
||||
Key27=82:82
|
||||
Key28=84:84
|
||||
Key29=89:89
|
||||
Key30=85:85
|
||||
Key31=73:73
|
||||
Key32=79:79
|
||||
Key33=80:80
|
||||
Key34=123:123
|
||||
Key35=125:125
|
||||
Key36=65293:13
|
||||
Key37=65507:0
|
||||
Key38=65:65
|
||||
Key39=83:83
|
||||
Key40=68:68
|
||||
Key41=70:70
|
||||
Key42=71:71
|
||||
Key43=72:72
|
||||
Key44=74:74
|
||||
Key45=75:75
|
||||
Key46=76:76
|
||||
Key47=58:58
|
||||
Key48=34:34
|
||||
Key49=126:126
|
||||
Key50=65505:0
|
||||
Key51=124:124
|
||||
Key52=90:90
|
||||
Key53=88:88
|
||||
Key54=67:67
|
||||
Key55=86:86
|
||||
Key56=66:66
|
||||
Key57=78:78
|
||||
Key58=77:77
|
||||
Key59=60:60
|
||||
Key60=62:62
|
||||
Key61=63:63
|
||||
Key62=65506:0
|
||||
Key63=65450:42
|
||||
Key64=65032:0
|
||||
Key65=32:32
|
||||
Key66=65509:0
|
||||
Key67=65470:0
|
||||
Key68=65471:0
|
||||
Key69=65472:0
|
||||
Key70=65473:0
|
||||
Key71=65474:0
|
||||
Key72=65475:0
|
||||
Key73=65476:0
|
||||
Key74=65477:0
|
||||
Key75=65478:0
|
||||
Key76=65479:0
|
||||
Key77=65407:0
|
||||
Key78=65300:0
|
||||
Key79=65463:55
|
||||
Key80=65464:56
|
||||
Key81=65465:57
|
||||
Key82=65453:45
|
||||
Key83=65460:52
|
||||
Key84=65461:53
|
||||
Key85=65462:54
|
||||
Key86=65451:43
|
||||
Key87=65457:49
|
||||
Key88=65458:50
|
||||
Key89=65459:51
|
||||
Key90=65456:48
|
||||
Key91=65452:44
|
||||
Key92=65377:0
|
||||
Key93=0:0
|
||||
Key94=62:62
|
||||
Key95=65480:0
|
||||
Key96=65481:0
|
||||
Key97=65360:0
|
||||
Key98=65362:0
|
||||
Key99=65365:0
|
||||
Key100=65361:0
|
||||
Key101=0:0
|
||||
Key102=65363:0
|
||||
Key103=65367:0
|
||||
Key104=65364:0
|
||||
Key105=65366:0
|
||||
Key106=65379:0
|
||||
Key107=65535:127
|
||||
Key108=65421:13
|
||||
Key109=65508:0
|
||||
Key110=65299:0
|
||||
Key111=65377:0
|
||||
Key112=65455:47
|
||||
Key113=65027:0
|
||||
Key114=269025049:0
|
||||
Key115=65515:0
|
||||
Key116=65312:0
|
||||
Key117=0:0
|
||||
Key118=269025153:0
|
||||
Key119=269025093:0
|
||||
Key120=269025094:0
|
||||
Key121=269025095:0
|
||||
Key122=269025096:0
|
||||
Key123=0:0
|
||||
Key124=65027:0
|
||||
Key125=65513:0
|
||||
Key126=65469:61
|
||||
Key127=65515:0
|
||||
Key128=65517:0
|
||||
Key129=0:0
|
||||
Key130=0:0
|
||||
Key131=0:0
|
||||
Key132=0:0
|
||||
Key133=0:0
|
||||
Key134=0:0
|
||||
Key135=0:0
|
||||
Key136=0:0
|
||||
Key137=0:0
|
||||
|
||||
[altgr]
|
||||
Key8=65406:0
|
||||
Key9=65307:27
|
||||
Key10=2237:8800
|
||||
Key11=178:178
|
||||
Key12=179:179
|
||||
Key13=162:162
|
||||
Key14=8364:8364
|
||||
Key15=189:189
|
||||
Key16=167:167
|
||||
Key17=183:183
|
||||
Key18=171:171
|
||||
Key19=187:187
|
||||
Key20=2730:8211
|
||||
Key21=65115:184
|
||||
Key22=65288:8
|
||||
Key23=65289:9
|
||||
Key24=2032:960
|
||||
Key25=5053:339
|
||||
Key26=490:281
|
||||
Key27=169:169
|
||||
Key28=223:223
|
||||
Key29=2299:8592
|
||||
Key30=2302:8595
|
||||
Key31=2301:8594
|
||||
Key32=243:243
|
||||
Key33=254:254
|
||||
Key34=65111:168
|
||||
Key35=65107:126
|
||||
Key36=65293:13
|
||||
Key37=65507:0
|
||||
Key38=433:261
|
||||
Key39=438:347
|
||||
Key40=240:240
|
||||
Key41=230:230
|
||||
Key42=959:331
|
||||
Key43=2769:8217
|
||||
Key44=16777817:601
|
||||
Key45=2734:8230
|
||||
Key46=435:322
|
||||
Key47=65105:180
|
||||
Key48=65106:94
|
||||
Key49=172:172
|
||||
Key50=65505:0
|
||||
Key51=65104:96
|
||||
Key52=447:380
|
||||
Key53=444:378
|
||||
Key54=486:263
|
||||
Key55=2814:8222
|
||||
Key56=2771:8221
|
||||
Key57=497:324
|
||||
Key58=181:181
|
||||
Key59=2236:8804
|
||||
Key60=2238:8805
|
||||
Key61=65120:0
|
||||
Key62=65506:0
|
||||
Key63=65450:42
|
||||
Key64=65513:0
|
||||
Key65=160:160
|
||||
Key66=65509:0
|
||||
Key67=65470:0
|
||||
Key68=65471:0
|
||||
Key69=65472:0
|
||||
Key70=65473:0
|
||||
Key71=65474:0
|
||||
Key72=65475:0
|
||||
Key73=65476:0
|
||||
Key74=65477:0
|
||||
Key75=65478:0
|
||||
Key76=65479:0
|
||||
Key77=65407:0
|
||||
Key78=65300:0
|
||||
Key79=65429:0
|
||||
Key80=65431:0
|
||||
Key81=65434:0
|
||||
Key82=65453:45
|
||||
Key83=65430:0
|
||||
Key84=65437:0
|
||||
Key85=65432:0
|
||||
Key86=65451:43
|
||||
Key87=65436:0
|
||||
Key88=65433:0
|
||||
Key89=65435:0
|
||||
Key90=65438:0
|
||||
Key91=65439:0
|
||||
Key92=65377:0
|
||||
Key93=0:0
|
||||
Key94=124:124
|
||||
Key95=65480:0
|
||||
Key96=65481:0
|
||||
Key97=65360:0
|
||||
Key98=65362:0
|
||||
Key99=65365:0
|
||||
Key100=65361:0
|
||||
Key101=0:0
|
||||
Key102=65363:0
|
||||
Key103=65367:0
|
||||
Key104=65364:0
|
||||
Key105=65366:0
|
||||
Key106=65379:0
|
||||
Key107=65535:127
|
||||
Key108=65421:13
|
||||
Key109=65508:0
|
||||
Key110=65299:0
|
||||
Key111=65377:0
|
||||
Key112=65455:47
|
||||
Key113=65027:0
|
||||
Key114=269025049:0
|
||||
Key115=65515:0
|
||||
Key116=65312:0
|
||||
Key117=0:0
|
||||
Key118=269025153:0
|
||||
Key119=269025093:0
|
||||
Key120=269025094:0
|
||||
Key121=269025095:0
|
||||
Key122=269025096:0
|
||||
Key123=0:0
|
||||
Key124=65027:0
|
||||
Key125=0:0
|
||||
Key126=65469:61
|
||||
Key127=0:0
|
||||
Key128=0:0
|
||||
Key129=0:0
|
||||
Key130=0:0
|
||||
Key131=0:0
|
||||
Key132=0:0
|
||||
Key133=0:0
|
||||
Key134=0:0
|
||||
Key135=0:0
|
||||
Key136=0:0
|
||||
Key137=0:0
|
||||
|
||||
[shiftaltgr]
|
||||
Key8=65406:0
|
||||
Key9=65307:27
|
||||
Key10=161:161
|
||||
Key11=191:191
|
||||
Key12=163:163
|
||||
Key13=188:188
|
||||
Key14=16785456:8240
|
||||
Key15=2270:8743
|
||||
Key16=16785992:8776
|
||||
Key17=190:190
|
||||
Key18=177:177
|
||||
Key19=176:176
|
||||
Key20=2729:8212
|
||||
Key21=65116:731
|
||||
Key22=65288:8
|
||||
Key23=65056:0
|
||||
Key24=2009:937
|
||||
Key25=5052:338
|
||||
Key26=458:280
|
||||
Key27=174:174
|
||||
Key28=2761:8482
|
||||
Key29=165:165
|
||||
Key30=2300:8593
|
||||
Key31=16785812:8596
|
||||
Key32=211:211
|
||||
Key33=222:222
|
||||
Key34=65112:176
|
||||
Key35=65108:175
|
||||
Key36=65293:13
|
||||
Key37=65507:0
|
||||
Key38=417:260
|
||||
Key39=422:346
|
||||
Key40=208:208
|
||||
Key41=198:198
|
||||
Key42=957:330
|
||||
Key43=16785442:8226
|
||||
Key44=16777615:399
|
||||
Key45=65123:0
|
||||
Key46=419:321
|
||||
Key47=65113:733
|
||||
Key48=65114:711
|
||||
Key49=2271:8744
|
||||
Key50=65505:0
|
||||
Key51=65109:728
|
||||
Key52=431:379
|
||||
Key53=428:377
|
||||
Key54=454:262
|
||||
Key55=2768:8216
|
||||
Key56=2770:8220
|
||||
Key57=465:323
|
||||
Key58=2242:8734
|
||||
Key59=215:215
|
||||
Key60=247:247
|
||||
Key61=65110:729
|
||||
Key62=65506:0
|
||||
Key63=65450:42
|
||||
Key64=65032:0
|
||||
Key65=160:160
|
||||
Key66=65509:0
|
||||
Key67=65470:0
|
||||
Key68=65471:0
|
||||
Key69=65472:0
|
||||
Key70=65473:0
|
||||
Key71=65474:0
|
||||
Key72=65475:0
|
||||
Key73=65476:0
|
||||
Key74=65477:0
|
||||
Key75=65478:0
|
||||
Key76=65479:0
|
||||
Key77=65407:0
|
||||
Key78=65300:0
|
||||
Key79=65463:55
|
||||
Key80=65464:56
|
||||
Key81=65465:57
|
||||
Key82=65453:45
|
||||
Key83=65460:52
|
||||
Key84=65461:53
|
||||
Key85=65462:54
|
||||
Key86=65451:43
|
||||
Key87=65457:49
|
||||
Key88=65458:50
|
||||
Key89=65459:51
|
||||
Key90=65456:48
|
||||
Key91=65452:44
|
||||
Key92=65377:0
|
||||
Key93=0:0
|
||||
Key94=166:166
|
||||
Key95=65480:0
|
||||
Key96=65481:0
|
||||
Key97=65360:0
|
||||
Key98=65362:0
|
||||
Key99=65365:0
|
||||
Key100=65361:0
|
||||
Key101=0:0
|
||||
Key102=65363:0
|
||||
Key103=65367:0
|
||||
Key104=65364:0
|
||||
Key105=65366:0
|
||||
Key106=65379:0
|
||||
Key107=65535:127
|
||||
Key108=65421:13
|
||||
Key109=65508:0
|
||||
Key110=65299:0
|
||||
Key111=65377:0
|
||||
Key112=65455:47
|
||||
Key113=65027:0
|
||||
Key114=269025049:0
|
||||
Key115=65515:0
|
||||
Key116=65312:0
|
||||
Key117=0:0
|
||||
Key118=269025153:0
|
||||
Key119=269025093:0
|
||||
Key120=269025094:0
|
||||
Key121=269025095:0
|
||||
Key122=269025096:0
|
||||
Key123=0:0
|
||||
Key124=65027:0
|
||||
Key125=65513:0
|
||||
Key126=65469:61
|
||||
Key127=65515:0
|
||||
Key128=65517:0
|
||||
Key129=0:0
|
||||
Key130=0:0
|
||||
Key131=0:0
|
||||
Key132=0:0
|
||||
Key133=0:0
|
||||
Key134=0:0
|
||||
Key135=0:0
|
||||
Key136=0:0
|
||||
Key137=0:0
|
||||
|
||||
[capslock]
|
||||
Key8=65406:0
|
||||
Key9=65307:27
|
||||
Key10=49:49
|
||||
Key11=50:50
|
||||
Key12=51:51
|
||||
Key13=52:52
|
||||
Key14=53:53
|
||||
Key15=54:54
|
||||
Key16=55:55
|
||||
Key17=56:56
|
||||
Key18=57:57
|
||||
Key19=48:48
|
||||
Key20=45:45
|
||||
Key21=61:61
|
||||
Key22=65288:8
|
||||
Key23=65289:9
|
||||
Key24=81:81
|
||||
Key25=87:87
|
||||
Key26=69:69
|
||||
Key27=82:82
|
||||
Key28=84:84
|
||||
Key29=89:89
|
||||
Key30=85:85
|
||||
Key31=73:73
|
||||
Key32=79:79
|
||||
Key33=80:80
|
||||
Key34=91:91
|
||||
Key35=93:93
|
||||
Key36=65293:13
|
||||
Key37=65507:0
|
||||
Key38=65:65
|
||||
Key39=83:83
|
||||
Key40=68:68
|
||||
Key41=70:70
|
||||
Key42=71:71
|
||||
Key43=72:72
|
||||
Key44=74:74
|
||||
Key45=75:75
|
||||
Key46=76:76
|
||||
Key47=59:59
|
||||
Key48=39:39
|
||||
Key49=96:96
|
||||
Key50=65505:0
|
||||
Key51=92:92
|
||||
Key52=90:90
|
||||
Key53=88:88
|
||||
Key54=67:67
|
||||
Key55=86:86
|
||||
Key56=66:66
|
||||
Key57=78:78
|
||||
Key58=77:77
|
||||
Key59=44:44
|
||||
Key60=46:46
|
||||
Key61=47:47
|
||||
Key62=65506:0
|
||||
Key63=65450:42
|
||||
Key64=65513:0
|
||||
Key65=32:32
|
||||
Key66=65509:0
|
||||
Key67=65470:0
|
||||
Key68=65471:0
|
||||
Key69=65472:0
|
||||
Key70=65473:0
|
||||
Key71=65474:0
|
||||
Key72=65475:0
|
||||
Key73=65476:0
|
||||
Key74=65477:0
|
||||
Key75=65478:0
|
||||
Key76=65479:0
|
||||
Key77=65407:0
|
||||
Key78=65300:0
|
||||
Key79=65429:0
|
||||
Key80=65431:0
|
||||
Key81=65434:0
|
||||
Key82=65453:45
|
||||
Key83=65430:0
|
||||
Key84=65437:0
|
||||
Key85=65432:0
|
||||
Key86=65451:43
|
||||
Key87=65436:0
|
||||
Key88=65433:0
|
||||
Key89=65435:0
|
||||
Key90=65438:0
|
||||
Key91=65439:0
|
||||
Key92=65377:0
|
||||
Key93=0:0
|
||||
Key94=60:60
|
||||
Key95=65480:0
|
||||
Key96=65481:0
|
||||
Key97=65360:0
|
||||
Key98=65362:0
|
||||
Key99=65365:0
|
||||
Key100=65361:0
|
||||
Key101=0:0
|
||||
Key102=65363:0
|
||||
Key103=65367:0
|
||||
Key104=65364:0
|
||||
Key105=65366:0
|
||||
Key106=65379:0
|
||||
Key107=65535:127
|
||||
Key108=65421:13
|
||||
Key109=65508:0
|
||||
Key110=65299:0
|
||||
Key111=65377:0
|
||||
Key112=65455:47
|
||||
Key113=65027:0
|
||||
Key114=269025049:0
|
||||
Key115=65515:0
|
||||
Key116=65312:0
|
||||
Key117=0:0
|
||||
Key118=269025153:0
|
||||
Key119=269025093:0
|
||||
Key120=269025094:0
|
||||
Key121=269025095:0
|
||||
Key122=269025096:0
|
||||
Key123=0:0
|
||||
Key124=65027:0
|
||||
Key125=0:0
|
||||
Key126=65469:61
|
||||
Key127=0:0
|
||||
Key128=0:0
|
||||
Key129=0:0
|
||||
Key130=0:0
|
||||
Key131=0:0
|
||||
Key132=0:0
|
||||
Key133=0:0
|
||||
Key134=0:0
|
||||
Key135=0:0
|
||||
Key136=0:0
|
||||
Key137=0:0
|
||||
[shiftcapslock]
|
||||
Key8=65406:0
|
||||
Key9=65307:27
|
||||
Key10=33:33
|
||||
Key11=64:64
|
||||
Key12=35:35
|
||||
Key13=36:36
|
||||
Key14=37:37
|
||||
Key15=94:94
|
||||
Key16=38:38
|
||||
Key17=42:42
|
||||
Key18=40:40
|
||||
Key19=41:41
|
||||
Key20=95:95
|
||||
Key21=43:43
|
||||
Key22=65288:8
|
||||
Key23=65056:0
|
||||
Key24=113:113
|
||||
Key25=119:119
|
||||
Key26=101:101
|
||||
Key27=114:114
|
||||
Key28=116:116
|
||||
Key29=121:121
|
||||
Key30=117:117
|
||||
Key31=105:105
|
||||
Key32=111:111
|
||||
Key33=112:112
|
||||
Key34=123:123
|
||||
Key35=125:125
|
||||
Key36=65293:13
|
||||
Key37=65507:0
|
||||
Key38=97:97
|
||||
Key39=115:115
|
||||
Key40=100:100
|
||||
Key41=102:102
|
||||
Key42=103:103
|
||||
Key43=104:104
|
||||
Key44=106:106
|
||||
Key45=107:107
|
||||
Key46=108:108
|
||||
Key47=58:58
|
||||
Key48=34:34
|
||||
Key49=126:126
|
||||
Key50=65505:0
|
||||
Key51=124:124
|
||||
Key52=122:122
|
||||
Key53=120:120
|
||||
Key54=99:99
|
||||
Key55=118:118
|
||||
Key56=98:98
|
||||
Key57=110:110
|
||||
Key58=109:109
|
||||
Key59=60:60
|
||||
Key60=62:62
|
||||
Key61=63:63
|
||||
Key62=65506:0
|
||||
Key63=65450:42
|
||||
Key64=65032:0
|
||||
Key65=32:32
|
||||
Key66=65509:0
|
||||
Key67=65470:0
|
||||
Key68=65471:0
|
||||
Key69=65472:0
|
||||
Key70=65473:0
|
||||
Key71=65474:0
|
||||
Key72=65475:0
|
||||
Key73=65476:0
|
||||
Key74=65477:0
|
||||
Key75=65478:0
|
||||
Key76=65479:0
|
||||
Key77=65407:0
|
||||
Key78=65300:0
|
||||
Key79=65463:55
|
||||
Key80=65464:56
|
||||
Key81=65465:57
|
||||
Key82=65453:45
|
||||
Key83=65460:52
|
||||
Key84=65461:53
|
||||
Key85=65462:54
|
||||
Key86=65451:43
|
||||
Key87=65457:49
|
||||
Key88=65458:50
|
||||
Key89=65459:51
|
||||
Key90=65456:48
|
||||
Key91=65452:44
|
||||
Key92=65377:0
|
||||
Key93=0:0
|
||||
Key94=62:62
|
||||
Key95=65480:0
|
||||
Key96=65481:0
|
||||
Key97=65360:0
|
||||
Key98=65362:0
|
||||
Key99=65365:0
|
||||
Key100=65361:0
|
||||
Key101=0:0
|
||||
Key102=65363:0
|
||||
Key103=65367:0
|
||||
Key104=65364:0
|
||||
Key105=65366:0
|
||||
Key106=65379:0
|
||||
Key107=65535:127
|
||||
Key108=65421:13
|
||||
Key109=65508:0
|
||||
Key110=65299:0
|
||||
Key111=65377:0
|
||||
Key112=65455:47
|
||||
Key113=65027:0
|
||||
Key114=269025049:0
|
||||
Key115=65515:0
|
||||
Key116=65312:0
|
||||
Key117=0:0
|
||||
Key118=269025153:0
|
||||
Key119=269025093:0
|
||||
Key120=269025094:0
|
||||
Key121=269025095:0
|
||||
Key122=269025096:0
|
||||
Key123=0:0
|
||||
Key124=65027:0
|
||||
Key125=65513:0
|
||||
Key126=65469:61
|
||||
Key127=65515:0
|
||||
Key128=65517:0
|
||||
Key129=0:0
|
||||
Key130=0:0
|
||||
Key131=0:0
|
||||
Key132=0:0
|
||||
Key133=0:0
|
||||
Key134=0:0
|
||||
Key135=0:0
|
||||
Key136=0:0
|
||||
Key137=0:0
|
||||
|
@ -1 +1 @@
|
||||
Subproject commit de6a45cba607b902da704304fa3de8ddd3d15239
|
||||
Subproject commit 61f6e92ecdfd057215da7932b6afefcbfa928446
|
@ -0,0 +1,73 @@
|
||||
/**
|
||||
* xrdp: A Remote Desktop Protocol server.
|
||||
*
|
||||
* Copyright (C) Laxmikant Rashinkar 2009-2014
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#include "chansrv_common.h"
|
||||
|
||||
/**
|
||||
* Assemble fragmented incoming packets into one stream
|
||||
*
|
||||
* @param src stream that contains partial data
|
||||
* @param dest stream that contains entire data
|
||||
* @param chan_flags fragmentation flags
|
||||
* @param length bytes in this packet
|
||||
* @param total_length total length of assembled packet
|
||||
*
|
||||
* @return 1 when all data has been assembled, 0 otherwise
|
||||
*
|
||||
* NOTE: it is the responsibility of the caller to free dest stream
|
||||
****************************************************************************/
|
||||
int
|
||||
read_entire_packet(struct stream *src, struct stream **dest, int chan_flags,
|
||||
int length, int total_length)
|
||||
{
|
||||
struct stream *ls;
|
||||
|
||||
if ((chan_flags & 3) == 3)
|
||||
{
|
||||
/* packet not fragmented */
|
||||
xstream_new(ls, total_length);
|
||||
xstream_copyin(ls, src->p, length);
|
||||
ls->p = ls->data;
|
||||
*dest = ls;
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* is this the first fragmented packet? */
|
||||
if (chan_flags & 1)
|
||||
{
|
||||
xstream_new(ls, total_length);
|
||||
*dest = ls;
|
||||
}
|
||||
else
|
||||
{
|
||||
ls = *dest;
|
||||
}
|
||||
|
||||
xstream_copyin(ls, src->p, length);
|
||||
|
||||
/* in last packet, chan_flags & 0x02 will be true */
|
||||
if (chan_flags & 0x02)
|
||||
{
|
||||
/* rewind stream */
|
||||
ls->p = ls->data;
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -0,0 +1,27 @@
|
||||
/**
|
||||
* xrdp: A Remote Desktop Protocol server.
|
||||
*
|
||||
* Copyright (C) Laxmikant Rashinkar 2009-2014
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#ifndef _CHANSRV_COMMON_H
|
||||
#define _CHANSRV_COMMON_H
|
||||
|
||||
#include "parse.h"
|
||||
|
||||
int read_entire_packet(struct stream *src, struct stream **dest, int chan_flags, int length, int total_length);
|
||||
|
||||
#endif
|
||||
|
@ -1,36 +0,0 @@
|
||||
moduledir := $(shell pkg-config xorg-server --variable moduledir)
|
||||
|
||||
all: allmake
|
||||
|
||||
allmake:
|
||||
cd module; $(MAKE) $(MFLAGS)
|
||||
cd xrdpdev; $(MAKE) $(MFLAGS)
|
||||
cd xrdpkeyb; $(MAKE) $(MFLAGS)
|
||||
cd xrdpmouse; $(MAKE) $(MFLAGS)
|
||||
|
||||
clean: allclean
|
||||
|
||||
allclean:
|
||||
cd module; $(MAKE) clean
|
||||
cd xrdpdev; $(MAKE) clean
|
||||
cd xrdpkeyb; $(MAKE) clean
|
||||
cd xrdpmouse; $(MAKE) clean
|
||||
|
||||
xinstall:
|
||||
strip module/libxorgxrdp.so
|
||||
strip xrdpdev/xrdpdev_drv.so
|
||||
strip xrdpmouse/xrdpmouse_drv.so
|
||||
strip xrdpkeyb/xrdpkeyb_drv.so
|
||||
|
||||
mkdir -p $(HOME)/xorg-modules/drivers $(HOME)/xorg-modules/input
|
||||
cp module/libxorgxrdp.so $(HOME)/xorg-modules/
|
||||
cp xrdpdev/xrdpdev_drv.so $(HOME)/xorg-modules/drivers/
|
||||
cp xrdpmouse/xrdpmouse_drv.so $(HOME)/xorg-modules/input/
|
||||
cp xrdpkeyb/xrdpkeyb_drv.so $(HOME)/xorg-modules/input/
|
||||
|
||||
install:
|
||||
install --directory $(DESTDIR)$(moduledir) $(DESTDIR)$(moduledir)/drivers $(DESTDIR)$(moduledir)/input
|
||||
install --mode=0644 --strip module/libxorgxrdp.so $(DESTDIR)$(moduledir)
|
||||
install --mode=0644 --strip xrdpdev/xrdpdev_drv.so $(DESTDIR)$(moduledir)/drivers/
|
||||
install --mode=0644 --strip xrdpmouse/xrdpmouse_drv.so $(DESTDIR)$(moduledir)/input/
|
||||
install --mode=0644 --strip xrdpkeyb/xrdpkeyb_drv.so $(DESTDIR)$(moduledir)/input/
|
@ -0,0 +1,7 @@
|
||||
EXTRA_DIST = bootstrap readme.txt
|
||||
|
||||
SUBDIRS = \
|
||||
module \
|
||||
xrdpdev \
|
||||
xrdpkeyb \
|
||||
xrdpmouse
|
@ -0,0 +1,36 @@
|
||||
#!/bin/sh
|
||||
|
||||
which autoconf
|
||||
if ! test $? -eq 0
|
||||
then
|
||||
echo "error, install autoconf"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
which automake
|
||||
if ! test $? -eq 0
|
||||
then
|
||||
echo "error, install automake"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
which libtool
|
||||
if ! test $? -eq 0
|
||||
then
|
||||
echo "error, install libtool"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
which pkg-config
|
||||
if ! test $? -eq 0
|
||||
then
|
||||
echo "error, install pkg-config"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
touch configure.ac
|
||||
touch NEWS
|
||||
touch AUTHORS
|
||||
touch README
|
||||
touch ChangeLog
|
||||
autoreconf -fvi
|
@ -0,0 +1,35 @@
|
||||
# Process this file with autoconf to produce a configure script
|
||||
|
||||
AC_PREREQ(2.59)
|
||||
AC_INIT([xrdpmod], [0.1.0], [xrdp-devel@lists.sourceforge.net])
|
||||
AC_CONFIG_HEADERS(config_ac.h:config_ac-h.in)
|
||||
AM_INIT_AUTOMAKE([1.6 foreign])
|
||||
AC_PROG_CC
|
||||
AC_C_CONST
|
||||
AC_PROG_LIBTOOL
|
||||
|
||||
AM_CONDITIONAL(GOT_PREFIX, test "x${prefix}" != "xNONE"])
|
||||
|
||||
AC_CHECK_HEADER([xorg/xorg-server.h], [],
|
||||
[AC_MSG_ERROR([please install xserver-xorg-dev or xorg-x11-server-sdk])])
|
||||
|
||||
PKG_CHECK_MODULES([XORG_SERVER], [xorg-server >= 0])
|
||||
AC_SUBST([XORG_SERVER_CFLAGS])
|
||||
AC_SUBST([XORG_SERVER_LIBS])
|
||||
|
||||
moduledir=`pkg-config xorg-server --variable=moduledir`
|
||||
AC_SUBST([moduledir])
|
||||
|
||||
if test "x${prefix}" = "xNONE" ; then
|
||||
sysconfdir="/etc";
|
||||
fi
|
||||
|
||||
AC_CONFIG_FILES([Makefile
|
||||
module/Makefile
|
||||
xrdpdev/Makefile
|
||||
xrdpkeyb/Makefile
|
||||
xrdpmouse/Makefile
|
||||
])
|
||||
|
||||
AC_OUTPUT
|
||||
|
@ -1,60 +0,0 @@
|
||||
|
||||
OBJS = rdpDraw.o rdpPri.o rdpGC.o rdpFillSpans.o rdpSetSpans.o rdpPutImage.o \
|
||||
rdpCopyArea.o rdpCopyPlane.o rdpPolyPoint.o rdpPolylines.o rdpPolySegment.o \
|
||||
rdpPolyRectangle.o rdpPolyArc.o rdpFillPolygon.o rdpPolyFillRect.o \
|
||||
rdpPolyFillArc.o rdpPolyText8.o rdpPolyText16.o rdpImageText8.o \
|
||||
rdpImageText16.o rdpImageGlyphBlt.o rdpPolyGlyphBlt.o rdpPushPixels.o \
|
||||
rdpCursor.o rdpMain.o rdpRandR.o rdpMisc.o rdpReg.o \
|
||||
rdpComposite.o rdpGlyphs.o rdpPixmap.o rdpInput.o rdpClientCon.o rdpCapture.o \
|
||||
rdpTrapezoids.o rdpXv.o rdpSimd.o
|
||||
|
||||
;OBJS += cpuid_x86.o i420_to_rgb32_x86_sse2.o yv12_to_rgb32_x86_sse2.o yuy2_to_rgb32_x86_sse2.o uyvy_to_rgb32_x86_sse2.o
|
||||
;OBJS += cpuid_amd64.o i420_to_rgb32_amd64_sse2.o yv12_to_rgb32_amd64_sse2.o yuy2_to_rgb32_amd64_sse2.o uyvy_to_rgb32_amd64_sse2.o
|
||||
|
||||
CFLAGS = -g -O2 -Wall -fPIC -I/usr/include/xorg -I/usr/include/pixman-1 \
|
||||
-I../../../common
|
||||
|
||||
;CFLAGS += -DSIMD_USE_ACCEL=1
|
||||
|
||||
LDFLAGS =
|
||||
|
||||
LIBS =
|
||||
|
||||
all: libxorgxrdp.so
|
||||
|
||||
libxorgxrdp.so: $(OBJS) Makefile
|
||||
$(CC) -shared -o libxorgxrdp.so $(LDFLAGS) $(OBJS) $(LIBS)
|
||||
|
||||
clean:
|
||||
rm -f $(OBJS) libxorgxrdp.so
|
||||
|
||||
cpuid_x86.o: x86/cpuid_x86.asm
|
||||
yasm -f elf32 -g dwarf2 x86/cpuid_x86.asm
|
||||
|
||||
i420_to_rgb32_x86_sse2.o: x86/i420_to_rgb32_x86_sse2.asm
|
||||
yasm -f elf32 -g dwarf2 x86/i420_to_rgb32_x86_sse2.asm
|
||||
|
||||
yv12_to_rgb32_x86_sse2.o: x86/yv12_to_rgb32_x86_sse2.asm
|
||||
yasm -f elf32 -g dwarf2 x86/yv12_to_rgb32_x86_sse2.asm
|
||||
|
||||
yuy2_to_rgb32_x86_sse2.o: x86/yuy2_to_rgb32_x86_sse2.asm
|
||||
yasm -f elf32 -g dwarf2 x86/yuy2_to_rgb32_x86_sse2.asm
|
||||
|
||||
uyvy_to_rgb32_x86_sse2.o: x86/uyvy_to_rgb32_x86_sse2.asm
|
||||
yasm -f elf32 -g dwarf2 x86/uyvy_to_rgb32_x86_sse2.asm
|
||||
|
||||
cpuid_amd64.o: amd64/cpuid_amd64.asm
|
||||
yasm -f elf64 -g dwarf2 amd64/cpuid_amd64.asm
|
||||
|
||||
i420_to_rgb32_amd64_sse2.o: amd64/i420_to_rgb32_amd64_sse2.asm
|
||||
yasm -f elf64 -g dwarf2 amd64/i420_to_rgb32_amd64_sse2.asm
|
||||
|
||||
yv12_to_rgb32_amd64_sse2.o: amd64/yv12_to_rgb32_amd64_sse2.asm
|
||||
yasm -f elf64 -g dwarf2 amd64/yv12_to_rgb32_amd64_sse2.asm
|
||||
|
||||
yuy2_to_rgb32_amd64_sse2.o: amd64/yuy2_to_rgb32_amd64_sse2.asm
|
||||
yasm -f elf64 -g dwarf2 amd64/yuy2_to_rgb32_amd64_sse2.asm
|
||||
|
||||
uyvy_to_rgb32_amd64_sse2.o: amd64/uyvy_to_rgb32_amd64_sse2.asm
|
||||
yasm -f elf64 -g dwarf2 amd64/uyvy_to_rgb32_amd64_sse2.asm
|
||||
|
@ -0,0 +1,22 @@
|
||||
EXTRA_DIST =
|
||||
|
||||
AM_CFLAGS = \
|
||||
$(XORG_SERVER_CFLAGS) \
|
||||
-I../../../common
|
||||
|
||||
libxorgxrdp_la_LTLIBRARIES = libxorgxrdp.la
|
||||
|
||||
libxorgxrdp_la_LDFLAGS = -module -avoid-version
|
||||
|
||||
libxorgxrdp_ladir = $(moduledir)
|
||||
|
||||
libxorgxrdp_la_SOURCES = rdpDraw.c rdpPri.c rdpGC.c rdpFillSpans.c \
|
||||
rdpSetSpans.c rdpPutImage.c rdpCopyArea.c rdpCopyPlane.c rdpPolyPoint.c \
|
||||
rdpPolylines.c rdpPolySegment.c rdpPolyRectangle.c rdpPolyArc.c \
|
||||
rdpFillPolygon.c rdpPolyFillRect.c rdpPolyFillArc.c rdpPolyText8.c \
|
||||
rdpPolyText16.c rdpImageText8.c rdpImageText16.c rdpImageGlyphBlt.c \
|
||||
rdpPolyGlyphBlt.c rdpPushPixels.c rdpCursor.c rdpMain.c rdpRandR.c \
|
||||
rdpMisc.c rdpReg.c rdpComposite.c rdpGlyphs.c rdpPixmap.c rdpInput.c \
|
||||
rdpClientCon.c rdpCapture.c rdpTrapezoids.c rdpXv.c rdpSimd.c
|
||||
|
||||
libxorgxrdp_la_LIBADD =
|
@ -0,0 +1,174 @@
|
||||
;
|
||||
;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
|
||||
|
@ -1,17 +0,0 @@
|
||||
|
||||
OBJS = xrdpdev.o
|
||||
|
||||
CFLAGS = -g -O2 -Wall -fPIC -I/usr/include/xorg -I/usr/include/pixman-1 \
|
||||
-I../module -I../../../common
|
||||
|
||||
LDFLAGS =
|
||||
|
||||
LIBS =
|
||||
|
||||
all: xrdpdev_drv.so
|
||||
|
||||
xrdpdev_drv.so: $(OBJS) Makefile
|
||||
$(CC) -shared -o xrdpdev_drv.so $(LDFLAGS) $(OBJS) $(LIBS)
|
||||
|
||||
clean:
|
||||
rm -f $(OBJS) xrdpdev_drv.so
|
@ -0,0 +1,17 @@
|
||||
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 =
|
@ -1,17 +0,0 @@
|
||||
|
||||
OBJS = rdpKeyboard.o
|
||||
|
||||
CFLAGS = -g -O2 -Wall -fPIC -I/usr/include/xorg -I/usr/include/pixman-1 \
|
||||
-I../module -I../../../common
|
||||
|
||||
LDFLAGS =
|
||||
|
||||
LIBS =
|
||||
|
||||
all: xrdpkeyb_drv.so
|
||||
|
||||
xrdpkeyb_drv.so: $(OBJS) Makefile
|
||||
$(CC) -shared -o xrdpkeyb_drv.so $(LDFLAGS) $(OBJS) $(LIBS)
|
||||
|
||||
clean:
|
||||
rm -f $(OBJS) xrdpkeyb_drv.so
|
@ -0,0 +1,16 @@
|
||||
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 =
|
@ -1,17 +0,0 @@
|
||||
|
||||
OBJS = rdpMouse.o
|
||||
|
||||
CFLAGS = -g -O2 -Wall -fPIC -I/usr/include/xorg -I/usr/include/pixman-1 \
|
||||
-I../module -I../../../common
|
||||
|
||||
LDFLAGS =
|
||||
|
||||
LIBS =
|
||||
|
||||
all: xrdpmouse_drv.so
|
||||
|
||||
xrdpmouse_drv.so: $(OBJS) Makefile
|
||||
$(CC) -shared -o xrdpmouse_drv.so $(LDFLAGS) $(OBJS) $(LIBS)
|
||||
|
||||
clean:
|
||||
rm -f $(OBJS) xrdpmouse_drv.so
|
@ -0,0 +1,16 @@
|
||||
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 =
|
@ -0,0 +1 @@
|
||||
Subproject commit 7c4d67356db815a9b4b003fca06394f43aaf7f82
|
Loading…
Reference in new issue