fastled 1.1.33__tar.gz → 1.1.35__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. {fastled-1.1.33 → fastled-1.1.35}/.github/workflows/build_multi_docker_image.yml +142 -142
  2. {fastled-1.1.33 → fastled-1.1.35}/.github/workflows/test_win.yml +3 -1
  3. {fastled-1.1.33 → fastled-1.1.35}/PKG-INFO +3 -1
  4. {fastled-1.1.33 → fastled-1.1.35}/README.md +2 -0
  5. {fastled-1.1.33 → fastled-1.1.35}/examples/wasm/wasm.ino +138 -138
  6. {fastled-1.1.33 → fastled-1.1.35}/pyproject.toml +62 -62
  7. {fastled-1.1.33 → fastled-1.1.35}/src/fastled/__init__.py +1 -1
  8. {fastled-1.1.33 → fastled-1.1.35}/src/fastled/docker_manager.py +665 -590
  9. {fastled-1.1.33 → fastled-1.1.35}/src/fastled/filewatcher.py +202 -202
  10. {fastled-1.1.33 → fastled-1.1.35}/src/fastled/open_browser.py +59 -59
  11. {fastled-1.1.33 → fastled-1.1.35}/src/fastled/parse_args.py +13 -5
  12. {fastled-1.1.33 → fastled-1.1.35}/src/fastled/sketch.py +21 -0
  13. {fastled-1.1.33 → fastled-1.1.35}/src/fastled/spinner.py +34 -34
  14. {fastled-1.1.33 → fastled-1.1.35}/src/fastled.egg-info/PKG-INFO +3 -1
  15. {fastled-1.1.33 → fastled-1.1.35}/src/fastled.egg-info/SOURCES.txt +1 -0
  16. {fastled-1.1.33 → fastled-1.1.35}/tests/test_cli.py +0 -1
  17. {fastled-1.1.33 → fastled-1.1.35}/tests/test_compile_server.py +42 -42
  18. fastled-1.1.35/tests/test_docker_linux_on_windows.py +21 -0
  19. {fastled-1.1.33 → fastled-1.1.35}/tests/test_ino/wasm/wasm.ino +134 -134
  20. {fastled-1.1.33 → fastled-1.1.35}/.aiderignore +0 -0
  21. {fastled-1.1.33 → fastled-1.1.35}/.github/workflows/lint.yml +0 -0
  22. {fastled-1.1.33 → fastled-1.1.35}/.github/workflows/test_macos.yml +0 -0
  23. {fastled-1.1.33 → fastled-1.1.35}/.github/workflows/test_ubuntu.yml +0 -0
  24. {fastled-1.1.33 → fastled-1.1.35}/.gitignore +0 -0
  25. {fastled-1.1.33 → fastled-1.1.35}/.pylintrc +0 -0
  26. {fastled-1.1.33 → fastled-1.1.35}/.vscode/launch.json +0 -0
  27. {fastled-1.1.33 → fastled-1.1.35}/.vscode/settings.json +0 -0
  28. {fastled-1.1.33 → fastled-1.1.35}/.vscode/tasks.json +0 -0
  29. {fastled-1.1.33 → fastled-1.1.35}/LICENSE +0 -0
  30. {fastled-1.1.33 → fastled-1.1.35}/MANIFEST.in +0 -0
  31. {fastled-1.1.33 → fastled-1.1.35}/clean +0 -0
  32. {fastled-1.1.33 → fastled-1.1.35}/docs/fastled.js +0 -0
  33. {fastled-1.1.33 → fastled-1.1.35}/docs/fastled.wasm +0 -0
  34. {fastled-1.1.33 → fastled-1.1.35}/docs/index.css +0 -0
  35. {fastled-1.1.33 → fastled-1.1.35}/docs/index.html +0 -0
  36. {fastled-1.1.33 → fastled-1.1.35}/docs/index.js +0 -0
  37. {fastled-1.1.33 → fastled-1.1.35}/examples/Blink/Blink.ino +0 -0
  38. {fastled-1.1.33 → fastled-1.1.35}/examples/Chromancer/Chromancer.ino +0 -0
  39. {fastled-1.1.33 → fastled-1.1.35}/examples/Chromancer/detail.h +0 -0
  40. {fastled-1.1.33 → fastled-1.1.35}/examples/Chromancer/gary_woos_wled_port/gary_woos_wled_ledmap.h +0 -0
  41. {fastled-1.1.33 → fastled-1.1.35}/examples/Chromancer/gary_woos_wled_port/presets.json +0 -0
  42. {fastled-1.1.33 → fastled-1.1.35}/examples/Chromancer/gary_woos_wled_port/presets.min.json +0 -0
  43. {fastled-1.1.33 → fastled-1.1.35}/examples/Chromancer/gen.py +0 -0
  44. {fastled-1.1.33 → fastled-1.1.35}/examples/Chromancer/mapping.h +0 -0
  45. {fastled-1.1.33 → fastled-1.1.35}/examples/Chromancer/net.h +0 -0
  46. {fastled-1.1.33 → fastled-1.1.35}/examples/Chromancer/output.json +0 -0
  47. {fastled-1.1.33 → fastled-1.1.35}/examples/Chromancer/ripple.h +0 -0
  48. {fastled-1.1.33 → fastled-1.1.35}/examples/Chromancer/screenmap.json.h +0 -0
  49. {fastled-1.1.33 → fastled-1.1.35}/examples/ColorPalette/ColorPalette.ino +0 -0
  50. {fastled-1.1.33 → fastled-1.1.35}/examples/ColorTemperature/ColorTemperature.ino +0 -0
  51. {fastled-1.1.33 → fastled-1.1.35}/examples/Cylon/Cylon.ino +0 -0
  52. {fastled-1.1.33 → fastled-1.1.35}/examples/DemoReel100/DemoReel100.ino +0 -0
  53. {fastled-1.1.33 → fastled-1.1.35}/examples/Esp32Rmt51/Esp32Rmt51.ino +0 -0
  54. {fastled-1.1.33 → fastled-1.1.35}/examples/EspI2SDemo/EspI2SDemo.ino +0 -0
  55. {fastled-1.1.33 → fastled-1.1.35}/examples/Fire2012/Fire2012.ino +0 -0
  56. {fastled-1.1.33 → fastled-1.1.35}/examples/Fire2012WithPalette/Fire2012WithPalette.ino +0 -0
  57. {fastled-1.1.33 → fastled-1.1.35}/examples/FirstLight/FirstLight.ino +0 -0
  58. {fastled-1.1.33 → fastled-1.1.35}/examples/FxEngine/FxEngine.ino +0 -0
  59. {fastled-1.1.33 → fastled-1.1.35}/examples/Noise/Noise.ino +0 -0
  60. {fastled-1.1.33 → fastled-1.1.35}/examples/NoisePlayground/NoisePlayground.ino +0 -0
  61. {fastled-1.1.33 → fastled-1.1.35}/examples/NoisePlusPalette/NoisePlusPalette.ino +0 -0
  62. {fastled-1.1.33 → fastled-1.1.35}/examples/OctoWS2811/OctoWS2811.ino +0 -0
  63. {fastled-1.1.33 → fastled-1.1.35}/examples/Pacifica/Pacifica.ino +0 -0
  64. {fastled-1.1.33 → fastled-1.1.35}/examples/Pride2015/Pride2015.ino +0 -0
  65. {fastled-1.1.33 → fastled-1.1.35}/examples/TwinkleFox/TwinkleFox.ino +0 -0
  66. {fastled-1.1.33 → fastled-1.1.35}/examples/Video/Gfx2Video/Gfx2Video.ino +0 -0
  67. {fastled-1.1.33 → fastled-1.1.35}/examples/WasmScreenCoords/WasmScreenCoords.ino +0 -0
  68. {fastled-1.1.33 → fastled-1.1.35}/examples/Water/Water.ino +0 -0
  69. {fastled-1.1.33 → fastled-1.1.35}/examples/XYMatrix/XYMatrix.ino +0 -0
  70. {fastled-1.1.33 → fastled-1.1.35}/install +0 -0
  71. {fastled-1.1.33 → fastled-1.1.35}/lint +0 -0
  72. {fastled-1.1.33 → fastled-1.1.35}/requirements.testing.txt +0 -0
  73. {fastled-1.1.33 → fastled-1.1.35}/setup.cfg +0 -0
  74. {fastled-1.1.33 → fastled-1.1.35}/setup.py +0 -0
  75. {fastled-1.1.33 → fastled-1.1.35}/src/fastled/app.py +0 -0
  76. {fastled-1.1.33 → fastled-1.1.35}/src/fastled/assets/example.txt +0 -0
  77. {fastled-1.1.33 → fastled-1.1.35}/src/fastled/build_mode.py +0 -0
  78. {fastled-1.1.33 → fastled-1.1.35}/src/fastled/cli.py +0 -0
  79. {fastled-1.1.33 → fastled-1.1.35}/src/fastled/client_server.py +0 -0
  80. {fastled-1.1.33 → fastled-1.1.35}/src/fastled/compile_server.py +0 -0
  81. {fastled-1.1.33 → fastled-1.1.35}/src/fastled/env.py +0 -0
  82. {fastled-1.1.33 → fastled-1.1.35}/src/fastled/keyboard.py +0 -0
  83. {fastled-1.1.33 → fastled-1.1.35}/src/fastled/paths.py +0 -0
  84. {fastled-1.1.33 → fastled-1.1.35}/src/fastled/project_init.py +0 -0
  85. {fastled-1.1.33 → fastled-1.1.35}/src/fastled/select_sketch_directory.py +0 -0
  86. {fastled-1.1.33 → fastled-1.1.35}/src/fastled/string_diff.py +0 -0
  87. {fastled-1.1.33 → fastled-1.1.35}/src/fastled/types.py +0 -0
  88. {fastled-1.1.33 → fastled-1.1.35}/src/fastled/util.py +0 -0
  89. {fastled-1.1.33 → fastled-1.1.35}/src/fastled/web_compile.py +0 -0
  90. {fastled-1.1.33 → fastled-1.1.35}/src/fastled.egg-info/dependency_links.txt +0 -0
  91. {fastled-1.1.33 → fastled-1.1.35}/src/fastled.egg-info/entry_points.txt +0 -0
  92. {fastled-1.1.33 → fastled-1.1.35}/src/fastled.egg-info/requires.txt +0 -0
  93. {fastled-1.1.33 → fastled-1.1.35}/src/fastled.egg-info/top_level.txt +0 -0
  94. {fastled-1.1.33 → fastled-1.1.35}/test +0 -0
  95. {fastled-1.1.33 → fastled-1.1.35}/tests/test_bad_ino.py +0 -0
  96. {fastled-1.1.33 → fastled-1.1.35}/tests/test_embedded_data.py +0 -0
  97. {fastled-1.1.33 → fastled-1.1.35}/tests/test_filechanger.py +0 -0
  98. {fastled-1.1.33 → fastled-1.1.35}/tests/test_ino/bad/bad.ino +0 -0
  99. {fastled-1.1.33 → fastled-1.1.35}/tests/test_ino/embedded/data/bigdata.dat +0 -0
  100. {fastled-1.1.33 → fastled-1.1.35}/tests/test_ino/embedded/wasm.ino +0 -0
  101. {fastled-1.1.33 → fastled-1.1.35}/tests/test_project_init.py +0 -0
  102. {fastled-1.1.33 → fastled-1.1.35}/tests/test_server_and_client_seperatly.py +0 -0
  103. {fastled-1.1.33 → fastled-1.1.35}/tests/test_webcompile.py +0 -0
  104. {fastled-1.1.33 → fastled-1.1.35}/upload_package.sh +0 -0
@@ -1,142 +1,142 @@
1
- name: Build and Push Multi Docker Image
2
-
3
- on:
4
- push:
5
- branches:
6
- - main # Adjust this to your default branch
7
- schedule:
8
- - cron: '0 12 * * *' # Executes every day at 4:00 AM Pacific Time
9
-
10
- env:
11
- REGISTRY_IMAGE: niteris/fastled-wasm # Replace with your Docker Hub username and repository
12
-
13
- jobs:
14
- check-if-changed:
15
- runs-on: ubuntu-latest
16
- outputs:
17
- should_run: ${{ steps.check.outputs.should_run }}
18
- steps:
19
- - name: Check workflow repo changes
20
- uses: actions/checkout@v4
21
- with:
22
- fetch-depth: 2
23
- - name: Check FastLED repo
24
- uses: actions/checkout@v4
25
- with:
26
- repository: fastled/fastled
27
- path: fastled
28
- - id: check
29
- run: |
30
- # Check if there are any changes in workflow repository
31
- WORKFLOW_CHANGED=$(git diff --quiet HEAD^1 HEAD || echo "changed")
32
-
33
- # Check FastLED repo for changes in last 24 hours
34
- cd fastled
35
- FASTLED_CHANGED=$(git log --since="24 hours ago" --oneline | wc -l)
36
-
37
- if [[ -n "$WORKFLOW_CHANGED" ]] || [[ "$FASTLED_CHANGED" -gt 0 ]]; then
38
- echo "Changes detected in workflow repository or FastLED in last 24h"
39
- echo "should_run=true" >> $GITHUB_OUTPUT
40
- else
41
- echo "No recent changes detected"
42
- echo "should_run=false" >> $GITHUB_OUTPUT
43
- fi
44
-
45
- build:
46
- needs: check-if-changed
47
- if: needs.check-if-changed.outputs.should_run == 'true'
48
- runs-on: ubuntu-latest
49
- strategy:
50
- fail-fast: false
51
- matrix:
52
- platform:
53
- - linux/amd64
54
- - linux/arm64
55
- steps:
56
- - name: Prepare
57
- run: |
58
- platform=${{ matrix.platform }}
59
- echo "PLATFORM_PAIR=${platform//\//-}" >> $GITHUB_ENV
60
- - name: Docker meta
61
- id: meta
62
- uses: docker/metadata-action@v5
63
- with:
64
- images: ${{ env.REGISTRY_IMAGE }}
65
- - name: Set up QEMU
66
- uses: docker/setup-qemu-action@v3
67
- - name: Set up Docker Buildx
68
- uses: docker/setup-buildx-action@v3
69
- - name: Login to Docker Hub
70
- uses: docker/login-action@v3
71
- with:
72
- username: ${{ secrets.DOCKER_USERNAME }}
73
- password: ${{ secrets.DOCKER_PASSWORD }}
74
- - name: Build and push by digest
75
- id: build
76
- uses: docker/build-push-action@v6
77
- with:
78
- platforms: ${{ matrix.platform }}
79
- context: https://github.com/fastled/fastled.git
80
- file: src/platforms/wasm/compiler/Dockerfile
81
- labels: ${{ steps.meta.outputs.labels }}
82
- outputs: type=image,name=${{ env.REGISTRY_IMAGE }},push-by-digest=true,name-canonical=true,push=true
83
- build-args: |
84
- PLATFORM_TAG=${{ matrix.platform == 'linux/arm64' && '-arm64' || '' }}
85
- cache-from: type=gha
86
- cache-to: type=gha,mode=max,compression=zstd
87
- - name: Export digest
88
- run: |
89
- mkdir -p /tmp/digests
90
- digest="${{ steps.build.outputs.digest }}"
91
- touch "/tmp/digests/${digest#sha256:}"
92
- - name: Upload digest
93
- uses: actions/upload-artifact@v4
94
- with:
95
- name: digests-${{ env.PLATFORM_PAIR }}
96
- path: /tmp/digests/*
97
- if-no-files-found: error
98
- retention-days: 1
99
-
100
- merge:
101
- runs-on: ubuntu-latest
102
- needs:
103
- - check-if-changed
104
- - build
105
- if: needs.check-if-changed.outputs.should_run == 'true'
106
- steps:
107
- - name: Download digests
108
- uses: actions/download-artifact@v4
109
- with:
110
- path: /tmp/digests
111
- pattern: digests-*
112
- merge-multiple: true
113
-
114
- - name: Set up Docker Buildx
115
- uses: docker/setup-buildx-action@v3
116
-
117
- - name: Docker meta
118
- id: meta
119
- uses: docker/metadata-action@v5
120
- with:
121
- images: ${{ env.REGISTRY_IMAGE }}
122
-
123
- - name: Login to Docker Hub
124
- uses: docker/login-action@v3
125
- with:
126
- username: ${{ secrets.DOCKER_USERNAME }}
127
- password: ${{ secrets.DOCKER_PASSWORD }}
128
-
129
- - name: Create manifest list and push
130
- working-directory: /tmp/digests
131
- run: |
132
- docker buildx imagetools create $(jq -cr '.tags | map("-t " + .) | join(" ")' <<< "$DOCKER_METADATA_OUTPUT_JSON") \
133
- $(printf '${{ env.REGISTRY_IMAGE }}@sha256:%s ' *)
134
-
135
- - name: Inspect image
136
- run: |
137
- docker buildx imagetools inspect ${{ env.REGISTRY_IMAGE }}:${{ steps.meta.outputs.version }}
138
-
139
- - name: Redeploy FastLED web service
140
- run: |
141
- curl ${{ secrets.FASTLED_REDEPLOY_URL }}
142
-
1
+ name: Build and Push Multi Docker Image
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main # Adjust this to your default branch
7
+ schedule:
8
+ - cron: '0 12 * * *' # Executes every day at 4:00 AM Pacific Time
9
+
10
+ env:
11
+ REGISTRY_IMAGE: niteris/fastled-wasm # Replace with your Docker Hub username and repository
12
+
13
+ jobs:
14
+ check-if-changed:
15
+ runs-on: ubuntu-latest
16
+ outputs:
17
+ should_run: ${{ steps.check.outputs.should_run }}
18
+ steps:
19
+ - name: Check workflow repo changes
20
+ uses: actions/checkout@v4
21
+ with:
22
+ fetch-depth: 2
23
+ - name: Check FastLED repo
24
+ uses: actions/checkout@v4
25
+ with:
26
+ repository: fastled/fastled
27
+ path: fastled
28
+ - id: check
29
+ run: |
30
+ # Check if there are any changes in workflow repository
31
+ WORKFLOW_CHANGED=$(git diff --quiet HEAD^1 HEAD || echo "changed")
32
+
33
+ # Check FastLED repo for changes in last 24 hours
34
+ cd fastled
35
+ FASTLED_CHANGED=$(git log --since="24 hours ago" --oneline | wc -l)
36
+
37
+ if [[ -n "$WORKFLOW_CHANGED" ]] || [[ "$FASTLED_CHANGED" -gt 0 ]]; then
38
+ echo "Changes detected in workflow repository or FastLED in last 24h"
39
+ echo "should_run=true" >> $GITHUB_OUTPUT
40
+ else
41
+ echo "No recent changes detected"
42
+ echo "should_run=false" >> $GITHUB_OUTPUT
43
+ fi
44
+
45
+ build:
46
+ needs: check-if-changed
47
+ if: needs.check-if-changed.outputs.should_run == 'true'
48
+ runs-on: ubuntu-latest
49
+ strategy:
50
+ fail-fast: false
51
+ matrix:
52
+ platform:
53
+ - linux/amd64
54
+ - linux/arm64
55
+ steps:
56
+ - name: Prepare
57
+ run: |
58
+ platform=${{ matrix.platform }}
59
+ echo "PLATFORM_PAIR=${platform//\//-}" >> $GITHUB_ENV
60
+ - name: Docker meta
61
+ id: meta
62
+ uses: docker/metadata-action@v5
63
+ with:
64
+ images: ${{ env.REGISTRY_IMAGE }}
65
+ - name: Set up QEMU
66
+ uses: docker/setup-qemu-action@v3
67
+ - name: Set up Docker Buildx
68
+ uses: docker/setup-buildx-action@v3
69
+ - name: Login to Docker Hub
70
+ uses: docker/login-action@v3
71
+ with:
72
+ username: ${{ secrets.DOCKER_USERNAME }}
73
+ password: ${{ secrets.DOCKER_PASSWORD }}
74
+ - name: Build and push by digest
75
+ id: build
76
+ uses: docker/build-push-action@v6
77
+ with:
78
+ platforms: ${{ matrix.platform }}
79
+ context: https://github.com/fastled/fastled.git
80
+ file: src/platforms/wasm/compiler/Dockerfile
81
+ labels: ${{ steps.meta.outputs.labels }}
82
+ outputs: type=image,name=${{ env.REGISTRY_IMAGE }},push-by-digest=true,name-canonical=true,push=true
83
+ build-args: |
84
+ PLATFORM_TAG=${{ matrix.platform == 'linux/arm64' && '-arm64' || '' }}
85
+ cache-from: type=gha
86
+ cache-to: type=gha,mode=max,compression=zstd
87
+ - name: Export digest
88
+ run: |
89
+ mkdir -p /tmp/digests
90
+ digest="${{ steps.build.outputs.digest }}"
91
+ touch "/tmp/digests/${digest#sha256:}"
92
+ - name: Upload digest
93
+ uses: actions/upload-artifact@v4
94
+ with:
95
+ name: digests-${{ env.PLATFORM_PAIR }}
96
+ path: /tmp/digests/*
97
+ if-no-files-found: error
98
+ retention-days: 1
99
+
100
+ merge:
101
+ runs-on: ubuntu-latest
102
+ needs:
103
+ - check-if-changed
104
+ - build
105
+ if: needs.check-if-changed.outputs.should_run == 'true'
106
+ steps:
107
+ - name: Download digests
108
+ uses: actions/download-artifact@v4
109
+ with:
110
+ path: /tmp/digests
111
+ pattern: digests-*
112
+ merge-multiple: true
113
+
114
+ - name: Set up Docker Buildx
115
+ uses: docker/setup-buildx-action@v3
116
+
117
+ - name: Docker meta
118
+ id: meta
119
+ uses: docker/metadata-action@v5
120
+ with:
121
+ images: ${{ env.REGISTRY_IMAGE }}
122
+
123
+ - name: Login to Docker Hub
124
+ uses: docker/login-action@v3
125
+ with:
126
+ username: ${{ secrets.DOCKER_USERNAME }}
127
+ password: ${{ secrets.DOCKER_PASSWORD }}
128
+
129
+ - name: Create manifest list and push
130
+ working-directory: /tmp/digests
131
+ run: |
132
+ docker buildx imagetools create $(jq -cr '.tags | map("-t " + .) | join(" ")' <<< "$DOCKER_METADATA_OUTPUT_JSON") \
133
+ $(printf '${{ env.REGISTRY_IMAGE }}@sha256:%s ' *)
134
+
135
+ - name: Inspect image
136
+ run: |
137
+ docker buildx imagetools inspect ${{ env.REGISTRY_IMAGE }}:${{ steps.meta.outputs.version }}
138
+
139
+ - name: Redeploy FastLED web service
140
+ run: |
141
+ curl ${{ secrets.FASTLED_REDEPLOY_URL }}
142
+
@@ -21,10 +21,12 @@ jobs:
21
21
 
22
22
  - name: Install
23
23
  run: ./install
24
+ shell: bash -l {0}
24
25
 
25
26
  - name: Unit tests
26
27
  run: ./test
28
+ shell: bash -l {0}
27
29
 
28
30
  - name: live run
29
- run: pip install . && cd tests/test_ino/wasm && rm -rf fastled_js && time fastled-wasm --just-compile && find fastled_js | sort
31
+ run: pip install . && cd tests/test_ino/wasm && rm -rf fastled_js && time fastled-wasm --web --just-compile && find fastled_js | sort
30
32
  shell: bash -l {0}
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: fastled
3
- Version: 1.1.33
3
+ Version: 1.1.35
4
4
  Summary: FastLED Wasm Compiler
5
5
  Home-page: https://github.com/zackees/fastled-wasm
6
6
  Maintainer: Zachary Vorhies
@@ -163,6 +163,8 @@ A: A big chunk of space is being used by unnecessary javascript `emscripten` is
163
163
 
164
164
  # Revisions
165
165
 
166
+ * 1.1.35 - When searching for files cap the limit at a high amount to prevent hang.
167
+ * 1.1.34 - On windows check to make sure we are in linux container mode, if not try to switch and if that fails then use `--web` compiler.
166
168
  * 1.1.33 - Auto updating frequency has been reduced from one hour to one day. To update immediatly use `--update`.
167
169
  * 1.1.32 - `--init` now asks for which example you want, then tells you where the example was downloaded to. No longer auto-compiles.
168
170
  * 1.1.31 - `--local` is auto-enabled if docker is installed, use `--web` to force web compiler. Updating is much more pretty.
@@ -140,6 +140,8 @@ A: A big chunk of space is being used by unnecessary javascript `emscripten` is
140
140
 
141
141
  # Revisions
142
142
 
143
+ * 1.1.35 - When searching for files cap the limit at a high amount to prevent hang.
144
+ * 1.1.34 - On windows check to make sure we are in linux container mode, if not try to switch and if that fails then use `--web` compiler.
143
145
  * 1.1.33 - Auto updating frequency has been reduced from one hour to one day. To update immediatly use `--update`.
144
146
  * 1.1.32 - `--init` now asks for which example you want, then tells you where the example was downloaded to. No longer auto-compiles.
145
147
  * 1.1.31 - `--local` is auto-enabled if docker is installed, use `--web` to force web compiler. Updating is much more pretty.
@@ -1,138 +1,138 @@
1
- /// @file wasm.ino
2
- /// @brief Demonstrates an advanced ino file with multiple effects and UI elements
3
- /// @author Zach Vorhies
4
- ///
5
- /// This sketch is fully compatible with the FastLED web compiler. To use it do the following:
6
- /// 1. Install Fastled: `pip install fastled`
7
- /// 2. cd into this examples page.
8
- /// 3. Run the FastLED web compiler at root: `fastled`
9
- /// 4. When the compiler is done a web page will open.
10
-
11
-
12
- #include <stdio.h>
13
- #include <string>
14
-
15
- #include <FastLED.h>
16
- #include "fx/2d/noisepalette.hpp"
17
- #include "fl/json.h"
18
- #include "fl/slice.h"
19
- #include "fx/fx_engine.h"
20
-
21
- #include "fx/2d/animartrix.hpp"
22
- #include "fl/ui.h"
23
-
24
- using namespace fl;
25
-
26
-
27
- #define LED_PIN 3
28
- #define BRIGHTNESS 96
29
- #define COLOR_ORDER GRB
30
-
31
- #define MATRIX_WIDTH 100
32
- #define MATRIX_HEIGHT 100
33
- #define GRID_SERPENTINE false
34
-
35
- #define NUM_LEDS (MATRIX_WIDTH * MATRIX_HEIGHT)
36
-
37
- // This example combines two features of FastLED to produce a remarkable range
38
- // of effects from a relatively small amount of code. This example combines
39
- // FastLED's color palette lookup functions with FastLED's Perlin noise
40
- // generator, and the combination is extremely powerful.
41
- //
42
- // You might want to look at the "ColorPalette" and "Noise" examples separately
43
- // if this example code seems daunting.
44
- //
45
- //
46
- // The basic setup here is that for each frame, we generate a new array of
47
- // 'noise' data, and then map it onto the LED matrix through a color palette.
48
- //
49
- // Periodically, the color palette is changed, and new noise-generation
50
- // parameters are chosen at the same time. In this example, specific
51
- // noise-generation values have been selected to match the given color palettes;
52
- // some are faster, or slower, or larger, or smaller than others, but there's no
53
- // reason these parameters can't be freely mixed-and-matched.
54
- //
55
- // In addition, this example includes some fast automatic 'data smoothing' at
56
- // lower noise speeds to help produce smoother animations in those cases.
57
- //
58
- // The FastLED built-in color palettes (Forest, Clouds, Lava, Ocean, Party) are
59
- // used, as well as some 'hand-defined' ones, and some proceedurally generated
60
- // palettes.
61
-
62
- // Scale determines how far apart the pixels in our noise matrix are. Try
63
- // changing these values around to see how it affects the motion of the display.
64
- // The higher the value of scale, the more "zoomed out" the noise iwll be. A
65
- // value of 1 will be so zoomed in, you'll mostly see solid colors.
66
- #define SCALE 20
67
-
68
- // We're using the x/y dimensions to map to the x/y pixels on the matrix. We'll
69
- // use the z-axis for "time". speed determines how fast time moves forward. Try
70
- // 1 for a very slow moving effect, or 60 for something that ends up looking
71
- // like water.
72
- #define SPEED 30
73
-
74
- CRGB leds[NUM_LEDS];
75
- XYMap xyMap = XYMap::constructRectangularGrid(MATRIX_WIDTH, MATRIX_HEIGHT);
76
- NoisePalette noisePalette = NoisePalette(xyMap);
77
-
78
- Title title("FastLED Wasm Demo");
79
- Description description("This example combines two features of FastLED to produce a remarkable range of effects from a relatively small amount of code. This example combines FastLED's color palette lookup functions with FastLED's Perlin noise generator, and the combination is extremely powerful");
80
-
81
- Slider brightness("Brightness", 255, 0, 255);
82
- Checkbox isOff("Off", false);
83
- Slider speed("Noise - Speed", 15, 1, 50);
84
- Checkbox changePallete("Noise - Auto Palette", true);
85
- Slider changePalletTime("Noise - Time until next random Palette", 5, 1, 100);
86
- Slider scale( "Noise - Scale", 20, 1, 100);
87
- Button changePalette("Noise - Next Palette");
88
- Button changeFx("Switch between Noise & Animartrix");
89
- NumberField fxIndex("Animartrix - index", 0, 0, NUM_ANIMATIONS);
90
- Slider timeSpeed("Time Speed", 1, -10, 10, .1);
91
-
92
- Animartrix animartrix(xyMap, POLAR_WAVES);
93
- FxEngine fxEngine(NUM_LEDS);
94
-
95
- void setup() {
96
- FastLED.addLeds<WS2811, LED_PIN, COLOR_ORDER>(leds, NUM_LEDS)
97
- .setCorrection(TypicalLEDStrip)
98
- .setScreenMap(xyMap);
99
- FastLED.setBrightness(brightness);
100
- //noisePalette.setSpeed(speed);
101
- noisePalette.setScale(scale);
102
- fxEngine.addFx(animartrix);
103
- fxEngine.addFx(noisePalette);
104
- }
105
-
106
- void loop() {
107
- FastLED.setBrightness(!isOff ? brightness.as<uint8_t>() : 0);
108
- noisePalette.setSpeed(speed);
109
- noisePalette.setScale(scale);
110
- fxEngine.setSpeed(timeSpeed);
111
-
112
- if (changeFx) {
113
- fxEngine.nextFx();
114
- }
115
- static int frame = 0;
116
- EVERY_N_MILLISECONDS_DYNAMIC(changePalletTime.as<int>() * 1000) {
117
- if (changePallete) {
118
- noisePalette.changeToRandomPalette();
119
- }
120
- }
121
-
122
- if (changePalette) {
123
- noisePalette.changeToRandomPalette();
124
-
125
- }
126
- static int lastFxIndex = -1;
127
- if (fxIndex.value() != lastFxIndex) {
128
- lastFxIndex = fxIndex;
129
- animartrix.fxSet(fxIndex);
130
- }
131
-
132
-
133
- fxEngine.draw(millis(), leds);
134
- FastLED.show();
135
- frame++;
136
- }
137
-
138
-
1
+ /// @file wasm.ino
2
+ /// @brief Demonstrates an advanced ino file with multiple effects and UI elements
3
+ /// @author Zach Vorhies
4
+ ///
5
+ /// This sketch is fully compatible with the FastLED web compiler. To use it do the following:
6
+ /// 1. Install Fastled: `pip install fastled`
7
+ /// 2. cd into this examples page.
8
+ /// 3. Run the FastLED web compiler at root: `fastled`
9
+ /// 4. When the compiler is done a web page will open.
10
+
11
+
12
+ #include <stdio.h>
13
+ #include <string>
14
+
15
+ #include <FastLED.h>
16
+ #include "fx/2d/noisepalette.hpp"
17
+ #include "fl/json.h"
18
+ #include "fl/slice.h"
19
+ #include "fx/fx_engine.h"
20
+
21
+ #include "fx/2d/animartrix.hpp"
22
+ #include "fl/ui.h"
23
+
24
+ using namespace fl;
25
+
26
+
27
+ #define LED_PIN 3
28
+ #define BRIGHTNESS 96
29
+ #define COLOR_ORDER GRB
30
+
31
+ #define MATRIX_WIDTH 100
32
+ #define MATRIX_HEIGHT 100
33
+ #define GRID_SERPENTINE false
34
+
35
+ #define NUM_LEDS (MATRIX_WIDTH * MATRIX_HEIGHT)
36
+
37
+ // This example combines two features of FastLED to produce a remarkable range
38
+ // of effects from a relatively small amount of code. This example combines
39
+ // FastLED's color palette lookup functions with FastLED's Perlin noise
40
+ // generator, and the combination is extremely powerful.
41
+ //
42
+ // You might want to look at the "ColorPalette" and "Noise" examples separately
43
+ // if this example code seems daunting.
44
+ //
45
+ //
46
+ // The basic setup here is that for each frame, we generate a new array of
47
+ // 'noise' data, and then map it onto the LED matrix through a color palette.
48
+ //
49
+ // Periodically, the color palette is changed, and new noise-generation
50
+ // parameters are chosen at the same time. In this example, specific
51
+ // noise-generation values have been selected to match the given color palettes;
52
+ // some are faster, or slower, or larger, or smaller than others, but there's no
53
+ // reason these parameters can't be freely mixed-and-matched.
54
+ //
55
+ // In addition, this example includes some fast automatic 'data smoothing' at
56
+ // lower noise speeds to help produce smoother animations in those cases.
57
+ //
58
+ // The FastLED built-in color palettes (Forest, Clouds, Lava, Ocean, Party) are
59
+ // used, as well as some 'hand-defined' ones, and some proceedurally generated
60
+ // palettes.
61
+
62
+ // Scale determines how far apart the pixels in our noise matrix are. Try
63
+ // changing these values around to see how it affects the motion of the display.
64
+ // The higher the value of scale, the more "zoomed out" the noise iwll be. A
65
+ // value of 1 will be so zoomed in, you'll mostly see solid colors.
66
+ #define SCALE 20
67
+
68
+ // We're using the x/y dimensions to map to the x/y pixels on the matrix. We'll
69
+ // use the z-axis for "time". speed determines how fast time moves forward. Try
70
+ // 1 for a very slow moving effect, or 60 for something that ends up looking
71
+ // like water.
72
+ #define SPEED 30
73
+
74
+ CRGB leds[NUM_LEDS];
75
+ XYMap xyMap = XYMap::constructRectangularGrid(MATRIX_WIDTH, MATRIX_HEIGHT);
76
+ NoisePalette noisePalette = NoisePalette(xyMap);
77
+
78
+ Title title("FastLED Wasm Demo");
79
+ Description description("This example combines two features of FastLED to produce a remarkable range of effects from a relatively small amount of code. This example combines FastLED's color palette lookup functions with FastLED's Perlin noise generator, and the combination is extremely powerful");
80
+
81
+ Slider brightness("Brightness", 255, 0, 255);
82
+ Checkbox isOff("Off", false);
83
+ Slider speed("Noise - Speed", 15, 1, 50);
84
+ Checkbox changePallete("Noise - Auto Palette", true);
85
+ Slider changePalletTime("Noise - Time until next random Palette", 5, 1, 100);
86
+ Slider scale( "Noise - Scale", 20, 1, 100);
87
+ Button changePalette("Noise - Next Palette");
88
+ Button changeFx("Switch between Noise & Animartrix");
89
+ NumberField fxIndex("Animartrix - index", 0, 0, NUM_ANIMATIONS);
90
+ Slider timeSpeed("Time Speed", 1, -10, 10, .1);
91
+
92
+ Animartrix animartrix(xyMap, POLAR_WAVES);
93
+ FxEngine fxEngine(NUM_LEDS);
94
+
95
+ void setup() {
96
+ FastLED.addLeds<WS2811, LED_PIN, COLOR_ORDER>(leds, NUM_LEDS)
97
+ .setCorrection(TypicalLEDStrip)
98
+ .setScreenMap(xyMap);
99
+ FastLED.setBrightness(brightness);
100
+ //noisePalette.setSpeed(speed);
101
+ noisePalette.setScale(scale);
102
+ fxEngine.addFx(animartrix);
103
+ fxEngine.addFx(noisePalette);
104
+ }
105
+
106
+ void loop() {
107
+ FastLED.setBrightness(!isOff ? brightness.as<uint8_t>() : 0);
108
+ noisePalette.setSpeed(speed);
109
+ noisePalette.setScale(scale);
110
+ fxEngine.setSpeed(timeSpeed);
111
+
112
+ if (changeFx) {
113
+ fxEngine.nextFx();
114
+ }
115
+ static int frame = 0;
116
+ EVERY_N_MILLISECONDS_DYNAMIC(changePalletTime.as<int>() * 1000) {
117
+ if (changePallete) {
118
+ noisePalette.changeToRandomPalette();
119
+ }
120
+ }
121
+
122
+ if (changePalette) {
123
+ noisePalette.changeToRandomPalette();
124
+
125
+ }
126
+ static int lastFxIndex = -1;
127
+ if (fxIndex.value() != lastFxIndex) {
128
+ lastFxIndex = fxIndex;
129
+ animartrix.fxSet(fxIndex);
130
+ }
131
+
132
+
133
+ fxEngine.draw(millis(), leds);
134
+ FastLED.show();
135
+ frame++;
136
+ }
137
+
138
+