DELTA 332857 0 203 SVNaJ :I^9Ibthidd_evdev_support="AUTO" # AUTO depends on EVDEV_SUPPORT kernel optionENDREP DELTA 298514 1492 49 SVNr B01A@evdev_enabled() { case ${bthidd_evdev_support} in [Aa][Uu][Tt][Oo]) check_kern_features evdev_support return $? ;; *) checkyesno bthidd_evdev_support return $? ;; esac } bthidd_prestart() { if evdev_enabled; then load_kld -m uinput uinput fiif evdev_enabled; then command_args="$command_args -u" fiENDREP DELTA 283246 0 21 SVN*5 ?x2>btuinput.c client.c hid.c kbd.c lexer.l parser.y \ server.c ENDREP DELTA 333112 554 57 SVNSf . u,E,mouse : 1; unsigned has_wheel : 1; unsigned has_hwheel : 1; unsigned has_cons : 1; unsigned reserved : 7ENDREP DELTA 267668 8718 25 SVN.L,C2TN_O*April 30, 2018Op Fl uIt Fl u Enable support for input event device protocol. Requires evdev and uinput drivers to be loaded with .Xr kldload 8 or compiled into the kernelENDREP DELTA 326276 95470 68 SVNF]81#?j;(, uinput; memset(&srv, 0, sizeof(srv)); memset(&srv.bdaddr, 0, sizeof(srv.bdaddr)); detach = 1; tval = 10; /* sec */ uinput = 0; while ((opt = getopt(argc, argv, "a:c:dH:hp:t:uu': /* enable evdev support */ uinput = 1srv.uinput = uinput -u enable evdev protocol supportENDREP DELTA 326276 95566 68 SVN6M c|3OZ& int32_t uinput; /* enable evdev supportint32_t ukbd; /* evdev user input */ int32_t umouse;/* evdev user input */ int32_t obutt; /* previous mouse buttons */ int32_t consk; /* last consumer page keyint32_t session_run (bthid_session_p sENDREP DELTA SVN%P%%x^;ksH,u'0ݞ V V' w{v~eSWEZ뀑dږl:L t=Lï֭aǴ e!钁=jm2[P lܮ WSZGܡ:>buL_4s`tؗ׆YVYJ&dE)]@ȎzҨ*ެ:1> 9YyH0:@ѪQ Cz5ö00ȕt|$}û6uG,ǧF6 4=Pe4Cߤj3]CB=jCUTfБ"]@ {R5 u0aWgPƕe^nଃnLߨLLvKeRV̏a>ntR̶$݆]⇣'X_&WO̮1r.66 sHROEL#F0{҂l)$M,[l9,QD[Y+ CV ]lcȮ43&Lhwo/|:L[4FffHsH~| ߫{dݠκӱ >̫!# b!v} 4dc,F83bXϷ#,0z/k`_b3=?Tl6*}vY2 8ǏpkkF@:{"߸ƚ6kt֠^8]\5?/5.k~f5_8dkܰknY kilxšS֜5dMuպ:R]Q1!3,*A]M*o\L{3ҶHlNP-˱j 2i9nk՝HQ/F]P vDtNELhy֩V\ ]Υ4v)mqn}!\<؜ ~p 2>aqn}5nI}}W/L/%{]ׂXVK:39*?c*?W*Rtll:7㺁BrivUu<~( ]r"y-OZ%wzB9QP虀s)()(BYgR:$3J8 _Bg5]D$ 3 !X@P4[*T"Rɒ[ӣ5ß]'1}cZBr|Z PCJ܎* ?HIw.˵*U%/5 ֖H\k,@R.ظTv)u m)R'ShRj(#&\ %`R&)Jrk+|ithcuT&JCjR=Ĝ4#ij3u}*4|,&4hRGʹP۸bJ&+K3k@ 9o&ٕps* =[UfB{xC,|aIR26/ #b9WPk `~SR vd6jU(v-9ޥOLE%Wڰc:*I*5 gt7UEpY8PE0h5vIʛԍKafRA6epg( @^p=۠0= >ՕBU*b5O T#jVK*31j#MD%jD.(&.;[ QiV\;R%iiNK䵉OOCu,7) ã dd$iеU VRoH[Oԕn>;~@xG%:W#58 !8~QuÕN.[qkTEt/Ft>OU|$--tY'( t|opYq\N"[Mbھ۫pJ{R.02/okhEOq!mh($c" is鳑q1ZiXb w fya ]+eZ!(+fwpztlNI"@͈zHM >{hYJ?>7bm/*?zQNc $=:iI*P|@cxdrAsax|N a$:%J8N[G3q`D8쳓C(<'Di tz |;#s?c;vLPâQ4BM@6(1{ ;C+i܎qD؈b3e R=hRp>6q )aN.ػ\2O'Y̗8UsCtdsy!l\@#̫yNؕ/ , A\&e^W2v;lCu-^ߓ_ZB̍d6JW"-(@$_+H8eP As1…b\ϰ ѧWn.G!ț7/cEe$zhlpt K:8pdοbdi# Y$$Īҡп 9X2$?H~lEc*w-0j &G oqxX5b4׳4p?0 Y}ыD(et^ Hb$(D ;Sd++wi~\`oeÊ?F]ı 03qr3d , .,DᛒDoU o[6x^JI)Jmfv{[<OkdRnQ6߿o՞@E8߇nY#گ5rr1~VgCU6Yy?ui#U}H@(2w2YcYw;yU;E6,b`eG"! &NWu,4A8ӧP>5([>H-x+ԄPۊO/p!Rdg.8˶uX`-9 ?Ht1sd1񠁵uz6E*}% l؎a,>PY$9D|0򇮋bh7~!oPA6xV'0s[KcDp a/@!ѺtHNY7$._꒘߹aZ{3 -* MAx2gʢW}TU ʇRTBJeQ^qC[K$)C燪B}˧j$PW<X p +y^'_7kM-M*k8Qqk}YN7OO-*7Լ49V Mp|ɂz2]4p8u^l텚Pd~z ~a^վQ.,\䳰Ӫe^9Uc`ΰ{bM%#wB'BzI+08Bim|{sx?n8Kvl\vxE%.,ˋ9 ׯXʞ-,AX~>u>IWY毽$zEX2Y|gut9 лp? w]&G#?bQNt1ZދDa*" blxi(F>>wLzYo\d*MzIXԮ.NoV˹~ PAJ;K*/nTv׼ݮyl?%Gjf| !靤C~rb[2\F)a2vD( R * @]Ͳ z8g]YL"+|5[hވf @DENDREP DELTA SVNYx^Tao6 _A\[8a0̱Fcg6rJ4Bm+tݯ:Hz-0` DIpf0kUjHh|7è:ƍR .'2F?l-/O?'BJ7e#/O]Ͽ2ï!,K-4U^ɫ˘GsmŔEIH$BXȜ$L.A(H 6ӜDus" %>qQg{"a t:8?9:(+FS^pY3sy F,C_QP,t=*єkeyboard && s->srv->uinput) { if (h.flags & HIO_VARIABLE) { uinput_rep_cons(s->ukbd, usage, !!val); } else { if (s->consk > 0) uinput_rep_cons(s->ukbd, s->consk, 0); if (uinput_rep_cons(s->ukbd, val, 1) == 0) s->consk = val; } } if (hid_device->mouse && s->srv->uinput && uinput_rep_mouse(s->umouse, mouse_x, mouse_y, mouse_z, mouse_t, mouse_butt, s->obutt s->obutt = mouse_buttENDREP DELTA 326276 95851 71 SVN}l[(Zw6iN8vK 9RZfy8G@tXy`Os)uibiPx^OO0Si.v ՛6mݝVV&Ûof^a[56A / _4ZH}-U1`mOTb1q0ǫRe ^ _Ԃ(z##PCZQJ7s˂ ,`X B%`AT!D(໤r> ǭ46tEj4\1;Z1 x*7%MJƏ .D[_M?ik;.8 ÍME~,\!Lɞ8!a_L ENDREP DELTA 333112 976 381 SVNz!T YlY5BhI,Nx^͒]O0Wo"^J0YFq@FQ\؋=}o[YLІV!Ci>ׅYAuZm c@2]icEi64X$лK%&7v5=ˮJ?]6`mnGΰ}XO SB(䘄{k|_t5 <o",5Wg;MI7]itͼY`Jye!U (  Et%C&J˾. >ʿ1state == OPEN && session_run(s) < 0) { session_close(s); return (-1); } b[1024]; vkbd_status_t s; struct input_event ie; } if (fd == s->ukbd) { cb = uinput_kbd_status_changed; to_read = sizeof(data.ieENDREP DELTA 326276 96336 68 SVNaI/p.(o\Sbv [xix^Tn0=K_15W 8ImrIҢNz+ P&#i iyAt9Հ,q7ofT2բpóy憗ӧ/q:;/<r5NX8t &8LGRj#%$G1h6~\har׭rs9\iCѕ \ɪC{1&q$W;Z )mɔ gCU{ވ%-Ep#̢VC1<@ٚ1LpAYkZzcPSЈe S:[̲}A gNCsg<ǩ,:;@-~A#_ZS+= X'Qs/4]&8Lx IoVM,Tv@х81&y~[\C,A+X$65mNS=̊f2@ʄV680HQ=.Yu;r'@q$j_iox )S9*5mHo&