From 49f86225cb45f86a33788295fe99469dd2e197c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kamil=20Trzci=C5=84ski?= Date: Fri, 16 Dec 2022 10:36:23 +0100 Subject: [PATCH] Update `hidapi.net` to properly `Dispose()` device --- ExternalHelpers/hidapi.net.dll | Bin 12800 -> 11264 bytes PowerControl/Controller.cs | 13 ++++--------- SteamController/Devices/SteamController.cs | 7 +++++++ 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/ExternalHelpers/hidapi.net.dll b/ExternalHelpers/hidapi.net.dll index 54f1ddf77a9ff6efbf2c2d28fd51a5bcadb813e7..eafb757766d45f29cc9ed756a689576416834520 100644 GIT binary patch delta 4891 zcmaJ^3viXi6+XNF^WKDz+&syPn}j4cHwh#`!oy+=Nl>H_5P~3&5JCzmn1o!S;x)O6 zC=;orguhs|R`FE^9nm(9iggBY80}bmwT?R2sW8DFDRV5I%d{(k~!+nf2nJ>NNJ z_w1fMyZ@j5HT_F=4Ca^he{&yszxOFW7$+)-CO~1jO0#b0k;Ms5&LWz}id95|+E89{ zd_Pe&dK^Qzg1?Mp&aLco)w!3mqOW#W$J}mFIK6aH7|iKlFJjv zY%p=c)OD&y3!WrHDQegsEI>!+pXXyM;@z0Gy}exvRl>Q*9y1aYqrU443+#=gu~af` z8u>9U?Tpm86G6UsBG^$(5-S|J}!>Q6_l&7VuX~d6A z!gmRxZA>-||Non2BV@UhC<#}KCK4-*HR@8p@uv70fYALhi%h{^dVLJuzkCTImu zW>Q@Dhul#uH~d$b-peOS%Cjc+#EcZ9OC$v7wOJiyOz*^OF%Zk0s82rcX}!7XBv!fO zhpN#T$CFd3+BD~|RT3-Zej3lilzJ!5nST>@HYO?q764uwITH7As8D7i+9u_{G7X_@quWQ-{DHQLj< zNqy!~!=#7Jbog}o7>8`utdorGVkdlFB9`|W9SHxLvOY^Jzb$z}*C>t8TIn-sQ1#kp zaFk~(?lnwDV`!FHJkZrTtFBWacl%gAsD^$+=`T|HZ|t3%0(zAJS>eA#YBaYPwWI8I zutqRL*>WT^2`~1nx3?JA;^xB%0_)OO>#;_>2g79JW_-wAt@qFvnn@bia=0{7hQ~PB zjg(0>%9gHJHq|PI+a9)DszZop>>?rPpa=t>Q}}_w@+LV0*1L^z$hYYgz%^pBFsUmh zrh>dEYJtZ@gIL`EHqC+IdSeFmupdL1v`yg|lQkzy){Ixyixpmu7boa!)@3pKWs{AEJ>xEAJmRs7EVg~>vAxRnt;g=P z+2+q9{I=Sy%9if2D!ClCdc_9pD^LLzt@LcWL0*3<^J+wDkuup&P_ z;o3-u4Z=@{JXS1Qz&7BTLwNcZZ36qH#}ZSvthCVyr7Ne7+ z#uQmYad<_J9K#w)R%{D7s$-#-c^tueRZ zQzH@+HTt`em>3hdA`%lB+36ECP`QbWzA*?n%H|2vNB zKho=SOnoF`%pK@_m8*FQLu>Sv7l4B~$b?4hsgLS)T0lN(vIGt)-<;!sekuVbQl-M_ z3TqY4QMf?iQiUxsG^y0C$VP>m6}|y9aR=}~jF}4a=q{!Il6J}x`jWO8Q|J^uhd0A1 zdek=)Z_Gj8<-k8%{90?Wme770G*^;OG*~wQkK0=)Md`B@juSBskSBiYdzvc6Hv16% zcWjaG&~!1<`ESa4oNAS3FS>n2d+8+3`(8SOH~bN3O!(X^PvMd+q+DTR{dvH0U;@G&uwO6dmRWQ7+itW)~A)Cc`SrCFx1mF|FMJv|SM z&?{0CQOeQ^6xJ%NQ`n-gRbju*KD!k@ukd|^WJD>JrPX1eU0BWI^fLBWV0Yv2@qmBq zXtR}pGHW-ofwwC8Rg>krlswI1`7tHmW3#+g$<;Cl`AVaZJw*v{KxdpG%Yj8!6^hwJ zB#C?(&Shy0u|mp0+#;Z)VtgeEd@+uvgT?|Hq+y#W#1iwX9jRj**-f#%&!NY1`C1Co-$0b^Y4z&Yliu zcII;D_nG-ld{%CL-GU1!&3>g;Ns z)6urEr)5L?rp;LLa8^N~mgqk?ch9ut4Gjm@5AN%Gae0w5zbMP;E2=ik)Ik4$^F>jr z7;wzuVETZ_F?2t`w)AY7W8`=qGmA6phU`H9kZl_z6B4p@i=9#fOJyJ>u)++AWW2&H z5`h(g{@?iVxe8x)hXvyOT99}+CoNPxsmX_^Za>WoBx+`kA1l$+-oA-SB02hJ8vk1?sS$HNmJHz?8 z_uYBfnR(wGnRg)6v+~&w{yB+@scy#dNM}!XYg@$mC|nhI7v3YklPm{^^3vqTvz*$} dkooUI3R2>5QiT-531z1>X-@|ETntrM{{gZ-;}HM= literal 12800 zcmeHNdvILkbwBsJyLYcvvMjA%0?YQ=#;{11EI*OK$d)D97O`yOXUrq(tKBQ<;??f@ z-n+JCAu2+Wfd&|oG)yuuAxV?A;1(q|Ho+{?RMlbHDTW&N<)t&Ue0V@9xlb_mECR5!~m_5j~10U)u!!b}$Wg zZ-8jGrqjwRryeX@dzn@w>$NVTHc*U!deb1DN!-V96E#U&1%5Lj6eId15YYM3>Dc>O zl>e*G5M>gsMbNvK8^?%l=RnN9rimIrJH3mjdp7U4;YlL1hHnCgiptgL+oyeC#mfPb zxOuFh-)PB|gjb!e=VpM3Z^zK!iCT@j=Guno>U8Z~0fOu+P2*-=2x0BDjc9u<&h2+` zTye2)ilWq=g0du$#>C&_TBlreEvDuZ#oJaWJ!o92^hjy}lccqfTYFS$5uOl1hxRFe zNZUGfGe0NiFtVctNnONU%52PMmCeXZcA}Qe$V~RUS~epy*>Eb-_PNkDBez@(+o{C> z9cq4C4a18f?=Wxkx-@D;tl)Zcsugna1f`a+!#mU@WNI|DEme~-HZZSCC!TstQ?r_^ z11WCQ$Mn=vbn~HTaf7;*8m)&fj%OlC)>V}4x$K{Oi7ns`5Drq+NqTXtUL z#dvJBVWdz+;{VVbL0~kbfucI{rzj5h=)>MtbX=vTT3~CHK85^=oHe$A=3zwf6vo@m z@m$;$p?*ApH>(s96UNRP6_}B`*hoX*iD};L=&AJ(zSNvk>q=c);Ky9Lyu0j2Z{P=# zi2Xns!H@0i$EEBCLQ(O9>k#l}{ccB1vduO1?k};JyvrbY=54*>XzD?Sh&a_y>yp_P z#%2{Q?JN7#7x;u+WuK6$@Ci|v6`OfoQThygLOiNIt*v+8t92~k{MXe`1A zQYa)yh#F3P5Ih7pAf`4!b%VKZ%|iD{Xf*HaK!j6R6mgHM$C*GpRuR9VBA!$i5RYL^ zDS{9o(VDRWF=6p3WNsuuYHEc%7fdDPd2>KcVPx$I5-f$H8gKisHvlV08>~YP%`!aB z8aqJq;9Z=PIxcH>AMBX3;__a&HFK_bpkY)DjtP<(G2sa_44~_vcOfSERqiNbZo5S- zn&JYXu=J21hS$Yrv1;N|Fc(2dT`2svi#_y?pINF>$Z!L7B?VvkIf?vdIekhRAk>!$ z(zr!&l5pL{3>hj?*Z|B&Bo=eTL=zVa)+o{pYV)@qWodRdlh zUzLe|oL_2^(~Ilc3>L>%O>%fsm;*m8{^JYRE{#dGUe%#r+MbAo2EBGRxETV0Gis8( zIoe<@i{G^77=U@yNnHtc;VOW6kwhf51&xj#wW#b>b7TthU3Lp)8s^(yJgz30IuCSy zo?U>5X;r5psjJzhY$;d1arWG~7nAd%YT4Ofpz|e2!9bg%sUC>Fc<}|fsjc9(^y>ff5FwDZZ6nr?c z>}$*Fkks^+ww_R`;hr3E*gm2oXP90*AxqnEW1Wfr$SIL!d6=ZRxUuhx9MceK!ZD#D z!~K{Bi5T-SxAbq3&(|4rU6kRE^+R=Y=^3asXkp|;%%JB4J}j^|%9J?*FBP~;=qhq2 z`o63){3D@cA}>V^`d+LV@?;JHw$?MeEY6fVo#6|_@FfGs1NtkSt=q!=J3cVbh{$w^ zZsZ^QSzm9^s|I_rM<^eWzE5k9!=Gox;?GQOpN_Kp zcf`X3_1yloaNiXAO+vp7kYm&-q2ip-Fq`+qK5z6&o3S4P8v+&;-j@_(3UuauzwYzK z9oU#IgN`QpQ1rIw5KghH$;4KAW&F1237SJ&Ne9LThNvaPP@I5WOufQGbq3Z-eS-A~ zwv+}0TZ)b+C`mh^VNd)=nnoG*Q^5BKY>9DufzJLtWxRp*!_i*?e&2W#Frj_}IHsZ~ zHPfn29iF~Io1+YR03$GH1vD76THs-mDLYN3>=bTB;P-_4BY~UDCiGoY&ysJ|MbUmM z&Xk}%sMS^4uf?nFfc`n1CGRljg)$nQr8;<(&{_b$iCU#my|zN_OJeZ!ftJ@z10%Yz zf^qytDp&{NUliiC`ZfOB+-T)D>cn z!a@UmH^h!;*MdjbU*IQwO}k#rp<^L-M6*;Q-Cp4xS99qXA$GIos%C1%hQR$k8=q1M z`nF)VQmeUIn@4l8-!Sil_C7U_HiXz$^$)7~bWeyqjI3Hf4~5u+f;}eKKWp#PnfIh% zx6)C%Lt8-K3Ne>f1A8v$XMRk5NG+i620ZhR)xE%833>OL_p62UTFCp9`9WYm4|s^# zrxdR@{%Cn`(vLr=a2N=&_s+oX*S}c9>yCX{VJ{9P*Tf!G!4|_>?lr!lu$zUvC-kRP zvV#3A{%s}U6MIi+Pb;ntf%Rvif3L6sh1lcqr`75T_B=40u|nP%{mTl6q!8O`yr6LK z39;*e;b0JAD}c$yCHBa8Rc)#8UNL{Hwo!sNm~d6~(#12d6@uMH@2C4!FKwK`ySl=A z1HAn+c-MuzKaqapGkB$t_fb@eUbH zY+#ByujT;0CZ( z=kxGEp%=@qkoIcvYO(Y!Q#9p7qDBaz|rVY$~f#8Vf^2vzCWRrCm5i#k%m`So>-t{Kpv zivZ*Jl>fTfL~8|Z7T7CrP~f!!j|#K^7my?E69Oj$J_d+$0^o9bjW`EhBcA&@jp?_F z48sm-Z=jEh{BrHMzJ-=+e{Sre%e6(=oi5kjQ@@Y?f;QG)4>(qLjMi!^^$FUn{an2t z?N3A}Xg>OWnjWSf#QqGk@`CwIz^VAN*jbr=iNK?<+k{$qv|iIrXvuh^rfGNT7XdyH zUk3OcW3@H`nLy84jU{`u)fLUxYPX8#%>pg$di_Ri3q5C^(fa9!+8xmFoOT!5AB=w* z^;hYCsy$3Y^DZHy|ERP%CNb)uSG7i*3;#wl5%nJeZWP!H z*h%%YQ18U)ZyDfXM6nYEeJ5Z$9RXY~@G60QLVp+C2>Jn`TrV&~B~Xsj1ArcVLD#iO zdP`p}aHYUrfqeokff<3f2|T7)ep=wm`fYSh|73(IPYQflAVryy6u3VD|_9N2nllHne z(|=>K{9mhcfG3TJPIQ$r0UwMqd`2|@e%5T(O~j5*Zu0>ZYLgBagH44Ka}2N!e+s9$ zdcb;|+!R*DT);V46AGSj@448mSjQs3W~>s0)AwS)%V-J4kOEX#HOtU$18ktXF-Hw_ z53QnK85h%i^gR6wveMFg?KTvTqvXfAoLx`vmFJCgzs`7?y7~03ELtPa4BcxmZqpOO zAElp(yhBgmgh%Q)Jrm{UI6W@(0zEI!6LbdhhVp1D`Wvc5*UR%1t&rygJ_ay-l3u~e zk4$s5sJ*U3{fpEPzNzgI0Ta|Z+;N$;2u2t|zV_jC`(d10AH)59+&`fsbeUG5kKuld z`)%pTq|^P5SIk)xeL2hX)^(-3E9yU= z*lv$H`Te$)WzxFMOk%7e1^kHX_|;{tnynORl}&E*4zBwnI+|+G$5ApEze0|YJUtmRuY?qv#Y&Kai4fM`}2s5&$V zz0IHqo@Wd0V3zRRN4Avl(Hh8SSt(VbM`KPl?J@~tv0c2aKW=A9MtCUiStIt|d|zR_ zn6rJ5M{Pen=v8qmn@#V{59W&{f4`lvos*Dp?eW4%`#f^sOWLV8!_7cnFujMZ94H6J z+`_5Bk$^OqKPkj?5uEf%fGq)|=Xg53-O3!t$MzkLodbP)FaxvcY#``DUbVT)$%e#g zSjCq;`1T{@WF_aQ*LMH za0#rPC8q}Kw}(rkqddl{1crCm@thg7UeB|~hjSAL9luueyZ}_SRC>5p)*iRq<5ku{ z%f)Q&z*l(osX{Fy@WysAt64i=?NHXW17kXDyPi|H0JE=OcZQvuRX%MzaLI#w=?d>ppj+01b(UmCF_ zvCrd$HLTo)bqzVWoa5P@pjgO^$vF2}{+M`G!2W^t3oK{nM*||_R9QwC zL~q`6D9vM~@}NZrZva7{q%~x@-k6n>G98S94RFk}xm>xKw|zl_uo41-+87k4-FBYF ztT-&ZJP-J0wO3KkbAQ5xUNSaY^hLf=(V~^zQfU>9H4|1Iz$983BQI~8< zTh4@_q=nVA%5m~o=T#I{sEYKuqo^498VcO0)iqL}pu7#{(VXFT=avLT)J@dJyp;z}jy`q#Y}T?E|h#E z#7UbIp%Mme=Y`-ya2x@}UL!xRK)sSDt3Tvt_7qN0P$Yx$$vd|-LA|aE$Xf*!is`{T z4C655<6J-e#z7h*o09n0h3b!w<{7~peDF&G%Y$a&s}2YJPEh)QVJmh!l>pcWxh2yN$R0u=U% zIf2)n_>hCw%whi>v@IG2v@r^@w!_W{{@DAZQ1dj3USkyqM=Oc3 z@LZlh3j>hixVm&DxRZFjFoj56NdG9b@|b37ACcai1^+V({fMoP`+qG)SMPv!&VV3$ zf+(DVw~jawYK1GC&)JJ z33VyyaZQ=AXsc>TG~jItWSSJ5&{|_6up|n%mPE~1q*X16E{O)pO!P9NF})RCV>;8# z28wEl>4#0eO?cnf*vj7HrxesYeQT@>Z>!)KkFhI~q{Pt}X^EqW>90d*Niw_;R2Yy|@h+v-5d#BPM%*w0$BgDFPKXwG$TzZs5)E~rgwvGN zwHPi82g6ce@Dq`RYk(ncVhWN9(2SP_m;woTB#thL@=!2s(B34YYC>~KRFbV}Nfht1 zczRl5u?WE#yvahd5$%@780luql4u>?&;(D&nJuQtbj!4W3!cA+p%F|HrvrX(!H_6-jwa`+GKCc zW;PGwD|wA#Yw=Az{_uUNMy;KD1`bv}>a7kxZ(NOU^RMV!2TvR4SD4{Dr#<*sIG=kZ zE1aZAN7%(x8YM%&ca@LB?ee;)=B*45g|F7es6AgH@wPxt*-ywXO2cCj(l#ui*CQazmDb4Qdgt>b4!bQo{W(|`lC zAFVY7@Mc`A*y{(!!_knp+~N#BXVzXm;Q6AW z3&o_`|1jt-G*rj87L~fIaufC7jXS>86F*rt4}WqsUR}sexz@A6U3fpQ(Qeoom7YBE zB94~q@hA>7?A7_SBt3|PPtrR0vJQXz6K9TFRZlQOe6${iUKhvQauf;CVW0PgHu$K` zK9}c+u^^(q%lAzZ>wVCJkI^^`@)5jtJ}%Us$GkyeJhR{INY9RQxAf`7DEN>$E=OuU efd8(3Z0{YrwgtZ#&jnw9zhiFvzu|W#0{;a%Zx+k| diff --git a/PowerControl/Controller.cs b/PowerControl/Controller.cs index 0f56ce2..48b8cbe 100644 --- a/PowerControl/Controller.cs +++ b/PowerControl/Controller.cs @@ -1,18 +1,11 @@ using CommonHelpers; using ExternalHelpers; -using Microsoft.VisualBasic.Logging; -using Microsoft.Win32; +using hidapi; using PowerControl.External; using PowerControl.Helpers; using RTSSSharedMemoryNET; -using System; -using System.Collections.Generic; using System.ComponentModel; using System.Diagnostics; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using static System.Windows.Forms.AxHost; namespace PowerControl { @@ -201,7 +194,7 @@ namespace PowerControl updateOSD(); } - private void NeptuneDevice_OnInputReceived(object? sender, hidapi.HidDeviceInputReceivedEventArgs e) + private Task NeptuneDevice_OnInputReceived(hidapi.HidDeviceInputReceivedEventArgs e) { var input = SDCInput.FromBuffer(e.Buffer); @@ -224,6 +217,8 @@ namespace PowerControl // Consume only some events to avoid under-running SWICD if (!neptuneDeviceState.buttons5.HasFlag(SDCButton5.BTN_QUICK_ACCESS)) Thread.Sleep(50); + + return new Task(() => { }); } private void dismissNeptuneInput() diff --git a/SteamController/Devices/SteamController.cs b/SteamController/Devices/SteamController.cs index ac82ff9..87bf188 100644 --- a/SteamController/Devices/SteamController.cs +++ b/SteamController/Devices/SteamController.cs @@ -26,8 +26,15 @@ namespace SteamController.Devices stopwatch.Start(); } + ~SteamController() + { + Dispose(); + } + public void Dispose() { + GC.SuppressFinalize(this); + using (neptuneDevice) { } } public bool Updated { get; private set; }