diff --git a/apps.json b/apps.json index 16162409b..d0be75c34 100644 --- a/apps.json +++ b/apps.json @@ -372,5 +372,17 @@ {"name":"-mmonday","url":"manic-monday.js"}, {"name":"*mmonday","url":"manic-monday-icon.js","evaluate":true} ] + }, + { "id": "jbells", + "name": "Jingle Bells", + "icon": "jbells.png", + "description": "Play Jingle Bells", + "tags": "sound", + "type":"app", + "storage": [ + {"name":"+jbells","url":"jbells.json"}, + {"name":"-jbells","url":"jbells.js"}, + {"name":"*jbells","url":"jbells-icon.js","evaluate":true} + ] } ] diff --git a/apps/jbells-icon.js b/apps/jbells-icon.js new file mode 100644 index 000000000..dc602af1f --- /dev/null +++ b/apps/jbells-icon.js @@ -0,0 +1 @@ +E.toArrayBuffer(atob("MDCEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAAAAAABEAAAAAAAAAAAAAAAAAAAAAERAAAAAAAREAAAAAAAAAAAAAAAAAAAABERAAAAAAAREQAAAAAAAAAAAAAAAQAAAREREAAAAAERERAAABAAAAAAAAAAARERERERFMwAzEERERERERAAAAAAAAAAARERERERHMzMzMERERERERAAAAAAAAAAARERERERHMzdzMERERERERAAAAAAAAAAERERERER3d3d3d0REREREREAAAAAAAAAEREREWYe7u3d3u7hZhEREREAAAAAAAABERFmZmHu7u3d3u7uFmZmEREQAAAAAAARFmZmZm3u7u3d3u7u1mZmZmERAAAAAAFmZmZmZh7u7u7u7u7u4WZmZmZmYAAAAABmZmZmZk7u7u7u7u7u5GZmZmZmAAAAAAAABmZmZt7u7u7u7u7u7WZmZmAAAAAAAAAAAGZmZu7u7u7u7u7u7mZmZgAAAAAAAAAAAAZmYO7u7u7u7u7u7gZmYAAAAAAAAAAAAABmAO7u7u7u7u7u7gBmAAAAAAAAAAAAAAAAAO7u7u7u7u7u7gAAAAAAAAAAAAAAAAAAAO7u7u7u7u7u7gAAAAAAAAAAAAAAAAAAAO7u7u7u7u7u7gAAAAAAAAAAAAAAAAAAAO7u7u7u7u7u7gAAAAAAAAAAAAAAAAAADu7u7u7u7u7u7uAAAAAAAAAAAAAAAAAA7u7u7u7u7u7u7u4AAAAAAAAAAAAAAAAO7u7u7u7u7u7u7u7gAAAAAAAAAAAAAAAO7u7u7u7u7u7u7u7gAAAAAAAAAAAAAADu7u7u7u7u7u7u7u7uAAAAAAAAAAAAAA7u7u7u7u7u7u7u7u7u4AAAAAAAAAAAAO7u7u7u7u7u7u7u7u7u7gAAAAAAAAAADjM+7u7u7u7u7u7u7u7uM+AAAAAAAAAADuMzMz7u7u7u7u7u7jMzPuAAAAAAAAAA7u7u4zMzMzMzMzMzMzPu7u4AAAAAAAAA7u7u7u7uMzMzMzM+7u7u7u4AAAAAAAAADu7u7u7u7u7u7u7u7u7u7uAAAAAAAAAAAADu7u7u7u7u7u7u7u7uAAAAAAAAAAAAAAAAAA7u7u7u7u7u4AAAAAAAAAAAAAAAAAAAAAAABEREREAAAAAAAAAAAAAAAAAAAAAAAAAABEREREAAAAAAAAAAAAAAAAAAAAAAAAAADd3d3dAAAAAAAAAAAAAAAAAAAAAAAAAAAN3d3QAAAAAAAAAAAAAAAAAAAAAAAAAAAA3d0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==")) \ No newline at end of file diff --git a/apps/jbells.js b/apps/jbells.js new file mode 100644 index 000000000..faab3defd --- /dev/null +++ b/apps/jbells.js @@ -0,0 +1,38 @@ +E.showMessage("Jingle Bells"); + +var eventEmitter = new Object(); + +function strofa(notes, times, current, next){ +eventEmitter.on(current, () => { + if (notes.length == 0) { + eventEmitter.emit(next); + return; + } + let note = notes.shift(); + let time = times.shift(); + Bangle.beep(time, note).then(() => { + setTimeout(() => { + eventEmitter.emit(current); + }, time); + }); +}); +} + +var one = [2637, 2637, 2637, 2637, 2637, 2637, 2637, 3135, 2093, 2349, 2637]; +var one_t = [160, 160, 320, 160, 160, 320, 160, 160, 160, 160, 320]; + +var two = [2793, 2793, 2793, 2637, 2637, 2637, 2349, 2349, 2349, 2637, 2349, 3135]; +var two_t = [160, 160, 320, 160, 160, 320, 160, 160, 160, 160, 320, 320]; + +var three = [2637, 2637, 2637, 2637, 2637, 2637, 2637, 3135, 2093, 2349, 2637]; +var three_t = [160, 160, 320, 160, 160, 320, 160, 160, 160, 160, 320]; + +var four = [2793, 2793, 2793, 2637, 2637, 2637, 3135, 2793, 2637, 2349, 2093]; +var four_t = [160, 160, 320, 160, 160, 320, 160, 160, 160, 160, 320]; + +strofa(one, one_t, "one", "two"); +strofa(two, two_t, "two", "three"); +strofa(three, three_t, "three", "four"); +strofa(four, four_t, "four", "stop"); + +eventEmitter.emit("one"); \ No newline at end of file diff --git a/apps/jbells.json b/apps/jbells.json new file mode 100644 index 000000000..20638a2d6 --- /dev/null +++ b/apps/jbells.json @@ -0,0 +1,5 @@ +{ + "name":"Jingle Bells","type":"app", + "icon":"*jbells", + "src":"-jbells" +} \ No newline at end of file diff --git a/apps/jbells.png b/apps/jbells.png new file mode 100644 index 000000000..a70257396 Binary files /dev/null and b/apps/jbells.png differ