From b347386e99c131d699b3c425ce1433b650a06155 Mon Sep 17 00:00:00 2001 From: Joe Ardent Date: Sat, 22 Oct 2022 11:18:58 -0700 Subject: [PATCH] add built-in airhorn alarm sound --- airhorn_alarm.mp3 | Bin 0 -> 92717 bytes src/cli.rs | 7 ++++++- src/lib.rs | 11 +++++++++++ src/main.rs | 3 ++- src/timer.rs | 48 ++++++++++++++++++++-------------------------- src/util.rs | 37 ++++++++++++++++++++++++++++------- 6 files changed, 70 insertions(+), 36 deletions(-) create mode 100644 airhorn_alarm.mp3 diff --git a/airhorn_alarm.mp3 b/airhorn_alarm.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..23d2813b418b8e2a1ececbdac4892edaaad05c5c GIT binary patch literal 92717 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 z

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%0DtUHwTz`A!9`9Pm6-a@cPhdE|nxa?Fq@bH$rIM+P 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ⅇZ-jb7iDA>7V`Qi0_`MAu?z!6Ff8rmdHB#bcF<)r134n?i2zG zX>axJEdS86<<9ze!{7zB>)U^`Ki73_4Dt3gjWf-uHm0>2`)GY%3Gsu-)iVG-2>x>< z`ECd`zD4DqWrt_VFFrQVitukyRDOilUgJW%}J!~3Xq!aX@9xr-KQcQA6{IC zQ`!hdeo4C#sqRFy=LqZagWLJoi++rHkV6s*rmyjh{|cL$z*ALe0Gh9MJs7>7X)&m} zNG(C_9Q6HXxxs-ZL(=jpuzghMEKJSffj)`8>B*jw}LR? z`h>r?4a6%PK~K2ll0z^__(tyti4n^o>5mUa@Z~l**)y+J+9RcId3gDjWU1n$?T?6$ zsOvqbd1&PLK64uq-vp$$DZ`1D$i3W0&2#T zB@_IVUmvtAKUI2PoV}s@&^B@=HKEHbwZ?IL7VM-W{~1GvLZ@|pr`CG3yP_2h%4+Hp zyWN+7PfQdqsm+{b9Oh>X9!IjNTHVgS)aWjK+FkJ5JHF#@qTTC98r&Bpv++cG4zLzl zpg!FWgFYiJ^#W8WhGmz6HA+*QVT_pSZ!DDNZNk~n`key0+pmsBdlDjVaCQop#3vUj z+T~7%`ifw2myjsd_P*Qthmvt8Ol#I9HN3R60{$===gAm`Na3=?pR6O;7mibND6{vT zg>hM)K{oy>7~m!sMa@R&aE$G2jmuZ~!)m(*`_L}^=~V?7JxpNhlc9v?a2U7+0n#pi z4|WOxX2MCt3k!kp8&tG8VWgGhPCgv>3t|gfHh@7Tl7oSQ=auDGpFxQB-~kJI*013^ zMnyCrw+Fc2U_BtPp{Nxp0sIWZ08o=tuaw^$_>8Yp?0*V3qQk=@6s~naF$>z>(Vb^O z%q~`ze}w3U0tW#~l7uU?8TKg}gxQUPeK|K5Y4E&(q$|qdc&8Q@rOQSyinJ2><;Vx( z+wNFZ5hk8*8J!AG!ZfI+l@2I(Cgv5ik7WklEpeDUWfDtN{r!+&lNJNI2crhIZ<47$ zgm5w1#MKQvoG(4oB5YHgAUoP(vROffxWC2m^GBlOt}E}p{qqkHa76*MN34iBwxj|@ z=7o^10U1o;gUX;X;1t}4r#GI0@6~M_O{RqxX_XXX;qa@?2di0GFYh>I6od<{>=Q8QJZH?TaP)@Of4Gy$I4!@l<6CxZHIf^LHnobB(aqi2*7BVDJC{Ts(Za z2$lCApSz#07z!A$qYw@ti){_;v)9ywdh0v%gMT=k31_mI(K}NUiH5a}yg)d^ef?3a9H+}41FGD{2J35P3Dj4oKf(5?(8@a& z$VAh`Q?zzi?*8WC0^A@Ts6_ z4ibYVV(y*aj=n!Fbn%pMf$gih+^_DRg$lC%{aNg=Y?+@jbunhRCW@G8M&O~x1D2TX<54*kx4 zT5lWR-hT3Nnh>gLJUQ2`;~xadIDjnF+^vRZX<2v5H?s+6u{8rA)hC*|X*1BkT^k7_ z^OqK4Q$!qv(pqr9Va)rvJF#S>vPt11O>jCo1Vec~c@(LDj$S9r-Pm{4s-aFo!=((< z<=qFFG5zrmQy@GVkm!f7UW*3wL!XoHOfl( zG?~3(?8b}O4uih0<>JpZYu1lVZzcvRmkCYPS>3NFI}eF2<(g{0uiX`p2;rK-;4Am~ z^KArKDKotvoMjQd6^y#L#L9w)$DcCd`Gdjm*I!BmS}bQ|-5D|Cs^2S5tv}^*44V&2 z0o9BU!!362d|a2XndZUFPt#=RYl^Sq<6qcJo_jY+aeZ6X+&2{Dv;neJp%j2GC)#t2r56+jLm_ct&Uhm!d6GC-We#}BA0YkdZmYHyh@&-e zNcb;Bs)#GO^de@t7FRdQ9H6EGnY7C(HARG%Y8^9VUel7g+a%qTDU>guLHnL6s3;e% ztYzB{g^9(_*S@i5MxK8&cQw$(0!>f_gc7+f{o8k;?|zwXQwM_ttopA8pG=%GGPhQ%k5x?4tdjE41De zK|;QH^y+cnKFFVe658M<{Rz-xz;ffZcrx3H7`Lhs9EK;B8}XIbp--Y{pCG9vo+$x> z(jw?bv4cSfEc+bAI9H%Lu?y=~;z2 zP42cNAO=v5y;r6mf^$XqnS*@K+7NkCIEI3*_Z@CowMlL4_Ik`s!X|gF$Ju8q!jE z>x+QD83X655!U0B{TnZiMQ;}yg)mk`zOl0=b?b3%P>&0u+W1g{bu`QH^R4LKU6#8? zIG0yhJwj?Z2sioz^1J9PIUU!7hL)S`Yk5lX3dk4;4xxhaVv}TJ{O!kH8&$c()5dUM zI6Izg`AuJLI@#qHjr=xu=E=ic9(k7c^_okJ^QZTHBh*QP9v_@_eEKHIbSnb9i2$1e zW&HD5up9S}n#^1hB#Ra6;g0owe|cLDRsTl@3`!t&`yb-=_Jl7zNW>47h!R!xW~!sltO+wK1}$QO(+@t{kJngq%adY@1QL z+3H;K3sXI7Or0Fa32Hh0cXa(>v&2=8Y?KU22K>JMaHCsl&4tt?ciUZ zO1t~t*g|i`bG%GiPI^$CVs|gq4RD9sl=rI`Ox@!1G(8g?G5i$ES0jUj19<4MWqYkr zt2;I)VB%KRv{Gwg*o&-oP4;#%zhS2T-jrGxbUZ*kPYZuNHLzfTd9zzNub$N+wj%Q2 z!iH*)dI$?9kU*C+rS-7F14-Wqq?_y4pLN+juV_({KuQwPo*#g$0cg(-F&z6xmIWIF zCn`FdE7hQ~Eol^F>JrcQ@AP+^ ztf;+AWx|B(0-1-jS2Z;hFoR(eB$HIkrF2I@`)PNnBRo;4Bxq zQZM=T5glVZXQ>DlA%((PccBZ;sWZYaa#2rP7#8Wm2 zeiPPNAfszcfzwVu6h5SThfi{Q@TKECgXJRT=3oW;3uyF6)Hz8ln~Jws9ykb=(Q=4u zdVIqFG>{LL8%NxM!V0}KK5q*|cdm$iV5Cbh25msmTMozii|D&mF^C~$GWH9ur-?3E zC>^TZZ|hlCw6MqPz1Xb|@2BAACVNA4Dj2?Sfrk#{H)O89`ioIS4Mv+2x}~~`vxn_O zF(mhor7BPhabzL+*P6F;_}iULM3gIBckwcbe!V(Z#I9P_Fe>IQ zG2`QJ`qMB$Yx(qY-&4Wte>MI;SXs#{i(vR7%<@f)n^Qm;77wFyHo{)8GPk5@{aFn|8O9~6QoS$%j6+LX6&H2obW`@0sIZQ)(@agP) z5t3VZ+th)x-n>Sv9SGoXnED^ddy^X zl&9d6f+QnNhzS2CP%KoI{+g64{z;4e6K$S}`4Yo2Jha7)REI@>}DNKZVeW8O8sTs)RWp^ zv({kq>wF@)Z0cVm0-?vsI-JsoZZQM5?+fTdDE&cRGU*m!4eXO6FoN9@2KO~7n&b1j zszpogjGwoDJQfs}$8l22=%Tf#ywca^1wFRfOK)-oI8&HhcSq4LS!WD>T>V^EmlARU zRsIp%@gG6BFIVm4);B?#$y(gUk%?%3CsWuuT`kS8i+H8|R%~5s2m%Me!UA;fy?5JZ z+HtkD0wWVp5pO@|OXZcWkMJ(@i~68qyBq3TnHnPG>?+R5i)+{9C|BD1y)Rbo*#C8| zN+-xSYZ+1Gm7O@G6olOP-J2QP9Klh1RkA7D#@>u#3IJ#HSCXjp7g+Z7I>me@i{r@Kk=CsbR{AvZHevjo z3ij~EaQ}~i4j&|6xX2I+i$z=UC9J2#4$50Grq!QdF47PrWGW5E0$=>>Y;>|0pq0Un>I{6eHi;cpjaFNee9nZ3A zH}FTj-IW!yCFp#-!C*)~C}u_l1~mSYAnxR@Fo=oo0edjO)yxNxyRK|F+dp8D?!vZL zq6rR*fz_h~gzaI^GTEh)uG`2kV6hj+QAuO^X@$xhYVTMpjJFDIRLKb=j(&S^$h_YA zwq&^@=FU7rEmw#X9YnA`$aaBZwLJcKVZk3j_=4L;67@xIV2}CE1o1}-X5E5kkN{BX6qnjdBHwN{q0zG1cTgviPZ*d&+R`!5gYqhY(ngpf*X zr*W9+M(@wij||th02(au31ONd)0(CtFL-{RFzxBHypnnAY6xgrdj*8v@r>xyb1aDu zIQz80*}w>n$v`zBaN2M%ak_q|>YgepaiMR`&pVgjzVK(WpM*~i zaO>@!D?H}AAvSG&gZ<+T62m`U`2Y-{z66i}QvOSJC(px(0ziZr;z`}dl0<+o?H`;) ztl0kzP>z9(j@HIXJ4n+RZ5gz)ed-$qP_o3)l!$4ap*B<1`0XRTw1R9N&D;}t_1pbM z*==@19jm~mSAnrn!@i>We+R^~TwhJl&r4UQVNpl5P1yTBj*qLc@LE8Lxm)~nK)Lkq zEwI4{a7tn*_Ypv7eB)QLY_*}p6z<8~R441nZ7O=z50>vKjjSKWLHvAkuFO35E;Dmv zs<-Fw@aFUsmvNXWbjART03)%HXj5awF}4tqd6C=YpNawEugeei-(czyk54hU%9>Kg z%JB8(C;aOqTJOi&2J(LkOBF8^TaFjVmmALf77lTBiSk6Jo?&@a#ht>xi+Zw>gLG6B zy>Rz8kw5qiDotXDQ>4&env}O&!BQCvVdX=vHqh59x)pdcjt`)e!Bfv%+q+CX*P}>g zHjgsy0)9R?rcOT6et?hY^SKiLT+Bq``aXyKt+^LH5B__u9-xMpx+5Vu9Pr*kJl_j^ z+cJS69GIRy6WP79WT%E+LSs=t>~#_=iR>|mQ9nJ8jJ~c8V-8Qr%{l_`bIrt>kK#+! zNKR4d!(CjLMy*xk7cRQLVms9@1@_EPOz_&B{AQv(zp=7Nv48U6Oy4MJ7)h*QXK`TT z<_AUw_}A#jSlqop0iOXX{*b0Av&exb3J2gQFIZ29ph>7$+1MZ@NuIx)u8Ia$Z+%S} zz`rvN-d7;GygI3(=QG(*_48G60^{t@x^JQ5lpIbDf;N42c5sCR+jiExr zF=e1@z#G0loh9L=f}oALG&rjap$FO2etU2BbOy$LP{eV;A6HSZN&gOI4firDuKQT| zv4&6VUTu5oFTeeog;+Ujc>>j3HzU!W{TNvmkjeK411nuDB@K+knj(KZX1)JfrDE*k z9-icQG>_aP8E4YSHkFOv@lCI^4Qi0!QN$}}Oz=(q(Ox@w4x~O}GmBHsTPSAwF4CWO zCY-b-dN1vb^X<4V5f7aGlzhfpuC`wZy#1^4!2Bn@KAzGUOI$x9z})q#m(^4Q62c=+ zPWG%8vBQr1Liw8}1~s1vTjfsFQ9($6vh@t#-tCb(w0i7hus##_exs}Wdt&&CX0iy&JBzQt#WPxVr?={GYj3!xt^4#%QX)1Riv_%fm>i_QR30l_5x zwTiQni~NR!IO$l~|Jf7ZCr2EuSE3$_lw`w@>SMv~{1bypF07vth>7!uO6X<->ADZ^ z{t!)Pmbsv;{aii1kQ0KAN z{=1}V=HSSs(W%HwwU6Y#J~r2arsHq`9z;g^o7hBJw0tn>iXabisp6Gk12{>axLd{K z1qU0p|Mk?pn_(;a%~p53pFv_)*)p_)vL*2Ey{-S>ReW;J$6Jg_^tjaf;?<)XGz4Dxuve}bpQwyYPo>|1Aq34io4<*KC=^f3T9_szG) zl2l{=l(GcqORTUrFih8&mzq8;3$EMNetNxFxJpcRAVz5f2r07vEIF(8|Ul45wf#76xluW>9{I*pHBGsDf4&?0cpx6B8efmy4BAWxQnaCm=b^GP?-1me^GARcH} z<-#`UVX>%P5T4hir70xxaBR*#j3V{-gMAdqZU?sc&L z4eF77Iub_PFpY2hv)gy7HUq+s%FUI3376aOOjp6+URAnS%Mc#L#jvV0-68 zgKz@fvJ8#qr3DG8;M-qQQdsV}P}_{@?zONziTRoieJxBOJN!7FJJF#RC}hnPKiK109{Gbwyc& zT0lK_bD`LD&bdMP-D@NRg=UWnLiVI1AaBt9MyO0_;b7al0{h2~##|qQMKWD7?W=DX zfnrhqp-5FSqb5bhV9A8;td?!E{@Q_a0^uiH#9skD6ht0?;~*S#`dUGD>x1eO*KZbI zkNZUX!|q7M=4JjE>w?yDbl&^Nk_=(j6Lb|wXbK`oBVNXE#m?7Y#ur46gQH1SzB+BI zgN+-I`i6v_Ufdp>7(j85MEp_}fWVM3!J9?<7&kiceta^OYa_GWS`Qxd<>mR2pY6O$iN*)9X3mJu|%p8O-Arw8tPN<5!4h9J4nq4#6@tv|r zLsL9_C2|AuEQ%gtO~Hq`k@KkYPSHSl@~(T|`wUXQC`8mZ7LSM+wUI;b)U9q{D%$Y) zxnK9)=7&0Q0;|_V2q7d$i&&6-3VcOI#56a!O|M=06t7{G&#A}$i|~N@w``yadodXk z(W&PEJsH1K_@-C`Ppw@GC&+2v1Cj#gA7KLMyrcFw#g%B@-jU1j-5)DwJ}(~itI8@& zMYaDWL2Y0{`sD7%A;w>?baJHZ_8xGUhgb?Zl*M0D2yov2>%t0!2?KFhHfJ3R)}u)d zkR{YY;MugDG%IC;DX4frmf26*p2h2gvz%3XZv}IYm3)<3cAv!S1(s}FK1eW3 z?3>LMYxiEhPKpAT^AFdMp5xvBrwqzYi-n0{%~=%<%RTNH%698O!Y-R%@^4f;Orrm5 zlrI_KueOf5oQbV@Nck}#*pEf)aDAFm6BJXO|NeeNRpb8n6X_S6q}FiHegNUAChZ$$ zx!mw2+}1Uk>8Q;%*Iiyy07t>*`^8E!>5q||Z97%Mh!-zsir<_ryxX5I`Ny>OPyF7t ztlD55RaE4zHtW&Foz=GV!|lZqjc9vL{O+e`pZHf%{DXN!3yDqz2^)mO9V6k4N}Rmj zlbi-d@OMLZi2O{p@W*F&sruChoZ-i3{ATSm&F{Yc$8-?&T}@LI35!1>Re*o<=kWN= zr>#4^&LgNhpn?#7xN^6yl_dYajPHLOKRv$fe}#7HggT=B-r|dcKhq&uHJd)F;hY1O zvn-W>9MV=GM*4dW-bZf>S>ellKz`W{U zF;m=aq!fCai7$9xK%MpzRX)GHyk`1&6))7#-SEO_@o?)T*zb5*%$2L;ezin8WMr6_ z*iA8yx=4EWW@Qg-koMWz6_t;h>%&;E!X~=~&>q(}^jaXJ^uK|+Bn?nN*h-XT5Y$Jk z<^d(6z}XRtO51pG)q{L03HMjc*gWKw6Smtb>xd;KYEhT&uj3RaG2}yCCVJk;8Pk*Q znrDK34^Lh`P0VUC-)`=!T@+?oti61903#paeaR(!-~`sF@Y|on4V;k#FpwU9_jJ}3 zIqaOs%8x~n&QzA_Q`*r&Rom5-%l0ge^YJ7;b49m+kgS|HT8_$Co2EawrxqaUW<#;1 zBBSa=KS22q#xzdU61B!Hf`H7?WTW`?+HxVo&ll1KIET=J!b zFY2w3wt31&5cask(1nVZHZzCO&SEZ#K({Je|7eqkAb8odRqwMWOnqSW9;3!)C@GIJA5ij4EuabU!YJPsAv?VUKL`uwP^RC(C+g4=h#8QdVs(z8^CU6o=;W(Fv-Ng>dI>;UM3D`k z+^i-L?%nO*PcAXc6x0O?1n?pU0X%7CMA}_JI#9wKHyZykN8}|L7Qc0oeZ!@)_p$u; zjsxPCXPwl?tMAL=*=8#`M3qE4t%1vqa_(LNd{L>^7&q6hJj;n zUAe=J;VSZhkjNZNJBAdt(s-d26IXPB<;+vn% zq1C$TBiXJG4rT3t*=7j>V7SI*xavMAKKwvd>32b9WW$=aetrOo9fD`h4100M&%r$S zxdp11`Rs0QrNH|U%^*JL=;yTi2Nb0UU~hEfUe(zRZ5qJ|c||2QpYE2bGy7$ya_&

|kNp|H;%evwJ(HerW;avxHJi8%*65fBQ*&iTj6Cb`-htz>$?#c1W#JNZB1 zbZJa*eBh;|Cy+bo`p1xkEWz2hu&&xctO^T~u(q2X@9QUYxQgnG2-QUGeVK3=)u|z? zk}%M}9HsS}gk^*hO&ITO!RTp~g#p!mlR-SG-%RE&~0t0qIKfLzMP0FfCE>YpL@wQsFr=5@#C*hX2Th-mswUoB<^bnwJud%3YA+ zmG5lo^X{91oAnQWz1#$_0HTO^+|X?g&Lm}-ZOQ~bC~d>JqrU^WcKfEH$$qtN1^qffF4elXvp zx2Yx6@?86ifdunTZlym4U#Q+2EZq5>O)^N2?IIkm75wosNXSQ#0eINKFJV}a74AxM zG8Gx!4Yz!`*LAi4HJKYHWRjth!3W`QAmbDlJ$fDlv$NjYTe8o3;V3&ZW9|GI1;9d! zr(3FJR668$K)3>R!^88Q ze%b?lg9VQXWgg}Gpb)iQbZp->B3P4)3d$70^{;wPXgt6uy32qUBbtP@8!s~4?pPdml_UE^ zO!|zBzJm2~`V87v3`tz|Uu*yi|00-EjgjKm6+q|1;-7(uzeObs>uCk%;k8pIUDC}7 zB;-N&rmuznp3mC3H(xKzJf#$A7yhb)R@z;j`z&5)_tAvbQnU*f zR_&_iS8tji4($&?QHy1_mDjw)8qAT*fX@-QB?yG?bDCE1)=03BK+Q+p@Pg^V2WHO+KL%7O{>bnn)vM^%ZZ>&+)r!!V+su#IF~%f#O& z)GRsreq@5c3b2S7@~nVoJ%z|JANhpZu2*!oZY=%B;P?|}tqPMvs!sDe+SQnlo$XS- z{`b}buIAtf+^z&GqLPD)xN3h8UeaKJxeADffvY~}fcmI-&L6H_2$h1v3Z6MMI8#oD zc$aF{zn^{Ev>tC8AOC;dU1w0!+qVBF1V{)VgeV$iTJfI*S=B7T_(91iJ@w&@_taR$jhO%4TVE7;z!kKwLaB2GOoOla#0=Q4l);6&&C zJ$K1-J)bpC-A9*>Z_+Hck_tPAY<{_a$&kcrh z>kge&a-eBL%1kSi&25WE)>dZ$ zrBQ3-L0LcCG#$5NT$9(HqRuj3)w;1vPrDks)PlWJb@al%virP#9*n## z9ma}Mc;T26eoqGwoyWCn5(0+b zZs-J7%oR0^IL^EAP`W7)(E@9|+H97X1Y&{Nn((zd2=-c~Jl+np4bwir!@a zGGRf`Iak=(k+wdJ0FE|)1$zcZeM!rwgWOs$^Ki5Hd+*Zgw^jNto-+5U-OzNnGod)0 zTXU;S;E5blZn%-Gc{X$(nFXFw+@0Grk8IE#0gp~Y#IdQhO^v1;{l{gGRfheVx=#OH z0|AL&!xETojMU@-p9s{~&P7#!weaH>irs98Ux-@zsa zyfyOpO5nH?^Gu?`RhFsG0wqES5Oz*u<=9C={Y-tFe(NIwDYb&wR$1<-XK;MtI=Q!$ zWh3$U*2<}k(;>nO>9sn+Pm5e!*AGE1cqZ@xLa|8OWj0D#m`XyR6WN~jOujN?+lorg zx{Mo+G{Z#nor`nC$Edc$JPl*&;u7D=C64|2xuxyyXMVnVJ@)kcNc(o#SR3W*bnkHU zz?6$t1lfoM!N76m=dgr|SiH87v+Z@)xN>tN=kOdsHId{$Qni;;|ux7bgqWB`P~=gc36LqZAB=>q=Ml-hz4Yca!u%DV21&gh7KHNUMr^0zNHRAL!KW7qz66j{aU|F!9(OFORth)6@zw&m%GN2%-sq=7 z)gyFc@TcOIEa_owuj2hwime?Orz4QppzyCUpsJ{o$3YjaVOqhhBJg{o1BIWmEA_>9 ze-w(_@QT&5L|J_~H*tOYPA3(8N*Bnl7+YY5i+B{4dn4}!L~vrAezRO^nGYL6iRld~ z8WzVTMVO(_cxOzi$CeYAo!1LfMyk)ypqErfh?^< zX~#HA8ckf2s!w*{K`_wo<^OVW2;${btS!}cz;;RBeOo23|93s0%_e|0P=tu;5ZKMK zI3afxNEU_^*a5$F9qk{!Gf@dnMK4s=guK)ASk@C;KOEm$KL1%Cv+X)qyTEaG+sx*j zD`H3)Xu9M|!1BEIs6$<^9Y`=~EuX&cd`PR34G zx*IkqVJ6gAI$yQs_D$%;pO2u zcmy&`jFl<%Pbhp|Zx}G1Yokd*kD0%9B`9N8Hjwx!yZeHi5SJDG4#xQBcu({M-c0$2 zpr7h0er6aG6#qF@h-+CO=yrOQQq>Kc>Z=nT)vo|!YraAD?RTf4N_LUZhpX5%twY@6k~+6V@}d6SNTp zspdknE;XZHf!kUh!v3RRUjXAU=u=Fo^WKKe%Gu)-fA40C znI|1CO$HwJX_n@I7(5?hvRz!}o_bKJC|}%A$@(pC*p<;h(^SRQACAVi>pRvwjeTGX z9w+2c@+gDmHxcLG{%{;DrgPHiKnHUi(m7ds^L1{B(2dh$n9j8$U1^$z8mTYwEf{=t;;+^wl#zzR`TDFm^#p!F4kCN;Wb~p@fc< zm4BPo_c6Xau@uJz(Ycs;2ec5S!GD$+Wh57AS0B_B_7mS57fA{fWoDeNayzHG+{+BB zk_|=iJiPjY%~R97oX{u;d)wd)ecN+7xnDM8iDvQBtJE5*04?rjPzw%VKH8HRm5X`4x7gdrE#++^CC^UL%SR6=!)?w z(J%-h4IxM(XgN}wvi}4j(q5Cu)?`a>6g&1(BJ+gir}4+)to`b(TP972{``#jA=mc{ z6`R(tYf^*cwm<7R3Cp#Lf<8lw(yx-`P2-Pc6&E>>k{BAl{|9Qm`1yn=W1QQXwCN@a z7I5TLIHjaFOLfz~V^4Hk&%59(cFLsYZ9o*XZoa8F^>T#LYJOmcfTAc|28e^{2YbBI z=T=aegTMSVee5yd1j~yMY~8g2q$bGpDqR5(B^k^pp>zX!V;i~>W%sn<$06^-GRcij zp}pCgVLo}G{DN%H_3tbCuO4lpleev+^S0x4-f&HB@D7#+c_oWuF?~0dRww8d^2%En z0vTq5XL3)lYvtVR_-HxKNgY2#d+Fhnl>I~MH>;D<_N&B_#3ee# zj@#+Ms_V);ZrZb6MQ75)?z_8ohFRDCocNora=?5uYu5@C3=&8^&DY99`wdye0jUe> zXu7}Q4!oCoSmQ08@wtbth{^2#S?W}tYXbLYU;?}@#S3|m9eX??5fxP1c#@yB&&JzY z9_V*bmZ8~THc=nRkR=D zR1>T)O&LCtYxLZ9G2r4ce+3WI;G=6wuQC=Q5A*fEP>sZC>1*2P4R^%SF38=kt($W+ zA8QJU#%;A;Xop!|dg}aW-)rq%YGJ^t1(zRMXDG?-q5aNPZh&T^(t&1*RM^CcA^56> zl3^b~d}3=yjcPoXbJR+%Vjxx$Tmh?piSoiY`lS#f>JNnAANnSq8qJu{BibA}jq-m| z2;U9aR&f3K3r%j#_xgle;*JW`+L&(LTAa@zhT6WSWL+h^z|jE+3b;9@s)&GCiLFY- z8-mkRE8I#xf<2sf)|RU+X4r*zA&dVop0%tZAD$8|>S>PJk#t4=Vk;`^IY52?;P{%R zDTjWc`|8y5AS%;7yNnE={0s!HZfPKL2+J}DU-m%$s2d@R1B-q zf);IfIOK41X7Y9O!Rzf_UdjhBQBf9c5E0i6OqId&jrzsCm2fsrn))!qCrL!4GK+_e z!g$aiT*)hv ziAgA>#-`>8NWkSVIJ7N@5|kUWky}I8g_MDRBjg7wmZx5umY>*=56oi4k+>o3irnHd zkNvv;ok=p89I1(tCt;t9qHb`Fh;%$OiEQj{GE8xqcJRH{W06mB7yC9Ao?UcHE=bY7 zF;3j8(EH$-FO4&UX}J~K1=YOQnXbpRH*>G!7qtmLox2vDHz9sJ`^&-X%l8_2cJ`_f zZQ(I?w$BD!E!ZW8Q9LtYQiDl%eGX3-cq-U@`L$gr?$Vb&|FSP$d#$nBfT<72y@m&e ze(kY~29R$65C?=(e}Vd>9o-;FF&d(B+HBYUN~RFCSO)gR`+GNf<$o-9YR+}y;0qJA z2>5*G%JmTLAEy{6E#7lJ==4!n!SP9WCm^D@`DZz1k1m~-DHc0l{%fYM!h3eTaD$P4 zJL^Ou_T~G&S0q;!SO)~;eAv&5A}yQh3NKa&@Y7Dhp!Ak!m0|?U%Gq5>@XA%dv?AOHNXDhByL5 zN8NxXENu4)gyqivaLTK{VR5W?v>;=uDRf!(z*5&uhP}b3Ka{-e@JhndpW7!tNi+xt zc71(dz?ivd?of`7~dIj{TU*U5&O-|Exk_Gg?Cvq*|4w5P{`h@tiKSn@0eUls+&NcIjr^`nk6^D z%Omk`cd5n=5|!4L>agjB^)k`D9HAvIr^QAaE#jhnWgQ^6=|iKlQWO4QZUk!llREy?+io z2wV>BTjwkD^4`un4JELGDk21HE!M{vDWf0VPxkiSV$r?TD6E!KnRWCG#SrGJKMVP3 z*|mrURsNmbADG-$H22DZoFw~hP%cBj5m#=?$J7U)(PcFN5JIPtm#(9ti-RF22Z6sa zNY=nU3nC&zxwp@cUvLh5qcF}3hcuYOMuat zLvEB;`0&CV>=}q;yR(-_`TXO=hD+2_3CWnc1lgLP#2J)+>sR>eL>qqM$(}Pxi5y(S zd#MhkMs_*emXb<$i}#8?u8kQt>QdIWV+Tfq-!-|GvZhgbO)Gt7hX#+)J?yW+!po|@ z3bB$ewZ6@@cTV!bDhCw%rFLKGnv7=Z1N_Zc<1-+O5Wo@?4VZ*%__qMPT}L;9s#^gD zAjVBjp<7C zNfBbQsBLGMB%E_>z$w7jX&*X*0qGu3(W53uC3RTVHRY5v2*a*M`_%Q3uazHjwbLkt zDkd(@G?nz}y)TMb`eqr~99*{SrzF5ibkgJXrN=sPh3)()T#~}Ltg80aE}Yh1LB6v4eA&g!g>ccdCmbVJT}U5MJGm_7Fnr(3Z>sc6 zAikvZ6cHxTYZjk`I)XR5(rn%l^5M>)Bl)(YB*uZlTeiO6w(}e8UL;D&$`27=iej)9 zD;m6xuhXh*<%jRnxIOFJ&t-k|)v-Yb%RkKe4qBTJ>ckE;1%-Ip9+UraGoZKq=(LOy zX26rc2Fh|ATB1+c0-2>#Fk!4Jd@N>GNKVjKXdbU%ioy>1%;HU{4#?nE+|}_b*<10C zD?2G!R4c3~CZz*J?g_SM50Bj3jH;P=3%k&;Fy`2Bi_t&};`tzzO65x}V<*myN*|Iu zCyNYMv$@;LCvJ4fjL*c)pBmPCPEU=^I-~xcHdl}3J>QXB%Za}O41jXHT zKya87in#=&lqtL?bR(>j)ACqXla-;h=|L4$Jl^?#_4wD`&NM2(G&su-0yI??mgdf_ z3xLaZe|Z93|MRl{+B*M#-|^4i%rxo>04{5M+|r{#SVDenF$Km+{nNS) zG&%w, + pub alarm: Option, + + #[clap(short = 'A', conflicts_with = "alarm")] + pub airhorn: bool, /// Begin countdown immediately. #[clap(long = "immediate", long = "running", short = 'i', short = 'r')] diff --git a/src/lib.rs b/src/lib.rs index cb4f116..4d6ccb1 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,3 +1,14 @@ +use std::ffi::OsString; + +pub const AIRHORN: &[u8] = include_bytes!("../airhorn_alarm.mp3"); +pub const PREDATOR_FONT: &[u8] = include_bytes!("../Predator.ttf"); + pub mod cli; pub mod timer; mod util; + +#[derive(Debug, Clone)] +pub(crate) enum Alarm { + Airhon, + User(OsString), +} diff --git a/src/main.rs b/src/main.rs index 9a3eb55..9703072 100644 --- a/src/main.rs +++ b/src/main.rs @@ -4,7 +4,8 @@ use katabastird::timer::Timer; fn main() { let options = eframe::NativeOptions { renderer: eframe::Renderer::Wgpu, - initial_window_size: Some(Vec2::new(1400.0, 800.0)), + max_window_size: Some(Vec2::new(1400.0, 800.0)), + min_window_size: Some(Vec2::new(966.0, 600.0)), ..Default::default() }; diff --git a/src/timer.rs b/src/timer.rs index fd2be9c..644121b 100644 --- a/src/timer.rs +++ b/src/timer.rs @@ -5,10 +5,10 @@ use eframe::{App, CreationContext}; use egui::{Color32, Direction, FontId, Layout, RichText, Ui}; use egui_extras::{Size, StripBuilder}; -use crate::{cli::Cli, util::*}; +use crate::{cli::Cli, util::*, Alarm, PREDATOR_FONT}; -const MIN_REPAINT: Duration = Duration::from_millis(200); // one frame before 200ms -const MAX_REPAINT: Duration = Duration::from_millis(500); +const MIN_REPAINT: Duration = Duration::from_millis(100); +const MAX_REPAINT: Duration = Duration::from_millis(250); const DIGIT_FACTOR: f32 = 0.4; const TEXT_FACTOR: f32 = 0.2; @@ -25,7 +25,7 @@ pub struct Timer { duration: Duration, state: TimerState, tstart: Instant, // so we can blink - alarm: Option, + alarm: Option, } #[derive(Debug, Clone, Copy)] @@ -67,9 +67,9 @@ impl App for Timer { let dur = Instant::now() - cs.updated; let dur = MIN_REPAINT.saturating_sub(dur); ctx.request_repaint_after(dur); - self.running(ui, height); + self.running(ui, height, cs); } - TimerState::Paused(_) => self.paused(ui, height), + TimerState::Paused(cs) => self.paused(ui, height, cs), TimerState::Finished => self.finished(ui, height), } // check for quit key @@ -95,11 +95,19 @@ impl Timer { CountDirection::Down }; + let alarm = if let Some(path) = cli.alarm { + Some(Alarm::User(path)) + } else if cli.airhorn { + Some(Alarm::Airhon) + } else { + None + }; + if predator { let mut fonts = egui::FontDefinitions::default(); fonts.font_data.insert( "predator".to_owned(), - egui::FontData::from_static(include_bytes!("../Predator.ttf")), + egui::FontData::from_static(PREDATOR_FONT), ); fonts .families @@ -114,7 +122,7 @@ impl Timer { direction, state: TimerState::Unstarted, tstart: Instant::now(), - alarm: cli.alarm, + alarm, }; if cli.running { let cs = ChronoState { @@ -150,23 +158,15 @@ impl Timer { }); } - fn running(&mut self, ui: &mut Ui, size: f32) { + fn running(&mut self, ui: &mut Ui, size: f32, cs: ChronoState) { let tsize = size * TEXT_FACTOR; let text = RichText::new("PAUSE") .font(FontId::monospace(tsize)) .color(Color32::GOLD); - let elapsed; - let remaining; let mut is_paused = false; - if let TimerState::Running(rs) = self.state { - elapsed = Instant::now() - rs.updated; - remaining = rs.remaining; - } else { - unreachable!() - } - - let remaining = remaining.saturating_sub(elapsed); + let elapsed = Instant::now() - cs.updated; + let remaining = cs.remaining.saturating_sub(elapsed); StripBuilder::new(ui) .size(Size::relative(0.3333)) @@ -216,17 +216,11 @@ impl Timer { } } - fn paused(&mut self, ui: &mut Ui, vsize: f32) { - let elapsed; + fn paused(&mut self, ui: &mut Ui, vsize: f32, cs: ChronoState) { let mut is_running = false; let tsize = vsize * TEXT_FACTOR; - if let TimerState::Paused(cs) = self.state { - elapsed = cs.remaining; - } else { - unreachable!() - } - let remaining = elapsed; + let remaining = cs.remaining; StripBuilder::new(ui) .size(Size::relative(0.33333)) .size(Size::remainder()) diff --git a/src/util.rs b/src/util.rs index 9fdc330..3b38cb7 100644 --- a/src/util.rs +++ b/src/util.rs @@ -1,7 +1,15 @@ -use std::time::Duration; +use std::{ + ffi::OsStr, + fs::File, + io::{Cursor, Read, Seek}, + time::Duration, +}; use egui::{Color32, Direction, FontId, Layout, RichText}; use egui_extras::{Size, Strip}; +use rodio::{source::Source, Decoder, OutputStream}; + +use crate::{Alarm, AIRHORN}; fn format_digits(digits: u64, size: f32, color: Color32) -> RichText { RichText::new(format!("{:02}", digits)) @@ -9,14 +17,29 @@ fn format_digits(digits: u64, size: f32, color: Color32) -> RichText { .color(color) } -pub fn alarm(path: String) { - use rodio::{source::Source, Decoder, OutputStream}; - use std::fs::File; - use std::io::BufReader; +pub(crate) fn alarm(source: Alarm) { + if let Alarm::User(path) = source { + play_user(&path) + } else { + let source = Cursor::new(AIRHORN.to_owned()); + let decoder = Decoder::new(source).unwrap(); + play_alarm(decoder); + } +} - let (_stream, stream_handle) = OutputStream::try_default().unwrap(); - let file = BufReader::new(File::open(path).unwrap()); +fn play_user(path: &OsStr) { + let mut f = File::open(path).unwrap_or_else(|_| panic!("Could not open file {:?}", path)); + let metadata = std::fs::metadata(path).expect("unable to read metadata"); + let mut buffer = vec![0; metadata.len() as usize]; + f.read_exact(&mut buffer).expect("buffer overflow"); + let file = Cursor::new(buffer); let source = Decoder::new(file).unwrap(); + play_alarm(source); +} + +fn play_alarm(source: Decoder) { + let (_stream, stream_handle) = OutputStream::try_default().unwrap(); + let dur = if let Some(dur) = source.total_duration() { dur } else {