diff --git a/apps.json b/apps.json index 4783d84cd..1455a2b13 100644 --- a/apps.json +++ b/apps.json @@ -1,5 +1,17 @@ --- --- +{% comment %} +================================================================= + ALL THE INFORMATION INSIDE APPS.JSON HAS NOW BEEN MOVED + + You'll find it inside a file called apps/yourapp/metadata.json + + Otherwise nothing has changed. GitHub Pages will automatically + create apps.json as your site is hosted, or if you're hosting + yourself you can run bin/create_apps_json.sh + +================================================================= +{% endcomment %} {%- assign apps = site.static_files | where: "name", "metadata.json" -%} [ diff --git a/apps/configurable_clock/metadata.json b/apps/configurable_clock/metadata.json new file mode 100644 index 000000000..28feae7e4 --- /dev/null +++ b/apps/configurable_clock/metadata.json @@ -0,0 +1,17 @@ +{ "id": "configurable_clock", + "name": "Configurable Analog Clock", + "shortName":"Configurable Clock", + "version":"0.02", + "description": "an analog clock with several kinds of faces, hands and colors to choose from", + "icon": "app-icon.png", + "type": "clock", + "tags": "clock", + "supports" : ["BANGLEJS2"], + "allow_emulator": true, + "screenshots": [{"url":"app-screenshot.png"}], + "readme": "README.md", + "storage": [ + {"name":"configurable_clock.app.js","url":"app.js"}, + {"name":"configurable_clock.img","url":"app-icon.js","evaluate":true} + ] +} diff --git a/apps/ffcniftya/metadata.json b/apps/ffcniftya/metadata.json index a76c9482a..ce91cc225 100644 --- a/apps/ffcniftya/metadata.json +++ b/apps/ffcniftya/metadata.json @@ -1,7 +1,7 @@ { "id": "ffcniftya", "name": "Nifty-A Clock", - "version": "0.01", + "version": "0.02", "description": "A nifty clock with time and date", "icon": "app.png", "screenshots": [{"url":"screenshot_nifty.png"}], @@ -12,6 +12,8 @@ "allow_emulator": true, "storage": [ {"name":"ffcniftya.app.js","url":"app.js"}, - {"name":"ffcniftya.img","url":"app-icon.js","evaluate":true} - ] + {"name":"ffcniftya.img","url":"app-icon.js","evaluate":true}, + {"name":"ffcniftya.settings.js","url":"settings.js"} + ], + "data": [{"name":"ffcniftya.json"}] } diff --git a/apps/launch/metadata.json b/apps/launch/metadata.json index dd26a8480..1701d1f87 100644 --- a/apps/launch/metadata.json +++ b/apps/launch/metadata.json @@ -2,16 +2,15 @@ "id": "launch", "name": "Launcher", "shortName": "Launcher", - "version": "0.10", + "version": "0.11", "description": "This is needed to display a menu allowing you to choose your own applications. You can replace this with a customised launcher.", "icon": "app.png", "type": "launch", "tags": "tool,system,launcher", "supports": ["BANGLEJS","BANGLEJS2"], "storage": [ - {"name":"launch.app.js","url":"app-bangle1.js","supports":["BANGLEJS"]}, - {"name":"launch.app.js","url":"app-bangle2.js","supports":["BANGLEJS2"]}, - {"name":"launch.settings.js","url":"settings.js","supports":["BANGLEJS2"]} + {"name":"launch.app.js","url":"app.js"}, + {"name":"launch.settings.js","url":"settings.js"} ], "data": [{"name":"launch.json"}], "sortorder": -10 diff --git a/apps/limelight/metadata.json b/apps/limelight/metadata.json new file mode 100644 index 000000000..7c3736e1a --- /dev/null +++ b/apps/limelight/metadata.json @@ -0,0 +1,17 @@ +{ + "id": "limelight", + "name": "Limelight", + "version": "0.01", + "description": "Simple analogue clock (with configurable fonts) based on the work of @Andreas_Rozek (Simple_Clock)", + "icon": "limelight.png", + "readme":"README.md", + "screenshots": [{"url":"screenshot_limelight.png"}], + "type": "clock", + "tags": "clock", + "supports": ["BANGLEJS","BANGLEJS2"], + "storage": [ + {"name":"limelight.app.js","url":"limelight.app.js"}, + {"name":"limelight.settings.js","url":"limelight.settings.js"}, + {"name":"limelight.img","url":"limelight.icon.js","evaluate":true} + ] +} diff --git a/apps/openstmap/custom.html b/apps/openstmap/custom.html index 80ab29c56..6e79a6e9a 100644 --- a/apps/openstmap/custom.html +++ b/apps/openstmap/custom.html @@ -116,8 +116,33 @@ TODO: if (document.getElementById("3bit").checked) { options = { compression:false, output:"raw", - mode:"3bit", brightness:-64, + mode:"3bit", }; + /* If in 3 bit mode, go through all the data beforehand and + turn the saturation up to maximum, so when thresholded it + works a lot better */ + var imageData = ctx.getImageData(0,0,width,height); + var rgba = imageData.data; + var l = width*height*4; + for (var i=0;i240 || d<8) { // white or grey + rgba[i+0]=255; + rgba[i+1]=255; + rgba[i+2]=255; + } else { // another colour - use max saturation + rgba[i+0] = (rgba[i+0]-min) * 255 / d; + rgba[i+1] = (rgba[i+1]-min) * 255 / d; + rgba[i+2] = (rgba[i+2]-min) * 255 / d; + } + } + ctx.putImageData(imageData,0,0); } console.log("Compression options", options); var w = Math.round(width / TILESIZE); @@ -131,7 +156,7 @@ TODO: options.width = TILESIZE; options.height = TILESIZE; var imgstr = imageconverter.RGBAtoString(rgba, options); - ctx.putImageData(imageData,x*TILESIZE, y*TILESIZE); + ctx.putImageData(imageData,x*TILESIZE, y*TILESIZE); // write preview /*var compress = 'require("heatshrink").decompress(' if (!imgstr.startsWith(compress)) throw "Data in wrong format"; imgstr = imgstr.slice(compress.length,-1);*/ diff --git a/apps/timeandlife/ChangeLog b/apps/timeandlife/ChangeLog index c7b309a74..115067b80 100644 --- a/apps/timeandlife/ChangeLog +++ b/apps/timeandlife/ChangeLog @@ -1 +1 @@ -0.1: New app +0.01: New app diff --git a/apps/timeandlife/metadata.json b/apps/timeandlife/metadata.json new file mode 100644 index 000000000..86800f16f --- /dev/null +++ b/apps/timeandlife/metadata.json @@ -0,0 +1,18 @@ +{ + "id": "timeandlife", + "name": "Time and Life", + "shortName":"Time and Lfie", + "icon": "app.png", + "version":"0.01", + "description": "A simple watchface which displays the time when the screen is tapped and decay according to the rules of Conway's game of life.", + "type": "clock", + "tags": "clock", + "supports": ["BANGLEJS2"], + "allow_emulator":true, + "readme": "README.md", + "storage": [ + {"name":"timeandlife.app.js","url":"app.js"}, + {"name":"timeandlife.img","url":"app-icon.js","evaluate":true} + ] +} + diff --git a/apps/vectorclock/metadata.json b/apps/vectorclock/metadata.json index d9cca821f..3da93ccad 100644 --- a/apps/vectorclock/metadata.json +++ b/apps/vectorclock/metadata.json @@ -1,7 +1,7 @@ { "id": "vectorclock", "name": "Vector Clock", - "version": "0.03", + "version": "0.04", "description": "A digital clock that uses the built-in vector font.", "icon": "app.png", "type": "clock", @@ -14,6 +14,8 @@ ], "storage": [ {"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}, + {"name":"vectorclock.settings.js","url":"settings.js"} + ], + "data": [{"name":"vectorclock.json"}] } diff --git a/bin/create_apps_json.sh b/bin/create_apps_json.sh new file mode 100755 index 000000000..f922dd693 --- /dev/null +++ b/bin/create_apps_json.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +cd `dirname $0`/.. +echo "[" > apps.json +for app in apps/*/; do + echo "Processing $app..."; + if [[ "$app" =~ ^apps/_example.* ]]; then + echo "Ignoring $app" + else + cat ${app}metadata.json >> apps.json + echo ",\"$app\"," >> apps.json + fi +done +echo "null]" >> apps.json diff --git a/bin/sanitycheck.js b/bin/sanitycheck.js index 94ed4b79b..363e86922 100755 --- a/bin/sanitycheck.js +++ b/bin/sanitycheck.js @@ -30,11 +30,12 @@ var apps = []; var dirs = fs.readdirSync(APPSDIR, {withFileTypes: true}); dirs.forEach(dir => { var appsFile; - if (dir.name.startsWith("_example")) + if (dir.name.startsWith("_example") || !dir.isDirectory()) return; try { appsFile = fs.readFileSync(APPSDIR+dir.name+"/metadata.json").toString(); } catch (e) { + ERROR(dir.name+"/metadata.json does not exist"); return; } try{ diff --git a/core b/core index e0b43e62d..5023ee122 160000 --- a/core +++ b/core @@ -1 +1 @@ -Subproject commit e0b43e62d0daaa498508951f89c108b96ce1d0d1 +Subproject commit 5023ee1228030130ba9f026d5dbe920f7527ee7d diff --git a/apps/cube/cube-icon.js b/testing/cube/cube-icon.js similarity index 100% rename from apps/cube/cube-icon.js rename to testing/cube/cube-icon.js diff --git a/apps/cube/cube.js b/testing/cube/cube.js similarity index 100% rename from apps/cube/cube.js rename to testing/cube/cube.js diff --git a/apps/cube/cube.png b/testing/cube/cube.png similarity index 100% rename from apps/cube/cube.png rename to testing/cube/cube.png diff --git a/apps/nyancat/code.js b/testing/nyancat/code.js similarity index 100% rename from apps/nyancat/code.js rename to testing/nyancat/code.js