Fixed not turning on after pressing "Off" on IR remote twice (fixes #1950)
Fixed OTA update file selection from Android app (TODO: file type verification in JS, since android can't deal with accept='.bin' attribute)
This commit is contained in:
parent
1a2543ddde
commit
e2061464a5
@ -2,6 +2,11 @@
|
|||||||
|
|
||||||
### Builds after release 0.12.0
|
### Builds after release 0.12.0
|
||||||
|
|
||||||
|
#### Build 2105070
|
||||||
|
|
||||||
|
- Fixed not turning on after pressing "Off" on IR remote twice (#1950)
|
||||||
|
- Fixed OTA update file selection from Android app (TODO: file type verification in JS, since android can't deal with accept='.bin' attribute)
|
||||||
|
|
||||||
#### Build 2104220
|
#### Build 2104220
|
||||||
|
|
||||||
- Version bump to 0.12.1-b1 "Hikari"
|
- Version bump to 0.12.1-b1 "Hikari"
|
||||||
|
@ -3852,13 +3852,18 @@ typedef struct TvSim {
|
|||||||
} tvSim;
|
} tvSim;
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef WLED_DISABLE_FX_HIGH_FLASH_USE
|
||||||
|
#include "tv_colors.h"
|
||||||
|
#define numTVPixels (sizeof(tv_colors) / 2) // 2 bytes per Pixel (5/6/5)
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
TV Simulator
|
TV Simulator
|
||||||
Modified and adapted to WLED by Def3nder, based on "Fake TV Light for Engineers" by Phillip Burgess https://learn.adafruit.com/fake-tv-light-for-engineers/arduino-sketch
|
Modified and adapted to WLED by Def3nder, based on "Fake TV Light for Engineers" by Phillip Burgess https://learn.adafruit.com/fake-tv-light-for-engineers/arduino-sketch
|
||||||
*/
|
*/
|
||||||
uint16_t WS2812FX::mode_tv_simulator(void) {
|
uint16_t WS2812FX::mode_tv_simulator(void) {
|
||||||
uint16_t nr, ng, nb, r, g, b, i, hue;
|
uint16_t nr, ng, nb, r, g, b, i, hue;
|
||||||
uint8_t sat, bri, j;
|
uint8_t hi, lo, r8, g8, b8, sat, bri, j;
|
||||||
|
|
||||||
if (!SEGENV.allocateData(sizeof(tvSim))) return mode_static(); //allocation failed
|
if (!SEGENV.allocateData(sizeof(tvSim))) return mode_static(); //allocation failed
|
||||||
TvSim* tvSimulator = reinterpret_cast<TvSim*>(SEGENV.data);
|
TvSim* tvSimulator = reinterpret_cast<TvSim*>(SEGENV.data);
|
||||||
@ -3872,6 +3877,35 @@ uint16_t WS2812FX::mode_tv_simulator(void) {
|
|||||||
SEGENV.aux1 = 0;
|
SEGENV.aux1 = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef WLED_DISABLE_FX_HIGH_FLASH_USE
|
||||||
|
/*
|
||||||
|
* this code uses the real color data from tv_colos.h
|
||||||
|
*/
|
||||||
|
|
||||||
|
// initialize start of the TV-Colors
|
||||||
|
if (SEGENV.aux1 == 0) {
|
||||||
|
tvSimulator->pixelNum = ((uint8_t)random8(18)) * numTVPixels / 18; // Begin at random movie (18 in total)
|
||||||
|
SEGENV.aux1 = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Read next 16-bit (5/6/5) color
|
||||||
|
hi = pgm_read_byte(&tv_colors[tvSimulator->pixelNum * 2 ]);
|
||||||
|
lo = pgm_read_byte(&tv_colors[tvSimulator->pixelNum * 2 + 1]);
|
||||||
|
|
||||||
|
// Expand to 24-bit (8/8/8)
|
||||||
|
r8 = (hi & 0xF8) | (hi >> 5);
|
||||||
|
g8 = ((hi << 5) & 0xff) | ((lo & 0xE0) >> 3) | ((hi & 0x06) >> 1);
|
||||||
|
b8 = ((lo << 3) & 0xff) | ((lo & 0x1F) >> 2);
|
||||||
|
|
||||||
|
// Apply gamma correction, further expand to 16/16/16
|
||||||
|
nr = (uint8_t)gamma8(r8) * 257; // New R/G/B
|
||||||
|
ng = (uint8_t)gamma8(g8) * 257;
|
||||||
|
nb = (uint8_t)gamma8(b8) * 257;
|
||||||
|
#else
|
||||||
|
/*
|
||||||
|
* this code calculates the color to be used and save 18k of flash memory
|
||||||
|
*/
|
||||||
|
|
||||||
// create a new sceene
|
// create a new sceene
|
||||||
if (((millis() - tvSimulator->sceeneStart) >= tvSimulator->sceeneDuration) || SEGENV.aux1 == 0) {
|
if (((millis() - tvSimulator->sceeneStart) >= tvSimulator->sceeneDuration) || SEGENV.aux1 == 0) {
|
||||||
tvSimulator->sceeneStart = millis(); // remember the start of the new sceene
|
tvSimulator->sceeneStart = millis(); // remember the start of the new sceene
|
||||||
@ -3916,9 +3950,16 @@ uint16_t WS2812FX::mode_tv_simulator(void) {
|
|||||||
nr = (uint8_t)gamma8(tvSimulator->actualColorR) * 257; // New R/G/B
|
nr = (uint8_t)gamma8(tvSimulator->actualColorR) * 257; // New R/G/B
|
||||||
ng = (uint8_t)gamma8(tvSimulator->actualColorG) * 257;
|
ng = (uint8_t)gamma8(tvSimulator->actualColorG) * 257;
|
||||||
nb = (uint8_t)gamma8(tvSimulator->actualColorB) * 257;
|
nb = (uint8_t)gamma8(tvSimulator->actualColorB) * 257;
|
||||||
|
#endif
|
||||||
|
|
||||||
if (SEGENV.aux0 == 0) { // initialize next iteration
|
if (SEGENV.aux0 == 0) { // initialize next iteration
|
||||||
SEGENV.aux0 = 1;
|
SEGENV.aux0 = 1;
|
||||||
|
|
||||||
|
#ifndef WLED_DISABLE_FX_HIGH_FLASH_USE
|
||||||
|
// increase color-index for next loop
|
||||||
|
tvSimulator->pixelNum++;
|
||||||
|
if (tvSimulator->pixelNum >= numTVPixels) tvSimulator->pixelNum = 0;
|
||||||
|
#endif
|
||||||
|
|
||||||
// randomize total duration and fade duration for the actual color
|
// randomize total duration and fade duration for the actual color
|
||||||
tvSimulator->totalTime = random16(250, 2500); // Semi-random pixel-to-pixel time
|
tvSimulator->totalTime = random16(250, 2500); // Semi-random pixel-to-pixel time
|
||||||
|
@ -43,7 +43,7 @@
|
|||||||
Installed version: ##VERSION##<br>
|
Installed version: ##VERSION##<br>
|
||||||
Download the latest binary: <a href="https://github.com/Aircoookie/WLED/releases" target="_blank">
|
Download the latest binary: <a href="https://github.com/Aircoookie/WLED/releases" target="_blank">
|
||||||
<img src="https://img.shields.io/github/release/Aircoookie/WLED.svg?style=flat-square"></a><br>
|
<img src="https://img.shields.io/github/release/Aircoookie/WLED.svg?style=flat-square"></a><br>
|
||||||
<input type='file' class="bt" name='update' accept=".bin" required><br>
|
<input type='file' class="bt" name='update' required><br> <!--should have accept='.bin', but it prevents file upload from android app-->
|
||||||
<input type='submit' class="bt" value='Update!' ><br>
|
<input type='submit' class="bt" value='Update!' ><br>
|
||||||
<button type="button" class="bt" onclick="B()">Back</button></form>
|
<button type="button" class="bt" onclick="B()">Back</button></form>
|
||||||
<div id="msg"><b>Updating...</b><br>Please do not close or refresh the page :)</div>
|
<div id="msg"><b>Updating...</b><br>Please do not close or refresh the page :)</div>
|
||||||
|
@ -45,10 +45,10 @@ action="/update" id="uf" enctype="multipart/form-data" onsubmit="U()">
|
|||||||
Installed version: 0.12.1-b1<br>Download the latest binary: <a
|
Installed version: 0.12.1-b1<br>Download the latest binary: <a
|
||||||
href="https://github.com/Aircoookie/WLED/releases" target="_blank"><img
|
href="https://github.com/Aircoookie/WLED/releases" target="_blank"><img
|
||||||
src="https://img.shields.io/github/release/Aircoookie/WLED.svg?style=flat-square">
|
src="https://img.shields.io/github/release/Aircoookie/WLED.svg?style=flat-square">
|
||||||
</a><br><input type="file" class="bt" name="update" accept=".bin" required><br>
|
</a><br><input type="file" class="bt" name="update" required><br><input
|
||||||
<input type="submit" class="bt" value="Update!"><br><button type="button"
|
type="submit" class="bt" value="Update!"><br><button type="button" class="bt"
|
||||||
class="bt" onclick="B()">Back</button></form><div id="msg"><b>Updating...</b>
|
onclick="B()">Back</button></form><div id="msg"><b>Updating...</b><br>
|
||||||
<br>Please do not close or refresh the page :)</div></body></html>)=====";
|
Please do not close or refresh the page :)</div></body></html>)=====";
|
||||||
|
|
||||||
|
|
||||||
// Autogenerated from wled00/data/welcome.htm, do not edit!!
|
// Autogenerated from wled00/data/welcome.htm, do not edit!!
|
||||||
|
@ -227,7 +227,7 @@ void decodeIR24(uint32_t code)
|
|||||||
switch (code) {
|
switch (code) {
|
||||||
case IR24_BRIGHTER : incBrightness(); break;
|
case IR24_BRIGHTER : incBrightness(); break;
|
||||||
case IR24_DARKER : decBrightness(); break;
|
case IR24_DARKER : decBrightness(); break;
|
||||||
case IR24_OFF : briLast = bri; bri = 0; break;
|
case IR24_OFF : if (bri > 0) briLast = bri; bri = 0; break;
|
||||||
case IR24_ON : bri = briLast; break;
|
case IR24_ON : bri = briLast; break;
|
||||||
case IR24_RED : colorFromUint32(COLOR_RED); break;
|
case IR24_RED : colorFromUint32(COLOR_RED); break;
|
||||||
case IR24_REDDISH : colorFromUint32(COLOR_REDDISH); break;
|
case IR24_REDDISH : colorFromUint32(COLOR_REDDISH); break;
|
||||||
@ -259,7 +259,7 @@ void decodeIR24OLD(uint32_t code)
|
|||||||
switch (code) {
|
switch (code) {
|
||||||
case IR24_OLD_BRIGHTER : incBrightness(); break;
|
case IR24_OLD_BRIGHTER : incBrightness(); break;
|
||||||
case IR24_OLD_DARKER : decBrightness(); break;
|
case IR24_OLD_DARKER : decBrightness(); break;
|
||||||
case IR24_OLD_OFF : briLast = bri; bri = 0; break;
|
case IR24_OLD_OFF : if (bri > 0) briLast = bri; bri = 0; break;
|
||||||
case IR24_OLD_ON : bri = briLast; break;
|
case IR24_OLD_ON : bri = briLast; break;
|
||||||
case IR24_OLD_RED : colorFromUint32(COLOR_RED); break;
|
case IR24_OLD_RED : colorFromUint32(COLOR_RED); break;
|
||||||
case IR24_OLD_REDDISH : colorFromUint32(COLOR_REDDISH); break;
|
case IR24_OLD_REDDISH : colorFromUint32(COLOR_REDDISH); break;
|
||||||
@ -292,7 +292,7 @@ void decodeIR24CT(uint32_t code)
|
|||||||
switch (code) {
|
switch (code) {
|
||||||
case IR24_CT_BRIGHTER : incBrightness(); break;
|
case IR24_CT_BRIGHTER : incBrightness(); break;
|
||||||
case IR24_CT_DARKER : decBrightness(); break;
|
case IR24_CT_DARKER : decBrightness(); break;
|
||||||
case IR24_CT_OFF : briLast = bri; bri = 0; break;
|
case IR24_CT_OFF : if (bri > 0) briLast = bri; bri = 0; break;
|
||||||
case IR24_CT_ON : bri = briLast; break;
|
case IR24_CT_ON : bri = briLast; break;
|
||||||
case IR24_CT_RED : colorFromUint32(COLOR_RED); break;
|
case IR24_CT_RED : colorFromUint32(COLOR_RED); break;
|
||||||
case IR24_CT_REDDISH : colorFromUint32(COLOR_REDDISH); break;
|
case IR24_CT_REDDISH : colorFromUint32(COLOR_REDDISH); break;
|
||||||
@ -327,7 +327,7 @@ void decodeIR40(uint32_t code)
|
|||||||
switch (code) {
|
switch (code) {
|
||||||
case IR40_BPLUS : incBrightness(); break;
|
case IR40_BPLUS : incBrightness(); break;
|
||||||
case IR40_BMINUS : decBrightness(); break;
|
case IR40_BMINUS : decBrightness(); break;
|
||||||
case IR40_OFF : briLast = bri; bri = 0; break;
|
case IR40_OFF : if (bri > 0) briLast = bri; bri = 0; break;
|
||||||
case IR40_ON : bri = briLast; break;
|
case IR40_ON : bri = briLast; break;
|
||||||
case IR40_RED : colorFromUint24(COLOR_RED); break;
|
case IR40_RED : colorFromUint24(COLOR_RED); break;
|
||||||
case IR40_REDDISH : colorFromUint24(COLOR_REDDISH); break;
|
case IR40_REDDISH : colorFromUint24(COLOR_REDDISH); break;
|
||||||
@ -384,7 +384,7 @@ void decodeIR44(uint32_t code)
|
|||||||
switch (code) {
|
switch (code) {
|
||||||
case IR44_BPLUS : incBrightness(); break;
|
case IR44_BPLUS : incBrightness(); break;
|
||||||
case IR44_BMINUS : decBrightness(); break;
|
case IR44_BMINUS : decBrightness(); break;
|
||||||
case IR44_OFF : briLast = bri; bri = 0; break;
|
case IR44_OFF : if (bri > 0) briLast = bri; bri = 0; break;
|
||||||
case IR44_ON : bri = briLast; break;
|
case IR44_ON : bri = briLast; break;
|
||||||
case IR44_RED : colorFromUint24(COLOR_RED); break;
|
case IR44_RED : colorFromUint24(COLOR_RED); break;
|
||||||
case IR44_REDDISH : colorFromUint24(COLOR_REDDISH); break;
|
case IR44_REDDISH : colorFromUint24(COLOR_REDDISH); break;
|
||||||
@ -447,7 +447,7 @@ void decodeIR21(uint32_t code)
|
|||||||
switch (code) {
|
switch (code) {
|
||||||
case IR21_BRIGHTER: incBrightness(); break;
|
case IR21_BRIGHTER: incBrightness(); break;
|
||||||
case IR21_DARKER: decBrightness(); break;
|
case IR21_DARKER: decBrightness(); break;
|
||||||
case IR21_OFF: briLast = bri; bri = 0; break;
|
case IR21_OFF: if (bri > 0) briLast = bri; bri = 0; break;
|
||||||
case IR21_ON: bri = briLast; break;
|
case IR21_ON: bri = briLast; break;
|
||||||
case IR21_RED: colorFromUint32(COLOR_RED); break;
|
case IR21_RED: colorFromUint32(COLOR_RED); break;
|
||||||
case IR21_REDDISH: colorFromUint32(COLOR_REDDISH); break;
|
case IR21_REDDISH: colorFromUint32(COLOR_REDDISH); break;
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
// version code in format yymmddb (b = daily build)
|
// version code in format yymmddb (b = daily build)
|
||||||
#define VERSION 2104220
|
#define VERSION 2105070
|
||||||
|
|
||||||
//uncomment this if you have a "my_config.h" file you'd like to use
|
//uncomment this if you have a "my_config.h" file you'd like to use
|
||||||
//#define WLED_USE_MY_CONFIG
|
//#define WLED_USE_MY_CONFIG
|
||||||
|
Loading…
Reference in New Issue
Block a user