diff --git a/apps/banglerun/ChangeLog b/apps/banglerun/ChangeLog old mode 100755 new mode 100644 diff --git a/apps/buffgym/buffgym-scrn1.png b/apps/buffgym/buffgym-scrn1.png old mode 100755 new mode 100644 diff --git a/apps/buffgym/buffgym-scrn2.png b/apps/buffgym/buffgym-scrn2.png old mode 100755 new mode 100644 diff --git a/apps/buffgym/buffgym-scrn3.png b/apps/buffgym/buffgym-scrn3.png old mode 100755 new mode 100644 diff --git a/apps/buffgym/buffgym-scrn4.png b/apps/buffgym/buffgym-scrn4.png old mode 100755 new mode 100644 diff --git a/apps/buffgym/buffgym-scrn5.png b/apps/buffgym/buffgym-scrn5.png old mode 100755 new mode 100644 diff --git a/apps/buffgym/buffgym-scrn6.png b/apps/buffgym/buffgym-scrn6.png old mode 100755 new mode 100644 diff --git a/apps/buffgym/buffgym.app.js b/apps/buffgym/buffgym.app.js old mode 100755 new mode 100644 diff --git a/apps/buffgym/buffgym.png b/apps/buffgym/buffgym.png old mode 100755 new mode 100644 diff --git a/apps/marioclock/mario-clock-screen-shot.png b/apps/marioclock/mario-clock-screen-shot.png old mode 100755 new mode 100644 diff --git a/apps/metronome/metronome.js b/apps/metronome/metronome.js index 27c36e06f..f1071c0e4 100644 --- a/apps/metronome/metronome.js +++ b/apps/metronome/metronome.js @@ -6,8 +6,26 @@ var tindex=0; //index to iterate through time_diffs Bangle.setLCDTimeout(undefined); //do not deaktivate display while running this app +const storage = require("Storage"); +const SETTINGS_FILE = 'metronome.settings.json'; + +//return setting +function setting(key) { + //define default settings + const DEFAULTS = { + 'beatsperbar': 4, + }; + if (!settings) { loadSettings(); } + return (key in settings) ? settings[key] : DEFAULTS[key]; +} + +//load settings +let settings; + +function loadSettings() { + settings = storage.readJSON(SETTINGS_FILE, 1) || {}; + function changecolor() { - const maxColors = 2; const colors = { 0: { value: 0xF800, name: "Red" }, 1: { value: 0xFFFF, name: "White" }, @@ -17,21 +35,10 @@ function changecolor() { 5: { value: 0xFFFF, name: "White" }, 6: { value: 0x03E0, name: "DarkGreen" }, 7: { value: 0xFFFF, name: "White" }, - 8: { value: 0x7BEF, name: "DarkGrey" }, - // 9: { value: 0x001F, name: "Blue" }, - // 9: { value: 0x001F, name: "Blue" }, - // 10: { value: 0x07E0, name: "Green" }, - // 11: { value: 0x07FF, name: "Cyan" }, - 1: { value: 0xF800, name: "Red" }, - // 13: { value: 0xF81F, name: "Magenta" }, - // 14: { value: 0xFFE0, name: "Yellow" }, - // 15: { value: 0xFFFF, name: "White" }, - // 16: { value: 0xFD20, name: "Orange" }, - // 17: { value: 0xAFE5, name: "GreenYellow" }, - // 18: { value: 0xF81F, name: "Pink" }, + 8: { value: 0x03E0, name: "DarkGreen" }, }; g.setColor(colors[cindex].value); - if (cindex == maxColors-1) { + if (cindex == setting('beatsperbar')-1) { cindex = 0; } else { @@ -52,6 +59,7 @@ function updateScreen() { g.drawString(Math.floor(bpm)+"bpm", 5, 60); } + Bangle.on('touch', function(button) { // setting bpm by tapping the screen. Uses the mean time difference between several tappings. if (tindex < time_diffs.length) { diff --git a/apps/metronome/settings.js b/apps/metronome/settings.js new file mode 100644 index 000000000..2aefa1052 --- /dev/null +++ b/apps/metronome/settings.js @@ -0,0 +1,40 @@ +// This file should contain exactly one function, which shows the app's settings +/** + * @param {function} back Use back() to return to settings menu + */ +(function(back) { + const SETTINGS_FILE = 'metronome.settings.json'; + + // initialize with default settings... + let s = { + 'beatsperbar': 4, + }; + // ...and overwrite them with any saved values + // This way saved values are preserved if a new version adds more settings + const storage = require('Storage'); + const saved = storage.readJSON(SETTINGS_FILE, 1) || {}; + for (const key in saved) { + s[key] = saved[key]; + } + + // creates a function to safe a specific setting, e.g. save('color')(1) + function save(key) { + return function(value) { + s[key] = value; + storage.write(SETTINGS_FILE, s); + }; + } + + const menu = { + '': { 'title': 'Metronome' }, + '< Back': back, + 'beats per bar': { + value: s.beatsperbar, + min: 1, + max: 8, + step: 1, + onchange: save('beatsperbar'), + }, + }; + E.showMenu(menu); +}); \ No newline at end of file diff --git a/apps/miclock/clock-mixed.png b/apps/miclock/clock-mixed.png old mode 100755 new mode 100644 diff --git a/apps/minionclk/ChangeLog b/apps/minionclk/ChangeLog old mode 100755 new mode 100644 diff --git a/apps/minionclk/app-icon.js b/apps/minionclk/app-icon.js old mode 100755 new mode 100644 diff --git a/apps/minionclk/app.js b/apps/minionclk/app.js old mode 100755 new mode 100644 diff --git a/apps/minionclk/minionclk.png b/apps/minionclk/minionclk.png old mode 100755 new mode 100644 diff --git a/apps/rpgdice/ChangeLog b/apps/rpgdice/ChangeLog old mode 100755 new mode 100644 diff --git a/apps/rpgdice/app-icon.js b/apps/rpgdice/app-icon.js old mode 100755 new mode 100644 diff --git a/apps/rpgdice/app.js b/apps/rpgdice/app.js old mode 100755 new mode 100644 diff --git a/apps/rpgdice/rpgdice.png b/apps/rpgdice/rpgdice.png old mode 100755 new mode 100644 diff --git a/apps/sclock/clock-simple.png b/apps/sclock/clock-simple.png old mode 100755 new mode 100644 diff --git a/apps/scolor/show-color.png b/apps/scolor/show-color.png old mode 100755 new mode 100644 diff --git a/bin/firmwaremaker.js b/bin/firmwaremaker.js old mode 100755 new mode 100644 diff --git a/bin/sanitycheck.js b/bin/sanitycheck.js old mode 100755 new mode 100644