Simplify scheduling code since it wasn't playing well with widgets

pull/3156/head
Felipe Manga 2024-01-15 19:35:23 +00:00
parent 7633f9e275
commit f5ae409a92
1 changed files with 5 additions and 16 deletions

View File

@ -498,23 +498,12 @@ let locked = false,
var interval = 30,
timeout;
function setupInterval() {
function setupInterval(force) {
if (timeout)
clearTimeout(timeout);
if (!locked || charging)
tick(locked);
let trigger;
let schedule = interval => {
timeout = setTimeout(trigger, interval | 0);
// print(interval);
};
trigger = _ => {
if (!locked || charging) interval = 30;
else interval -= (interval - 130) * 0.15;
tick(locked);
schedule(interval > 120 ? 60000 : interval);
};
schedule(interval);
let stopped = locked && !charging;
timeout = setTimeout(setupInterval, stopped ? 60000 : 30);
tick(stopped && !force);
}
function test(addr, y) {
@ -581,7 +570,7 @@ function probe() {
print('Found lcdBuffer at ' + lcdBuffer.toString(16) + ' stride=' + stride);
gfx.init(start, stride, E.getAddressOf(sintable, true));
gfx.setCamera(0, 0, -300 << 8);
setupInterval();
setupInterval(true);
}
function init() {