From f1984f08b7531d974481e4694bd267ab09ae8b19 Mon Sep 17 00:00:00 2001 From: Diego Waxemberg Date: Sat, 7 Dec 2013 21:22:52 -0500 Subject: [PATCH] added support for keyboard keys a-z --- limelight-pc/.classpath | 1 + limelight-pc/libs/limelight-common.jar | Bin 166896 -> 169831 bytes limelight-pc/src/com/limelight/Limelight.java | 10 ++------ .../src/com/limelight/gui/StreamFrame.java | 9 ++++++- .../com/limelight/input/KeyboardHandler.java | 17 ++++++++++--- .../limelight/input/KeyboardTranslator.java | 24 ++++++++++++++++++ 6 files changed, 48 insertions(+), 13 deletions(-) create mode 100644 limelight-pc/src/com/limelight/input/KeyboardTranslator.java diff --git a/limelight-pc/.classpath b/limelight-pc/.classpath index e9503b8..5c9f161 100644 --- a/limelight-pc/.classpath +++ b/limelight-pc/.classpath @@ -4,5 +4,6 @@ + diff --git a/limelight-pc/libs/limelight-common.jar b/limelight-pc/libs/limelight-common.jar index 27433592e1ee651e06f62eeeaf05ff9b0c54a464..5490a5f11c6e23cda0319ef8f794a6e62c4c8061 100644 GIT binary patch delta 9098 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 gvhi54Ia+wADOV delta 6255 zcmZ9Qby!qg*Z*OV?(XiC77$QLVL-YO7(%2ahQ^U*hM{8+1f;u55KwZYC5A3Rx{;95 z-{|w)@BMqI%jI|LBHFtfaqAgEmg^zZ4VS;C~zhOEdttA%&0>>+c}OOvaR4EF#2MGyn(EWQy-^ zI0ODwBRP>0h2$Y)BQwRsoPVrlGxw%z+8LjVT~ew3v-Im>`9iS*dWX$8Q(NRodY{HZ zuao6^AU@c3aTXe?LP3`$=M>IZ61QF$XW-~fb6-29+DU&Veg|^M7>DB&5xKBCIlMHg zu(jB5d$}0!E4ySAqf|dvG%*iSJIuOMLxg>Epj+EARz^hH|E|>S+@zU!TD2RraCDCo zgvAnR_P{LM*x?JorLp^hHzh5Vd`J>qR(pCKcP=GyRL}!~?-5~QNRkD;NF!l`#PMV{ zL{)b)583K;fXH6$fuZydAkTp*TypX*sg^P>A~-Xp8#Z7+RW#wb-e?2yXFG(u3+B3J z6?;*q9x-*_F$_x!)B4s(5hwB&6r6zYfxIl?7oQgz3nfw!V zc?)j%>yIP5E!6GLSX&_X<~frRmCAx(A1H~8CXm1UC7q+Q2S>RydN3DQ{W!XJ%WbXw zyd9rU9*$%W^S^fydd^U*Wj_pY>pjn1mty|AVy!p$BbXyT^iyvnz2X^hp- zQ%?yCdMTMyB!9Ckl7yQ{s3LrFwh8N=Dkw-`zkEv6_`)ugbdD&MeAy zNm!67)YJM|*O@H2-P|drQcv2)KRXa`J2{z$eGBn@pKi6F9^{&^;F;sj4C~75}|mHr5V$z6?j%gbG~qdUCt>az#wm(h&Sz({NjnNvNF1r3p)@faSg89pj5 zjd@o`2v=K;?EdU{NBWBNI9!-Y6}$hw-tVyFsjnV*$eV-GB5+O=O(XqFqc1u@8(YSC z=zY-5n@O_z8>g8QT+P+cmvf-*Xa)eRwCi@Li)8-Qqk(qFwpv1{%UDm~3>A;BE$s-o zcV#K%9*JCtA&+)*>LC^ROx6d?k2@l;m-YFfcg9oCX0!4&HT_V7NkWuCt0h@Cm8LFS z&b)>RJMg);SZ&gizSl%w6@DOr<#D*mDpdC`@?~%zBpsXrD@gpw0Um7YXIfe3iV-QHVJzwaY8Yh-MD$O$Y{T zU`x&m@v^*E-^r(11{!nWU< zUgjl!z8lxPMZo(LdX&IB`T}c-55g440Fqk&FLyulG+E6J^$cflAr;-|EfMb03^&-x4=GN$+!% z!h&GcAM!i-;&(c%VFzc`lGU$)AgqWTXRD7Z=<2sP~7KVooHMc?1XJD zEc8zN^!bZS^k(H@2&jy-+5R`I#`|eq7C$>eTd1ckdo>pQ!k~Vy;t?OJS^O7_8Xys^ zbU`01O_2%}sb%7Z#fz=t8!0KfS#5#(j@EDTm`uxrD1nB}7N%k&EBdmHH;+4KZ8h*>%uPJz3 zJq^bo&oUphWNrR(mF=31=JEy%E%ZI*JYG)T)MX?#>f7DwP)X}%EevXY2Duj+t2KCu zqgeDjs%^g=H{vE;YHCA>q4-tXnv|7M)wBc(g`=oZl1h_|=bYW9FYRVql;xZd?=K^y zngWr7sa(xgAV?IsoPS zEl-MGkW5PG$EolMYWh03`deGcms9bYU3~>xnPR04D&hwMQLP` zK|vdie4aV<)QSWAHDo{Ey@#wcm0>aXW%4jR*Q7r`)-=TI<`)^@hQuFA8P$}tsgA^7 zZ@PU9$(CZy7H5@2X^TJVaJR5iJ{&IZAhaUQ8$^+&C*|7 zrwqk}^INMz)VJsgK9u1&EHCIc6jW6^`Dq7z)M6DyJ<(o9S*|30{h}MpB*H}avpMGe z;gJi`eBNVaNd_nb8zgbllpzu}vyFR@sxNSm(1tJFTRvi7Co!k3(C<>Ev}I`2_GKlB zl45!Q<%NJgz}`{k#n)&44Xks5a9&(O3spMut6ZuO2BOzr~OXY>#eOsHNZ!Qq|8Sro+NQ44R3b#V>E z1&8DY@!zF?{^-Fk<3Tv!C14(JYb>xK$Yft;w_)jCB@9A{ZwktAsuEscH8d&4#D;}BPb+tS)j=VC9qW`2`9ZG{02OM_&wUuRdWRnxBLpNJt{Gxq8%LWy`0nNB$ngjAl zrH5cQ?y~webZiN=PY|sq%rW_@M@OHOxUzVuLr96&8(djrW8b19KOCI#5}rPGbf&E= zW?JQ8k?*zKb9|$oA&bSQ24_F~DtqJf3(Keb3Bxa}d9C6K4UVrHGIPhnS&9k?a`hNG z_xz<7kSD5DceM1YEX|BM>jNwTUbkGG!!KUm;}nKhmmDI6NPwp~vXP&@Jl>>ycXM5Q z3h4#~+j$3kTLay?wQNBP2Z2)di<&iy{e_>hdD^f9oh}K?J7E`AI%z5+;wJV=BeL*f z+7sq-tFG|Zh|U2vu*k3Y4y}+FrqY(W37ZJ}rvbUiC5P;R{&=!K#Q}ZfAq3+A_f{CY zm8;8sce%YTO#@?c>Ij}_z-cfXCC%>e$$?dH8kh;j3xv zi=3TXTU)p7gJXL=Kao@e5|T_y>Jjo<28+2IO&t8^CQgOET!l1xyI5uV5QQ)ZeK+Vq z|F4j+!f5`ThTa8E{$yBk^6M0}37REb8r_Kk^9j6PDdRh8yAbWfV?JiTRPt+62rL3y z1K%Tl6Ly`~Y4V2l+1jTdY5!5z(M2Ds9_*a%^7P?dAzAG!e$~vBK?B7~ILeyMEr#`* z0G#-hw|NA#tgS$Dm=k@_r6NhU1hfKE<%gWXF+Z7oL_o{1sPr z(#y+hxYAr%cpy6@-VZF$@qRS{HGfY)F|(A@ct}{$u-PB420`r~b?nmm)mm8a3q$vq zP6b$@#0X4!0O^aFm#LIafIQz4NxcoTv?_WxW9riWY-7cS`UJ>w*wVfTDIsl}OG|E_ zH`$X@-pMiKpl^Git_(dZWH{N*nc|Hg2B)>j<#|8yBS0zP|JYhhI-7rGjyg*f7GTl? z_mq1QWj{ajkJY=9mI}ee7T_(KGR>HB%yTxjXjCLb8DEGuwn{wlf)tr2BcA$+e;cJ- z5@?>2)~gi=YqXoXAb3ufpy?OEXdC%M~Ht?;@yf zcM_n~)*BQ1L*dHoYVN8(rcFAoT`JW?HDIqcRgu2q0$H1(&?E>NaoCjucU&BbgRz3% zwzXKejlVW4cDKI|gj@<;)Pp@pgVgl*%w$h{i~t$p4lu$x%E1+HnjE_&l~M_vpqBJ( zUFjq~#|1tAHrefUwjiI{gmAL~y^Mm&@va+(0Xk+`rT{hE8`-CoXTfGy33?@F@F68| z%;gP1YQ1oeoaN{RLAw6AE2F6rxc0nGXny2E?H;-9p7~fDNk3JIh_jS#jP|!6Yli81=lxr zyY6mXu0~Y_oFwHu242&hNlrGB$2uKWo z3Lz2$AZj4y#6$c!$7l%aBqaEIppiBx2{CjrVKAXuDp;jsN-6D{Qg>$I!VdnLd0CLT zT9Bt&7pBtaCP%~>A5TPxGkHOKmfL9EU>sT5W(;}!TkW^H$z?~l5^+E+&7${c$JTzx zMJwXd@4FxOF&bt~#*5f&WpKq7(LSu=&GJ7wl zI|rV+`qcR^uS$-HCH%4l2#I(d#*=sYDQ*Ld`3#4h&&7bo)I^Qalks&PZE(MbO~#oU zz4}rJ`^jXPmY^I{?xAc0QHn!LSx7SXMVNso*0!2%4@Q)kB-21nc$kjl*%O0T>`rOJ zsQD+$mG)=tZuLopcH6$jHKyGjI3b7C=&m-9Fr7q%752VpVfub0nd$X_=uoxlj-jQI zsLzBk2e_?ZO^!ZWkK>IC9>L%Psk8NV*ccW3R}JXMvf%*3ot+~y?sWEHDnvu2K7Thg z%4wKSm$<|*S($}2H@oL;>X=k;sF_u0`OXXYX?erT`RlPM-u4aV4+Y;u4(np`cbZAz zuxQR~b^gGh_ul{_0>_Na22!edNCp;I=y}QWrCICop%D!tqY?c)Zf_+#9dOT%zx;>} zSH)Uc*v{o>Sz2dt5XBg$2t+cAaymbXTj)nv>nLFbM-*$kD-z2;zQ*YI+In{?GRh;7 z>$eH@kOS;dJ2P#VJhD70b-U-2-AwsMg6mVM8L;M1v(@)V{R#N&W_(teXh^zW> z1>ST?-W!=jUtv2)!_t755sUns^A9iWJmYufC^)cJb&LA`Y;)M#ONjGix+ljdO(*Tz zFo8>w$GO(GxcYX|ky)5G-_4~Oh%e(>^xYR(%%L7Co3>iKX#-I=lNEWfSrfK{DfG{? zD|A8h>#y%GdTso{KL@X7wvc$A6wV9-pKljIsz*qVhdyCA{dhi*=9gG8D1k-y{fMl? zq5tCtoP1(S*fW-Ir!J5H--u6J+!JKMc=Z>eYCFV1C1O#YkIey*;eFJtm;82$ft2-u zZ<(m8FY}Qf(p^^j$(6<*k;(N}G0hBxcMwP5UN29H@ppI1+3JC&Ja6zWEwrM{aC?t9 z55XMjP+x>;SkflDBt8GybEzPpH?^x&&G&+pRbXd&iP33}jUS{+#6y(E_Abj!s_DfD zuXsW1k)0AoFtoLW;Vv6Hs19WJHsN)+!jq;@N3hV;N!o0MT@h-U4;M$8 z@-tVoM4xHun@KJSPN&KsDV;tN5b=tpGy7qYgEzbVOEAzS{G+0igVR;fd6;oRqqGzB z+m;-W0Kc2~>CYD)8^OfECP>n3)1a`CQ-Y;pNQrjs_#}J#Egk%j6eQ2quY8>#XM2lx zCyf3u#14y*a*oML>XzDVEwOoPy>px^q4-{ocr9>62h$!v)&eVHo4Ez|?{NRLB6Sb@ z8@+oN7?F74^J6XZW0;0bfPE-JG!mc!Ktd6|kpPoFcI>~FFX}&j=zr}z+L9xo(aQg} zGz<)Wgi^3NHpD8P;tff)m^1K4r?vBHRy7&JupJy0|~LKg-gLF~r>!~mVV{{sJb z04?G<6udGN&lmX5j`;UDpqQL0ZA-C7SIet zYbJz4EIM);2~hk9}PqhW{Kz_e8GQp+aDbR`KuX|(E2zWt)&npPyiVsCF#$W zMx%i+VlfFlqi9M>Ub+N=5QYxwC8L9t>F6K_A|V+d0a$p8*1U+lWPm(CJnyg8O#wUt z= KeyEvent.VK_A && keycode <= KeyEvent.VK_Z) { + return (short) (KEYCODE_A + (short)(keycode - KeyEvent.VK_A)); + } + return 0; + } + +}