Merge branch 'espruino:master' into master
69
apps.json
|
|
@ -137,6 +137,7 @@
|
||||||
"icon": "app.png",
|
"icon": "app.png",
|
||||||
"tags": "tool,system",
|
"tags": "tool,system",
|
||||||
"supports": ["BANGLEJS","BANGLEJS2"],
|
"supports": ["BANGLEJS","BANGLEJS2"],
|
||||||
|
"screenshots": [{"url":"bangle1-about-screenshot.png"}],
|
||||||
"allow_emulator": true,
|
"allow_emulator": true,
|
||||||
"storage": [
|
"storage": [
|
||||||
{"name":"about.app.js","url":"app-bangle1.js","supports": ["BANGLEJS"]},
|
{"name":"about.app.js","url":"app-bangle1.js","supports": ["BANGLEJS"]},
|
||||||
|
|
@ -238,6 +239,7 @@
|
||||||
"tags": "start,welcome",
|
"tags": "start,welcome",
|
||||||
"supports": ["BANGLEJS"],
|
"supports": ["BANGLEJS"],
|
||||||
"custom": "custom.html",
|
"custom": "custom.html",
|
||||||
|
"screenshots": [{"url":"bangle1-customized-welcome-screenshot.png"}],
|
||||||
"storage": [
|
"storage": [
|
||||||
{"name":"mywelcome.boot.js","url":"boot.js"},
|
{"name":"mywelcome.boot.js","url":"boot.js"},
|
||||||
{"name":"mywelcome.app.js","url":"app.js"},
|
{"name":"mywelcome.app.js","url":"app.js"},
|
||||||
|
|
@ -274,6 +276,7 @@
|
||||||
"tags": "clock",
|
"tags": "clock",
|
||||||
"supports": ["BANGLEJS"],
|
"supports": ["BANGLEJS"],
|
||||||
"allow_emulator": true,
|
"allow_emulator": true,
|
||||||
|
"screenshots": [{"url":"bangle1-morphing-clock-screenshot.png"}],
|
||||||
"storage": [
|
"storage": [
|
||||||
{"name":"mclock.app.js","url":"clock-morphing.js"},
|
{"name":"mclock.app.js","url":"clock-morphing.js"},
|
||||||
{"name":"mclock.img","url":"clock-morphing-icon.js","evaluate":true}
|
{"name":"mclock.img","url":"clock-morphing-icon.js","evaluate":true}
|
||||||
|
|
@ -288,6 +291,7 @@
|
||||||
"icon": "app.png",
|
"icon": "app.png",
|
||||||
"tags": "",
|
"tags": "",
|
||||||
"supports": ["BANGLEJS"],
|
"supports": ["BANGLEJS"],
|
||||||
|
"screenshots": [{"url":"bangle1-moon-phase-screenshot.png"}],
|
||||||
"allow_emulator": true,
|
"allow_emulator": true,
|
||||||
"storage": [
|
"storage": [
|
||||||
{"name":"moonphase.app.js","url":"app.js"},
|
{"name":"moonphase.app.js","url":"app.js"},
|
||||||
|
|
@ -418,6 +422,7 @@
|
||||||
"supports": ["BANGLEJS"],
|
"supports": ["BANGLEJS"],
|
||||||
"readme": "README.md",
|
"readme": "README.md",
|
||||||
"allow_emulator": true,
|
"allow_emulator": true,
|
||||||
|
"screenshots": [{"url":"bangle1-sweep-clock-screenshot.png"}],
|
||||||
"storage": [
|
"storage": [
|
||||||
{"name":"sweepclock.app.js","url":"sweepclock.js"},
|
{"name":"sweepclock.app.js","url":"sweepclock.js"},
|
||||||
{"name":"sweepclock.img","url":"sweepclock-icon.js","evaluate":true}
|
{"name":"sweepclock.img","url":"sweepclock-icon.js","evaluate":true}
|
||||||
|
|
@ -468,6 +473,7 @@
|
||||||
"type": "clock",
|
"type": "clock",
|
||||||
"tags": "clock",
|
"tags": "clock",
|
||||||
"supports": ["BANGLEJS"],
|
"supports": ["BANGLEJS"],
|
||||||
|
"screenshots": [{"url":"bangle1-impercise-word-clock-screenshot.png"}],
|
||||||
"allow_emulator": true,
|
"allow_emulator": true,
|
||||||
"storage": [
|
"storage": [
|
||||||
{"name":"impwclock.app.js","url":"clock-impword.js"},
|
{"name":"impwclock.app.js","url":"clock-impword.js"},
|
||||||
|
|
@ -551,6 +557,7 @@
|
||||||
"supports" : ["BANGLEJS","BANGLEJS2"],
|
"supports" : ["BANGLEJS","BANGLEJS2"],
|
||||||
"readme": "README.md",
|
"readme": "README.md",
|
||||||
"allow_emulator": true,
|
"allow_emulator": true,
|
||||||
|
"screenshots": [{"url":"bangle2-cube-scramble-screenshot.png"},{"url":"bangle1-cube-scramble-screenshot.png"}],
|
||||||
"storage": [
|
"storage": [
|
||||||
{"name":"cubescramble.app.js","url":"cube-scramble.js"},
|
{"name":"cubescramble.app.js","url":"cube-scramble.js"},
|
||||||
{"name":"cubescramble.img","url":"cube-scramble-icon.js","evaluate":true}
|
{"name":"cubescramble.img","url":"cube-scramble-icon.js","evaluate":true}
|
||||||
|
|
@ -654,7 +661,7 @@
|
||||||
{
|
{
|
||||||
"id": "gpsrec",
|
"id": "gpsrec",
|
||||||
"name": "GPS Recorder",
|
"name": "GPS Recorder",
|
||||||
"version": "0.24",
|
"version": "0.25",
|
||||||
"description": "Application that allows you to record a GPS track. Can run in background",
|
"description": "Application that allows you to record a GPS track. Can run in background",
|
||||||
"icon": "app.png",
|
"icon": "app.png",
|
||||||
"tags": "tool,outdoors,gps,widget",
|
"tags": "tool,outdoors,gps,widget",
|
||||||
|
|
@ -775,6 +782,7 @@
|
||||||
"tags": "battery",
|
"tags": "battery",
|
||||||
"supports": ["BANGLEJS", "BANGLEJS2"],
|
"supports": ["BANGLEJS", "BANGLEJS2"],
|
||||||
"allow_emulator": true,
|
"allow_emulator": true,
|
||||||
|
"screenshots": [{"url":"bangle2-charge-animation-screenshot.png"},{"url":"bangle-charge-animation-screenshot.png"}],
|
||||||
"storage": [
|
"storage": [
|
||||||
{"name":"chargeanim.app.js","url":"app.js"},
|
{"name":"chargeanim.app.js","url":"app.js"},
|
||||||
{"name":"chargeanim.boot.js","url":"boot.js"},
|
{"name":"chargeanim.boot.js","url":"boot.js"},
|
||||||
|
|
@ -980,6 +988,7 @@
|
||||||
"readme": "README.md",
|
"readme": "README.md",
|
||||||
"interface": "interface.html",
|
"interface": "interface.html",
|
||||||
"allow_emulator": true,
|
"allow_emulator": true,
|
||||||
|
"screenshots": [{"url":"bangle1-stopwatch-screenshot.png"}],
|
||||||
"storage": [
|
"storage": [
|
||||||
{"name":"swatch.app.js","url":"stopwatch.js"},
|
{"name":"swatch.app.js","url":"stopwatch.js"},
|
||||||
{"name":"swatch.img","url":"stopwatch-icon.js","evaluate":true}
|
{"name":"swatch.img","url":"stopwatch-icon.js","evaluate":true}
|
||||||
|
|
@ -1181,6 +1190,7 @@
|
||||||
"tags": "clock",
|
"tags": "clock",
|
||||||
"supports": ["BANGLEJS"],
|
"supports": ["BANGLEJS"],
|
||||||
"allow_emulator": true,
|
"allow_emulator": true,
|
||||||
|
"screenshots": [{"url":"bangle1-vibrate-clock-screenshot.png"}],
|
||||||
"storage": [
|
"storage": [
|
||||||
{"name":"vibrclock.app.js","url":"app.js"},
|
{"name":"vibrclock.app.js","url":"app.js"},
|
||||||
{"name":"vibrclock.img","url":"app-icon.js","evaluate":true}
|
{"name":"vibrclock.img","url":"app-icon.js","evaluate":true}
|
||||||
|
|
@ -1196,6 +1206,7 @@
|
||||||
"tags": "clock",
|
"tags": "clock",
|
||||||
"supports": ["BANGLEJS","BANGLEJS2"],
|
"supports": ["BANGLEJS","BANGLEJS2"],
|
||||||
"allow_emulator": true,
|
"allow_emulator": true,
|
||||||
|
"screenshots": [{"url":"bangle2-simple-v-clock-screenshot.png"}],
|
||||||
"storage": [
|
"storage": [
|
||||||
{"name":"svclock.app.js","url":"vclock-simple.js"},
|
{"name":"svclock.app.js","url":"vclock-simple.js"},
|
||||||
{"name":"svclock.img","url":"vclock-simple-icon.js","evaluate":true}
|
{"name":"svclock.img","url":"vclock-simple-icon.js","evaluate":true}
|
||||||
|
|
@ -1211,6 +1222,7 @@
|
||||||
"tags": "clock",
|
"tags": "clock",
|
||||||
"supports": ["BANGLEJS","BANGLEJS2"],
|
"supports": ["BANGLEJS","BANGLEJS2"],
|
||||||
"allow_emulator": true,
|
"allow_emulator": true,
|
||||||
|
"screenshots": [{"url":"bangle2-dev-clock-screenshot.png"},{"url":"bangle1-dev-clock-screenshot.png"}],
|
||||||
"storage": [
|
"storage": [
|
||||||
{"name":"dclock.app.js","url":"clock-dev.js"},
|
{"name":"dclock.app.js","url":"clock-dev.js"},
|
||||||
{"name":"dclock.img","url":"clock-dev-icon.js","evaluate":true}
|
{"name":"dclock.img","url":"clock-dev-icon.js","evaluate":true}
|
||||||
|
|
@ -1242,6 +1254,7 @@
|
||||||
"tags": "party,parrot,lol",
|
"tags": "party,parrot,lol",
|
||||||
"supports": ["BANGLEJS"],
|
"supports": ["BANGLEJS"],
|
||||||
"allow_emulator": true,
|
"allow_emulator": true,
|
||||||
|
"screenshots": [{"url":"bangle1-party-parrot-screenshot.png"}],
|
||||||
"storage": [
|
"storage": [
|
||||||
{"name":"pparrot.app.js","url":"party-parrot.js"},
|
{"name":"pparrot.app.js","url":"party-parrot.js"},
|
||||||
{"name":"pparrot.img","url":"party-parrot-icon.js","evaluate":true}
|
{"name":"pparrot.img","url":"party-parrot-icon.js","evaluate":true}
|
||||||
|
|
@ -1257,6 +1270,7 @@
|
||||||
"tags": "rings,hypnosis,psychadelic",
|
"tags": "rings,hypnosis,psychadelic",
|
||||||
"supports": ["BANGLEJS"],
|
"supports": ["BANGLEJS"],
|
||||||
"allow_emulator": true,
|
"allow_emulator": true,
|
||||||
|
"screenshots": [{"url":"bangle1-hypno-rings-screenshot.png"}],
|
||||||
"storage": [
|
"storage": [
|
||||||
{"name":"hrings.app.js","url":"hypno-rings.js"},
|
{"name":"hrings.app.js","url":"hypno-rings.js"},
|
||||||
{"name":"hrings.img","url":"hypno-rings-icon.js","evaluate":true}
|
{"name":"hrings.img","url":"hypno-rings-icon.js","evaluate":true}
|
||||||
|
|
@ -1324,6 +1338,7 @@
|
||||||
"icon": "show-color.png",
|
"icon": "show-color.png",
|
||||||
"type": "app",
|
"type": "app",
|
||||||
"tags": "tool",
|
"tags": "tool",
|
||||||
|
"screenshots": [{"url":"bangle1-view-color-screenshot.png"}],
|
||||||
"supports": ["BANGLEJS"],
|
"supports": ["BANGLEJS"],
|
||||||
"allow_emulator": true,
|
"allow_emulator": true,
|
||||||
"storage": [
|
"storage": [
|
||||||
|
|
@ -1339,6 +1354,7 @@
|
||||||
"icon": "clock-mixed.png",
|
"icon": "clock-mixed.png",
|
||||||
"type": "clock",
|
"type": "clock",
|
||||||
"tags": "clock",
|
"tags": "clock",
|
||||||
|
"screenshots": [{"url":"bangle1-mixed-clock-screenshot.png"}],
|
||||||
"supports": ["BANGLEJS"],
|
"supports": ["BANGLEJS"],
|
||||||
"allow_emulator": true,
|
"allow_emulator": true,
|
||||||
"storage": [
|
"storage": [
|
||||||
|
|
@ -1356,6 +1372,7 @@
|
||||||
"tags": "clock",
|
"tags": "clock",
|
||||||
"supports": ["BANGLEJS"],
|
"supports": ["BANGLEJS"],
|
||||||
"allow_emulator": true,
|
"allow_emulator": true,
|
||||||
|
"screenshots": [{"url":"bangle1-binary-clock-screenshot.png"}],
|
||||||
"storage": [
|
"storage": [
|
||||||
{"name":"bclock.app.js","url":"clock-binary.js"},
|
{"name":"bclock.app.js","url":"clock-binary.js"},
|
||||||
{"name":"bclock.img","url":"clock-binary-icon.js","evaluate":true}
|
{"name":"bclock.img","url":"clock-binary-icon.js","evaluate":true}
|
||||||
|
|
@ -1369,6 +1386,7 @@
|
||||||
"icon": "clock-tris.png",
|
"icon": "clock-tris.png",
|
||||||
"tags": "game",
|
"tags": "game",
|
||||||
"supports": ["BANGLEJS"],
|
"supports": ["BANGLEJS"],
|
||||||
|
"screenshots": [{"url":"bangle1-clock-tris-screenshot.png"}],
|
||||||
"allow_emulator": true,
|
"allow_emulator": true,
|
||||||
"storage": [
|
"storage": [
|
||||||
{"name":"clotris.app.js","url":"clock-tris.js"},
|
{"name":"clotris.app.js","url":"clock-tris.js"},
|
||||||
|
|
@ -1428,6 +1446,7 @@
|
||||||
"tags": "pomodoro,cooking,tools",
|
"tags": "pomodoro,cooking,tools",
|
||||||
"supports": ["BANGLEJS", "BANGLEJS2"],
|
"supports": ["BANGLEJS", "BANGLEJS2"],
|
||||||
"allow_emulator": true,
|
"allow_emulator": true,
|
||||||
|
"screenshots": [{"url":"bangle2-pomodoro-screenshot.png"}],
|
||||||
"storage": [
|
"storage": [
|
||||||
{"name":"pomodo.app.js","url":"pomodoro.js"},
|
{"name":"pomodo.app.js","url":"pomodoro.js"},
|
||||||
{"name":"pomodo.img","url":"pomodoro-icon.js","evaluate":true}
|
{"name":"pomodo.img","url":"pomodoro-icon.js","evaluate":true}
|
||||||
|
|
@ -1444,6 +1463,7 @@
|
||||||
"tags": "clock",
|
"tags": "clock",
|
||||||
"supports": ["BANGLEJS","BANGLEJS2"],
|
"supports": ["BANGLEJS","BANGLEJS2"],
|
||||||
"allow_emulator": true,
|
"allow_emulator": true,
|
||||||
|
"screenshots": [{"url":"bangle2-large-digit-blob-clock-screenshot.png"},{"url":"bangle1-large-digit-blob-clock-screenshot.png"}],
|
||||||
"storage": [
|
"storage": [
|
||||||
{"name":"blobclk.app.js","url":"clock-blob.js"},
|
{"name":"blobclk.app.js","url":"clock-blob.js"},
|
||||||
{"name":"blobclk.img","url":"clock-blob-icon.js","evaluate":true}
|
{"name":"blobclk.img","url":"clock-blob-icon.js","evaluate":true}
|
||||||
|
|
@ -1503,6 +1523,7 @@
|
||||||
"tags": "clock",
|
"tags": "clock",
|
||||||
"supports": ["BANGLEJS","BANGLEJS2"],
|
"supports": ["BANGLEJS","BANGLEJS2"],
|
||||||
"allow_emulator": true,
|
"allow_emulator": true,
|
||||||
|
"screenshots": [{"url":"berlin-clock-screenshot.png"}],
|
||||||
"storage": [
|
"storage": [
|
||||||
{"name":"berlinc.app.js","url":"berlin-clock.js"},
|
{"name":"berlinc.app.js","url":"berlin-clock.js"},
|
||||||
{"name":"berlinc.img","url":"berlin-clock-icon.js","evaluate":true}
|
{"name":"berlinc.img","url":"berlin-clock-icon.js","evaluate":true}
|
||||||
|
|
@ -1517,6 +1538,7 @@
|
||||||
"type": "clock",
|
"type": "clock",
|
||||||
"tags": "clock",
|
"tags": "clock",
|
||||||
"supports": ["BANGLEJS"],
|
"supports": ["BANGLEJS"],
|
||||||
|
"screenshots": [{"url":"bangle1-center-clock-screenshot.png"}],
|
||||||
"allow_emulator": true,
|
"allow_emulator": true,
|
||||||
"storage": [
|
"storage": [
|
||||||
{"name":"ctrclk.app.js","url":"app.js"},
|
{"name":"ctrclk.app.js","url":"app.js"},
|
||||||
|
|
@ -1531,6 +1553,7 @@
|
||||||
"icon": "app.png",
|
"icon": "app.png",
|
||||||
"type": "app",
|
"type": "app",
|
||||||
"tags": "",
|
"tags": "",
|
||||||
|
"screenshots": [{"url":"bangle1-demo-loop-screenshot1.png"},{"url":"bangle1-demo-loop-screenshot2.png"},{"url":"bangle1-demo-loop-screenshot3.png"},{"url":"bangle1-demo-loop-screenshot4.png"}],
|
||||||
"supports": ["BANGLEJS"],
|
"supports": ["BANGLEJS"],
|
||||||
"allow_emulator": true,
|
"allow_emulator": true,
|
||||||
"storage": [
|
"storage": [
|
||||||
|
|
@ -1563,6 +1586,7 @@
|
||||||
"tags": "clock",
|
"tags": "clock",
|
||||||
"supports": ["BANGLEJS"],
|
"supports": ["BANGLEJS"],
|
||||||
"allow_emulator": true,
|
"allow_emulator": true,
|
||||||
|
"screenshots": [{"url":"bangle1-pipboy-themed-clock-screenshot.png"}],
|
||||||
"storage": [
|
"storage": [
|
||||||
{"name":"pipboy.app.js","url":"app.js"},
|
{"name":"pipboy.app.js","url":"app.js"},
|
||||||
{"name":"pipboy.img","url":"app-icon.js","evaluate":true}
|
{"name":"pipboy.img","url":"app-icon.js","evaluate":true}
|
||||||
|
|
@ -1609,6 +1633,7 @@
|
||||||
"supports": ["BANGLEJS"],
|
"supports": ["BANGLEJS"],
|
||||||
"readme": "README.md",
|
"readme": "README.md",
|
||||||
"allow_emulator": true,
|
"allow_emulator": true,
|
||||||
|
"screenshots": [{"url":"bangle1-workout-HRM-screenshot.png"}],
|
||||||
"storage": [
|
"storage": [
|
||||||
{"name":"wohrm.app.js","url":"app.js"},
|
{"name":"wohrm.app.js","url":"app.js"},
|
||||||
{"name":"wohrm.img","url":"app-icon.js","evaluate":true}
|
{"name":"wohrm.img","url":"app-icon.js","evaluate":true}
|
||||||
|
|
@ -1653,6 +1678,7 @@
|
||||||
"supports": ["BANGLEJS"],
|
"supports": ["BANGLEJS"],
|
||||||
"readme": "README.md",
|
"readme": "README.md",
|
||||||
"allow_emulator": false,
|
"allow_emulator": false,
|
||||||
|
"screenshots": [{"url":"bangle1-mario-clock-screenshot.png"}],
|
||||||
"storage": [
|
"storage": [
|
||||||
{"name":"marioclock.app.js","url":"marioclock-app.js"},
|
{"name":"marioclock.app.js","url":"marioclock-app.js"},
|
||||||
{"name":"marioclock.img","url":"marioclock-icon.js","evaluate":true}
|
{"name":"marioclock.img","url":"marioclock-icon.js","evaluate":true}
|
||||||
|
|
@ -1715,6 +1741,7 @@
|
||||||
"tags": "clock",
|
"tags": "clock",
|
||||||
"supports": ["BANGLEJS","BANGLEJS2"],
|
"supports": ["BANGLEJS","BANGLEJS2"],
|
||||||
"allow_emulator": true,
|
"allow_emulator": true,
|
||||||
|
"screenshots": [{"url":"bangle2-dot-clcok-screenshot.png"},{"url":"bangle1-dot-clock-screenshot.png"}],
|
||||||
"storage": [
|
"storage": [
|
||||||
{"name":"dotclock.app.js","url":"clock-dot.js"},
|
{"name":"dotclock.app.js","url":"clock-dot.js"},
|
||||||
{"name":"dotclock.img","url":"clock-dot-icon.js","evaluate":true}
|
{"name":"dotclock.img","url":"clock-dot-icon.js","evaluate":true}
|
||||||
|
|
@ -1824,6 +1851,7 @@
|
||||||
"tags": "game,fun",
|
"tags": "game,fun",
|
||||||
"supports": ["BANGLEJS"],
|
"supports": ["BANGLEJS"],
|
||||||
"allow_emulator": true,
|
"allow_emulator": true,
|
||||||
|
"screenshots": [{"url":"bangle1-rpg-dice-screenshot.png"}],
|
||||||
"storage": [
|
"storage": [
|
||||||
{"name":"rpgdice.app.js","url":"app.js"},
|
{"name":"rpgdice.app.js","url":"app.js"},
|
||||||
{"name":"rpgdice.img","url":"app-icon.js","evaluate":true}
|
{"name":"rpgdice.img","url":"app-icon.js","evaluate":true}
|
||||||
|
|
@ -1852,6 +1880,7 @@
|
||||||
"tags": "clock,minion",
|
"tags": "clock,minion",
|
||||||
"supports": ["BANGLEJS"],
|
"supports": ["BANGLEJS"],
|
||||||
"allow_emulator": true,
|
"allow_emulator": true,
|
||||||
|
"screenshots": [{"url":"bangle1-minion-clock-screenshot.png"}],
|
||||||
"storage": [
|
"storage": [
|
||||||
{"name":"minionclk.app.js","url":"app.js"},
|
{"name":"minionclk.app.js","url":"app.js"},
|
||||||
{"name":"minionclk.img","url":"app-icon.js","evaluate":true}
|
{"name":"minionclk.img","url":"app-icon.js","evaluate":true}
|
||||||
|
|
@ -1929,7 +1958,7 @@
|
||||||
"icon": "custom.png",
|
"icon": "custom.png",
|
||||||
"type": "bootloader",
|
"type": "bootloader",
|
||||||
"tags": "tool,system",
|
"tags": "tool,system",
|
||||||
"supports": ["BANGLEJS"],
|
"supports": ["BANGLEJS","BANGLEJS2"],
|
||||||
"custom": "custom.html",
|
"custom": "custom.html",
|
||||||
"storage": [
|
"storage": [
|
||||||
{"name":"custom"}
|
{"name":"custom"}
|
||||||
|
|
@ -1944,6 +1973,7 @@
|
||||||
"icon": "app.png",
|
"icon": "app.png",
|
||||||
"tags": "stopwatch,chrono,timer,chronometer",
|
"tags": "stopwatch,chrono,timer,chronometer",
|
||||||
"supports": ["BANGLEJS","BANGLEJS2"],
|
"supports": ["BANGLEJS","BANGLEJS2"],
|
||||||
|
"screenshots": [{"url":"bangle1-dev-stopwatch-screenshot.png"}],
|
||||||
"allow_emulator": true,
|
"allow_emulator": true,
|
||||||
"storage": [
|
"storage": [
|
||||||
{"name":"devstopwatch.app.js","url":"app.js"},
|
{"name":"devstopwatch.app.js","url":"app.js"},
|
||||||
|
|
@ -1977,6 +2007,7 @@
|
||||||
"tags": "app,learn,visual",
|
"tags": "app,learn,visual",
|
||||||
"supports": ["BANGLEJS"],
|
"supports": ["BANGLEJS"],
|
||||||
"allow_emulator": true,
|
"allow_emulator": true,
|
||||||
|
"screenshots": [{"url":"bangle1-NATO-alphabet-screenshot.png"},{"url":"bangle1-NATO-alphabet-screenshot2.png"}],
|
||||||
"storage": [
|
"storage": [
|
||||||
{"name":"nato.app.js","url":"nato.js"},
|
{"name":"nato.app.js","url":"nato.js"},
|
||||||
{"name":"nato.img","url":"nato-icon.js","evaluate":true}
|
{"name":"nato.img","url":"nato-icon.js","evaluate":true}
|
||||||
|
|
@ -1993,6 +2024,7 @@
|
||||||
"tags": "numerals,clock",
|
"tags": "numerals,clock",
|
||||||
"supports": ["BANGLEJS"],
|
"supports": ["BANGLEJS"],
|
||||||
"allow_emulator": true,
|
"allow_emulator": true,
|
||||||
|
"screenshots": [{"url":"bangle1-numerals-screenshot.png"}],
|
||||||
"storage": [
|
"storage": [
|
||||||
{"name":"numerals.app.js","url":"numerals.app.js"},
|
{"name":"numerals.app.js","url":"numerals.app.js"},
|
||||||
{"name":"numerals.img","url":"numerals-icon.js","evaluate":true},
|
{"name":"numerals.img","url":"numerals-icon.js","evaluate":true},
|
||||||
|
|
@ -2119,13 +2151,14 @@
|
||||||
{
|
{
|
||||||
"id": "metronome",
|
"id": "metronome",
|
||||||
"name": "Metronome",
|
"name": "Metronome",
|
||||||
"version": "0.06",
|
"version": "0.07",
|
||||||
|
"readme": "README.md",
|
||||||
"description": "Makes the watch blinking and vibrating with a given rate",
|
"description": "Makes the watch blinking and vibrating with a given rate",
|
||||||
"icon": "metronome_icon.png",
|
"icon": "metronome_icon.png",
|
||||||
"tags": "tool",
|
"tags": "tool",
|
||||||
"supports": ["BANGLEJS"],
|
"supports": ["BANGLEJS","BANGLEJS2"],
|
||||||
"readme": "README.md",
|
|
||||||
"allow_emulator": true,
|
"allow_emulator": true,
|
||||||
|
"screenshots": [{"url":"bangle1-metronome-screenshot.png"}],
|
||||||
"storage": [
|
"storage": [
|
||||||
{"name":"metronome.app.js","url":"metronome.js"},
|
{"name":"metronome.app.js","url":"metronome.js"},
|
||||||
{"name":"metronome.img","url":"metronome-icon.js","evaluate":true},
|
{"name":"metronome.img","url":"metronome-icon.js","evaluate":true},
|
||||||
|
|
@ -2141,6 +2174,7 @@
|
||||||
"icon": "blackjack.png",
|
"icon": "blackjack.png",
|
||||||
"tags": "game",
|
"tags": "game",
|
||||||
"supports": ["BANGLEJS"],
|
"supports": ["BANGLEJS"],
|
||||||
|
"screenshots": [{"url":"bangle1-black-jack-game-screenshot.png"}],
|
||||||
"allow_emulator": true,
|
"allow_emulator": true,
|
||||||
"storage": [
|
"storage": [
|
||||||
{"name":"blackjack.app.js","url":"blackjack.app.js"},
|
{"name":"blackjack.app.js","url":"blackjack.app.js"},
|
||||||
|
|
@ -2174,6 +2208,7 @@
|
||||||
"supports": ["BANGLEJS"],
|
"supports": ["BANGLEJS"],
|
||||||
"readme": "README.md",
|
"readme": "README.md",
|
||||||
"allow_emulator": true,
|
"allow_emulator": true,
|
||||||
|
"screenshots": [{"url":"bangle1-SWL-clock-screenshot.png"}],
|
||||||
"storage": [
|
"storage": [
|
||||||
{"name":"swlclk.app.js","url":"app.js"},
|
{"name":"swlclk.app.js","url":"app.js"},
|
||||||
{"name":"swlclk.img","url":"app-icon.js","evaluate":true}
|
{"name":"swlclk.img","url":"app-icon.js","evaluate":true}
|
||||||
|
|
@ -2251,6 +2286,7 @@
|
||||||
"supports": ["BANGLEJS"],
|
"supports": ["BANGLEJS"],
|
||||||
"readme": "README.md",
|
"readme": "README.md",
|
||||||
"allow_emulator": true,
|
"allow_emulator": true,
|
||||||
|
"screenshots": [{"url":"bangle1-pong-screenshot.png"}],
|
||||||
"storage": [
|
"storage": [
|
||||||
{"name":"pong.app.js","url":"app.js"},
|
{"name":"pong.app.js","url":"app.js"},
|
||||||
{"name":"pong.img","url":"app-icon.js","evaluate":true}
|
{"name":"pong.img","url":"app-icon.js","evaluate":true}
|
||||||
|
|
@ -2313,6 +2349,7 @@
|
||||||
"supports": ["BANGLEJS"],
|
"supports": ["BANGLEJS"],
|
||||||
"readme": "README.md",
|
"readme": "README.md",
|
||||||
"allow_emulator": true,
|
"allow_emulator": true,
|
||||||
|
"screenshots": [{"url":"bangle1-large-clock-screenshot.png"}],
|
||||||
"storage": [
|
"storage": [
|
||||||
{"name":"largeclock.app.js","url":"largeclock.js"},
|
{"name":"largeclock.app.js","url":"largeclock.js"},
|
||||||
{"name":"largeclock.img","url":"largeclock-icon.js","evaluate":true},
|
{"name":"largeclock.img","url":"largeclock-icon.js","evaluate":true},
|
||||||
|
|
@ -2364,6 +2401,7 @@
|
||||||
"supports": ["BANGLEJS"],
|
"supports": ["BANGLEJS"],
|
||||||
"readme": "README.md",
|
"readme": "README.md",
|
||||||
"allow_emulator": true,
|
"allow_emulator": true,
|
||||||
|
"screenshots": [{"url":"bangle1-timer-screenshot.png"}],
|
||||||
"storage": [
|
"storage": [
|
||||||
{"name":"simpletimer.app.js","url":"app.js"},
|
{"name":"simpletimer.app.js","url":"app.js"},
|
||||||
{"name":".tfnames","url":"gesture-tfnames.js","evaluate":true},
|
{"name":".tfnames","url":"gesture-tfnames.js","evaluate":true},
|
||||||
|
|
@ -2380,6 +2418,7 @@
|
||||||
"icon": "beebclock.png",
|
"icon": "beebclock.png",
|
||||||
"type": "clock",
|
"type": "clock",
|
||||||
"tags": "clock",
|
"tags": "clock",
|
||||||
|
"screenshots": [{"url":"bangle1-beeb-clock-screenshot.png"}],
|
||||||
"supports": ["BANGLEJS"],
|
"supports": ["BANGLEJS"],
|
||||||
"allow_emulator": true,
|
"allow_emulator": true,
|
||||||
"storage": [
|
"storage": [
|
||||||
|
|
@ -2413,6 +2452,7 @@
|
||||||
"tags": "tools,health",
|
"tags": "tools,health",
|
||||||
"supports": ["BANGLEJS"],
|
"supports": ["BANGLEJS"],
|
||||||
"readme": "README.md",
|
"readme": "README.md",
|
||||||
|
"screenshots": [{"url":"bangle1-get-up-screenshot.png"}],
|
||||||
"allow_emulator": true,
|
"allow_emulator": true,
|
||||||
"storage": [
|
"storage": [
|
||||||
{"name":"getup.app.js","url":"app.js"},
|
{"name":"getup.app.js","url":"app.js"},
|
||||||
|
|
@ -2491,6 +2531,7 @@
|
||||||
"version": "0.01",
|
"version": "0.01",
|
||||||
"description": "La palla predice il futuro",
|
"description": "La palla predice il futuro",
|
||||||
"icon": "app.png",
|
"icon": "app.png",
|
||||||
|
"screenshots": [{"url":"bangle1-magic-8-ball-italiano-screenshot.png"}],
|
||||||
"tags": "game",
|
"tags": "game",
|
||||||
"supports": ["BANGLEJS"],
|
"supports": ["BANGLEJS"],
|
||||||
"allow_emulator": true,
|
"allow_emulator": true,
|
||||||
|
|
@ -2604,6 +2645,7 @@
|
||||||
"tags": "clock",
|
"tags": "clock",
|
||||||
"supports": ["BANGLEJS"],
|
"supports": ["BANGLEJS"],
|
||||||
"allow_emulator": true,
|
"allow_emulator": true,
|
||||||
|
"screenshots": [{"url":"bangle1-vertical-watch-face-screenshot.png"}],
|
||||||
"storage": [
|
"storage": [
|
||||||
{"name":"verticalface.app.js","url":"app.js"},
|
{"name":"verticalface.app.js","url":"app.js"},
|
||||||
{"name":"verticalface.img","url":"app-icon.js","evaluate":true}
|
{"name":"verticalface.img","url":"app-icon.js","evaluate":true}
|
||||||
|
|
@ -2631,6 +2673,7 @@
|
||||||
"icon": "life.png",
|
"icon": "life.png",
|
||||||
"tags": "game",
|
"tags": "game",
|
||||||
"supports": ["BANGLEJS"],
|
"supports": ["BANGLEJS"],
|
||||||
|
"screenshots": [{"url":"bangle1-game-of-life-screenshot.png"}],
|
||||||
"allow_emulator": true,
|
"allow_emulator": true,
|
||||||
"storage": [
|
"storage": [
|
||||||
{"name":"life.app.js","url":"life.min.js"},
|
{"name":"life.app.js","url":"life.min.js"},
|
||||||
|
|
@ -2678,6 +2721,7 @@
|
||||||
"type": "clock",
|
"type": "clock",
|
||||||
"tags": "clock",
|
"tags": "clock",
|
||||||
"supports": ["BANGLEJS"],
|
"supports": ["BANGLEJS"],
|
||||||
|
"screenshots": [{"url":"bangle1-mixed-clock-2-screenshot.png"}],
|
||||||
"allow_emulator": true,
|
"allow_emulator": true,
|
||||||
"storage": [
|
"storage": [
|
||||||
{"name":"miclock2.app.js","url":"clock-mixed.js"},
|
{"name":"miclock2.app.js","url":"clock-mixed.js"},
|
||||||
|
|
@ -2813,6 +2857,7 @@
|
||||||
"supports": ["BANGLEJS"],
|
"supports": ["BANGLEJS"],
|
||||||
"readme": "README.md",
|
"readme": "README.md",
|
||||||
"allow_emulator": true,
|
"allow_emulator": true,
|
||||||
|
"screenshots": [{"url":"bangle1-CPR-assist-screenshot.png"}],
|
||||||
"storage": [
|
"storage": [
|
||||||
{"name":"cprassist.app.js","url":"cprassist.js"},
|
{"name":"cprassist.app.js","url":"cprassist.js"},
|
||||||
{"name":"cprassist.img","url":"cprassist-icon.js","evaluate":true},
|
{"name":"cprassist.img","url":"cprassist-icon.js","evaluate":true},
|
||||||
|
|
@ -2856,6 +2901,7 @@
|
||||||
"icon": "counter_icon.png",
|
"icon": "counter_icon.png",
|
||||||
"tags": "tool",
|
"tags": "tool",
|
||||||
"supports": ["BANGLEJS"],
|
"supports": ["BANGLEJS"],
|
||||||
|
"screenshots": [{"url":"bangle1-counter-screenshot.png"}],
|
||||||
"allow_emulator": true,
|
"allow_emulator": true,
|
||||||
"storage": [
|
"storage": [
|
||||||
{"name":"counter.app.js","url":"counter.js"},
|
{"name":"counter.app.js","url":"counter.js"},
|
||||||
|
|
@ -3235,6 +3281,7 @@
|
||||||
"tags": "clock",
|
"tags": "clock",
|
||||||
"supports": ["BANGLEJS"],
|
"supports": ["BANGLEJS"],
|
||||||
"readme": "README.md",
|
"readme": "README.md",
|
||||||
|
"screenshots": [{"url":"bangle1-lazy-clock-screenshot.png"}],
|
||||||
"allow_emulator": true,
|
"allow_emulator": true,
|
||||||
"storage": [
|
"storage": [
|
||||||
{"name":"lazyclock.app.js","url":"lazyclock-app.js"},
|
{"name":"lazyclock.app.js","url":"lazyclock-app.js"},
|
||||||
|
|
@ -3336,6 +3383,7 @@
|
||||||
"supports": ["BANGLEJS"],
|
"supports": ["BANGLEJS"],
|
||||||
"readme": "README.md",
|
"readme": "README.md",
|
||||||
"allow_emulator": true,
|
"allow_emulator": true,
|
||||||
|
"screenshots": [{"url":"bangle1-slow-mo-clock-screenshot.png"}],
|
||||||
"storage": [
|
"storage": [
|
||||||
{"name":"slomoclock.app.js","url":"app.js"},
|
{"name":"slomoclock.app.js","url":"app.js"},
|
||||||
{"name":"slomoclock.img","url":"app-icon.js","evaluate":true},
|
{"name":"slomoclock.img","url":"app-icon.js","evaluate":true},
|
||||||
|
|
@ -3675,6 +3723,7 @@
|
||||||
"icon": "battleship-icon.png",
|
"icon": "battleship-icon.png",
|
||||||
"tags": "game",
|
"tags": "game",
|
||||||
"supports": ["BANGLEJS"],
|
"supports": ["BANGLEJS"],
|
||||||
|
"screenshots": [{"url":"bangle1-battle-ship-screenshot.png"}],
|
||||||
"readme": "README.md",
|
"readme": "README.md",
|
||||||
"allow_emulator": true,
|
"allow_emulator": true,
|
||||||
"storage": [
|
"storage": [
|
||||||
|
|
@ -3878,6 +3927,7 @@
|
||||||
"type": "clock",
|
"type": "clock",
|
||||||
"tags": "clock",
|
"tags": "clock",
|
||||||
"supports": ["BANGLEJS"],
|
"supports": ["BANGLEJS"],
|
||||||
|
"screenshots": [{"url":"bangle1-mystic-clock-screenshot.png"}],
|
||||||
"readme": "README.md",
|
"readme": "README.md",
|
||||||
"allow_emulator": true,
|
"allow_emulator": true,
|
||||||
"storage": [
|
"storage": [
|
||||||
|
|
@ -3894,6 +3944,7 @@
|
||||||
"icon": "hcclock-icon.png",
|
"icon": "hcclock-icon.png",
|
||||||
"type": "clock",
|
"type": "clock",
|
||||||
"tags": "clock",
|
"tags": "clock",
|
||||||
|
"screenshots": [{"url":"bangle1-high-contrast-clock-screenshot.png"}],
|
||||||
"supports": ["BANGLEJS"],
|
"supports": ["BANGLEJS"],
|
||||||
"allow_emulator": true,
|
"allow_emulator": true,
|
||||||
"storage": [
|
"storage": [
|
||||||
|
|
@ -3975,6 +4026,7 @@
|
||||||
"tags": "clock",
|
"tags": "clock",
|
||||||
"supports": ["BANGLEJS"],
|
"supports": ["BANGLEJS"],
|
||||||
"allow_emulator": true,
|
"allow_emulator": true,
|
||||||
|
"screenshots": [{"url":"bangle1-vector-clock-screenshot.png"}],
|
||||||
"storage": [
|
"storage": [
|
||||||
{"name":"vectorclock.app.js","url":"app.js"},
|
{"name":"vectorclock.app.js","url":"app.js"},
|
||||||
{"name":"vectorclock.img","url":"app-icon.js","evaluate":true}
|
{"name":"vectorclock.img","url":"app-icon.js","evaluate":true}
|
||||||
|
|
@ -4004,6 +4056,7 @@
|
||||||
"supports": ["BANGLEJS"],
|
"supports": ["BANGLEJS"],
|
||||||
"readme": "README.md",
|
"readme": "README.md",
|
||||||
"allow_emulator": true,
|
"allow_emulator": true,
|
||||||
|
"screenshots": [{"url":"bangle1-choozi-screenshot1.png"},{"url":"bangle1-choozi-screenshot2.png"}],
|
||||||
"storage": [
|
"storage": [
|
||||||
{"name":"choozi.app.js","url":"app.js"},
|
{"name":"choozi.app.js","url":"app.js"},
|
||||||
{"name":"choozi.img","url":"app-icon.js","evaluate":true}
|
{"name":"choozi.img","url":"app-icon.js","evaluate":true}
|
||||||
|
|
@ -4319,8 +4372,10 @@
|
||||||
"description": "Famous binary watch",
|
"description": "Famous binary watch",
|
||||||
"tags": "clock",
|
"tags": "clock",
|
||||||
"type": "clock",
|
"type": "clock",
|
||||||
"storage": [
|
"storage": [
|
||||||
{"name":"binwatch.app.js","url":"app.js"},
|
{"name":"binwatch.app.js","url":"app.js"},
|
||||||
|
{"name":"binwatch.bg176.img","url":"Background176_center.img"},
|
||||||
|
{"name":"binwatch.bg240.img","url":"Background240_center.img"},
|
||||||
{"name":"binwatch.img","url":"app-icon.js","evaluate":true}
|
{"name":"binwatch.img","url":"app-icon.js","evaluate":true}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|
@ -4357,7 +4412,7 @@
|
||||||
],
|
],
|
||||||
"data": [{"name":"authentiwatch.json"}]
|
"data": [{"name":"authentiwatch.json"}]
|
||||||
},
|
},
|
||||||
{ "id": "schoolCalendar",
|
{ "id": "schoolCalendar",
|
||||||
"name": "School Calendar",
|
"name": "School Calendar",
|
||||||
"shortName":"SCalendar",
|
"shortName":"SCalendar",
|
||||||
"icon": "CalenderLogo.png",
|
"icon": "CalenderLogo.png",
|
||||||
|
|
|
||||||
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 2.8 KiB |
|
After Width: | Height: | Size: 4.6 KiB |
|
After Width: | Height: | Size: 4.4 KiB |
|
After Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 6.3 KiB After Width: | Height: | Size: 6.2 KiB |
|
|
@ -1,3 +1,4 @@
|
||||||
0.01: start of development
|
0.01: start of development
|
||||||
0.02: first running version for BangleJs2
|
0.02: first running version for BangleJs2
|
||||||
0.03: corrected icon, added screen shot, extended description
|
0.03: corrected icon, added screen shot, extended description
|
||||||
|
0.04: corrected format of background image (raw binary)
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,6 @@
|
||||||
require("Font7x11Numeric7Seg").add(Graphics);
|
require("Font7x11Numeric7Seg").add(Graphics);
|
||||||
require("Font5x7Numeric7Seg").add(Graphics);
|
require("Font5x7Numeric7Seg").add(Graphics);
|
||||||
|
|
||||||
|
|
||||||
/* constants and definitions */
|
/* constants and definitions */
|
||||||
|
|
||||||
/* Bangle 2: 176 x 176 */
|
/* Bangle 2: 176 x 176 */
|
||||||
|
|
@ -63,7 +62,7 @@ const V2_BAT_SIZE_Y = 2;
|
||||||
|
|
||||||
const V2_SCREEN_SIZE_X = 176;
|
const V2_SCREEN_SIZE_X = 176;
|
||||||
const V2_SCREEN_SIZE_Y = 176;
|
const V2_SCREEN_SIZE_Y = 176;
|
||||||
const V2_BACKGROUND_IMAGE = "Background176_center.png";
|
const V2_BACKGROUND_IMAGE = "binwatch.bg176.img";
|
||||||
const V2_BG_COLOR = 0;
|
const V2_BG_COLOR = 0;
|
||||||
const V2_FG_COLOR = 1;
|
const V2_FG_COLOR = 1;
|
||||||
|
|
||||||
|
|
@ -91,7 +90,7 @@ const V1_BAT_SIZE_X = 3;
|
||||||
const V1_BAT_SIZE_Y = 5;
|
const V1_BAT_SIZE_Y = 5;
|
||||||
const V1_SCREEN_SIZE_X = 240;
|
const V1_SCREEN_SIZE_X = 240;
|
||||||
const V1_SCREEN_SIZE_Y = 240;
|
const V1_SCREEN_SIZE_Y = 240;
|
||||||
const V1_BACKGROUND_IMAGE = "Background240_center.png";
|
const V1_BACKGROUND_IMAGE = "binwatch.bg240.img";
|
||||||
const V1_BG_COLOR = 1;
|
const V1_BG_COLOR = 1;
|
||||||
const V1_FG_COLOR = 0;
|
const V1_FG_COLOR = 0;
|
||||||
|
|
||||||
|
|
@ -293,7 +292,7 @@ function setRuntimeValues(resolution) {
|
||||||
bat_size_x = V1_BAT_SIZE_X;
|
bat_size_x = V1_BAT_SIZE_X;
|
||||||
bat_size_y = V1_BAT_SIZE_Y;
|
bat_size_y = V1_BAT_SIZE_Y;
|
||||||
|
|
||||||
setWatch(toggleDateTime, BTN1, { repeat : true, edge: "falling"});
|
setWatch(toggleDateTime, BTN1, { repeat : true, edge: "falling"});
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
x_step = V2_X_STEP;
|
x_step = V2_X_STEP;
|
||||||
|
|
@ -362,8 +361,7 @@ function draw() {
|
||||||
updateVTime();
|
updateVTime();
|
||||||
g.clear();
|
g.clear();
|
||||||
g.drawImages([{image:cgimg},
|
g.drawImages([{image:cgimg},
|
||||||
{image:require("Storage").read(backgroundImage)},
|
{image:require("Storage").read(backgroundImage)}
|
||||||
// { x:bt_x, y:bt_y, rotate: 0, image:require("Storage").read("bt-icon.png")},
|
|
||||||
]);
|
]);
|
||||||
drawBT(g, NRF.getSecurityStatus().connected);
|
drawBT(g, NRF.getSecurityStatus().connected);
|
||||||
// Bangle.drawWidgets();
|
// Bangle.drawWidgets();
|
||||||
|
|
|
||||||
|
After Width: | Height: | Size: 4.1 KiB |
|
After Width: | Height: | Size: 2.8 KiB |
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 3.3 KiB |
|
After Width: | Height: | Size: 2.0 KiB |
|
After Width: | Height: | Size: 3.8 KiB |
|
After Width: | Height: | Size: 3.7 KiB |
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 3.5 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 3.6 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 2.1 KiB |
|
After Width: | Height: | Size: 4.0 KiB |
|
After Width: | Height: | Size: 2.4 KiB |
|
After Width: | Height: | Size: 9.4 KiB |
|
After Width: | Height: | Size: 2.8 KiB |
|
After Width: | Height: | Size: 3.6 KiB |
|
After Width: | Height: | Size: 5.6 KiB |
|
After Width: | Height: | Size: 3.7 KiB |
|
After Width: | Height: | Size: 3.5 KiB |
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 2.3 KiB |
|
|
@ -26,3 +26,4 @@
|
||||||
0.22: Ensure Bangle.setGPSPower uses 'gpsrec' as a tag
|
0.22: Ensure Bangle.setGPSPower uses 'gpsrec' as a tag
|
||||||
0.23: Fix issue where tracks wouldn't record when running from OpenStMap if a period hadn't been set up first
|
0.23: Fix issue where tracks wouldn't record when running from OpenStMap if a period hadn't been set up first
|
||||||
0.24: Better support for Bangle.js 2, avoid widget area for Graphs, smooth graphs more
|
0.24: Better support for Bangle.js 2, avoid widget area for Graphs, smooth graphs more
|
||||||
|
0.25: Fix issue where if Bangle.js 2 got a GPS fix but no reported time, errors could be caused by the widget (fix #935)
|
||||||
|
|
|
||||||
|
|
@ -26,6 +26,7 @@
|
||||||
fixToggle = !fixToggle;
|
fixToggle = !fixToggle;
|
||||||
WIDGETS["gpsrec"].draw();
|
WIDGETS["gpsrec"].draw();
|
||||||
if (hasFix) {
|
if (hasFix) {
|
||||||
|
if (fix.time===undefined) fix.time = new Date(); // Bangle.js 2 can provide a fix before time it seems
|
||||||
var period = fix.time.getTime() - lastFixTime;
|
var period = fix.time.getTime() - lastFixTime;
|
||||||
if (period+500 > settings.period*1000) { // round up
|
if (period+500 > settings.period*1000) { // round up
|
||||||
lastFixTime = fix.time.getTime();
|
lastFixTime = fix.time.getTime();
|
||||||
|
|
|
||||||
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 5.0 KiB |
|
After Width: | Height: | Size: 5.2 KiB |
|
After Width: | Height: | Size: 3.4 KiB |
|
After Width: | Height: | Size: 4.9 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 3.8 KiB |
|
After Width: | Height: | Size: 3.6 KiB |
|
After Width: | Height: | Size: 3.1 KiB |
|
|
@ -4,3 +4,4 @@
|
||||||
0.04: App shows instructions, Widgets remain visible, color changed
|
0.04: App shows instructions, Widgets remain visible, color changed
|
||||||
0.05: Buzz intensity and beats per bar can be changed via settings-app
|
0.05: Buzz intensity and beats per bar can be changed via settings-app
|
||||||
0.06: Correct string position
|
0.06: Correct string position
|
||||||
|
0.07: Add support for Bangle.sjs2
|
||||||
|
|
@ -4,11 +4,12 @@ This metronome makes your watch blink and vibrate with a given rate.
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
* Tap the screen at least three times. The app calculates the mean rate of your tapping. This rate is displayed in bmp while the text blinks and the watch softly vibrates with every beat.
|
* Tap the screen at least three times. The app calculates the mean rate of your tapping. This rate is displayed in bpm while the text blinks and the watch softly vibrates with every beat.
|
||||||
* Use `BTN1` to increase the bmp value by one.
|
* Use `BTN1` to increase the bpm value by one.
|
||||||
* Use `BTN3` to decrease the bmp value by one.
|
* Use `BTN3` to decrease the bpm value by one.
|
||||||
* You can change the bpm value any time by tapping the screen or using `BTN1` and `BTN3`.
|
* You can change the bpm value any time by tapping the screen or using `BTN1` and `BTN3`.
|
||||||
* Intensity of buzzing and the beats per bar (default 4) can be changed with the settings-app. The first beat per bar will be marked in red.
|
* Intensity of buzzing and the beats per bar (default 4) can be changed with the settings-app. The first beat per bar will be marked in red.
|
||||||
|
* On Bangle.js 2 tapping the center of the screen initiates bpm. in- or decreasing bpm can by 1 can be done by tapping left or right site of the screen.
|
||||||
|
|
||||||
## Attributions
|
## Attributions
|
||||||
|
|
||||||
|
|
|
||||||
|
After Width: | Height: | Size: 3.6 KiB |
|
|
@ -3,10 +3,9 @@ var cindex=0; // index to iterate through colous
|
||||||
var bpm=60; // ininital bpm value
|
var bpm=60; // ininital bpm value
|
||||||
var time_diffs = [1000, 1000, 1000]; //array to calculate mean bpm
|
var time_diffs = [1000, 1000, 1000]; //array to calculate mean bpm
|
||||||
var tindex=0; //index to iterate through time_diffs
|
var tindex=0; //index to iterate through time_diffs
|
||||||
|
// set background colour
|
||||||
|
g.setTheme({bg:"#000"});
|
||||||
Bangle.setLCDTimeout(undefined); //do not deaktivate display while running this app
|
Bangle.setLCDTimeout(undefined); //do not deactivate display while running this app
|
||||||
|
|
||||||
const storage = require("Storage");
|
const storage = require("Storage");
|
||||||
const SETTINGS_FILE = 'metronome.settings.json';
|
const SETTINGS_FILE = 'metronome.settings.json';
|
||||||
|
|
||||||
|
|
@ -15,7 +14,7 @@ function setting(key) {
|
||||||
//define default settings
|
//define default settings
|
||||||
const DEFAULTS = {
|
const DEFAULTS = {
|
||||||
'beatsperbar': 4,
|
'beatsperbar': 4,
|
||||||
'buzzintens': 0.75,
|
'buzzintens': 1.0,
|
||||||
};
|
};
|
||||||
if (!settings) { loadSettings(); }
|
if (!settings) { loadSettings(); }
|
||||||
return (key in settings) ? settings[key] : DEFAULTS[key];
|
return (key in settings) ? settings[key] : DEFAULTS[key];
|
||||||
|
|
@ -40,6 +39,10 @@ function changecolor() {
|
||||||
7: { value: 0xFFFF, name: "White" },
|
7: { value: 0xFFFF, name: "White" },
|
||||||
};
|
};
|
||||||
g.setColor(colors[cindex].value);
|
g.setColor(colors[cindex].value);
|
||||||
|
if ((process.env.HWVERSION==2 )) {
|
||||||
|
g.drawLine(39,0,39,g.getWidth()/3);
|
||||||
|
g.drawLine(136,0,136,g.getWidth()/3);
|
||||||
|
}
|
||||||
if (cindex == setting('beatsperbar')-1) {
|
if (cindex == setting('beatsperbar')-1) {
|
||||||
cindex = 0;
|
cindex = 0;
|
||||||
}
|
}
|
||||||
|
|
@ -50,43 +53,73 @@ function changecolor() {
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateScreen() {
|
function updateScreen() {
|
||||||
g.reset().clearRect(0, 50, 250, 150);
|
g.reset().clearRect(0, 50, 250, 120);
|
||||||
changecolor();
|
changecolor();
|
||||||
try {
|
try {
|
||||||
Bangle.buzz(50, setting('buzzintens'));
|
Bangle.buzz(50, setting('buzzintens'));
|
||||||
} catch(err) {
|
} catch(err) {
|
||||||
}
|
}
|
||||||
g.setFont("Vector",40).setFontAlign(0,0);
|
g.setFont("Vector",40).setFontAlign(0,0);
|
||||||
g.drawString(Math.floor(bpm)+"bpm", g.getWidth()/2, 100);
|
g.drawString(Math.floor(bpm)+"bpm", g.getWidth()/2, g.getWidth()/2);
|
||||||
}
|
}
|
||||||
|
|
||||||
Bangle.on('touch', function(button) {
|
//Write user instructuins to screen
|
||||||
// setting bpm by tapping the screen. Uses the mean time difference between several tappings.
|
function printInstructions() {
|
||||||
if (tindex < time_diffs.length) {
|
g.clear(1).setFont("4x6");
|
||||||
if (Date.now()-tStart < 5000) {
|
g.setColor(-1); //set color to white
|
||||||
time_diffs[tindex] = Date.now()-tStart;
|
g.drawString('Drum the beat on the center\nof the screen to set tempo.', 30, g.getWidth()/3*2+15);
|
||||||
}
|
if(process.env.HWVERSION==1) {
|
||||||
} else {
|
g.drawString('Use BTN1 to increase, and\nBTN3 to decrease bpm value by 1.', 30, g.getWidth()/3*2+30);
|
||||||
tindex=0;
|
}
|
||||||
time_diffs[tindex] = Date.now()-tStart;
|
else {
|
||||||
}
|
g.drawString('Touch left part of the screen\nto decrease, or the right site\nto increase bpm value by 1.', 30, g.getWidth()/3*2+30);
|
||||||
tindex += 1;
|
}
|
||||||
mean_time = 0.0;
|
}
|
||||||
for(count = 0; count < time_diffs.length; count++) {
|
|
||||||
mean_time += time_diffs[count];
|
|
||||||
}
|
|
||||||
time_diff = mean_time/count;
|
|
||||||
|
|
||||||
tStart = Date.now();
|
Bangle.on('touch', function(zone, e) {
|
||||||
clearInterval(time_diff);
|
// setting bpm by tapping the screen. Uses the mean time difference between several tappings.
|
||||||
bpm = (60 * 1000/(time_diff));
|
if ((process.env.HWVERSION==2 && e.x > 39 && e.x < 136) || process.env.HWVERSION==1){
|
||||||
updateScreen();
|
if (tindex < time_diffs.length) {
|
||||||
clearInterval(interval);
|
if (Date.now()-tStart < 5000) {
|
||||||
interval = setInterval(updateScreen, 60000 / bpm);
|
time_diffs[tindex] = Date.now()-tStart;
|
||||||
return bpm;
|
}
|
||||||
|
} else {
|
||||||
|
tindex=0;
|
||||||
|
time_diffs[tindex] = Date.now()-tStart;
|
||||||
|
}
|
||||||
|
tindex += 1;
|
||||||
|
mean_time = 0.0;
|
||||||
|
for (count = 0; count < time_diffs.length; count++) {
|
||||||
|
mean_time += time_diffs[count];
|
||||||
|
}
|
||||||
|
time_diff = mean_time/count;
|
||||||
|
|
||||||
|
tStart = Date.now();
|
||||||
|
clearInterval(time_diff);
|
||||||
|
bpm = (60 * 1000/(time_diff));
|
||||||
|
updateScreen();
|
||||||
|
clearInterval(interval);
|
||||||
|
interval = setInterval(updateScreen, 60000 / bpm);
|
||||||
|
return bpm;
|
||||||
|
}
|
||||||
|
else if (e.x < 39) {
|
||||||
|
if (bpm > 1) {
|
||||||
|
bpm -= 1;
|
||||||
|
clearInterval(interval);
|
||||||
|
interval = setInterval(updateScreen, 60000 / bpm);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (e.x > 136) {
|
||||||
|
if (bpm > 1) {
|
||||||
|
bpm += 1;
|
||||||
|
clearInterval(interval);
|
||||||
|
interval = setInterval(updateScreen, 60000 / bpm);
|
||||||
|
}}
|
||||||
});
|
});
|
||||||
|
|
||||||
// enable bpm finetuning via buttons.
|
|
||||||
|
// enable bpm finetuning
|
||||||
|
if ((process.env.HWVERSION==1)) {
|
||||||
setWatch(() => {
|
setWatch(() => {
|
||||||
bpm += 1;
|
bpm += 1;
|
||||||
clearInterval(interval);
|
clearInterval(interval);
|
||||||
|
|
@ -101,10 +134,10 @@ setWatch(() => {
|
||||||
}
|
}
|
||||||
}, BTN3, {repeat:true});
|
}, BTN3, {repeat:true});
|
||||||
|
|
||||||
|
}
|
||||||
interval = setInterval(updateScreen, 60000 / bpm);
|
interval = setInterval(updateScreen, 60000 / bpm);
|
||||||
|
printInstructions();
|
||||||
|
|
||||||
g.clear(1).setFont("6x8");
|
|
||||||
g.drawString('Touch the screen to set tempo.\nUse BTN1 to increase, and\nBTN3 to decrease bpm value by 1.', 25, 200);
|
|
||||||
|
|
||||||
Bangle.loadWidgets();
|
Bangle.loadWidgets();
|
||||||
Bangle.drawWidgets();
|
Bangle.drawWidgets();
|
||||||
|
|
|
||||||
|
After Width: | Height: | Size: 4.0 KiB |
|
After Width: | Height: | Size: 3.9 KiB |
|
After Width: | Height: | Size: 9.8 KiB |
|
After Width: | Height: | Size: 4.7 KiB |
|
After Width: | Height: | Size: 3.4 KiB |
|
After Width: | Height: | Size: 6.9 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 3.8 KiB |
|
After Width: | Height: | Size: 7.5 KiB |
|
After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 2.2 KiB |
|
After Width: | Height: | Size: 3.9 KiB |
|
After Width: | Height: | Size: 2.7 KiB |
|
After Width: | Height: | Size: 2.7 KiB |
|
After Width: | Height: | Size: 2.7 KiB |
|
After Width: | Height: | Size: 3.8 KiB |
|
After Width: | Height: | Size: 2.2 KiB |
|
After Width: | Height: | Size: 3.3 KiB |
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 5.2 KiB |
|
After Width: | Height: | Size: 5.0 KiB |
|
After Width: | Height: | Size: 3.6 KiB |
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 3.4 KiB |