From fd01680ef995b1b9b5ed8d266ae9411a1d6e975d Mon Sep 17 00:00:00 2001 From: David Peer Date: Wed, 23 Mar 2022 18:12:38 +0100 Subject: [PATCH] Addd 90s clk --- apps/90sclk/ChangeLog | 2 ++ apps/90sclk/README.md | 4 +++ apps/90sclk/app-icon.js | 1 + apps/90sclk/app.js | 72 +++++++++++++++++++++++++++++++++++++ apps/90sclk/app.png | Bin 0 -> 2446 bytes apps/90sclk/metadata.json | 16 +++++++++ apps/90sclk/screenshot.png | Bin 0 -> 2884 bytes 7 files changed, 95 insertions(+) create mode 100644 apps/90sclk/ChangeLog create mode 100644 apps/90sclk/README.md create mode 100644 apps/90sclk/app-icon.js create mode 100644 apps/90sclk/app.js create mode 100644 apps/90sclk/app.png create mode 100644 apps/90sclk/metadata.json create mode 100644 apps/90sclk/screenshot.png diff --git a/apps/90sclk/ChangeLog b/apps/90sclk/ChangeLog new file mode 100644 index 000000000..8c2a33143 --- /dev/null +++ b/apps/90sclk/ChangeLog @@ -0,0 +1,2 @@ +0.01: New App! +0.02: Load widgets after setUI so widclk knows when to hide diff --git a/apps/90sclk/README.md b/apps/90sclk/README.md new file mode 100644 index 000000000..470a27c6c --- /dev/null +++ b/apps/90sclk/README.md @@ -0,0 +1,4 @@ +# Wave Clock + +![](screenshot.png) + diff --git a/apps/90sclk/app-icon.js b/apps/90sclk/app-icon.js new file mode 100644 index 000000000..00892e9c3 --- /dev/null +++ b/apps/90sclk/app-icon.js @@ -0,0 +1 @@ +require("heatshrink").decompress(atob("mEwge27dtAX4C+/dt+wFB/wCECIu3/dvBYNv34RC7/tCIu//99EYN9C4IpB74jG3379ovDFIIRBEYxHD/47D2wjHCIX+AQJHBCIIXBNZt/+5QBEZIgBAQX///9EZRWBBARHDEwhlC/9/EAJoBDQIOBNwyPCEYYCDJQ4CJSQ4CB0O2lojL2lwBIXFiwsK0f/KgUbuwRJo6cBPAO34cUmJHH7U/97tBgEGBIODEY/RXoOw7cAgHbtlxoojGx7hCjAjD20ANA1378MEIIAB4d0u5HGNAPYCAYAB2n2SQSPDjv3CIsF2lxEYto//+CoOGCIUt0O3EYtHvqMBvlw4UAgJQBqIjERgQDBsO+7FAhaMH64DB+4qB+3AgARG9uhIgQJD4dghd+7dLBQZoBaISwC4cArf27dpCIf/23f9uHCIQABhoNClsl20ttuwgYKBEAIAChOmCIOH/vx9ttwB2BDgMBAoIRBmnbpkbtk2ltsgAMCJQOwAgMBk+eq3AhiSBsE2GAX//4WCAAOBAoVbtt8mCJBgHHfYMHdgoRBott+zmDsEAn/tEwkC7UAVoYACgPbv4REAASTBEYY0BPIPwCJAjEu3Dvq8BCAnbsEwGgm2jbAC8EAjFvEAQREjuwDQXbvvx7cd2K/EgEb9oRCAoLOBjEAgk/A=")) diff --git a/apps/90sclk/app.js b/apps/90sclk/app.js new file mode 100644 index 000000000..f1c67ce2f --- /dev/null +++ b/apps/90sclk/app.js @@ -0,0 +1,72 @@ +function getImg() { + return require("heatshrink").decompress(atob("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")); +} +var IMAGEWIDTH = 176; +var IMAGEHEIGHT = 109; + +Graphics.prototype.setFontZCOOL = function() { +// Actual height 40 (46 - 7) +var widths = atob("CxAhEh8hJCIjGSMdCw=="); +var font = atob("AAAAAAAAAAAAAAAEAAAAAAAPAAAAAAAP4AAAAAAD+AAAAAAA/gAAAAAAP8AAAAAAB/AAAAAAAfAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAfgAAAAAAf4AAAAAA/+AAAAAA//AAAAAB/+AAAAAB/+AAAAAD/8AAAAAD/8AAAAAD/4AAAAAH/4AAAAAH/wAAAAAD/wAAAAAAfwAAAAAAHgAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAP8AAAAAB//gAAAAP//4AAAB////AAAP////wAAf///h8AAH//8AfAAD//gAHwAA/8AAB8AAPgAAAfAAD4AAAHwAAfAAAB+AAHwAAAPgAB8AAAD4AAfAAAA+AAHwAAAPgAB8AAAD4AAPgAAA+AAD4AAAPgAA+AAAD8AAPgAAAfAAD4AAAHwAA/////8AAH/////AAB/////wAAf////4AAD////8AAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAB8AAAAAAA/AAAAAAAfgAAAAAAH4AAAAAAD8AAAAAAB+AAAAAAA/AAAAAAAPwAAH/gAH4D///4AD/////+AB//////gAf/////4AD////gAAA//wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAB8AAAGAAAfAAAD4AAPwAAB/AAH4AAA/wAB8AAAf8AA/AAAP/AAfgAAP/gAHwAAH/4AD8AAD++AB+AAB/PgAfAAA/j4AHwAAfw+AB+AAP4PgAfwAH8D4AD8AH+A+AAfgD/AfAAD8B/AHwAAfg/gB8AAD8fwAfAAA/v4AHwAAH/8AB8AAA/+AAfAAAH/AAHwAAA/AAB8AAAHgAA+AAAAAAAPgAAAAAAD4AAAAAAA+AAAAAAAAAAAAAAABAAAAAAAD4AAAAAAA+AAAAAAAPgAAAAAAD4AAAAAAA+AAAAAAAHwAAMAAAB8AAfAAAAfAAHwAAAHwAB8AAAA+AAfAAAAPgAHwAfAD4AA+AP4A+AAPgD+APgAD4B/gB8AA+A/8AfAAPgf/AHwAD4H/wB8AA+D98AfgAHh+fgD4AB4/D4A+AAffg+A/gAH34Pg/4AB/8D8f8AAf+Aff+AAH/AH/+AAA/wB/+AAAP4Af+AAAD8AD/AAAA+AA/AAAAHgADAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAD+AAAAAAH/gAAAAAH/4AAAAAP/+AAAAAP//gAAAAf/z4AAAAf/w+AAAA//gPgAAA//gD4AAAf/AA+AAAH/AAPgAAB/AAD4AAAeAAA+AAACAAAPgAAAAAAD4AAAAAAA+AAAAAAAPgAAAAAAD4AAAAAAA+AAAAAAAP/+AAAAP///gAB/////4AAf////+AAH/////AAB///+AAAAf/APgAAAAAAD4AAAAAAA+AAAAAAAPgAAAAAAD4AAAAAAA+AAAAAAAPgAAAAAAD4AAAAAAAAAAAAAAAACAAAAAAAHwAAAAAAB8AAAAAAAfAAAAAAAH4AAAAAAA+AAAAAAAPgAAAAAAD4AAAAfwA+AAAH/+AHwAAf//gB8AAP//4AfAAH//+AHwAB/+PwB+AAfwB8APgAHwAfAD4AB8AHwA+AAfAB8APgAHwAfAB8AB8AHwAfAAfAB8AHwAHwAfAB8AB8AH4AfAAfAA+AH4AHwAPgH+AB8AD4H/gAfAA+H/wAHwAPv/4AB8AD//4AAfAA//wAAHwAP/wAAB8AD/gAAAAAAfgAAAAAABAAAAAAAAAAAAAAAAAHwAAAAAAH8AAAAAAD/gAAAAAD/4AAAAAD/+AAAAAD/3wAAAAD/x8AAAAD/4PgAAAD/4D4AAAD/4A+AAAB/4AHwAAB/4AB8AAB/4AAfAAB/4CAD4AB/8DgA+AAf8B8APgAD8AfAB8AA8AH4AfAAEAA+AH4AAAAPgA+AAAAD8AfgAAAAfAP4AAAAH4P8AAAAA+H+AAAAAPj+AAAAAB9/AAAAAAf/gAAAAAH/wAAAAAA/4AAAAAAP8AAAAAAB8AAAAAAAOAAAAAAAAAAAAAAAAAAAAD4AAAAAAA+AAAAAAAPwAAAAAAB8AAAAAAAfAAAAAAAHwAAAAAAB8AAAAAAAfAAAAAAAHwAAADAAB8AAAD4AAfAAAD+AAHwAAH/wAB8AAH/4AAfgAH/4AAH4AH/4AAA+AH/wAAAPgH/wAAAD4H/wAAAA+H/wAAAAPv/wAAAAD//wAAAAA//gAAAAAP/gAAAAAD/gAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAPgAAAAAAH4AAAAAAB+AAAHwAA/wAAB8AAf8AAA/gAP/AAAP8AH/wAAH/gD8+AAB/4B+PgAAf/A/j4AAPn4Pw+AAD4/H4HwAB+Pz8B8AAfB/+AfAAPwP/AHwAD4B/gB+AA+AfwAPgAfAP+AD4AHwD/wA+AB+B/+AfgAfw/PgPwAB/fj8D8AAP/wfh+AAB/4D8fAAAP+AfPwAAB/AH/4AAAPgA/8AAAAAAH/AAAAAAA/gAAAAAAPwAAAAAAB8AAAAAAAAAAAAAAAAAAAAAGAAAAAAAD4AAAAAAB/AAAAAAB/wAAAAAA/+AAAAAAf/gAAAAAf78AAAAAP8fAAAAAP+H4AAAAD+A+AAAAB/APgAAAAfAB8AAAAH4AfAAYAA+AD4AfAAPgA+AfwAD4APgf+AA+ABgf/AAHwAA//AAB8AA//AAAfAA//AAAHwA//AAAB+A/+AAAAPh/+AAAAD5/+AAAAA//+AAAAAP/+AAAAAB/8AAAAAAf8AAAAAAH8AAAAAAAAAAAAAAAAADgAOAAAAH4AfgAAAD+AP4AAAA/wD/AAAAH8AfwAAAB/AH8AAAAfwB/AAAADgAOAAAAAAAAAAAAAAAAA="); +var scale = 1; // size multiplier for this font +g.setFontCustom(font, 46, widths, 50+(scale<<8)+(1<<16)); +}; + +// timeout used to update every minute +var drawTimeout; + +// schedule a draw for the next minute +function queueDraw() { + if (drawTimeout) clearTimeout(drawTimeout); + drawTimeout = setTimeout(function() { + drawTimeout = undefined; + draw(); + }, 60000 - (Date.now() % 60000)); +} + + +function draw() { + var x = g.getWidth()/2; + var y = 24+20; + + g.reset().clearRect(0,24,g.getWidth(),g.getHeight()-IMAGEHEIGHT); + if (g.getWidth() == IMAGEWIDTH) + g.drawImage(getImg(),0,g.getHeight()-IMAGEHEIGHT); + else { + let scale = g.getWidth()/IMAGEWIDTH; + y *= scale; + g.drawImage(getImg(),0,g.getHeight()-IMAGEHEIGHT*scale,{scale:scale}); + } + // work out locale-friendly date/time + var date = new Date(); + var timeStr = require("locale").time(date,1); + var dateStr = require("locale").date(date).toUpperCase(); + // draw time + g.setFontAlign(0,0).setFont("ZCOOL"); + g.drawString(timeStr,x,y); + // draw date + y += 35; + g.setFontAlign(0,0,1).setFont("6x8"); + g.drawString(dateStr,g.getWidth()-8,g.getHeight()/2); + // queue draw in one minute + queueDraw(); +} + +// Clear the screen once, at startup +g.setTheme({bg:"#f0f",fg:"#fff",dark:true}).clear(); +// draw immediately at first, queue update +draw(); +// Stop updates when LCD is off, restart when on +Bangle.on('lcdPower',on=>{ + if (on) { + draw(); // draw immediately, queue redraw + } else { // stop draw timer + if (drawTimeout) clearTimeout(drawTimeout); + drawTimeout = undefined; + } +}); +// Show launcher when middle button pressed +Bangle.setUI("clock"); +// Load widgets +Bangle.loadWidgets(); +Bangle.drawWidgets(); diff --git a/apps/90sclk/app.png b/apps/90sclk/app.png new file mode 100644 index 0000000000000000000000000000000000000000..ff43bb10655c67224603dec35559aac7b98fc560 GIT binary patch literal 2446 zcmV;9332v`P)R}BKQ(n^v* zNlPWs(#8iqu)2gPKG5649J%=-(`#LGBn8U{f{+LJozMN_aO@m;duQ(SM{D*UzqR+; zYkz-huf6tK+l0^`iQM!Dqdx)t3Fr?3$n<{$)J*z8n&@EfldMumHL=!`A>EMNs|`Ib zAz2!X2vKXZfB`@n2wGD`)173@unvH|j?w0>N`OU9-&3h;MNzwj9+j+8x^!GJq)4ey zdQU2F6?;*dDh-rINhaw#>AKXxG1^D6NpCyJ8+UD?`(ZE$PQY5|4ZT2605e=Ayqvwu> zCI8EoNsncZs8uwm%4$VJ&b}R=<6idVt&#Tuc!p`;zlWNG@uM^XuI&u9TnwS033t_ z5Cl5ip-N5F`t`mkDUo3LEZeGEh#ckAr8ypYHxkgd${m!P{#|L&CAb2UAQLj-D~NNI z?FZ>FVBbEk)vML9(^@U-F=vg>_z_Lxrp{7S&H7)3<&6Opj%;To zgu_7a10^MEWt2dxSG#!Vp)c&Sn?Ogqny(K&HGGl(w1r!`eD<;5kxEtGxzJx>Tmt~v zWD6b?=>S7HGy@ri-hW@8eyTltBx&bPO?ACyH^u3Ao__t+2V}FU@Pe?#fR-e+U%26+ z;GO}GbiX^Nwmly7BybXdIWW{Pl#-%xa%^1ycKhGa-zN-_*xz9yOE;h{x~WHQxRhL~g+*GsPqFAtUUbN73%YNh|!lWqgrs;!N_k;cM9PJl{PI-<$w z*rKaH!cu7ODml@SZ+SvAY=@5_`0{0eJKVP@w$?1vRDs2c#fp=)YHp7FP9-WH>N6@d zJLhva1xuhm_&7XC^6BFCR))|GiScct$VOquv)0_ zBp|gxm+P8SXTE}CkOD8mAXo;kI~6v*Fb(4EJs*CkPMzfEXZI9I8ZbbTA|jkhk5~lD zt0mrscsII!KyN`F9E9HB3%#J}%9Y0;$!?qC;`k-+=;%>Et5#|A=9-SUN#5SKx!3d> zNzc~0;NxkC13LdmpI0AF-aRaJP5<2OPj5V#sKhEj_dpkDV;7%0R~CyT-=jwr7pJ1D zx_D6;@5pMj{bZ|ley)!`szOkAHGH-?pNVX7Q~W9l#dT3Aie>!MYi6G{W6zzu2x+hs zPJu#0yZ0Jjr0WO?WVH%3V}?9DoU(2=si)@7QD&yf%PqJ6acCd4>Ff?|CrnV!2W74y zv}TPF&xp0nSS=PbW3xXQGG=*XeBh~s#X9+&PM@yQ79KwIryq5*D8~EsDhtVGQ~r5n z@05p!9tl;je+|EU;er<&hA{8~59kCs@{J@}JZm)4wsxwV@g&1uC1gIKFI5IT5zt|X zKx3b(k_eRc?3Xl8ar?D*w|Sof(6M7mOV!`PRaPcYU|_WZ#Z5s$Q{fQgz7eNm z^;~6c<`wSuCd$-&V2Hl{T9J`*lN9VMGg2e(bn4j!1!1R7D|3{f+v(H#xlq9^?$qt) zXDTXE$BvId?Af!HfBcgUGns7>@%8|yt0&a8_Is|AFa_+)((Anum@y- zf8yH$?MYX3s-*E6|NCqoA4&4@)`A5tS|cJV;R*oDa&to?BkRS{R&DK?TdCE2%}4Cg zuDJ zLWUtwMTNfqUel&I3f$TYH-G=hkPX2lC4(J45Cj=u8Z)LUGPP<|Q;lji%Ph%H)u0Ck zN`_%F40ljvr3^z|yE+R5yZWHhD`)Eo@VOmFe!d+|D43xqoPspSg)LwnF`|A;TP#gS zkAC6Wwfie8rTBQ$EZG4p6rS=sQiG82S@xnDnddg^x&{rb5C##*R-R@OWS2Ib@^ zeT!031Rj~0!tpkim#5|}bzu8Yn@!LI&cHXYw6O5WbLU20yS5rSLCcJdffTd@B_{_< z{R1YcPp=j+G1AjdyEumYYX;)&?Y3@RG|YjPpapYvB2SM#sv}4255}#JA9r&0cIxJ% zn>YPHVPUdbTR<24-JF&tP(nf{`35OK1B3M53e9{>4|M(@=c`}fzb(4C5nw3;yZ`_I M07*qoM6N<$g2mI7k^lez literal 0 HcmV?d00001 diff --git a/apps/90sclk/metadata.json b/apps/90sclk/metadata.json new file mode 100644 index 000000000..3d96bf844 --- /dev/null +++ b/apps/90sclk/metadata.json @@ -0,0 +1,16 @@ +{ + "id": "90sclk", + "name": "90s Clock", + "version": "0.02", + "description": "A clock in 90s style", + "icon": "app.png", + "screenshots": [{"url":"screenshot.png"}], + "type": "clock", + "tags": "clock", + "supports": ["BANGLEJS","BANGLEJS2"], + "allow_emulator": true, + "storage": [ + {"name":"90sclk.app.js","url":"app.js"}, + {"name":"90sclk.img","url":"app-icon.js","evaluate":true} + ] +} diff --git a/apps/90sclk/screenshot.png b/apps/90sclk/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..7f05ce68880935db0de4aaf840077e9b30413db7 GIT binary patch literal 2884 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 iR539+GBi3hI4dwQIxsMs^94u%0000