From 077478300a08f19800b8233e07b2b16669e7d3a9 Mon Sep 17 00:00:00 2001 From: vzakharchenko Date: Sun, 7 Mar 2021 09:50:39 +0200 Subject: [PATCH] Fix Black screen after installation on TV --- CameraDevice/CameraDevice.wgt | Bin 54321 -> 54458 bytes CameraDevice/main.js | 86 +++++++++++++++++++--------------- CameraDevice/server.html | 1 + 3 files changed, 50 insertions(+), 37 deletions(-) diff --git a/CameraDevice/CameraDevice.wgt b/CameraDevice/CameraDevice.wgt index 69bdc94d6eb4a7c8a0cb7907f9e724239036f0bb..ed485a9713bb12b864401b0a8e48aaf8ef46a480 100644 GIT binary patch delta 9727 zcmZ8{Q6gK2jGnK-(d zIMSOt+gNw2+c>RrB7M!&&c2#PqzAwkk3T~FDIsby$RNiOs&!j9g*0HuTTJn3n3~kN z-?1|hu8a1NC{Z#aU!AwiUFwm#)T6iU80@w4GN$HhRkEZIc!6C!O@iXLK_n%6N{Rp= z6%~s*YI_x?pK{6a)iq%SdhEiMBX1m|aL&)9la!`_vX~0feU+h%q#G|*2eZ5MTVg&^ z-<||`#J6J2x3u#htp|W7yz+uG8h?XOkYF=sir;{wN)n>(65b3G6_QC%@(+eRFnCH{ z1T`AZ2hZS*Q4-qWiT%WEnKou5f;s{?e%9o~U(=2QVsmeintNq}2pmdH-)k5&4_8d@ zADTA!CgY+NmNml^n=(rK4OyP$J-xHp5gPEj1XlF2vy`DLDs|U_Z{DU6f_4f0#DcHy zX%Chby(dVE)|l}{?jp4z%zr?`miy3=UEF(3C)|zU_^%3gHAJV+`|#AijUWM7sKfA} z{r>=tHx$Ha6$K`zVwUWGgCj~TKBU%~;fO|&*wPRPQN;W3Ke=Eihu^JJ0~2}A71wyh zOq3s@m0&WIfUG&BCHC^`>PTY2?dC!Wm8;!Z9^{k8+sAkCigu(}q>M`qfPARgma7Gq z@k@s=f5ZocW9PD5y*Pn#!1n>7-L>Pp(?Bw%O@Jksr$ z(-b%Y3b@fyGx%utQ>yJhUBeeunro3NmGXMCfgH?zr1zoyF-MVlaDBTJvCiqsQD{kX zIkOf1%p;G`QuQkT+)&7XDahh;ec7N^dfR*~5A^f&zj^h|*C*L~Z8)E2>>5#3UfBn4 z4zoz68=b!Myfp;mTA{T+B=TBpAQOm+^`4Z&_zVk`cNlbkz^9Z!>(<~)X6a z(4W2`Tu_&@4|7_6Ee|a3Ry^B^Q?7gTH2y3C@pVJTGC;h!v_@RV34S_#0$P^k@IYC< zhOwFj0JuJ|>}$_quJ-@jKmL|CE-at5<&RS!E&iSRyHpoYOW}D2F92VISf6;tXgW)1 zzgFSWk9kh6`{l|~p$4bU_&Np8%~%poqXn6XyOMiygjhEO3@IL2cIA2SC^s_mNFU7i zTpy0RAYY=EW$jjpe)q{kwG#bO>y0bPy+RNW#T|05;D=vj$Rw!|g4o?D=> z=a5>w!>voK^&`QM~Zz@8TkElR4fjQC@uoyJ#aB$T&I?u_{;rF%umW z{*A}3mF*lT>$Ru>?R^^Bu*5Ew>BNvw%D->KR<9z{!2U=%qG^>=G;@5Wj*)vsOJ~8h z{Dan19>_Nm!-L%2@jH?03N_Y2%F6sKWprLvPBue>;{C`XvtCx-Pd&7F3H_&~z#qPK zW~?P~N^7Z3#BLyR2qCQJ{P~+g(IIhLf#z7D{IO1*-OZt?03Pw?VT$wXS zXUvz^^Of_yah)Hl%trbU6Ry|q%WBu$jjh4vV=&_1k5spTmSBLPT`eRw@oe7Oc+F_# z%36u*k1k~;hk61reYHJTY$3FE|6W_*0rL}0v>(ykyX$}l_DuuRkl-xig6G zIcn+iO3P%pHv0MYpKJ?+MOJ7!4{w9YOTOK{c`B<{J(05NW`eCO*16%uBoFAylH(TT zhrnc*xtM?(34R}0@D!srBlEpVM0{C$-kI>y=e?8yd4|M4R$mW7-seG-j|Q^7-;aYl zlBGTvFJWg#3vj5R(p$-ajnSGm$G&^wgW2TKS$MFg-QhHi%4&=ElKtDUBKe zU<*BwWfFofAza`VLh&V2$WySGp~!PsS%Hvn(izj_EB4FhEo9cf#xMtAflp_T!(H}j zyZ(FN2g)X_qR4P_c$>7hv7%XPe)qci>z?e%NPTg1G*w7YgM^FC`JhB`?O4c((u2F} zfzSX0dg4W3l!!5`bs;^89&*@HdlfD@KW_+&-c_61s`StF3@C4{XQSW3OfcYbjNnr} zIK!)^J3)p5;tvEw3KPUBAfhqLOiZ3DB`%2>Ikyp9x8ah=Ig-V|7Huq$TtrdwnX0HX zaG|oi(KrR3mZ&wpd|EoVUp6f@2j?A0?dX8Q*4+p4s$VO`{fhvshmH}nNiN!ZEut5c z*w(PBiOs0~3Rswz&LeiK)0~ZTCEYBL;JbaOV?~PllR~&}vv%sL*I(8;lOt@_Un{E} z8W{9rgEUxKW|J-DFXvRBOSCEkMAK8$fW~Qi`b%DyNh+EpfT?Gf%+X~9GS?L)86_YR zBzH>v5);L{*@;1bjOTg(^DK#Nr(mOY-PX9Ewc-VMl?-?xoU6YxINU9+o}pTW7KI$u znL1jS;CUcHX@VX?H#;@+dcJMf){fQyGlzi2E{VOm(y;g&cLXCx&#nWNBSNsB#Zjnq#!-7iq)<4;_wuwM>B2&8$DO6dn(@L~nIDV%O+}Zucjjh7Y>GpASR2^t@C(Yq?n^x;?+HZ+ki7DPg~0Ik%^4)!zbg_SfMrHkD?^ zAxaFsq_^hrb)PyB>Cm8OvSj%(jySjxukIPfN&Zp-cKVGMr1$NSiZ z|E5DoK%78}FgXf+WJ&`_OYfMf#mh;){3$o#N(QN*K`+o=bA)Fg&a6Efgz_RYi$n*# z=_}BpJ?S>vMax!kR3&qMVrz(uDbL;CpqUZG?RNL)r?u?q<}~bu2@Q%A9aOSLXnCVY zITNf5`9Qc{e2NWCXy!lV-WD43p%&q}e%!Eo@1DF$Czs5}c63gY*7ki!ymL#t-875c1by z_i({mbrYFl&*k^gnK;PoQsJZf1pnuLdl7{xYJdO&`ib*j_gmu@v=P`pIHq32_Fu9Q z33B3J_$E=Rg9MNzKJRm^rfxf}G;UfBuh~*;TpHmMnkt7TZ#}GdFy+N!m% zT&6|h!w?1+fa(x-Xl(4u+)xDbmLI({eN=tM-z)dt^NJNxYVpQtBd}}(Vgwb?2L)V< zppZ%?&<&sv$=zAdSZQ4|IXQnqKluD{vfzXyCgf7R0t`S`c1aHIr_&1HucV>6THyAC zw3XO0_0jy2;6(csZ`Ou*i|Y$Dr}Mb*&XBu%9r%fIXZ6tw7ki<*>P>mh{#AY%fT)9g zp>Tn9;^uAz#@91qqaA$9BlUy77cpdM+xJBGgTF>!?#el3Nas6HqpD8e6Z@TRh^7E< zGvoyp=@+0B8Dusw&{=gR`^VtE2@$AosM1N6#09xL?hdsv+kR5$akSa_iI<9O_B!~I zLJ;NFu!1eznS{&T>%G*Xok5=54b7H-BI5a32H7{<-q`GdXb!Ai73{n1 zn>abujVy^L=LV=OC;ZWF)Cj#{@gSAUqtFF~>M9_x{-|_Aw+nHd6C&l{@@e=LJoTXLx~)6g z@^8WXnv#G$z$0sO@m%`qDMFhseOVW}zqtK?&>--s@6*VvuJavS@6$50^lelBEw@=o znFA0g`4nJky*@17)YV!m`6vL)rXbh`^z+brFqy?Vc!nm=i6;M=Ne{qK2i?hu8)pry z;MpFjPA#h9jT3NT~I@Xm(c1;b%`5na`M(Rck|BDY5(ot)Sa)%{A zyE*ls-sma_dr-l6Am825hIjBpkg;GuwPst?VoXdBQ%ZJ5eh5JE zh&S_d5ei%ly){%mc`(=7p1Xa;EelK=T3d#A*cC1P+&zS3-^hD^r~MgvX873e8}D1! zBfw^}#oL}?Bk!`(LD$(D_&xRpRJgjbeX!=1canH_KKXmL*ZSRb6V;(F^V{x(DsmCA?|G z+Zm)_@_p(x(0jV8>y@wPZISsT>9Ud8(^Ja!bS2vZGU2t1HwoJ9JX5hD-6Jyw8&d*F zqK*cbT5wv^wiQg9wKSC7_OZyOoCw7pAj|NQmjI8kw$PMt7{^YO0g0`U6$bzgB!zc> zrwy}gAW^pM?+K-Qm=c%n4Lgi@Z6|28TR1aJkqrdPFK)Q697xp6&KwD*mcwjVf*s2u zUnxYw=9Xl-KXI-g;Q^yZZ*wNi%sL){2n9EE2^ww?!@wE3`i$99)eZe}y1&vHz5}tp z@glXxb*I%_s>RWAVzr9OOb1Y>q73hcy49iTB}k3%IJ{$mj2qdhl`aT*GV=MmB7Q8DXbDu94P$^#;al){=UjXv_$9a#MF7d;eVi|*klYOG&DP87njgBR`jSrp;w6rLC;18=3 z{S2_oPCRcjJ0b3c=_Kfv6>IZ9r2aR-C~-}O#HByhccbm@aCRPXK*Zw%tBv7qHvY3*?Pi?I{pLtl3P5Ftp zesS$n(8`0+wsM>X(}15%_$RXb$*ItnzRYU6Z_`oy&5B)930`{= zXPKR;Sg5wS69W|R#o;2a2-7y0RUy3A^XK9wPl3%`;4BKs>?A+)xAz7gPdF-?p%!No za4bEjBMAFCF7Op`!;pau&eEL%w~vjQ*8C!Iy%J-S7~7vI_1~h)>Ts*?6r=CkXTy$f zGPu#O_FfHbDSstP8KQBJw-+alr|!-0#=ib2Ts)B?=1~tMJdE9gRTi3|poOutzf4QL)_^ZI3Kmt~;7t*Q+XFa7I&g9~=o?^BDD5 zuX>z7f-+cJ@`lwnxc@4n>2Ap6=*&ywaMqch0*W2TK^}#Z=S+<)0%s9&zadnEzCN^- zWGr}$)LB+J7HyS;!_z(_#a*k|DTU1;eR0KtJOvc&V)0JKpfFWTt{e(NeNrz+9}(Xl z%ml-&7DmJ~?y3di;akwWXP{x|wa0i!w<`l#s4}b8~}J0-IsyiPp3%jI89C zCLNH$-CJ=&@NoMcvBrNr4T}sYHTSbwnIrP5iXm}x{XZ`M)0cBQe=9|vsgzos;HQsN#2BkJKh%ip* z>pg;*76=BM6_+7G^?2p-H}Xdj>xbUQ?IT_eji6X3dd)8FNF%Whs1*&iGkc^ z(w8m1W^2#tm~bnsyk_W6Tjjf$T6mrrkVD@_;m~!q1@-E|a{q{KJE(afd)9!R0y3bg zfu>Rr!J4|=%-_D|CQauV)yGfN@jRp_6C7v8`G?43e8wpPI5xY5ruP1{{raYR1m(YTbxD_n%uwtqsWMvYf9mTbk3fG(qu z&)2zJ2m`@}qt_#Ne#(bpUn_&SL=XcU!DaINA;vr*P_sc#HB@v{G3UW5vqN)XUR4Rp z$3bQ}f{QAOFKq5lS~=54i`CyiyL8*FfjQJ+Ln?3chJH5FoTrF*;z}vV#(Yxlkb;=X zI&hlF!hn>Gd1K%rbZRa8Yflbeikc}0{6-(lTW}cR(wIun7NDWv!CCVVOv3}X@D3s~ z#kba^md`}hi@U`!H*?J1hF}~V$@15%wWwD;u|k%h#4_?hT8eF+Tfy0_*4sW4E^c0U zbIT55UcAoTU!OG0;JNAJ+xOPItv36;VH1JuBzbVfzP{uDOBo%t5IDRJSoHw-A$wfQ zHBqJ9ytnm2!Eb;!3Z?UK?a~0{EI7ej(9sH6GGL*z10t!N3aYOdh(eItj7}$bwSLyq zHrZr`#}&rM)9t`-XPq$6y{8O&dY!UI38Mzzk3-KJBWEjk{v9#7NDj}J7ca+UR$s>F z_nz(_`5r!}Jo2%roGTX?y#O-^8D*;^fy$k%-pkJ~%uc}BE>)yz(v@%$ z+3$t(9}h0)kAFT}OM4i`KQw%8KGhNz&I!gZ!aKKn3%ZM5L|)@R8YpXWf}=NjQ;KiS zzNPwhFndrjzGl$Wt9ME!Qd>LI7``F?!2_^$z@hzrNeX?;|H1?R!D65#s*PX)#$z_d z8n*6f;Bf57R!PYelCWF+4@n(zMyEl|6wxHYSzaGwk18BDww6xLVV&)^h5XXOcqxcU z?*77n<@=_)&YticnWJjU-mc#rS6?`Au?H^}n?4npXxqe4AS4v-Y+>uXpEqB4I6fYT zZ}gR!*9$vq*_uAaO)_z^e-rMido3SspxLA{|A%cwM?^RR&5Zm0aFTYl1a|aX-2lSC^ z>FCcp{;En+Ie}^?U$YP7eV&4&owpaOBC9oGnP3XQV(=p)FX;~x z_u3q8&e6W~qql}uNFM^Geg8?^YNU>M113h+)Y}l~SY14bou(~5)f-@E4TL9EL4=sM zqe+@`7WfCOFZ{z?(3zDmfvw7iT*OxF>yxE|W~hboBk8_LuH>yEvL`YGd^jV`R~uDO z@7X7_sR?BzjIi?R$LAk7L@VB3AMPfft%*`9-iR{M;K33_OUz+`DZ9HNZLJ-c#>|0~9O8 z@&gAJL4y^|QZ74=$A#8#b;n9seQo4eo3IKc16wC}5yBlRrzAcpG2>I2ZZAPwgPQ#< zKmAi;@J=V0HopxMq`vhcR41HE220xnCEuCK^L(MK&%w%ocqT7~P^+In9R5IMtG+Dw zucD)Po|>yxWB`oOv5q(Z7g5aBPIaTi3`tF+zFyeb*^TK4!Pl5PR0)*AskDQeQ_qIB z=(oH-Dy{AGc{y!j--gs#JG&seLNZ1YcPAzp?KqI(V#y3LtY zff?43&@QsV@Asf2X(I5`5+OAwZgF%3-}h$~x)sL&k<{dVJ(>HM+uHfto^cIxxQqlT z34bOrM`7+AX!oAlNKm7>uHukZ=Pa!3aMNQc!|^ZHgeM*bpfg{A$pyw0Hf&2Ewq3PV zg(FT_3H2u_`$$x(x4aAvws=#U=lSBY{T^q06h;{I@(A8)R~Bz>KN6rJg=Ld=UKs%6 zZKrnt<4fqyC23=giOvL4b#&AyTHyIdH*l1AjM%EN-=)Yzei4j*#Ni*3u*8%zKx`Jo zs1kT46d@pQ9ahyY1;FuTtRgY0jm{iF#mV7kzD0gg8Wo=TVv}K6=1?`xR0(GsNX)1t zPBxeW*-Kt5{a|M2*g9=Qly+*ASAQIYj*aZv4? zacxj}R*Ha|H6tOgxH1e9rk)URU&a~$dyWWU#h7>ugKiA=J{L+u4Of3p71P5z@d6wG zh#7j3#GRQ?$@fz(u!@jJaWtkUoZvaW%%b(d@IdAmYAYb;1s_+(Fb;D!VicZqJRnr5 zV!pwsmHxc`gyWzqn*4HJ#457kenk5UA(pnm?oa;2!S2A+pQ9!&8mlC}hN zikClNz9mjx*4uTnvhCUUBjGa7f++Vv5~EIB3h{HHsbo%CZ>Ds@UCFz!48;YP(q-ca z_L?3Lv9{274}0bQ=&PDcrGs?On(9dMd8A?9ByR?w8QnZxr2_RLE7 zW)guK+S@E()|FGbYHB?G>+?6n0UDBd?6kqPkG}3b+`Ca@k>& zIRvDzcFFZc_H7ge*}b$0K1A@zZBaDCO3WN5%_sU>vZ=x%NDwb1^ZsiYQ@p&c#^yvg`fayU+DmV<~mUlf&G!9 zDxL=#MXQ2~F9kJ!>PD(DZRIMW6oiZn*G_#{bkL(Ml)Y{|WABI|NAZ%mlQ>btXw#^A zab}BCJzvUky+>~+Q*!xE(4}0$V@sIm2(@ABWo1}A|3OUBnWOh*eI=&2RRx$3c%f6V zPrP_8hdH<9@~i93g-->5dmhEQnCFmtop1H3^d7y9!INY@#Whx{Qm@$ry0x^@jwQ@4 z*Hb}F>`63`vVg_s*ca9@;0gB{qbeE11EIBUs=}OyO{G-{<7((OAvnQ2tOcM-6MWUX9GY@&chyW3oy{_q3;6z+r12S9Xg+F=3D~8a-TsQ?z6+ zw-IW|P%?-dPT~u261;LV<&#S8v1V=)m{}gwXP_=J4aXU~SlZ5YJ-R$)Wh;1>x-l2S9z22Jcs<$uWB}ylldJes`&aA+I zh0BT!jZX(wp?&b9W#buQyl{JC?=m;D9T@Kj!W-qC2-*fHele0~3WoqoXe){&B7X zQhKx7vT4bG((*-qUHw#tLIOjp7yfBMncl8DVRUJcuOkav2>CwUrEm5M6R+!*OT&M3 zA)*sRa*PM~F~dI*-lmMLWV6mfhF}G`t_ZIeWwW3mzF_z;he2S=r7d4*yqd^Q*~!$b zU$%ebx0Z6+<$g%6-NnxIs4?Fz5#w1N4(?Y#8R_MO&&&R4V}0@@veUtT1x5Y4<+R^{ z9+FfBZ+4fA_1QQ>S!|h~wnOZ~(oda8x}m|5`LqZi5>!>+Dn@rnIhT@sR5oKlvE1c0 zEBnid|I~eqO5A8vcYB692=)R0#YSoO$9T0o@pjRMBSFT&n5eOCeqz z>1{Ojmrz;wuWmqMpcSs`&Nf1BEoJZX^2FOG7;@|H+PGfP%TES+q`qwJR|La16{J(A_B%n`Vt-sS2HU?%UP7MEbDA8d72P6R`F=hdW@SiTG ze`mt~>0$vkcAmNRPT=PU~|M>8OZBS1B8}`XxS{~+qqxdVEfZtmG8nHDtasO9u p)qj~${C8-B@E_+!6UP?t2>!AC@BbI=KlThIf-O=&7|j1O`9Et+l$Zbj delta 9598 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 E9}YlYYybcN diff --git a/CameraDevice/main.js b/CameraDevice/main.js index afab1a5..c2983aa 100644 --- a/CameraDevice/main.js +++ b/CameraDevice/main.js @@ -6,6 +6,7 @@ const serverInfo = { ip: localStorage.getItem('SERVER.IP') || '0.0.0.0', // <-- Server IP port: localStorage.getItem('SERVER.PORT') || '3004', + inited: localStorage.getItem('SERVER.INITED') || false, }; let queue = []; @@ -15,6 +16,7 @@ let changeChannel = false; const next = () => { const xhr = new XMLHttpRequest(); const url = `http://${serverInfo.ip}:${serverInfo.port}/next?width=${window.screen.width}&height=${window.screen.height}`; + xhr.withCredentials = true; xhr.open('GET', url, true); xhr.onreadystatechange = function () { if (xhr.readyState === xhr.DONE) { @@ -51,24 +53,54 @@ const prev = () => { xhr.send(null); }; +const getInfo = (callback, error) => { + if (!serverInfo.inited) { + window.location.href = '/server.html'; + } else { + const xhr = new XMLHttpRequest(); + const url = `http://${serverInfo.ip}:${serverInfo.port}/info?width=${window.screen.width}&height=${window.screen.height}`; + xhr.open('GET', url, true); + xhr.withCredentials = true; + xhr.onreadystatechange = function () { + if (xhr.readyState === xhr.DONE) { + if (xhr.status === 200) { + callback(JSON.parse(xhr.responseText)); + } else { + window.location.href = '/server.html'; + } + } + }; + xhr.onerror = function (e) { + window.location.href = '/server.html'; + console.error(xhr.statusText); + }; + xhr.send(); + } +}; + const reload = () => { - const xhr = new XMLHttpRequest(); - const url = `http://${serverInfo.ip}:${serverInfo.port}/reload?width=${window.screen.width}&height=${window.screen.height}`; - xhr.open('GET', url, true); - xhr.onreadystatechange = function () { - if (xhr.readyState === xhr.DONE) { - if (xhr.status === 200) { - console.log(xhr.responseText); - location.reload(); - } else { - console, error('There was a problem with the request.'); + if (serverInfo.inited) { + const xhr = new XMLHttpRequest(); + const url = `http://${serverInfo.ip}:${serverInfo.port}/reload?width=${window.screen.width}&height=${window.screen.height}`; + xhr.withCredentials = true; + xhr.open('GET', url, true); + xhr.onreadystatechange = function () { + if (xhr.readyState === xhr.DONE) { + if (xhr.status === 200) { + console.log(xhr.responseText); + location.reload(); + } else { + console.error('There was a problem with the request.'); + } } - } - }; - xhr.onerror = function (e) { - console.error(xhr.statusText); - }; - xhr.send(null); + }; + xhr.onerror = function (e) { + console.error(xhr.statusText); + }; + xhr.send(); + } else { + getInfo(); + } }; function getChannel(ch) { @@ -90,7 +122,7 @@ const sel0 = (c) => { console.log(xhr.responseText); location.reload(); } else { - console, error('There was a problem with the request.'); + console.error('There was a problem with the request.'); } } }; @@ -114,26 +146,6 @@ const sel = (c) => { } }; -const getInfo = (callback, error) => { - const xhr = new XMLHttpRequest(); - const url = `http://${serverInfo.ip}:${serverInfo.port}/info?width=${window.screen.width}&height=${window.screen.height}`; - xhr.open('GET', url, true); - xhr.onreadystatechange = function () { - if (xhr.readyState === xhr.DONE) { - if (xhr.status === 200) { - callback(JSON.parse(xhr.responseText)); - } else { - window.location.href = '/server.html'; - } - } - }; - xhr.onerror = function (e) { - window.location.href = '/server.html'; - console.error(xhr.statusText); - }; - xhr.send(null); -}; - // // channelList() diff --git a/CameraDevice/server.html b/CameraDevice/server.html index 996ebf4..3ac56fc 100644 --- a/CameraDevice/server.html +++ b/CameraDevice/server.html @@ -46,6 +46,7 @@ if (xhr.status === 200) { localStorage.setItem("SERVER.IP", ip); localStorage.setItem("SERVER.PORT", port); + localStorage.setItem("SERVER.INITED", 'true'); window.location.href = '/index.html' } else { console.error(xhr.responseText);