BangleApps/apps/gbmusic/widget.js

45 lines
1.0 KiB
JavaScript
Raw Normal View History

(() => {
if (global.gbmusic_active || !(require("Storage").readJSON("gbmusic.json", 1) || {}).autoStart) {
2021-04-25 13:25:59 +00:00
return;
}
if (typeof __FILE__ === 'string') { // only exists since 2v09
const info = require("Storage").readJSON(__FILE__.split(".")[0]+".info", 1) || false;
if (info && info.type!=="clock") { // info can have no type (but then it isn't a clock)
return;
}
}
2021-04-25 13:25:59 +00:00
let state, info;
function checkMusic() {
if (state!=="play" || !info) {
2021-04-25 13:25:59 +00:00
return;
}
// playing music: launch music app
require("Storage").writeJSON("gbmusic.load.json", {
state: state,
info: info,
2021-04-25 13:25:59 +00:00
});
load("gbmusic.app.js");
}
2021-04-25 13:25:59 +00:00
const _GB = global.GB;
global.GB = (event) => {
// we eat music events!
switch(event.t) {
case "musicinfo":
2021-04-25 13:25:59 +00:00
info = event;
delete (info.t);
checkMusic();
break;
case "musicstate":
2021-04-25 13:25:59 +00:00
state = event.state;
checkMusic();
break;
default:
if (_GB) {
2021-04-25 13:25:59 +00:00
setTimeout(_GB, 0, event);
}
}
2021-04-25 13:25:59 +00:00
};
})();