mirror of https://github.com/espruino/BangleApps
38 lines
1.1 KiB
JavaScript
38 lines
1.1 KiB
JavaScript
setTimeout( // make other boot code run first, so we override e.g. android.boot.js GB
|
|
() => {
|
|
const APP = global.__FILE__==="gbmusic.app.js",
|
|
a = !!(require("Storage").readJSON("gbmusic.json", 1) || {}).autoStart;
|
|
|
|
let s, i; // state, info
|
|
/**
|
|
* Save current song and check if we want to load the gbmusic app
|
|
*
|
|
* Only runs while other apps are loaded
|
|
*/
|
|
function check() {
|
|
if (s!=="play" || !i || !a || !Bangle.CLOCK) return; // only launch app if we know which song we are playing, and autoLoad is enabled
|
|
delete (i.t);
|
|
// store info and launch music app
|
|
require("Storage").writeJSON("gbmusic.load.json", {
|
|
state: s,
|
|
info: i,
|
|
});
|
|
load("gbmusic.app.js");
|
|
}
|
|
|
|
global.GB = (_GB => e => {
|
|
// we eat music events!
|
|
switch(e.t) {
|
|
case "musicinfo":
|
|
i = e;
|
|
return APP ? info(e) : check();
|
|
case "musicstate":
|
|
s = e.state;
|
|
return APP ? state(e) : check();
|
|
default:
|
|
// pass on other events
|
|
if (_GB) setTimeout(_GB, 0, e);
|
|
}
|
|
})(global.GB);
|
|
}, 1);
|