From 6ace8307d8d04df5dbb43efcf8a80137d9cfbd59 Mon Sep 17 00:00:00 2001 From: Philip Allgaier Date: Wed, 11 Nov 2020 14:00:53 +0100 Subject: [PATCH] Always show "off" button if supported by player (#7389) --- gallery/public/images/sunflowers.jpg | Bin 0 -> 95785 bytes gallery/src/data/media_players.ts | 99 +++++++++++++++-- .../src/demos/demo-hui-media-control-card.ts | 81 ++++++++++++-- .../src/demos/demo-hui-media-player-rows.ts | 36 +++++-- src/data/media-player.ts | 87 ++++++++++++++- .../controls/more-info-media_player.ts | 94 +--------------- .../lovelace/cards/hui-media-control-card.ts | 102 ++---------------- .../hui-media-player-entity-row.ts | 50 +++++---- 8 files changed, 318 insertions(+), 231 deletions(-) create mode 100644 gallery/public/images/sunflowers.jpg diff --git a/gallery/public/images/sunflowers.jpg b/gallery/public/images/sunflowers.jpg new file mode 100644 index 0000000000000000000000000000000000000000..961d2a7bf374ef1f7a461b0b63b7d3730198e698 GIT binary patch literal 95785 zcmb4qWm6nX6Yb*e?y|VMyDYHi;_m+78YBb>zQE!VoW&slf)hMA!QC|k4-y=5^VY5V z1MbYHsqX62HPbcHedh1V-yHxx7^DUQARr(BRR49r-#35<$i>Zp-q+LL$Id~5-r3L3 zOM;iz&ePr9)5Di1(B(fDcL#eH8y-&|C*J>!c>kv^Vd&yv=iuRI6=36GrQ+%2Y{hM5 z>gnO(VC&}T;O^k@Z>Zww>Ez~MCGX>BrQ_r2>R{)`9|8b?fCxbPHz#QSgkt}k z`Dghb2--j7f4=-rN`S<`k4z}f2qCiZM)@B?<8R{rS)ju1m7p#O6RM)E-rqF<_CMW! zngjq@z?O`IA$lqY%S1#0J#FSq_3)vSG8k698<8(V1`!{Bguvssj7`1lt&Kk-#3Lj0 zyo}uleNHP4Y#md#qy7?~PVl)8bq+w?VRz@UmHAm&6RK(BY&}OWPrGxRLO!~3CjPUw zEzm{-^5CXfPD&zS0;+`4g}SFtkXL;IpLy)YxiLoSB9@-Gkzh28RkSWPn#aOh6uxC< z>zKQVOdloa*RN3LDP-fnQ4@}nWV2!1O?}|-q+|^6V<*VR8O5s272nVu=1t9S)sjT( zvURfHKaW|4JtIw=U)N-qh9>`v)O3tg-IimbPOH@NEqMLaqKc_O`Fmf;H3}mtOCny9 zwlFfib#Pm8JEBeXlR0?2kM{<^(D4`GIi71u(uILi2l;+pDGzfZKj8Cj1Lq@ji7jOf zI9Q;4v*?bHEl?R`hN+7Y8XNe;IZU{$pE#?0!g8bO1VM6KWmqVaAI*2(qaA89U#Q!8 z$-DUssl;IuVoc-9dN(%ba*8Z#uqWXleYyft()hl2nz#I^ZN)_NOlG~fh9hQ25`N35u5Oa)>(E&i+AAl4V^}*Ho$uDm6 z+WWxP@7Tf)>-GotFHct6NP6VzE>~K}9G~i$OX^cC zX#hzvFjOp`>B~$(k1;!fbtRyLLR7>&jRXXIhsHw6`K~Of&p_aWBFrf)Y+=or^o)x@ znJwMeye5rL+(WdoywN=8zjy9SWOl_cB+sbyg!meg&5!m?xPy+m2gDrwl?y?3_28s6 zr9Vi<^#x2EHHvshkKrq0BN{=oP~A{O&3us(s)58^Ce)t+r`qKWW;;=43QvkCSMM6U zyYZ^rQ$@VSd}A$|01JX`xm9q`rt#$Ff+_(6Hm-L#>PA%u0zF+!G=7~o9#Nr_YgXJD z^&O0a77<;-3)RQBuuw^-$qWe@6Jv=$OTb6`wcEuVIy@gcY@C%OZ<8M_nb+2rHJyT& z*gi<&7Fj9jzkOX^8i*hzAqYp4rUH27GsYlzDyIyTZGCYh}07$b^V zHHk1swYxZ%kamre_zk^@{P|m><-5af)7n)ViuT$2iw9pHpw+VZ`Nc@cwoDt|w< zye0WZxnmR%e_Jny^R#~7o5H=}p13}!I#S#P>HdwaQ%P$am)p+Wmp0yg@g}kldXQ{> z@*?nlD^1iq#VpVZG%HeXDd%}}Tlto!?PipUxBkn|W>bLUmK9B=MQ=!QRx;HIfS@0} zfsGxB!CLsH-}HTtgp)MHklBv=Gn2T0P>$H6-l99=Fht+9+3l<|{0d-%mA^x`Eitv< zxZJ_mP-Q`G0i^V8q*WPD>LtrrG=^E;e(9Sn2(OR6(=)j#@a3nl&qYw!{YZbr#TBf$w`S zJ~mE_W7-jXue2%7l%x#{(SNrcX~F`vv2ufn6Jk8+KM)=i91~=T7+k4N6&jDxD(R{d z#py?v5OHbTfB}xoTH>B<)5Od)zw8=@7=L(8Dk_YB3`%N@y4gyI{tX%k1jj)N?6CHb zv7f>sKfjw(V5gIA=Qu%fp-&DH6Z@h4G4C>iRj|FtGMe;zP|#!ls0RtWm%WH}IuVXGdv}OgJuTs-eR!lo=eS6)dfS;= zgfscBNrcKkFr~igw*a_4ei|>d6T9GN3H-q6%c~ySoLgd=t*DAmeXZQ}I&0DTO$||Z z7G$L)rz2%6Y)V$buYUo2E(ER5)T#6Lhg$n`6c?Fx z*2x%pF}KByV`n&U%q`|Ln`+g$HL@^8G!i#{EOu-zMrLarG4X{>@6+dFjjL_M)vV z#-4z!sHp#(h2pZg8SCU*$+zG4{lNAL^l zi%kDyW4^|7hR=z$kzPEhuCEa+by?Uk;`i03Jb&PwD6^)$Y^hrm@4Vz2DV4=x{ ze99YosoUMh^1b|fQ#?frp_dBJw;ltMU)JtSAC; zd_E#**&K9uE&n17T@xGXCjc89hSRkjYg83t9+!6M0+oFPuUMtR?&@hIuDRBjT>#Ge zm*_?SYMSQPTK#LW9&pw&N=wr{heog&TIo*Jlfef{sn#g%1d2sYh8v)mRL_F>&N3V3 zJQ*Gk@bN-q*twjn3+RrV(mlbGIVG6yPy0clQnT?aUnx?k6*p8a>04F6Gg14e!$gTB z74Hc;Qw-sLZUN3L80qxKBl2~jrFoWk^{pnJd_JkZ?O>XzyLQHNY9$@SNL2{j-WOme zG?&>;PcIP3_+}0GdLj2##F5BMzt}|Z^;gE1B>fvC!ytFa*m}d9*qD%yOUkZgc@RxE z`=>OuCJr2`sj}g-U-D>rxRz$Rm#_WH;ROfagcS_9wL@b;6~}+!!i_GKmw_rg?eq;6 z+1u5}e@d5K{fo=H^P|hzCMW&#eaMH&`hsMVVhcsb>-D2^ zg@fA_cbr&%owc#CVZn*zQ}B@)9J9frW(wR$k7MdRU%)uVi*<`bV`4xYIWo-}>IA&4 zcv$O1^Z11|4$l>+62?oE4ABeKMlQQ}T_6_YnEJ!O zR1jT@fA;6#n|73`g*m~NW~LYoXhfD@GYwbJ+xZLe^GRBkT1ol2dy1X2 zKO=7}iu{ypP)**2m7fP4^9O?NrnZI2od)UE`B&CLylf5?(!50!@WU$fyyZm{-|JJN zqX|mOSUQ601Y-MQk==NkUt`kvw=!O%jV`ON!fM0r_P!Vyfg^xO0bCW?78@O?lg8?a zcjI9e2-aYIbpe72{`xRdP8qPt!s)`;IUV19ICR)<^T|cB`L~_a)7y}URHBEPvtYDA z5SV(FoixDcESW}Ou zfK@iE=!{}(%xd#0G5Q2`_bwbGz@&A!l$H;|G#B=(Gslhy&QE)9xT_(Os!h9_ztF7r z4t8n~*uEkQjh1GFcQmZ|#9hV@Q=Wca1l?AR{!DQ4FTj=mXWwg_jmA{ox?P%=l%@XW z7-HO4l8x3Ad9;%C+?!Ly&duUE)^Y>=gKDOHq^P2-+otzl%$j_BujG8+dhhM2ou+cd zLLw^9@FhWNt01+7%EB%Eac!8aH8&$%xgg_AyJ6bYxnFxsvbGOM zB(&Znc!nK)7-_QH0wOOFqxSpteXWcMr+YLhL5w4ErkD&J_%qKcWhrEm#@=|8nVg+` zz4E@o#b*>`t2!P9_k@W8y<4PMO-V|b1&PpSvvkN0Qb@nJN>6vf!b)aE;zkw+8j&jX z&X=OHjs*-Or|O}#gc$Sigs%5h+N>nsohy8I#n!a~Sg)%#UDCc4SI}thG9mR2=KXNJ zKo1iqS7H?V18uVc3yd9PsM+yWB}GW6(b~e{&wffutE8~eIwK!rd%%Z~SLfCyMzs$V5BlOhvjE)AeO)epM*tdsTwGLT!q-nDr%q4(QxgUZ zO|k4>Vq}yvg8&F!!gwPgqzic81E`|f*K)`EEy7FlIIV{zbHZv!d{L;@?OwG8y#r0R*jg|Mzr+9 z7!O|}vnId%u5f>!6em7+>?>%OOO+xUyt=IUZK@sabZlq5yqIlnlsJe}a%q1>Yy-7F z%5>6wSuIyyRUd30EsBl@C~mSNQy1Y|TCO0S$}87wO;B?ehP>5GdwOl&IQ|Ss&4x+3 z{a2pHeXvXbvP@&&zX)x8kMdkdCnx~wlaPt0Di#xaN~qAWBFb{f5@xHF@et+fN!t^# z*#c{XHX%sj!Ah`+o9~S0cJnMr))V8-%l~UnGm6(!#nx{hqhOsR>MekzR|KkEYsVBJ zzcZqXk>Ogd)Z!6I_5FP$d48Bs#>Gm}Ww|f5K`0t389(x#bA7#G2^FM;f$WQzCGekH zsZM=1zfjlreKo3+Vbr%>TK4lHvWgsM^7+G}$rU^kYpp{DdaAN6W(Vu#t_l>%OpmZn%CenKBY)h# zPe|d-Qu?BrcJH=pW-JxMp~&k~5ydond%QVOO-`~+pWI$~Sz`D|lE(-eRohHXGh1KE z)UZ1=OkNTepk~tC`Pr%54D(Cq`q_7WasGT!ajmqhGwM zTLIy?kK`+_Cue51>XE9WZR}NU)v0Y#J9ftgBCRo-$Q>rPodYAt2kw6=bj#HeEsxyY z)fryoT<8q-37~i!bc9CE+$@3;JBang`&wQY$S`sLzW`#`EbSO!N%J9y&%4kvQ~y)r z9MM<7FrG_D4t;uG8Gztz|7MirgAY91MD$$)xUaPVpu@(8*lt3BKoDz=Iyx+X+ZWpT zv}n;qp+;{s+quc6l%gFNIr-!rl@@qg;q4j8Qf0AiQKv#5FG8s;3pqBB@*B}w<#b`P z9Y5|_(|Y~q6Df6m2h;Hgq@ntTVGKW)_}DJo3$4(3DLi-UxDP9w*a?YzeJ<8TGEO6+ z*gGZBE{}blUO2H!js(lve#bs4xrKR*2nByQ>tBL~5B()&;uap*H)71I6CjR!@Y2n$ zBTw}{LQ{@V3m_BpWH27Qf@(?K6p5QYP33Y|%e$h5@HL0U;9{^?@3Y25d+}|3n3CDS z849TWs`h&^(dgWEz*t|>kMUtA?krPJTC>J zVMrc<&iwXrtp>jg6}_ibWJ-{?Vu0Ekwvg`Hwlt->7du#9h$>(?1V#59odwkMGR+6R zG}^@w7|>v8JZ%&(d;+RT?$58)rEHeUsG<=8f%x4!98@-Y*VX#xh<`Lha)HP(6E2u? ztfi)B~(FgjOnSPl%UfxCTtC@+{8q?hx8uwD{(*qs$-8m`zSUE6|FT{Q79{B?K zn}hM3LQFmSTe>dxbla2S2MJMeeOn)X*p4Ob2Xkg|o3u8!Um~(GWZ-o8ye;b6=PH#c zdJ-NxV$J)gX!*I6D6fY8ms<2xo^DTHGjJFl3Nm7%xnHNN$C^=a^*2wa3s=qz9p3}RPkZ5=dAjykjb=T=gH%DhQOrsZryl1lXbdMLYD=D;ae6d z4l($nH4#gxO4UfF=zo@q&OF^t9Q?^jH}uzZt^#3z07KnEhSWN0I+3S2gIt{+}r;9=nJXu8G6xBQwmgC2#V)H=1zws=E% zx{oAOBBJ-j)t&NatDdT;>vX;_>{8X zRQYWI4+smX;g-bg$WGTBr>?`6yjm_`0x9+QW_m6fpJ|G~Qn9#(r-FR!5W=#8-bCc} zxdxFbXyry6?Pxq@GP@*JCw=^+j2j+gjWE3&3Q1cbnjPJwIkc{$@rQnO1F258hWS~} zBAJ1O@3r7Wkr?8OZL)J^!OR5sh}E^<+;DPKH*V%bA#==4y7KJk_Q@0>jZnIi>+PwS zcxw-Yp;{#Y+nTqmKUkvW*>!X35#h11f z|E3Rd^e~})B#P4Lvb0Tte3Zqc#)gVwBy6V44I+5e?+bo#Q76U6xD#=y@CDquU_Dg~ zD6%$&!ve_5xA%*LL%G7^4C%}PG;&j7XVDMVw{Pe)fwGb`x>c}!0Pm$b4 z2HAb7H~tClGOiJBR!}V$_t(av!v*ne^;q5#&)sef>}}23*Zg3MFJq2yTGFOh;d*tA zSqx;j_Z#J6=kEMvp=Dxc9gNcv;)?t{If_$k8LKdM&4xoDf7x05|qCTk^ z8UN!~K7fco(Bt)8)qQa#Xuk2AkMqxDA{n3zGf%(w&zkq||3eM6=z(+1IaMip&7}|u z?8}f+S6M>c^^mopHASSsxCZ8#4aMVI+*fH@+Ir7h-3YB z3~*dyv|w2|X#}rhV1|zoQ>IkkamxFX@9D+H-(5A(#}TkmS8t!^Wnra(%F%=LO!#Cr zGx(se=CqlKNWKl?fewnps<2mfeVA+ikS}!;Ov}u&j%@`g-~RE>)4U9ZB0}OW8%X&FY3+w^>{RPG&Xz%4mG+cDvA|J;bR8fe zjUJ<0DCPD0UsjPM%W;kTI&j9%#B5Y~&hSU(hT%OsF~T}~f}KGRGwPagU(*9hIZrdW zq%kb`Eq$TN^ZcMkDw65FwT&05^i?lMa1S`AFGUZ7A}75EVR%tbtH(y$o+*Sh zMNtin>HK*sj*XDTR1T@hbqY45($;WW+TMix!i2%mNsoI9Zw@klye>YE=F2nF%|KWr z-)F6m?WkJ87d5Z%Q4|pn-_H>**F8jyUK3zMj)D?(jMc0)+*4o0_>j8*cUdpBn&Y_> z_T*X8Pz5k3rkpLBwMd|->{Uv71A$h+pM_km|klcz)!oCrZj>ZWcRc}OFaIV z(ML_VcONg8r)N;Et*BlRq|KokY8+tO$-3!esSw}cF03xMrm2yCPt6$ir%Aw`<4RRC zUYHtjtu*7CK&%V=^Xjs(wm;e&Gsy>LA@_A>p{}JS)XtJ|tnpA|>A7Bhjh+wLh2@Fa zh5d9wl{U>FYA3(l_OR@zrs&}LRV;Rq)1lm&YC#c&dOSA8-+nVBk^Nnh&uef*$eS&` z!cc4^YvuX|?wwKOBfm_Fc*yv|Q(U(%VaHU^AagsLe)&3Rm~0B(L2(PL?kVMe)EOfg zBa-%P%>EJ5pB3l`E4et7_7A;3OquIQ*T&umC2>f~Q<4X=&446mn}7O%OU!p{7Glt* zrAF31_9!uknb;}25!HI(YI(~$qit>nO1(2cnZiK&7xA}pQ?YvYu4?S9xT5{rLRYp4 zAUb_ldjy4R^9L^p>V?1^k+@Hew!(aiP{cYd@tfnn0KXzb;g}pQXTR{8cBJ_a=jvczw8m#OeaBa0yMOplpmd)plqv^&pC|>~8h0H4(K{}-|gG3bXfG@OF^=*Mm2&6g^ zfeFRVBp*eSoU09mJvI_LYDY_>55GEBoh3cffoscb0i4x7{H+UO^rf5_3J-?Ttb@?> ziQ@#a;)LM_ejgcOl-y~Cy|ImRWn*wM&X7abIV;)M^iKOWvIUsuboO6*tAYhd+GG@f(&<&(v{Qkhmc zmvI%-0X4#5k05xXc6O|imRZ=XWw)&&1Pj9hkgPUr;!o7uE#;vm0uiekE8l5|aXu`x zw}2}a@4v!nEzKa%bax)Pc{RSQajh7)@cPy|CuE;mU|S;{AoqFiEEZek56@}(#7w@^ zvB3l*B;9V9XHM!<8@1u$LwY;2zQ! z%~y6-E$O<9`DTHH*_zQNj->H1Qa?WK9(kG%rZw~JV_`OxyHFH&@aMe1QQe^P=f@dc ztrcX2w0`hue%4H9tDKMM>BRG5vQgJkuiQLqFxno#XY*$f7TXlUPa~PlVBLMsHgf`a z!g98{cqVZfA`(sW&Rc0S+nSnm+$!QJCJmeR4WGca1Sa>*85MbRjvDc}R};ver)-q+ zvsXn?`|)v_PO%E7B#O-r0?17An(EahusOcW=|$?>izsOp29MzuR@`s=@8sZ@3?~Xb z6N$LMLGwfzu0QztHJQkg*!H(IWYsMHZW^ovc-4zo88Rf(+diVzWFbIwn73W{EhN2o-1!aUzYtr{W_TQ4`nIW~|K7J#yqX z!_uukC|-}Ot$=Mf@H4?IO#a4gSJ*v}Y)0Xi9-}G<$<0+795p(i!We1qz$$(XoJ-J0 zlcVc4$taPl92opkxIWh#z^9gozVdkl`Q`Q4^qxU$Xcfb0Rn8iYTbX^hRB-%@)e|j< z=zgNoCQTeE)q*y;hr_Lwb(1nYT!5LY2hPtoflxx9~?1 z{HwTah%*y%#8qL?boQy9!5B^S#Vk;da0s9JI-vOOR;hbPR}KHC^Ntm+za0cA>n%u{ zgRQkr##uN&uf7+9wFtzU1PvgaTJD*7;MWa zh%f>EcGhj7lfr1OgkR879uiRMa`qX-Q=h|9^}A39!>8RoG}xb#0d#T(`~E^Iqb$- zgb_Bpn7xa$=2KD3vqC5)LuIE=qskW|1S-?JrAFdz^XJ(g|H=qDa;o?X&^~X@m*go1 zuK!dXn?Z%^1Rs2*evC3bWah%uE_wu})TI6r$p*OE(t(WjZ?>Ne4Jlq?%b^ay5nQs2nnPt3}D$UuyNN=Kv+Y``c-p#bQV6u^vDTDLUw;!i;>$jx0 zw^c{WGr83rqEg$LP+bHsp16>kTcme#PGctKPZX9>_q1=18W3eS+C%m}48;$fu1;f4 zrnvoJ3cPa36dg7QmuT%1AMy+P@gL=X2E24X@Wj?Nx4z|4ndI$lOmloMRbH$Xgg=GL z4F@gdXH-Ij>^1__aJ6!_6{9-ysZ+p|6$f>$p)A67URnE(al0!!_R7fFYg-1~^$y5Ma;Q^fx9fBahx!v;-9uOMbB58L`4d%PjJl12#0J*rV^mJ{CP{{; zc|dg)#&%~Yw3HuO%o=)N?|(CO%bcXf^wwLoY>u(f{oPIYMEWGDe}#@$tH`vI;A7?& zL{a7n9wm6wzf^!5L65BMC-q1=E#b+|WMlSq@jiOnkA8XPM5EMy0sQ+oNye5YE56ff z1)r&Yv;Bw-eaI%q^h;9zeLht)UfL}?ETtDBB!##q_U;Jpz1{;484EB*+|Aljwx z*wAu@P`h-CB3s5`JQI|lRbF^CIMPUUxLl^2{RN?6Zg{+QlV2x1 zpXTPcTfI@$B~2N-soDN=hd$EP%v64sk@{<9XidIDcCaTYZ~B=ap>R^`p}c?&E3`2w zQIN)XJL{2-BdH z>8vx(vdw;ey(1U;Vqo)n;A>&k_^6RR3cyRWz~TRk1Qwje45a7qNIm zfqWVA-LEP9hehSOkL0b*^!Fe6-Ed7RBU`x&h`JmT(@+=W218@Q^sN}9G7~BY*}8`H zc5xzAvg-|pRk-)!>e9;F)rgqR;js4z*Ec2Wp(vdPLSn{_&LzrjNVT?VGVR;02=e-B zk<@Mc^ESG?)=nNxV>zj7h7aJee>tDIJZ+`;QM#U`&q!4$xO9I3qdte~ea?a|(0q&* z0D0-o4y4!1jZ#RHh(B|Q#FG$=N&Q?jRr-h;4~M|3MiXIjNG5%Bre>{*JN;>-Y@J2A zU-6cwpz(5y7P{svYi0l*?{JZ^r=Kt`%O!6h;Ox;Bi&y$3yxP5?8TI1wvC3Fr2;S(n zPd&U9S|zHQz!DN4P)KEBX9OFrWluKhb4T+`JcqDyLX>BRY6ULW!o`xxH#FJXKw)>A z$$^05qoWpyes-41sl;bpeP}QKe%n{?2^m&TYAj#kXvO>o*bzc^gyhrGi!puUICdqA z=tdqdo{LxpI;<|Pnu1lGf8&w*cB|2Dkb+q=dy3QT@QAikisD@9$$cW*tzcD)uU9Z# z4?9GfGc}*_aLZuA&Gb8}O_f7KO`v30)TN;!w_0>py(yt}36&zy4@8!H8%AZ13+ z{`TquokL?j0DQN%H3%hOQm~IGH$Qi);l_io#nUAZDjN%?K0hE>Sw ztp6Dte&TP9cW>RWRW4K>Ci`o28}&;Z4e8f-K12C-&U{~1;OE7{Q2w%UDaq#e0Ym4X zyUUF%jkTR9;r&zu4eN8A0yNdmyoHsuLe*qUOETSR< zDxc?97aH!=v$Q&`$-~^0f0xPw>V0BrcsJv)jz{{6WH%E+tU1pV>biS^*qIB&h%2>L zAeWCkNjdr9^|qc}v=vxh^31Bn2s8@GdJu%k{?JPmT8=24kfEUZLee6#wwPrAl&2gH zayg!>@~v+eb18hNnwNq{lH`QSMdC@HezL4s`!7txeNNSpEqoQhfV(Gn7BZ8R-;M<& zpN!!H8P@{df7QtJ!a~CoT<0mN3O5ov>Y%t?%RFD{gA>GKHBNm*0e$(r$m^#W6QEnu z`J!FG^p8r0PcfYINsCDdGD`%clW?pfRjuUKtoqOfaB}5HM=8jow}s(+L&oWF*FYZn z&em8LoZB2JB6d2Sm`;B9xt>Y%yFO9OO@*2d2-S<03`reF>?l99Cf5R57(OB)Hv!PZ z3?ngE2^~^zGD;0nb*Tv5M@CtJrYJ7Ojsnv=GrT6tB<-Zys%G&sQqjLqz8j<2+s_uf zsrYz2zk}nPk@i&`&VU9u3>e<1RbnPEccV<9&KvKzM68UJ76@AWYDVDfu_eO3MFdZW z)d1+MG8q$qcCJcVwpfBOmfaaXe z2V&GU{D74kSh(R5n5alcn4gcEBOO@!N#1XGmuZkV7m)MYpSFX7&XnK)FU|0#E`_Cp z;};C-Lr&dV?xX6L%bD`itg8{1j0y>Uvn`t`+D>r$xt0jqWno3;-AP!+x8kJ%Mlg?k zAQoISoc%Zg`gBtkf)-AYyQXG=9ap=n&nBStGQ=BEP2&Pacq#oc<~Nj{m#uDHD?^B3 z$B{a=#kQ@RxpFgdS9*}cMxB1F9_YLVp+{-PhM{k~s=~FhRu+Ik0;?m^{eGlZNp2g> zA5tzAJ6ILjI%osed1g111x?u4CO8Dtzd-DV<)0VZ`MJLI_E+FTz>_3DW;^%vn8p#_ zYuKp_99*wYe;M!OkJ7m%mH zyzOe9c5aw`^@w=q7PfT0wj?e@RAY^SSHqkXC>(~xJu7Koc{30$>3~>p)w&?i zW%zKAxJuB|6Qb_I7#~M?XddZXnTs@CAjHq!bIGWEFX^|T$52(gNf)A1V)DMi@WC#PLmKQ?=RXBE6tXu@acfT^uI6<7kc zl-02aVzN=Q6*s~T)GLUmeRr7bXD3QlK}Ln(h|RA}d92T-;kxg?y$9U>P;QaB$uEw} zq-u-*HSomC#LU*WO~&Nqq*{60u$hFkeU;?RqM5yp)N#tJut?y2jrJnTFMd<%#_$b| zzFP8ml$;{WBWr2x*F_4+9y%XBhaapQ<|ct8Js%x(C~|{n8ry%OWrek*`J8uMSyj=0 ztH0L2`tLn<9RQGIJi=vI$9?YO+@Ic|cSt-;ocHb^O_(54h7~gDfi_+7pOvrLkaYHP zmbAMkvG=4Fv=M#Qt@s~hqe4q7rr9!p9ecC3Ii-__BsW*D5GMZ8Dy#ze3rL=8v_FS>DZUB3WhH)o{2TbF~W* z$WP1`o;o4pv>c3Uc;<>xt^|Dwf+9@=e4l5Ib-dKZD1h#N0U>&zZ2Az1 zHgOJYUDVJWk*yDFg_nJlXe6T@V@Zl^)>IUu+Y<#?s~oXZBe1^9B)PZOs+rPz`uks% z)(A`~QZudvxa~lqtdy=yG5}BD2DWdlWH#V20$aJxK}{n0jI2na{+bWH_!4Mq(u8Uv z?wFSjl;9hc9|fFA)l?ceGv0`}A2Dx&qf(1_pDMIhfY|Cv$(=z?d+=)n0zuLh*tmD9 z(O@FOC^Nz6NsYrigCok_G1O_RMg5Zla1}NRw?6P7Y5m8&F_XivPof?MrHM|m1T{l-oIPRNsLBL!QfE+a}0q|X1Va$$FF~~#*^jHLKF;- zLzS0MJ3w1Mh6s^jtH%vql;>*g`v`l;WVCh1L~>zbk6wcZ92XQllREu|P}eaq3W>uV zHI2QBW5!se9xvZqF8f3%cWSi-vSIJ!2X3fdm3blw9S|3bA^9c9QNP%{XajKU=6$+1 zl-RDV(LN8CNA)k!jSmV|FHEG)=r*r0&eT@4b1z7qMTto$`fcC9X~^H!et3EVT7uvS z%B)=sP0``wBdl2<)v47Xa^(r;G7!_8RNux}5IPE+|B^bm)gH(t+gtHx7Gk{i=3~4a z0IOLO>hwTYE;KTPAvFT2a6gy^rhlD3?;|E!ov@^x+2Dt^8pO>6;Rl8Jv*v<@NHD41 zDe+2q=d3C`1k+q=g${=;>Sp`s+8KzdjO&7&566_`d@v+;cI>9btIj!sk!rKF66x8jjb62hK_$_p1vInz{C@#nBRzj6Zf-f#{!2%BG1}2F zGfn37w4-jr{qYdLnNN&n(=gozKK2t2DH?QNZYr&I38W4D&npohy*47hlYuj0p6+KS zVRZM~;qSs`L7{r$gn~yMQFpaH;6#BDc{OM0gv;Vbhfzbdf9wab-!E6H9cvVHLWH@b z@=QKN;r`Sv7S|wIjzmUqJDz(~flvc}DF+C{1@L>H=Dkbld2o>o#=z`d9P}>EygGAP zk7(3Q))Z&LF|5=wL1PKduR>kZ*c4bqiwcnH2*z!hFe%^k{BM=~h)Tb|A zR&XqA=p?Zqs#yI2Ttg*!@KKJEKgbwRx~KOYn3`bmoKAQi-;i)xBZ#vYy4fLx`ft?+ z91LsAmFdx*!ux)*uX=FQ5S6Q8}gG{ z9p$J`262toYIBr5RwuO*%yDD}vt_%L?J+&}l7)4R`5+O=As<{lmPgqvl)hkgX42=U zAGJ-)rFc{~c2#{0mcyZTly8`?a$0y*_UJN%{tzztbwO$?*XP}u-uQa1dPX8Y^B`(1 z1j9u=I-M)?qhzVft0ffBIw-0<(ya#^B(^dq={u=ff447;aRYP$XdgBC z{D%a+e`9iUtbobDi?2MUBuPJh9)!Fml(+ln!@!?aX2 zCX7u>!}a-=ataRb(?%?hh};&)^4BUP33e`+MPp38qQg3nys-r;k*4==Aq`y{|5=RUA&^5 zJ8?2i{!gL!6;4Dl&r~2qe@$g5i&--1G|jp4gr$|5H_>-l0-);b_eqE7_)TLvOO6(xtzF7ryzUNZ z&`of~5w+x{hL7&Mnd;q3jfaXqPDUPk)rEABm25lSpjFOgxtIUCYF0fzOS<(^qni3f zqU(^93Gyp2!?RR8Rl%;vi+*qm>i0-E=HZbgw4KXI0?^a+y!|_zd&G7vwhqnc8bRE? z41-N+`bV_Dh@Q}Jk|Lq(3eJb#183G&u*s5GBVr_|KYm!d=m=bV@T$0`uDt#G@Zo(C zWqa06b0FSd0Q{2WOzuH`<@uVp+q{yk{?{~{0bFwZeviDju_qjlP@8Ej&j12b zz@{+)O77_Tt@2lN5qD(^>Flz!8Qe%+Oi|c;{O-?{D#)&*1w;4?s5w5!F#j_6GSN`E z{!%<+I>Je~Oj#rmE)T`idt-M>gXotUr(I9{_aC{bh)H%g&O8!kndIf<&n9h7v*g&g zI@13J54hu=>to-kj*?%|h`+sxUnV-qCX!sflqxsh8Esif&ynvNVAg@id{h)~g-gi| zW%Uj|>s`+6VAAVzcUYLP8ui~)ZT?b0VQ!j#RXF&5?CW(_C2ZeQe=Rr>*8QLCpk_TG ze#LY6g!m=1u9+-ug@^rZEwMX`$#8OsJR6r4?}8u2PpOwiNZXoHn*Byyt}ey`_=&D4 zlTiyOlIsIZJMoJ_c1&H@`0qr1eTC+f1I*d+#vtwc)m%V^&ITL53Yo_|<;3?&FlnS)NLSA7?APbI+9a`SD%}T$Ap|){ z10Z;&Ax#c60{9m@e08SYxu801f&8M0`y*xb&}c6#UZF44Zb$&k!q8V~ky@8u763Jj z_hk5DpSs?xVedj4Bz$S4eu><{DeoxT{8dvin;sDZM>3g9^~9MH$!&pwkOdxZU0#?F zhEs}M-}sI!QZ{-Evg*rw{VcyuLcM67wxL^X%eX!9pn8sLj)%3f@J<~ z!%bMqb^J<9I>p`VUgcQ2t#4`gVMa6#9C4$^z>lunSZno?(hpq~kYIu|N~J#wgyP6B zH1vtpfBC7qvR51rF@gkAxc~^BNlXv&p%)|t@f$etBd_`)hzK=mYf3&bTm}6b)aUsj zkg$Gut1u_+?SGu*4SaIj+d|9(4ZNu=v0WPI>+&2zP(atsv;+p>S@a&0JDc?QDH>(} z@KMz%dnjB^(Gq5``Cb2w7vT&z1mmvz14 zhyL0sZhFkgIz*df0l}k7&2_D@Ff>+;=Elg7ZX|4N>Fcl%olGy1HhVJ$EY%u=m?Nfe z6w+w2Ot>WrhW0_V_y?|kb&&^nrYVhAAd33}{Zu|QYVx3Ha*@m3B;mY#s4l1FTf(7J z#vc2eFf;f9z&g2OS1G}#Io&lNY-8FSlrM5ByxWnP$8OC`rZc}~pQawPw2^BX8EKg7 zXXn}8&=OB8%%Tw8+OH9j)bY}>ye7Eo*Da{ z?=$lHQgim9hEU;6+({Qqj0Ql01rR?aJSMgZQgSg$^H&BCN3;$u)w+-0H~jXw1lj4Q zaD9pl6!Nb2*rrdnL{#XW^yOfiaFN8hKfK#W0jIh8t<0v!!F$KeI|fyAx5-&QZ+}}% z-KItM+;|$6&cVP^LLW9OT%GP<%A;@?X+JiV5r|?#Afh!sx)EY8x9(2g-Q2rU|3H!Q zSku24?iQ7gef@*t0yjGCUizI^E$3Gk{~>onv#Oc!IcO77$K%s-QIO*&C^O{sySKKx znN)4E*Ya+@!roSpqwU8J&l^z%_s0`dMjvo3A6O4k4Q_~9{o_D+WiCiIapahlx!bol z75V=-2(shTRYRfeF!6-9CW>w}+$oty}8` z4^072y?95zaJP=ud`@G46Px=T_SSVeXCmvN!E^i558Lh6!`}dWAI1DfIdChfT1Ccg zYKcFYlE8VH4~_oMX%58vdv`X4F91jz7Fso6(FHUrt8+*Y z%Qdo{By&qPPeLx;S`mq@d#<)g+F<0P!=Q4X7Y1ql8iPyJh*&_I(#-aQfq2B6nfAl} z{KM$d{OQKQxlds<*Ib*lpWrIwa{l-tH^Nz`s{dATyk;#umqtRbGBja~1NQxZXc_5T zv$b!)+If`ze8EoG$<^5mWsia@*6zw_Vye_~_iN2=w&`U$Gz8L1U+i%Zj|gIt$goKU z(0(W&H*gELHbI{Hv5UkM)b`nR8dk?N&lfj}Do<}mJ!0i*^dpIwlLHjj7*T7y(60?V z`a|55?J0$wSr9#w3q-hzM8)-ymEiNv+QVS!V6qa^5!^dW&Nx@-=b z^%d7K3!d`05+BI{Dx^aBW93dJ1(j0WUrl&;u?n|`uRVWgBIrQEUq{JdZ%*CF@N!jbA{Weig?IM8sx3iq9tiD@V|*sK-ug*&l^-31VyooE3^ z20};HI#VqgZ-49F-AVs9P@XI7z&Is-D-&5=1R?J{_>o@okqhE0aw7H@lZ)$=>ilo|ieEjtDBbhB+?v(Le>I{h?6YaY{Lq<$n%c<#$ zm;!}2*h#gl|9+-ROLh9yk|DN|ZU`PUDl>TZl-t}u2^D!Ir zG_{$QgaYR#v^ie5toAS948%$KMRZ!~XuPHx6wvNaQ<}`Q=C6eL)4;G_5{5wkq@N+Y zX^vjm$vBfMpQnq!+DDdE>Z3A0k*RfZThis8&=Vf=e*k?zg1@lX$;ig~MstsqUBA31 z$m_yoZDf+C#j(Z+7&Nh$YM`}b8(U@;S5#Kir)(<#M#HYe)2jR4MSjDaBEk5d8Mm~u zjG37K08<$U=T9H#Y%twSPA5fzLtXmY5dk%c6KX3|KfVSk4GpOX}J}N=qA)<_=latky?d?`U z5wbF5GXOTuLlL%5tr;gkR0TjP7s5_CW|5(RPXoxk(f}BZv&>`isoUJBH(LQ3cWRl` zA4uGed++U0N40uL_sKPl*?=v9gOSTWywP!TWV#n|921bmRO460`}L~a8j#m$>$iC# zs>+)ZPm4GmKT0wAfq-U73&hGYxnf((^`Um3)Gb#7kv6$9rjuhHtvIR^CF_##@ z$3yzkH0sc9$VC{MEi#iCd=C#XkMD|38nK!5D;QECE*UTm7@kCV`c$h2)F*v0;z3lN zoFk3j!=S7h%0PPP8wBtMy^2dlFduh`S7nt&4?Xl0LSq!qrC6W%Bf6u{+;+pN3 z44~{s5x%hEGWJ`vv&%i~8J@!SLNj*;;|KmqGCjSw(VwzWS@9~1<$E%y+LyzZJ|DU@ zc}cX7=@J|QHD~@i)(1UsY3-tMtE&G1FH)~D6P$$|Ht9u5$k(_>Bt;Iai8W_!vS_tw z3Yj2B;uwb29*tNa5O?Me(wa|pMZpN)5omFjU_&tVJ7?`w--J6wCupwlEznIQQ;CRG z*bPcCr~$hT=_L7yb~M+jw0N&*?p|&x!2bZ`F=7iUDOqq&QO>$};*?DdG_(rBSh!?8 z<-{fxpO9~e0q35SnIiK#i{O!J3u>&76}o|#xzP4*1`crRw)x-Bf7Yf9Q~SJ0enRA& zUi=2MH;vq0MW!tZ5m}gqa1PmCL{P}F?;G9k=sbJ1BF5iE&kzG}%*C{m%nkm0t2~p0 zK0@_5doj5svq5ZGNdUTP&gut;*w#s<%h|_LaSZIe(xaVt87K9mifQ*PF>R(&-a{O7 zym$-<%4!)S(>10tlZt0+rpofd<Hl#JGM?&7{&)({{3q1^}8#l zV>7L|U2>F<15gMvf;Pa$^-^=cPX3|SlaWg&b~G}!jbTU|A2$6eILEr5$Y{4#gsw?c zGbsuJorunGGmpxyg1<`@`;94#JeU|@xjBWGhRmpHf&c&)h66kgU-X}DQ?{%-Z8|jxI`@XZ<$za z5}dLB02Nj&Qpv9X<>}TEq*6;PmiDQU8bcwBDLk^=$v$f)Ri)z-I((bNe)|f&x|4qznYDQ02m^pL?Y2E0IWic-jqu2K zC*OK|wiG)8{{SgGJAw({$X4|g6->!??07$SZp`B$WA|+O{`ydQTY8WHhv_6|9ccp9HZGM7$NT*Nr zG+p3R43{NUN*zWv)f)_SK3S?f(;MhfcFTmDt`e7UVDSzX{r$Z7%cvM)0UbyK&p7tQ znB?uj@huhQhjO*b+9AVum-?RwkBeB%m}dd!jGaMS8|~%PVDiOtx`m$vpKj}w{nIt! zo;=V^sgSNbt(%7Z=+615(XxsWK55jU#=*=S_Tr z$kLM-#LRvXhsFl{_W4w9kUoH8frCV=AYc$}=0Vtj^Q5ilX7p#fdho@_$w!D&8kf7sy8;@oB6i%NlvuH^y`7NfDL7)h#LK?LOLJe1Sj2`83R)El51 zpK8>xQc*j&G5joQB~|6h3zd+v_k}|ehaQ{y)`(;D_M*oiWkAVh)PUnEG7p~ql=ouV z4GpWz0LVy5)JqNX%V9|=sPD*m3f5SS(lXj`7{~@Ozc24g@hPV-$Yie2p^ijA8Zjo9 z=jXn5KQ6UwX}vlX`yS`no2y&?2@Ik#(6GayAO$-D7!AF7R~09YO+SC-8SUPZKt6J8xPog;8HVEKN2cr{e9(^uqmBCm}0dee%_9Jdzu z(liG~C|F~W1DG8?b!2i*J6m5df=3S@k)!z$pZP&fBa;lOiS0Iw3*J|H~sDpO- z{R@>%QJ<38?Mg!`nC1?pi=D{lgZ-;de|5FR45F-DB~ew804eR{zO+JKUnAKhXP67j&_H&G1}^bhLoD%WHSNbQaWd;=gO+bfw$d| zF@tM^2Q>2W3(a>D_p`Cxo6pEr%IuD~EJ-5TD+pB`_>{SUSYbgR5(h4v{HrXo%KI>@ ze&M^@4|36Q8#5kztBA&=&oa2@k34K@r5RwKx?$y6b=dAapNAYi_En1RG6Y6Lg^+m$ zJ$ZBaR_Quj%Y!aVX08WSl|$ur&xmvR(Tz7~p{9ogv_&vCX*bk))xD8oTPA}`NB|&X zVg0BzPe2VCg3X?7j03+R`})@nP$&rkKo#@I;B!8dR*@MEOCzDr^}{IZz~BIMfbyQPafzyi=sB3nVYxl?-cBujW=awH+&{TnfNu_rvp2GA(A8{d^Z<(zc291{t?Hlc$LKPT04uoZKbxAbT9*`&dj;nBkfe= zi&0JR{{WwW@RE~j$}+v3U-Vwv@!kh3BH7;J^4khV6~QG>(Y*!$6mtIntA-h$D&orV zf2WpM*AHv^n(oY8vcYi_jtq*U5fjvGNFG_N9U|<6qwLwcs7cB!a(m$y6t%RrWh#V; zR2_~+Nd5WNg_0`b`6=vfJlVi`&>BxEq>^2g4kxD|2^G$Le-ox->W%y>>{rbq5n zahV;sjlG$X#1~B}xlNf_R23@R!RO1)l5kRswZ#TGB?-p7-|Ts3YWPjh3*z@solR`a z3=%mzgXVF$2DM?FWS6=+3SH6eGx0FgP?dagI2`lLdhJ?fsn}wZRD~~$uW+5*ec+6I zK%Q7T`g5nnQC8g*O*ZwicBv`0aWXDf7}16xW6p%yyFrcC$0L>;#Rxpk4%i;`Q;Xb( zO>i@Bbk3whInbnn525_3nPXS9MF>xHnF(3$mCLs1rGNt}!`sf9F^)YUqZq~dP#CSH zc@+5kEV2MRCmHb!`Tq8+9z>8Gv9ZIFIIbdQGHND3NEsmWs=ug|nv&Oob}FOjUMQpP zqfj(CbxeXZpZcjNxjyf79yB*^a|iOt3}j*yY6Js=k)M_-spFkD;Sn?|EyOmfEJ5^@ zK>m7^9l-VF^s5vlI+cIfEk@B>BMGhHnlQy*1h!Ol^kPXD!zU^{0$iD5bZ<4GymH!xSVgmC_E_8T#)|qrHpZ zM&ivKjFKk#?|fU7<&Vt3ujb^4xxz`F}Q+>#sD z{5W!~6+qOZu6(n|S1Tu4(@F}>u1PC5cU(Rm&G6{|0Mj^gU9u8YMg}$~QygUZeDPSa zMpKuqi3xYTx-r~Cig8{iBP8xn9gGkHst2!Msi>m}Y`G-3*;5KlJc1Y$fY06FZ<0|@?iM_!OAOs>Fpn49cZ*j`0jAzuf;d_5}7SvU-ZX;_l ztW9|;mmuOX{VSf7apa4&4nJ_wWy7b2>$|qSIG7*g&B=~=4D>r6aa87v)#Q%-*MOwB zDR{bfb06wpbGXhx^B$S4eLGGf*6EhLn&a1YcQM5zvbDKzjS~$@nf{@kT{%;B#XBp@ zisPfzKx6=^Ipj~BSer<~O~4PVkLV`^@$E}E_cZ;6jHxnG24kh!SYYY^WA&)-$UcQ^&_rYnAY-KLdDT1?SSawwptAV4 z+doPcLQWlr#(Crpzgm_=c354If;_$;cidCcB!2I^5;5 zd5uRI^dBmUOpOs>%OGt^RgN>aK9w6}KACbxPT@~JytDdKrmS6n3RQ=7q&9!6l`MAl zIHizffiw^4027Z1_cg9ul!h9f1p^>}M(1zeUusD<<4k2q*`EAdwmf-^$5axcmfMlW zoc%}AvPsnTYVGdFp!{R`UxmF0OqTKuBy2Z3=g_W2TY6=9{fny^66Zvu?iWT5_YRF}lB~p#WlO_pEepizpbHsR+#~wm9R4DZ(z(^)JU&^-Rl-IWlF0nx?e>0Li}K{6af> zgFVNBIbo9kjFRMn26^>0#KDu-lHbhf<%4P|4e&)0UdYnyKr=S`g2$(}-)fyS)YRwm z&@(R7qK?fgaLzRy+Bs`WqEcOamO-{pmzUPJMY+eZ^0@y11_>{RKK}p@PwU{cYl56! z(lNS9SuopdK_HJ^g$O?6{za1X(O<{e2NK}&V?X(Taf|{8_Rsy+ z?~NH!ivE1f9j-TJUAoCL>Ji)pVWHITYe5m|n+#=IW^YRD7-HRu60S!B< zM}{oNa1`VG9MjaLsI7u9X`!A03rl@1(2#fs;gut7tcnOai0DDi4^<+Qs+VjQI_G~+ z=kI0kRJX~b?$9|<3DU#@2c>g+omkBz!6;U=*+NYaU`BJAcWQfjbV^iI%V<{dZZU>s z!-nWFwmq_T>suk0(BfAtZMy-+5swR%!z&#_J7JWZ{Wf2{J}FexM4HoLS8lU@6sB3) zBdM6|M>EUN8ny|=wD_<}q|*|H`R$`cidIOra=6Gi9#vz+ruMd0rq+>R4Z_@#?Dz%2 zb>*i&(mi&noO?C=`j$pkjUNo+v&G&ZmE$t_WNhxk%RJB4x%v8Z{YhBqo`cyQH#|{h z`fGSB$c{Tmiv?!fs30E^&N-hd!+o-(uixeUin75yu1%a%Il2n?2o3=!_vJ<{@=($f zxwL)BX*G-LjrMW+sh4k_!IQ&U`N5bHt zk>$U;ZPN`bpbdRd39`BfNaEVFarAT{8r zk*As&vl~iRVB?-Tlk(?VBBN_{@)hZdLfMeCg^KAU0B{aQ-+H=BRDyc9X1KC(E(-&z zc(iHrVn*5D+MYI*K2Cl}cF4MU6x-r6f};d5{OHO_)fJ^oWUx}8;1TE3YB%6oXU^@m zoB&5YbX%fOjE-4=k$_y}75>#kr{HwFh|1Y;tKve%x9T&G?ewH=Ctl;FXqyD@dexQ$DtMGjGsdp0$$(Ta)Qov#dil_fSojZPVJ^6m#2M~1Dk_(9&5b|2 zRs4#gSKV=VpSp@E;{s9OWX>CG?e*tLEA|~ghx(KfNbtpQ%OnAHfsufD44t!zDW*pT zm5*4ixSd?H;E|+sAG}gaPeQQjozcd(ZAx%i^Yk4k+p!-4Q?P9y_(>g4!%r2kt_j%Z zK?fR8WMgeRR+dtAah1})5%Cr|#z`afs*udh_KGbs#Uy~bGO`oUc$EINkEpf5w+7V= z+-kV&`?$um0FvIFew)?WWij;3=L5MkRe#!XipP^Im)zIP)fg@r9xeEJY~*=j zjzENvSZ)X&eEzj(Pt;|#j$2>PB$N``(MKGOeHD~C3dL@r2}StwbCc=Pw$5Fe@&>Bf z@@Y^jm^I|(zo(fT$K_nOsY$rwSD@?3_YdMSuWW3f2QW#Lk$GgY6Q7XNT|5{gkE8DM z$;r)~%dG5NRSsG43w|NSc)ta^!o@q5jlbC@0ng8$$obXo4j7}FJ_^*7^G^fv1`aHr zf#LUaPpPf%Rsvxo!Isc*&<tll z@LIFO)S6yb_ASZjX}=7%eG*#B9N}6GC%g_eBN?g|(RU8dAnn%$xt2)pcr<)W*ts%F zEy79NzO%W>ErK}(7yws8q|J^i;m@|#w`=y%wiy(a$e^AJjCT`DF5rgKCW1Xq-0H<7 zq}p73tY@@#*3eC7aOlq&695QcPat&-vA369=+7r?qkiAS2>j72i+N!Ht3=}fNUFVm z+y_8ET3BR^^|k!qXQI1^u}fA-U4S{kSob6m(C7PBj9Zn*_Y!hZLHj3fCA<-hCqX(@ zKps58rQ>C*-y)`_VvaMjZHj7b z_P?ljRw~LORb=s!HLC-$#&P$nQ}1-hv?+f9n}puM3a+WA)~t6U3_$kV6?QpRNXlLp z?u49l(VgNE%V^v-CRc>COpL(t$HYgeADwTj!%BPbp-K5;4@D zDlSx%S0ySx?q_Y-Vhh zA8Tz6q@N|{XD`GzD?G6oa5D~<(pZhbZn*RnhpNMBqxk;-!0Dc)!#JhY!|;JRXp-hR z3!xqo*#r^S*0DkfI*Zr%DV$PGzXv;N?6bVF7bf4ibafl9A33V#>pUOHqGH}Qiyqit z3my*@)w5^0ktWLTlvY#uW~MgbD97E`_Yp4Ze#r9=;`N}Dwwy(R=t=EU3=Vaj3^fn1 z$M>$+ODc>L@c#h8%IYKPe>MJ3PT+C>0IYUrg);vDE;fltUSMs2HuA-BI?PSvarSKL zVak+LtCTT+d1=Ancx{(m?mQZo@3+`c#~gh+w5|UDJdf+l_raKk7rINSq?MN50jlP9 zIBe~(C#m`hWr^MO9(7*dhxQ-8#xoUZc6jd@Ss-PHgTmmnqyGTz9ANF{yoP$?*0xP9 zjuzv29}C%h{$*Xysg*_g7oT_X`2n%w)A1|2!EgM&32z~S-Esc_wUqeeC$ET+>$#)U zbjt){@^37+C+&P9-k&FXZa;Nte|BrQOi|lg{vuWy0Wil&fMkLjaDOlawe3{ z`as4NeL4@lTaFDb)HejBQ6CBr75;U>*kdGlkG4L3l*!&s?+CAv9x22B00SzlWVAtY z$Kbr%9%7No)i9`ll^;xGH}z`Mnyyl& zta{{DV2B!7qzf9cXDzT*10aQGd0>9*toA|Vd9)BPsAAHTeu`%V5us8 z*%cRbb2wzysgg_4-5r_U*YR;|wtPy>#A(D}3oC~S;dvMo02Aol?pSGnC3jWo>amy#VbIS}u% z`ev!kg~lpTDU=l(n{Fp-Hx?EtaIJF?4nnp@2=(_F^)*k9`jcvSx>Mvvv(cULzzHjfP`wDAj;7gIVxphj(P%P}v~<@RE4(pX*aqcMi-SY4Uels+y8r#2kU5@P|VL->01}m@8{{Z(R z@M5<7e2!05f><&v@ha}SYhazAyu9GobMXl^tK0VxF)Tu3p4d4je@fktp~)O^jzvq& z{Y*Kgo@r!{;4j(!(Amk^o;kwrQb?~>cwQ)u`BfmD{J{jDaaZN(=kZ~ZJQYT9k54H1 z(dxaq;#RSC9a7@uJMJNG8pJYk&y{xHmcqEbHW|G2ANHLtt14J+^6UE??S~t@gZOu0 zc8Vdt;wIV*5URU#1`VVJV)`IQq}=r&Lc*(hf!gS0_2`!Z26k%bTP%2 zJ+W`Ob9y(yMXEv^BJS2$T_U)-I-CChTPB|n=auP^zb=$>j zATh|#DxL9>o_WDPAx&v*Xb)n1U0q!yjy8EhJ5ddi4& zDjW=Ck)6JzbE@-A#v2+j*!(fIq^x_*GG}5p$FVg_pLWpwz74kok%tlB*E35bv8j$m zW@1QIk(UELRnEGdKjjtA?zD|Z5k{U~H{L3y;Rm1#jMq1;m30t9VPENhyOKU3+51?d ziE%nf1gpzS00ADyIjtQ-aZ$J1GHZy!Pit-l8wRn{{W+z)J6Bjz7I_P7fQ1B7lyeZN^6X$2LP)OIq%CH>n~ipdWnBIMZGh; zQTi2~xxeikZ#r;U_$paP5Y}f&JLKP(#>YK8x%H|#d31_P$a~D_??GcSsCS9Kdg>5{{Ys7J}vG40FTHkrFma= zd0O^bMTNDLvT)8JEsCN`6}*cAApZc@h0aI(x-Y5CH%RefYbIxHx?flP{0HhAaqNQ9 zDY#b>;oLL$b7vgDEVkS|WdTOS=?+GG*qYtdL3KSt!j{{s{C~lp19)((kA#7Cdj9~3 z-|%Y};)W!eSo_9~HPQyABoBOP&#iL$+!%1?lEZYhzmdD9l&1wL`7Z=96CT1w3_M42 zPIG`iwR5}Vn=~|9#s2_;Mdk4?a6!=)HwPzk2WUeGrMGR$|u;S+q3Zg&|1$CA!2agY9k=~S5F>J{9iJ;#?>Cttz=lG0f==6E6@?s z>s8*4eRu&OWp*Yx6*kfsbH}D?NQn}58WKjp0OxvIOgtH$H`-W}zbSB#HHF+!&l4~W z-97ig2?Z&&joAG1qREDl5jw@K1%MER%h#LdY{i=vT&TTIRvZRIo z02GlRk-$-~QaK#&kIt<4PFg@tw#r^7#EfoI2z+|6lh9(e;py#MnN*(iSI+9!4KyL+ zL{p;(Ejk1ZY{9 zCI&Q|ZSC}|v2`mmKVlXNj-{bJbmXo!=6`;bt5>3#UF>AY4i4m~BlO$vRWcZ^*A0AD z+Av7OWU=?isxp1qGj1Qcb{R03$AynBfaCmECTjgi(6mxX83hr`);i6mQ zXroImybS9X|=O=&MBSu(>N zr?zJJe`%w+x#9dhpzc+ecXG6Y1ms|R^INj?4hng0-<9|k!#Zt6sy27AM=Fr%t5CxX zXD8d|Tzqa&sYmcMHmaHC_t#d|d}{92%;gct5s+6&9$&rd*YxUHaYk7_^&U&C!|<}p zwR%jP0T+s27MLI*_hth*BWme4a9@E^R;b!`yS2lQSnzvDRyMb=fmgl%0Q`@jA=}7f zZ#v1*^nVIdpP7HzXIa!dk&Zgx*?$!#lF9oC!_jT#@_UNmn_N-9XWNR)%@xv!E`r!;*pKD$IGK zG?IHQSz{(6F^x&qp~)Tu2X-FbReWvnq4Xs^jibpCygk@e!bAoGbK6Mg(yxYGi9W@D zGPyxEteLioMm_GQJNQW1N6MGJOMv#TBW8G#!HiKXF^2Ggu{|&c_o`GR@@?ArLl2v^@v%k#O0cVur7LnBvHY5)5Rk)&lr`V$HK!o{Rhgm^|FM!dpxUuCiVMl zs|srG+{AXO)9{>5UkMRT1dF#KHevZzu8S+lij&&@BR5wK-{byGfAHIhi*Cfq5n1G0 z`Os&PC9|Jx$KI^_PF=Y>pA9eAqoR*|E9UN?0)_kV)fn>4#|Nxx&qji$cHa2^&@Na7QC)wVh{Gm-S=UHE3MuQyT8 zV%OJ5$tYhWK*U$l6InFE9H~#=9Q;j5cGP_3xcmyo9$&EV zmvXU*AH14rP6Im@KAkaCaFSjND5v7mpT!`JK`V{%xi!0{kD=I-@_N5xu1&{gtlCq! zO(Blw1Fz;jRPAp^J0htxS@$US36KhqPcJ%5i?vz=MJ>3EwfqI_=1HRxG8RMO%A7FI zo<=?Cdt5aoOge7Sf$crDsqIG-c1vdtVvgogSU3))cRACQI6SulDPAqEh zd!>cccf36=t;m&KRIdIKde=24bj)&Hu8CRXTkLluP{#cH>r2r?+X}Cj#&oIMeUFz~ zslQ;E4%)g$d2Mh4=ulC>8~N}1=~Yd4Tw~=MFn!lzeef@Ua@ier^gnv$sC$>#Hi?+4 z$sx{8%eU9ko4F-XK~a81_+%*18Go2$d3<3+;}m&D4y12%4{MRvsV zPAPLF^E=A!(h-v7vQ9;M98m35Mi@JN#c8-m12pV(U~>mJ_8hn6T3$J1r3L){QgHWS>)&v7NJc~UT5Lb)X8mOA|F$K>hY^SpTYPw-zPbTPK#oV=cW$1F_c zE@L{T1I3_Zzn9EcXQ#{C=_%^4sjlQugtwj%8xlKV~3^aj|+_821uc;bo~VntWghYEJb*UuHdrpYHK7VUU0>GC%FTM^OVk%?tIwU8Ju z*QIFg+D7i$L}H5HE)Zfn!2>=uMX?}q<+vX#*PX*ElS|1T1T8TX(9g_DJGLXC zC!f}=oRr|<P8hoInLMv+ZD6y z`F7>)_bKWlaACV4ZY{VqsxX~PGtDAN%rVYD9RbI_^=I0hLdzwN9w~l5@K@2{_)xdx zpK9Dkz;0ZE&7^5jw)xNJ`BfihQ_higf4C2_Hq9j8jdlul3H5I65axUBeCazH#oos_0{{SholIlZmYs2j%pS}yL5-|#(4y5ieTRJ%3O*(s%{fc^-{{Z$QYf)dmg{Qyb zTv?Cdqi*S(uX^VSMtSed`VFZTJUBOz>}QiUU1C(dz;W&#ydw99@VG7o#~HYNQso0Q zF%=xfaD?;+BmjABomji22b(l|VOn3^ndRFIk;ez!HunDjoEwW-Kky>Ag(PTK8l*i) zSP?G0$w(YizKt<96cO;EdnW@gt(Pz0XMOG|LZX zEo7JgskRgndE=M1D(l&YD)l-pB$OgVs7ubPl|tSlgVS!ikCh3liCk9CI^eunI0qNw z{3dHvQx(*++KCDA2Jy1z+~%y!7m-6JI$x%Pi7xKXnNfYkZaAEcGvq}k5`7>8I8&)u zZGd?XT8b(byqo(JRZzP;P+cjzZt*pSY=Fc8zb;&kDX~80rCJR5X%*MJLlN5;92YF? z&R5r#D%^N&%eWV%Lbj76^AJ}-$P8EgyXLKwdp7t2c0-8C-P_4DY?3i`4;knPIU~z@ zIAh%<7q6Kn^=Rr@2_X#{_e^|x2?r~UhTmF}%iAh@B8{yQnFoO&MG_`g;pKz*QBt(r zfnLRFhC?rVAyztpQ;mTeWN+u1yS*jah3&U&CB}QkW^AYcXHMJFM}eO_o|XJRlJef& ztu9DZbq<_qADtMb0vp8Y-2zw2u~_#h@wCum>E-$FE%1vW+dhoQ_Hh<+(?S zHAy?!is)udoVG&!NI1?0)zZTl?YE`PQdx?M6BsS^8o$nF{ZEJHN z003M1nMf=LEaRZ8{{U%p`R13vR^{oxWy^Kq*1gLx&I?lUzo`EJ{{S>w`DeYqy_#v~ zT!>@0J=LJj0y*ZziC-TgYb*OF;U$X{X)iaqeAoCck5kN>+x-ik7sQ(RL+My#Qe$8n zB}qGch|OZnhv93VCY%{QDzZ}W`+1ez46KWW(m5RLbMHbqWeQ%xWy2X;UO{$OwA@d# zkWXvF+6Y*Z8H^)XVb?z04%M?aO^d0glXP(9mnTZvhYYQ^l4*F=yNo(pN+xk4>hByJ z;j_;to_%X$lp~Iwti-K8=eB#7@bY=ngj{i}*=4!E;x`NotiZ8E@Bn;=efqoQF~a^jwUO&+A3MBs@QlL~XdO+;eLU-#V6+fGy%Y@y@kD z_bq#WKLeo`q{N&kDjk>EM&A7Bt9%4E3YbH5Gp9y%jBSzSNuDm%X`RHM-!5qB&B( z?l|8Ri!3I)VyXKIr6u>cJr9OmMR#KvSv$>W4#a0813x{!wdeEVc;@M84xONOaq3&U zXUe+#By$JPA0?*9>$YoxFJtA`-gnXvd&C6$=f(G?%Lf>xT)i^4J?V#QGch^i0gspUD)*5B}x&h{1W=V z*(*76%?R6@=kagozjjzjf7%Ws-3}GQf6*;Z!*y_VOQ$&SjzIelomVVfCrbOK`{nF1 z$<*~em@e4+mtBzT#k5y4Nbe)_dz-miFCjevJhSz#SK1$FWSZaLzsa+v=^=ye?Y>#3 zvr&C;>liUxLNTRA$fJ<;HOk1|IHvaB>TF*jHgIN*aB$8s>`290qo&BgcCkpgT!KR! z9la0fy;=5t)`2Y=?#Rv`gCuH(US0&>2d;lSdXAN*D`>%yY|vYlckuzKvZGKL1QI~| zntGz9dG~FNl-yEI_9b})VO*)hf(Ff=zFyTZ%1TzaG~>pax5_i}&Qc6y1x4g}0y0RZ zjy~yaY}VvdUtSq)JFfu(Ld1;ZjB@!O&b8viqb}mPJ3<6(S)V630D9JsG?0W6K^*=q z!BRi!na1Ko_B9z>i|5>d1y)yHS9LH_`)SHr0F9O+x|b4cG@CB3Aw z%HRY->_OiE9#vH2lF<0#Nc+xIW+aM zrjQ%w658BGimXT@W4Q*eQeKT!c_bA`#aPA?BpTjBr2hcyIomwFE3KAR{l14)8Xf^M z_+q$VA#Kwe@<)q)&kk?+>2!`3&cfv*SMnYnQl#gieD zTTo7dyUP(HBOYMxJ?eFERGuZt`EU$Xf187RV@nl4#a?<_(?t`^xq#UqHip* zzV*-c;r?1s;a8(?(v*PU@WvOT^W9-L;mG=`>`6wm}&ov*Z9i`%uBtDPo-8D(EwxsU$k5Xrn+% z4f0Rh^{kC6ZI;~>-L1MYaF>Y)GTar7bML?9jQZBThaYxS-w3Nbssr#s)*K^;S_Scf zick#d#tF~Q0)m>!)JrRR{(oSowGPue#`s0KvwJ(!soWDFjqtILAbI@!t6xvmNlj(N z_ zLFKp} zI}}wf0^hk3!Ix7Vz{e_;LFE!iW0E-)SR%Te^S3dd$kddj7M)oVO%a+Q1*<`%c#Z=u z4hA;%ri|33+y<*aAi|k7;|Ceo0CDBz@}`rzqA!`to4rV}lxNbpE1rKk3JE(a$(OZz zuy&G$kxYo`fKH7-Ce4q%%s}hgqi9#TJ?8ijbkJA6fX92+Sy&& zH!Z;L26uSM;EaC7S2mS4U4!qVDPv(O*jrqf+YP2Qz{w~FKS7+D&6+*Q-_+FPl&KC{ z*iCoCq`PMk#;)uf4P-{68xDsw7C0oewkw@Vg(u-w*;m&zyJswL&$pMAS3K%3w;TL? z7Du`Bqv;{HflDM&>m0Tj0;!C$WtVEP{V`U|guSof_Lrh4qhn_1F+4|5)#e9LUAg_4 zJdj=_xlF+xvNwFEaJzJf;-T24}{E|%KW zIICG(T^pVcY*u64?mN{*UF04jODWqRZZXQTODx_mizw9Ix9xu1aq{|)D5U!$^uKd$ zV-s4&(}YN5l@NDIKlS5LAfCA_4*Ts~Otbipvzl$$)WwgncRgBK4I30zLJoyebLLLw zs*<&SOBS0Lv+V)lm-5>dmPn(IK?nfxk`90R;GbO5&+Pd15xyDE>N@q)$tJBHi`grQ zxbJ7IxV@c~#Fke`NFqhlnpmj>d4fKet`}XL!~F%z1vr{` zuAsTKONbn_a_kv_7&+V#U7PZA+NVtWK#|OD2^@x?4=zA-rEhdY0o(o!I~gvF=wpEa zK+FLhG^pxWZ=Q76a=6LDTz-Y{X*)dP;7Q%92-#R}sDDw`x)E`@vrRA(_g&x;v%K

!@vqZlL;lk96`Iwc7% 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�IPk%E}!Fb0Rg67YL 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

MK3GZLf2$(#>SYzXr>*eU`SC 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 literal 0 HcmV?d00001 diff --git a/gallery/src/data/media_players.ts b/gallery/src/data/media_players.ts index a28f679c53..07dc174e8c 100644 --- a/gallery/src/data/media_players.ts +++ b/gallery/src/data/media_players.ts @@ -6,7 +6,9 @@ export const createMediaPlayerEntities = () => [ media_content_type: "music", media_title: "I Wanna Be A Hippy (Flamman & Abraxas Radio Mix)", media_artist: "Technohead", - supported_features: 64063, + // Pause + Seek + Volume Set + Volume Mute + Previous Track + Next Track + Play Media + + // Select Source + Stop + Clear + Play + Shuffle Set + Browse Media + supported_features: 195135, entity_picture: "/images/album_cover_2.jpg", media_duration: 300, media_position: 50, @@ -14,12 +16,15 @@ export const createMediaPlayerEntities = () => [ // 23 seconds in new Date().getTime() - 23000 ).toISOString(), + volume_level: 0.5, }), getEntity("media_player", "music_playing", "playing", { friendly_name: "Playing The Music", media_content_type: "music", media_title: "I Wanna Be A Hippy (Flamman & Abraxas Radio Mix)", media_artist: "Technohead", + // Pause + Seek + Volume Set + Volume Mute + Previous Track + Next Track + Play Media + + // Select Source + Stop + Clear + Play + Shuffle Set supported_features: 64063, entity_picture: "/images/album_cover.jpg", media_duration: 300, @@ -28,6 +33,7 @@ export const createMediaPlayerEntities = () => [ // 23 seconds in new Date().getTime() - 23000 ).toISOString(), + volume_level: 0.5, }), getEntity("media_player", "stream_playing", "playing", { friendly_name: "Playing the Stream", @@ -35,50 +41,125 @@ export const createMediaPlayerEntities = () => [ media_title: "Epic sax guy 10 hours", app_name: "YouTube", entity_picture: "/images/frenck.jpg", - supported_features: 33, + // Pause + Next Track + Play + Browse Media + supported_features: 147489, }), - getEntity("media_player", "living_room", "playing", { - friendly_name: "Pause, No skip, tvshow", + getEntity("media_player", "stream_paused", "paused", { + friendly_name: "Paused the Stream", + media_content_type: "movie", + media_title: "Epic sax guy 10 hours", + app_name: "YouTube", + entity_picture: "/images/frenck.jpg", + // Pause + Next Track + Play + supported_features: 16417, + }), + getEntity("media_player", "stream_playing_previous", "playing", { + friendly_name: 'Playing the Stream (with "previous" support)', + media_content_type: "movie", + media_title: "Epic sax guy 10 hours", + app_name: "YouTube", + entity_picture: "/images/frenck.jpg", + // Pause + Previous Track + Play + supported_features: 16401, + }), + getEntity("media_player", "tv_playing", "playing", { + friendly_name: "Playing non-skip TV Show", media_content_type: "tvshow", media_title: "Chapter 1", media_series_title: "House of Cards", app_name: "Netflix", entity_picture: "/images/netflix.jpg", + // Pause supported_features: 1, }), getEntity("media_player", "sonos_idle", "idle", { friendly_name: "Sonos Idle", + // Pause + Seek + Volume Set + Volume Mute + Previous Track + Next Track + Play Media + + // Select Source + Stop + Clear + Play + Shuffle Set supported_features: 64063, + volume_level: 0.33, + is_volume_muted: true, }), - getEntity("media_player", "theater", "off", { + getEntity("media_player", "idle_browse_media", "idle", { + friendly_name: "Idle waiting for Browse Media (e.g. Spotify)", + // Pause + Seek + Volume Set + Previous Track + Next Track + Play Media + + // Select Source + Play + Shuffle Set + Browse Media + supported_features: 182839, + volume_level: 0.79, + }), + getEntity("media_player", "theater_off", "off", { friendly_name: "TV Off", + // On + Off + Play + Next + Pause + supported_features: 16801, + }), + getEntity("media_player", "theater_on", "on", { + friendly_name: "TV On", + // On + Off + Play + Next + Pause + supported_features: 16801, + }), + getEntity("media_player", "theater_off_static", "off", { + friendly_name: "TV Off (cannot be switched on)", + // Off + Next + Pause + supported_features: 289, + }), + getEntity("media_player", "theater_on_static", "on", { + friendly_name: "TV On (cannot be switched off)", + // On + Next + Pause supported_features: 161, }), getEntity("media_player", "android_cast", "playing", { - friendly_name: "Casting App", + friendly_name: "Casting App (no supported features)", media_title: "Android Screen Casting", app_name: "Screen Mirroring", - // supported_features: 21437, + }), + getEntity("media_player", "image_display", "playing", { + friendly_name: "Digital Picture Frame", + media_content_type: "image", + media_title: "Famous Painting", + media_artist: "Famous Artist", + entity_picture: "/images/sunflowers.jpg", + // On + Off + Browse Media + supported_features: 131456, }), getEntity("media_player", "unavailable", "unavailable", { friendly_name: "Player Unavailable", + // Pause + Volume Set + Volume Mute + Previous Track + Next Track + + // Play Media + Stop + Play supported_features: 21437, }), getEntity("media_player", "unknown", "unknown", { friendly_name: "Player Unknown", + // Pause + Volume Set + Volume Mute + Previous Track + Next Track + + // Play Media + Stop + Play supported_features: 21437, }), + getEntity("media_player", "playing", "playing", { + friendly_name: "Player Playing (no Pause support)", + // Volume Set + Volume Mute + Previous Track + Next Track + + // Play Media + Stop + Play + supported_features: 21436, + volume_level: 1, + }), + getEntity("media_player", "idle", "idle", { + friendly_name: "Player Idle", + // Pause + Volume Set + Volume Mute + Previous Track + Next Track + + // Play Media + Stop + Play + supported_features: 21437, + volume_level: 0, + }), getEntity("media_player", "receiver_on", "on", { source_list: ["AirPlay", "Blu-Ray", "TV", "USB", "iPod (USB)"], volume_level: 0.63, is_volume_muted: false, source: "TV", - friendly_name: "Receiver", + friendly_name: "Receiver (selectable sources)", + // Volume Set + Volume Mute + On + Off + Select Source + Play + Sound Mode supported_features: 84364, }), getEntity("media_player", "receiver_off", "off", { source_list: ["AirPlay", "Blu-Ray", "TV", "USB", "iPod (USB)"], - friendly_name: "Receiver", + friendly_name: "Receiver (selectable sources)", + // Volume Set + Volume Mute + On + Off + Select Source + Play + Sound Mode supported_features: 84364, }), ]; diff --git a/gallery/src/demos/demo-hui-media-control-card.ts b/gallery/src/demos/demo-hui-media-control-card.ts index a26a13a8a3..6298163a25 100644 --- a/gallery/src/demos/demo-hui-media-control-card.ts +++ b/gallery/src/demos/demo-hui-media-control-card.ts @@ -7,40 +7,61 @@ import { createMediaPlayerEntities } from "../data/media_players"; const CONFIGS = [ { - heading: "Paused music", + heading: "Paused Music", config: ` - type: media-control entity: media_player.music_paused `, }, { - heading: "Playing music", + heading: "Playing Music", config: ` - type: media-control entity: media_player.music_playing `, }, { - heading: "Playing stream", + heading: "Playing Stream", config: ` - type: media-control entity: media_player.stream_playing `, }, { - heading: "Pause, No skip, tvshow", + heading: "Paused Stream", config: ` - type: media-control - entity: media_player.living_room + entity: media_player.stream_paused `, }, { - heading: "Screen casting", + heading: 'Playing Stream (with "previous" support)', + config: ` + - type: media-control + entity: media_player.stream_playing_previous + `, + }, + { + heading: "Playing non-skip TV Show", + config: ` + - type: media-control + entity: media_player.tv_playing + `, + }, + { + heading: "Screen Casting", config: ` - type: media-control entity: media_player.android_cast `, }, + { + heading: "Digital Picture Frame", + config: ` + - type: media-control + entity: media_player.image_display + `, + }, { heading: "Sonos Idle", config: ` @@ -48,11 +69,53 @@ const CONFIGS = [ entity: media_player.sonos_idle `, }, + { + heading: "Idle waiting for Browse Media", + config: ` + - type: media-control + entity: media_player.idle_browse_media + `, + }, { heading: "Player Off", config: ` - type: media-control - entity: media_player.theater + entity: media_player.theater_off + `, + }, + { + heading: "Player On", + config: ` + - type: media-control + entity: media_player.theater_on + `, + }, + { + heading: "Player Off (cannot be switched on)", + config: ` + - type: media-control + entity: media_player.theater_off_static + `, + }, + { + heading: "Player On (cannot be switched off)", + config: ` + - type: media-control + entity: media_player.theater_on_static + `, + }, + { + heading: "Player Idle", + config: ` + - type: media-control + entity: media_player.idle + `, + }, + { + heading: "Player Playing", + config: ` + - type: media-control + entity: media_player.playing `, }, { @@ -70,14 +133,14 @@ const CONFIGS = [ `, }, { - heading: "Receiver On", + heading: "Receiver On (selectable sources)", config: ` - type: media-control entity: media_player.receiver_on `, }, { - heading: "Receiver Off", + heading: "Receiver Off (selectable sources)", config: ` - type: media-control entity: media_player.receiver_off diff --git a/gallery/src/demos/demo-hui-media-player-rows.ts b/gallery/src/demos/demo-hui-media-player-rows.ts index 1077e7a7b8..8287f5b773 100644 --- a/gallery/src/demos/demo-hui-media-player-rows.ts +++ b/gallery/src/demos/demo-hui-media-player-rows.ts @@ -12,23 +12,45 @@ const CONFIGS = [ - type: entities entities: - entity: media_player.music_paused - name: Paused music + name: Paused Music - entity: media_player.music_playing - name: Playing music + name: Playing Music - entity: media_player.stream_playing - name: Paused, no play - - entity: media_player.living_room - name: Pause, No skip, tvshow + name: Playing Stream + - entity: media_player.stream_paused + name: Paused Stream + - entity: media_player.stream_playing_previous + name: Playing Stream (with "previous" support) + - entity: media_player.tv_playing + name: Playing non-skip TV Show - entity: media_player.android_cast name: Screen casting + - entity: media_player.image_display + name: Digital Picture Frame - entity: media_player.sonos_idle - name: Chromcast Idle - - entity: media_player.theater + name: Sonos Idle + - entity: media_player.idle_browse_media + name: Idle waiting for Browse Media + - entity: media_player.theater_off name: Player Off + - entity: media_player.theater_on + name: Player On + - entity: media_player.theater_off_static + name: Player Off (cannot be switched on) + - entity: media_player.theater_on_static + name: Player On (cannot be switched off) + - entity: media_player.idle + name: Player Idle + - entity: media_player.playing + name: Player Playing - entity: media_player.unavailable name: Player Unavailable - entity: media_player.unknown name: Player Unknown + - entity: media_player.receiver_on + name: Receiver On (selectable sources) + - entity: media_player.receiver_off + name: Receiver Off (selectable sources) `, }, ]; diff --git a/src/data/media-player.ts b/src/data/media-player.ts index 393c06cb71..45bf6010ee 100644 --- a/src/data/media-player.ts +++ b/src/data/media-player.ts @@ -18,6 +18,8 @@ import { } from "@mdi/js"; import type { HassEntity } from "home-assistant-js-websocket"; import type { HomeAssistant } from "../types"; +import { UNAVAILABLE_STATES } from "./entity"; +import { supportsFeature } from "../common/entity/supports-feature"; export const SUPPORT_PAUSE = 1; export const SUPPORT_SEEK = 2; @@ -31,7 +33,7 @@ export const SUPPORT_PLAY_MEDIA = 512; export const SUPPORT_VOLUME_BUTTONS = 1024; export const SUPPORT_SELECT_SOURCE = 2048; export const SUPPORT_STOP = 4096; -export const SUPPORTS_PLAY = 16384; +export const SUPPORT_PLAY = 16384; export const SUPPORT_SELECT_SOUND_MODE = 65536; export const SUPPORT_BROWSE_MEDIA = 131072; export const CONTRAST_RATIO = 4.5; @@ -166,6 +168,7 @@ export const computeMediaDescription = (stateObj: HassEntity): string => { switch (stateObj.attributes.media_content_type) { case "music": + case "image": secondaryTitle = stateObj.attributes.media_artist; break; case "playlist": @@ -187,3 +190,85 @@ export const computeMediaDescription = (stateObj: HassEntity): string => { return secondaryTitle; }; + +export const computeMediaControls = ( + stateObj: HassEntity +): ControlButton[] | undefined => { + if (!stateObj) { + return undefined; + } + + const state = stateObj.state; + + if (UNAVAILABLE_STATES.includes(state)) { + return undefined; + } + + if (state === "off") { + return supportsFeature(stateObj, SUPPORT_TURN_ON) + ? [ + { + icon: "hass:power", + action: "turn_on", + }, + ] + : undefined; + } + + const buttons: ControlButton[] = []; + + if (supportsFeature(stateObj, SUPPORT_TURN_OFF)) { + buttons.push({ + icon: "hass:power", + action: "turn_off", + }); + } + + if ( + (state === "playing" || state === "paused") && + supportsFeature(stateObj, SUPPORT_PREVIOUS_TRACK) + ) { + buttons.push({ + icon: "hass:skip-previous", + action: "media_previous_track", + }); + } + + if ( + (state === "playing" && + (supportsFeature(stateObj, SUPPORT_PAUSE) || + supportsFeature(stateObj, SUPPORT_STOP))) || + ((state === "paused" || state === "idle") && + supportsFeature(stateObj, SUPPORT_PLAY)) || + (state === "on" && + (supportsFeature(stateObj, SUPPORT_PLAY) || + supportsFeature(stateObj, SUPPORT_PAUSE))) + ) { + buttons.push({ + icon: + state === "on" + ? "hass:play-pause" + : state !== "playing" + ? "hass:play" + : supportsFeature(stateObj, SUPPORT_PAUSE) + ? "hass:pause" + : "hass:stop", + action: + state === "playing" && !supportsFeature(stateObj, SUPPORT_PAUSE) + ? "media_stop" + : "media_play_pause", + }); + } + + if ( + (state === "playing" || state === "paused") && + supportsFeature(stateObj, SUPPORT_NEXT_TRACK) + ) { + buttons.push({ + icon: "hass:skip-next", + action: "media_next_track", + }); + } + + return buttons.length > 0 ? buttons : undefined; +}; diff --git a/src/dialogs/more-info/controls/more-info-media_player.ts b/src/dialogs/more-info/controls/more-info-media_player.ts index de427df88d..b1656d2ef9 100644 --- a/src/dialogs/more-info/controls/more-info-media_player.ts +++ b/src/dialogs/more-info/controls/more-info-media_player.ts @@ -25,19 +25,12 @@ import "../../../components/ha-svg-icon"; import { showMediaBrowserDialog } from "../../../components/media-player/show-media-browser-dialog"; import { UNAVAILABLE, UNAVAILABLE_STATES, UNKNOWN } from "../../../data/entity"; import { - ControlButton, + computeMediaControls, MediaPickedEvent, - SUPPORTS_PLAY, SUPPORT_BROWSE_MEDIA, - SUPPORT_NEXT_TRACK, - SUPPORT_PAUSE, SUPPORT_PLAY_MEDIA, - SUPPORT_PREVIOUS_TRACK, SUPPORT_SELECT_SOUND_MODE, SUPPORT_SELECT_SOURCE, - SUPPORT_STOP, - SUPPORT_TURN_OFF, - SUPPORT_TURN_ON, SUPPORT_VOLUME_BUTTONS, SUPPORT_VOLUME_MUTE, SUPPORT_VOLUME_SET, @@ -57,8 +50,8 @@ class MoreInfoMediaPlayer extends LitElement { return html``; } - const controls = this._getControls(); const stateObj = this.stateObj; + const controls = computeMediaControls(stateObj); return html` ${!controls @@ -254,89 +247,6 @@ class MoreInfoMediaPlayer extends LitElement { `; } - private _getControls(): ControlButton[] | undefined { - const stateObj = this.stateObj; - - if (!stateObj) { - return undefined; - } - - const state = stateObj.state; - - if (UNAVAILABLE_STATES.includes(state)) { - return undefined; - } - - if (state === "off") { - return supportsFeature(stateObj, SUPPORT_TURN_ON) - ? [ - { - icon: "hass:power", - action: "turn_on", - }, - ] - : undefined; - } - - if (state === "idle") { - return supportsFeature(stateObj, SUPPORTS_PLAY) - ? [ - { - icon: "hass:play", - action: "media_play", - }, - ] - : undefined; - } - - const buttons: ControlButton[] = []; - - if (supportsFeature(stateObj, SUPPORT_TURN_OFF)) { - buttons.push({ - icon: "hass:power", - action: "turn_off", - }); - } - - if (supportsFeature(stateObj, SUPPORT_PREVIOUS_TRACK)) { - buttons.push({ - icon: "hass:skip-previous", - action: "media_previous_track", - }); - } - - if ( - (state === "playing" && - (supportsFeature(stateObj, SUPPORT_PAUSE) || - supportsFeature(stateObj, SUPPORT_STOP))) || - (state === "paused" && supportsFeature(stateObj, SUPPORTS_PLAY)) || - (state === "on" && - supportsFeature(stateObj, SUPPORTS_PLAY) || - supportsFeature(stateObj, SUPPORT_PAUSE)) - ) { - buttons.push({ - icon: - state === "on" - ? "hass:play-pause" - : state !== "playing" - ? "hass:play" - : supportsFeature(stateObj, SUPPORT_PAUSE) - ? "hass:pause" - : "hass:stop", - action: state === "playing" && !supportsFeature(stateObj, SUPPORT_PAUSE) ? "media_stop" : "media_play_pause", - }); - } - - if (supportsFeature(stateObj, SUPPORT_NEXT_TRACK)) { - buttons.push({ - icon: "hass:skip-next", - action: "media_next_track", - }); - } - - return buttons.length > 0 ? buttons : undefined; - } - private _handleClick(e: MouseEvent): void { this.hass!.callService( "media_player", diff --git a/src/panels/lovelace/cards/hui-media-control-card.ts b/src/panels/lovelace/cards/hui-media-control-card.ts index 0f521e96c9..9ff35c43f6 100644 --- a/src/panels/lovelace/cards/hui-media-control-card.ts +++ b/src/panels/lovelace/cards/hui-media-control-card.ts @@ -32,18 +32,12 @@ import { showMediaBrowserDialog } from "../../../components/media-player/show-me import { UNAVAILABLE_STATES } from "../../../data/entity"; import { computeMediaDescription, + computeMediaControls, CONTRAST_RATIO, - ControlButton, getCurrentProgress, MediaPickedEvent, - SUPPORTS_PLAY, SUPPORT_BROWSE_MEDIA, - SUPPORT_NEXT_TRACK, - SUPPORT_PAUSE, - SUPPORT_PREVIOUS_TRACK, SUPPORT_SEEK, - SUPPORT_STOP, - SUPPORT_TURN_OFF, SUPPORT_TURN_ON, } from "../../../data/media-player"; import type { HomeAssistant, MediaEntity } from "../../../types"; @@ -297,7 +291,7 @@ export class HuiMediaControlCard extends LitElement implements LovelaceCard { UNAVAILABLE_STATES.includes(state) || (state === "off" && !supportsFeature(stateObj, SUPPORT_TURN_ON)); const hasNoImage = !this._image; - const controls = this._getControls(); + const controls = computeMediaControls(stateObj); const showControls = controls && (!this._veryNarrow || isOffState || state === "idle" || state === "on"); @@ -361,9 +355,9 @@ export class HuiMediaControlCard extends LitElement implements LovelaceCard { > - ${isUnavailable - ? "" - : html` + ${!isUnavailable && + (mediaDescription || stateObj.attributes.media_title || showControls) + ? html`

`} - `} + ` + : ""}
`; @@ -518,88 +513,6 @@ export class HuiMediaControlCard extends LitElement implements LovelaceCard { } } - private _getControls(): ControlButton[] | undefined { - const stateObj = this._stateObj; - - if (!stateObj) { - return undefined; - } - - const state = stateObj.state; - - if (UNAVAILABLE_STATES.includes(state)) { - return undefined; - } - - if (state === "off") { - return supportsFeature(stateObj, SUPPORT_TURN_ON) - ? [ - { - icon: "hass:power", - action: "turn_on", - }, - ] - : undefined; - } - - if (state === "on") { - return supportsFeature(stateObj, SUPPORT_TURN_OFF) - ? [ - { - icon: "hass:power", - action: "turn_off", - }, - ] - : undefined; - } - - if (state === "idle") { - return supportsFeature(stateObj, SUPPORTS_PLAY) - ? [ - { - icon: "hass:play", - action: "media_play", - }, - ] - : undefined; - } - - const buttons: ControlButton[] = []; - - if (supportsFeature(stateObj, SUPPORT_PREVIOUS_TRACK)) { - buttons.push({ - icon: "hass:skip-previous", - action: "media_previous_track", - }); - } - - if ( - (state === "playing" && - (supportsFeature(stateObj, SUPPORT_PAUSE) || - supportsFeature(stateObj, SUPPORT_STOP))) || - (state === "paused" && supportsFeature(stateObj, SUPPORTS_PLAY)) - ) { - buttons.push({ - icon: - state !== "playing" - ? "hass:play" - : supportsFeature(stateObj, SUPPORT_PAUSE) - ? "hass:pause" - : "hass:stop", - action: "media_play_pause", - }); - } - - if (supportsFeature(stateObj, SUPPORT_NEXT_TRACK)) { - buttons.push({ - icon: "hass:skip-next", - action: "media_next_track", - }); - } - - return buttons.length > 0 ? buttons : undefined; - } - private get _image() { if (!this.hass || !this._config) { return undefined; @@ -866,6 +779,7 @@ export class HuiMediaControlCard extends LitElement implements LovelaceCard { ha-icon-button[action="media_play"], ha-icon-button[action="media_play_pause"], + ha-icon-button[action="media_stop"], ha-icon-button[action="turn_on"], ha-icon-button[action="turn_off"] { --mdc-icon-button-size: 56px; diff --git a/src/panels/lovelace/entity-rows/hui-media-player-entity-row.ts b/src/panels/lovelace/entity-rows/hui-media-player-entity-row.ts index e1d132ebd4..654e4dd771 100644 --- a/src/panels/lovelace/entity-rows/hui-media-player-entity-row.ts +++ b/src/panels/lovelace/entity-rows/hui-media-player-entity-row.ts @@ -15,12 +15,13 @@ import { supportsFeature } from "../../../common/entity/supports-feature"; import { computeRTLDirection } from "../../../common/util/compute_rtl"; import { debounce } from "../../../common/util/debounce"; import "../../../components/ha-slider"; -import { UNAVAILABLE, UNKNOWN } from "../../../data/entity"; +import { UNAVAILABLE, UNKNOWN, UNAVAILABLE_STATES } from "../../../data/entity"; import { - SUPPORTS_PLAY, + SUPPORT_PLAY, SUPPORT_NEXT_TRACK, SUPPORT_PAUSE, SUPPORT_PREVIOUS_TRACK, + SUPPORT_STOP, SUPPORT_TURN_OFF, SUPPORT_TURN_ON, SUPPORT_VOLUME_BUTTONS, @@ -80,6 +81,7 @@ class HuiMediaPlayerEntityRow extends LitElement implements LovelaceRow { } const stateObj = this.hass.states[this._config.entity]; + const state = stateObj.state; if (!stateObj) { return html` @@ -90,7 +92,9 @@ class HuiMediaPlayerEntityRow extends LitElement implements LovelaceRow { } const buttons = html` - ${!this._narrow && supportsFeature(stateObj, SUPPORT_PREVIOUS_TRACK) + ${!this._narrow && + state === "playing" && + supportsFeature(stateObj, SUPPORT_PREVIOUS_TRACK) ? html` ` : ""} - ${stateObj.state !== "playing" && - !supportsFeature(stateObj, SUPPORTS_PLAY) - ? "" - : html` + ${(state === "playing" && + (supportsFeature(stateObj, SUPPORT_PAUSE) || + supportsFeature(stateObj, SUPPORT_STOP))) || + ((state === "paused" || state === "idle") && + supportsFeature(stateObj, SUPPORT_PLAY)) || + (state === "on" && + (supportsFeature(stateObj, SUPPORT_PLAY) || + supportsFeature(stateObj, SUPPORT_PAUSE))) + ? html` - `} - ${supportsFeature(stateObj, SUPPORT_NEXT_TRACK) + ` + : ""} + ${state === "playing" && supportsFeature(stateObj, SUPPORT_NEXT_TRACK) ? html`
${supportsFeature(stateObj, SUPPORT_TURN_ON) && - stateObj.state === "off" + state === "off" && + !UNAVAILABLE_STATES.includes(state) ? html` ${(supportsFeature(stateObj, SUPPORT_VOLUME_SET) || supportsFeature(stateObj, SUPPORT_VOLUME_BUTTONS)) && - ![UNAVAILABLE, UNKNOWN, "off"].includes(stateObj.state) + ![UNAVAILABLE, UNKNOWN, "off"].includes(state) ? html`
@@ -220,12 +233,11 @@ class HuiMediaPlayerEntityRow extends LitElement implements LovelaceRow { } private _computeControlIcon(stateObj: HassEntity): string { - if (stateObj.state !== "playing") { - return "hass:play"; - } - - // eslint-disable-next-line:no-bitwise - return supportsFeature(stateObj, SUPPORT_PAUSE) + return stateObj.state === "on" + ? "hass:play-pause" + : stateObj.state !== "playing" + ? "hass:play" + : supportsFeature(stateObj, SUPPORT_PAUSE) ? "hass:pause" : "hass:stop"; }