widshipbell: Adapt to new weak/strong buzz patterns

master
Erik Andresen 2022-05-29 11:22:00 +02:00
parent c1e9600c1a
commit bd88e4bbca
2 changed files with 24 additions and 15 deletions

View File

@ -2,7 +2,7 @@
var FILE = "widshipbell.json"; var FILE = "widshipbell.json";
// Load settings // Load settings
var settings = Object.assign({ var settings = Object.assign({
enabled: true, strength: 1,
}, require('Storage').readJSON(FILE, true) || {}); }, require('Storage').readJSON(FILE, true) || {});
function writeSettings() { function writeSettings() {
@ -13,11 +13,12 @@
E.showMenu({ E.showMenu({
"" : { "title" : "Ship's bell" }, "" : { "title" : "Ship's bell" },
"< Back" : () => back(), "< Back" : () => back(),
'Enable?': { 'Strength': {
value: !!settings.enabled, // !! converts undefined to false value: settings.strength,
format: v => v?"Yes":"No", min: 0, max: 2,
format: v => ["Off", "Weak", "Strong"][v],
onchange: v => { onchange: v => {
settings.enabled = v; settings.strength = v;
writeSettings(); writeSettings();
} }
}, },

View File

@ -1,7 +1,11 @@
(() => { (() => {
var settings = Object.assign({ const strength = Object.assign({
enabled: true, strength: 1,
}, require('Storage').readJSON("widshipbell.json", true) || {}); }, require('Storage').readJSON("widshipbell.json", true) || {}).strength;
function replaceAll(target, search, replacement) {
return target.split(search).join(replacement);
}
function check() { function check() {
const now = new Date(); const now = new Date();
@ -30,6 +34,10 @@
} else if (strikeHour === 3 && currentMinute == 30) { } else if (strikeHour === 3 && currentMinute == 30) {
pattern = '.. .. .. .'; pattern = '.. .. .. .';
} }
pattern = replaceAll(pattern, ' ', ' '); // longer pause
if (strength === 2) { // strong selected
pattern = replaceAll(pattern, '.', ':');
}
require("buzz").pattern(pattern); require("buzz").pattern(pattern);
} }
@ -37,7 +45,7 @@
setTimeout(check, etaSecond*1000); setTimeout(check, etaSecond*1000);
} }
if (settings.enabled === true) { if (strength !== 0) {
check(); check();
} }
})(); })();