setting 0.32: Fix 'beep' menu on Bangle.js 2

pull/887/head
Gordon Williams 2021-11-18 10:27:26 +00:00
parent c10e4b426b
commit 6bd548d409
3 changed files with 38 additions and 18 deletions

View File

@ -115,7 +115,7 @@
{ {
"id": "setting", "id": "setting",
"name": "Settings", "name": "Settings",
"version": "0.31", "version": "0.32",
"description": "A menu for setting up Bangle.js", "description": "A menu for setting up Bangle.js",
"icon": "settings.png", "icon": "settings.png",
"tags": "tool,system", "tags": "tool,system",

View File

@ -34,3 +34,4 @@
0.29: Add Customize to Theme menu 0.29: Add Customize to Theme menu
0.30: Move '< Back' to the top of menus 0.30: Move '< Back' to the top of menus
0.31: Remove Bangle 1 settings when running on Bangle 2 0.31: Remove Bangle 1 settings when running on Bangle 2
0.32: Fix 'beep' menu on Bangle.js 2

View File

@ -72,8 +72,37 @@ if (!('qmOptions' in settings)) settings.qmOptions = {}; // easier if this alway
const boolFormat = v => v ? "On" : "Off"; const boolFormat = v => v ? "On" : "Off";
function showMainMenu() { function showMainMenu() {
var beepV = BANGLEJS2 ? [false,true] : [false, true, "vib"]; var beepMenuItem;
var beepN = BANGLEJS2 ? ["Off","On"] : ["Off", "Piezo", "Vibrate"]; if (BANGLEJS2) { // Bangle.js 2 is simply on/off
beepMenuItem = {
value: settings.beep,
format: boolFormat,
onchange: v => {
settings.beep = v;
updateSettings();
if (settings.beep) {
analogWrite(VIBRATE,0.1,{freq:2000});
setTimeout(()=>VIBRATE.reset(),200);
} // beep with vibration moter
}
}
} else { // Bangle.js 1 has different options
var beepV = [false, true, "vib"];
var beepN = ["Off", "Piezo", "Vibrate"];
beepMenuItem = {
value: Math.max(0 | beepV.indexOf(settings.beep),0),
min: 0, max: beepV.length-1,
format: v => beepN[v],
onchange: v => {
settings.beep = beepV[v];
if (v==1) { analogWrite(D18,0.5,{freq:2000});setTimeout(()=>D18.reset(),200); } // piezo on Bangle.js 1
else if (v==2) { analogWrite(VIBRATE,0.1,{freq:2000});setTimeout(()=>VIBRATE.reset(),200); } // vibrate
updateSettings();
}
};
}
const mainmenu = { const mainmenu = {
'': { 'title': 'Settings' }, '': { 'title': 'Settings' },
'< Back': ()=>load(), '< Back': ()=>load(),
@ -88,22 +117,12 @@ function showMainMenu() {
updateSettings(); updateSettings();
} }
}, },
'Beep': { 'Beep': beepMenuItem,
value: 0 | beepV.indexOf(settings.beep),
min: 0, max: 2,
format: v => beepN[v],
onchange: v => {
settings.beep = beepV[v];
if (v==1) { analogWrite(D18,0.5,{freq:2000});setTimeout(()=>D18.reset(),200); } // piezo
else if (v==2) { analogWrite(D13,0.1,{freq:2000});setTimeout(()=>D13.reset(),200); } // vibrate
updateSettings();
}
},
'Vibration': { 'Vibration': {
value: settings.vibrate, value: settings.vibrate,
format: boolFormat, format: boolFormat,
onchange: () => { onchange: v => {
settings.vibrate = !settings.vibrate; settings.vibrate = v;
updateSettings(); updateSettings();
if (settings.vibrate) { if (settings.vibrate) {
VIBRATE.write(1); VIBRATE.write(1);
@ -146,7 +165,7 @@ function showBLEMenu() {
} }
}, },
'HID': { 'HID': {
value: 0 | hidV.indexOf(settings.HID), value: Math.max(0,0 | hidV.indexOf(settings.HID)),
min: 0, max: 3, min: 0, max: 3,
format: v => hidN[v], format: v => hidN[v],
onchange: v => { onchange: v => {