BangleApps/apps/coretemp/widget.js

67 lines
1.5 KiB
JavaScript
Raw Normal View History

// TODO Change to a generic multiple sensor widget?
2021-12-18 22:10:59 +00:00
(() => {
var settings = {};
2021-12-28 18:25:43 +00:00
var count = 0;
var core = 0;
2021-12-18 22:10:59 +00:00
// draw your widget
function draw() {
2021-12-28 18:25:43 +00:00
if (!settings.enabled)
return;
2021-12-18 22:10:59 +00:00
g.reset();
g.setFont("6x8", 1).setFontAlign(0, 0);
2021-12-28 18:25:43 +00:00
g.setFontAlign(0, 0);
g.clearRect(this.x, this.y, this.x + 23, this.y + 23);
if (count & 1) {
g.setColor("#0f0"); // green
} else {
g.setColor(g.theme.dark ? "#333" : "#CCC"); // off = grey
}
g.drawImage(
atob("DAyBAAHh0js3EuDMA8A8AWBnDj9A8A=="),
this.x+(24-12)/2,this.y+1);
g.setColor(g.theme.fg);
g.drawString(parseInt(core)+"\n."+parseInt((core*100)%100), this.x + 24 / 2, this.y + 18);
g.setColor(-1);
2021-12-18 22:10:59 +00:00
}
2021-12-28 18:25:43 +00:00
// Set a listener to 'blink'
2021-12-19 17:09:43 +00:00
function onTemp(temp) {
2021-12-28 18:25:43 +00:00
count = count + 1;
core = temp.core;
2021-12-28 18:25:43 +00:00
WIDGETS["coretemp"].draw();
2021-12-19 17:09:43 +00:00
}
2021-12-18 22:10:59 +00:00
2021-12-19 17:09:43 +00:00
// Called by sensor app to update status
2021-12-18 22:10:59 +00:00
function reload() {
2021-12-28 18:25:43 +00:00
settings = require("Storage").readJSON("coretemp.json", 1) || {};
2021-12-18 22:10:59 +00:00
2021-12-28 18:25:43 +00:00
Bangle.removeListener('CoreTemp', onTemp);
2021-12-18 22:10:59 +00:00
2021-12-19 17:09:43 +00:00
if (settings.enabled) {
2021-12-28 18:25:43 +00:00
WIDGETS["coretemp"].width = 24;
2021-12-19 17:09:43 +00:00
Bangle.on('CoreTemp', onTemp);
2021-12-18 22:10:59 +00:00
} else {
2021-12-28 18:25:43 +00:00
WIDGETS["coretemp"].width = 0;
count = 0;
2021-12-18 22:10:59 +00:00
}
}
// add the widget
2021-12-28 18:25:43 +00:00
WIDGETS["coretemp"] = {
area : "tl",
width : 24,
draw : draw,
reload : function() {
reload();
Bangle.drawWidgets(); // relayout all widgets
}
};
2021-12-18 22:10:59 +00:00
// load settings, set correct widget width
reload();
})()