mirror of
https://github.com/wled/WLED.git
synced 2025-07-28 21:26:36 +00:00
Merge branch 'master' of https://github.com/Aircoookie/WLED
This commit is contained in:
commit
09485c995e
@ -7,15 +7,15 @@ data_dir = ./wled00/data
|
|||||||
;lib_extra_dirs = ./wled00/src
|
;lib_extra_dirs = ./wled00/src
|
||||||
lib_dir = ./wled00/src
|
lib_dir = ./wled00/src
|
||||||
; Please uncomment one of the 5 lines below to select your board
|
; Please uncomment one of the 5 lines below to select your board
|
||||||
env_default = nodemcuv2
|
default_envs = nodemcuv2
|
||||||
; env_default = esp01
|
; default_envs = esp01
|
||||||
; env_default = esp01_1m
|
; default_envs = esp01_1m
|
||||||
; env_default = esp07
|
; default_envs = esp07
|
||||||
; env_default = d1_mini
|
; default_envs = d1_mini
|
||||||
; env_default = esp32dev
|
; default_envs = esp32dev
|
||||||
; env_default = esp8285_4CH_MagicHome
|
; default_envs = esp8285_4CH_MagicHome
|
||||||
; env_default = esp8285_4CH_H801
|
; default_envs = esp8285_4CH_H801
|
||||||
; env_default = esp8285_5CH_H801
|
; default_envs = esp8285_5CH_H801
|
||||||
|
|
||||||
[common]
|
[common]
|
||||||
framework = arduino
|
framework = arduino
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
# Almost universal controller board for outdoor applications
|
# Almost universal controller board for outdoor applications
|
||||||
This usermod is using ideas from @mrVanboy and @400killer
|
This usermod is using ideas from @mrVanboy and @400killer
|
||||||
|
## Project repository
|
||||||
|
- [Original repository](https://github.com/srg74/Controller-for-WLED-firmware) - Main controller repository
|
||||||
## Features
|
## Features
|
||||||
* SSD1306 128x32 and 128x64 I2C OLED display
|
* SSD1306 128x32 and 128x64 I2C OLED display
|
||||||
* On screen IP address, SSID and controller status (e.g. ON or OFF, recent effect)
|
* On screen IP address, SSID and controller status (e.g. ON or OFF, recent effect)
|
||||||
@ -27,7 +29,7 @@ Uncomment `U8g2@~2.27.3`,`DallasTemperature@~3.8.0`,`OneWire@~2.3.5 under` `[com
|
|||||||
...
|
...
|
||||||
lib_deps_external =
|
lib_deps_external =
|
||||||
...
|
...
|
||||||
#For use SSD1306 0.91" OLED display uncomment following
|
#For use SSD1306 OLED display uncomment following
|
||||||
U8g2@~2.27.3
|
U8g2@~2.27.3
|
||||||
#For Dallas sensor uncomment following 2 lines
|
#For Dallas sensor uncomment following 2 lines
|
||||||
DallasTemperature@~3.8.0
|
DallasTemperature@~3.8.0
|
||||||
|
@ -17,15 +17,9 @@ long lastMeasure = 0;
|
|||||||
// or check the gallery:
|
// or check the gallery:
|
||||||
// https://github.com/olikraus/u8g2/wiki/gallery
|
// https://github.com/olikraus/u8g2/wiki/gallery
|
||||||
// --> First choise of cheap I2C OLED 128X32
|
// --> First choise of cheap I2C OLED 128X32
|
||||||
<<<<<<< HEAD
|
|
||||||
U8X8_SSD1306_128X32_UNIVISION_HW_I2C u8x8(U8X8_PIN_NONE, U8X8_PIN_SCL, U8X8_PIN_SDA); // Pins are Reset, SCL, SDA
|
U8X8_SSD1306_128X32_UNIVISION_HW_I2C u8x8(U8X8_PIN_NONE, U8X8_PIN_SCL, U8X8_PIN_SDA); // Pins are Reset, SCL, SDA
|
||||||
// --> Second choise of cheap I2C OLED 128X64
|
// --> Second choise of cheap I2C OLED 128X64
|
||||||
//U8X8_SSD1306_128X64_NONAME_HW_I2C u8x8(U8X8_PIN_NONE, U8X8_PIN_SCL, U8X8_PIN_SDA); // Pins are Reset, SCL, SDA
|
//U8X8_SSD1306_128X64_NONAME_HW_I2C u8x8(U8X8_PIN_NONE, U8X8_PIN_SCL, U8X8_PIN_SDA); // Pins are Reset, SCL, SDA
|
||||||
=======
|
|
||||||
//U8X8_SSD1306_128X32_UNIVISION_HW_I2C u8x8(U8X8_PIN_NONE, U8X8_PIN_SCL, U8X8_PIN_SDA); // Pins are Reset, SCL, SDA
|
|
||||||
// --> Second choise of cheap I2C OLED 128X64
|
|
||||||
U8X8_SSD1306_128X64_NONAME_HW_I2C u8x8(U8X8_PIN_NONE, U8X8_PIN_SCL, U8X8_PIN_SDA); // Pins are Reset, SCL, SDA
|
|
||||||
>>>>>>> 1680c014057bb993974950f37b14369b398ca647
|
|
||||||
// gets called once at boot. Do all initialization that doesn't depend on
|
// gets called once at boot. Do all initialization that doesn't depend on
|
||||||
// network here
|
// network here
|
||||||
void userSetup() {
|
void userSetup() {
|
||||||
@ -209,4 +203,4 @@ void userLoop() {
|
|||||||
u8x8.drawGlyph(0, 1, 68); // home icon
|
u8x8.drawGlyph(0, 1, 68); // home icon
|
||||||
u8x8.setFont(u8x8_font_open_iconic_weather_2x2);
|
u8x8.setFont(u8x8_font_open_iconic_weather_2x2);
|
||||||
u8x8.drawGlyph(0, 2, 66 + (bri > 0 ? 3 : 0)); // sun/moon icon
|
u8x8.drawGlyph(0, 2, 66 + (bri > 0 ? 3 : 0)); // sun/moon icon
|
||||||
}
|
}
|
28
usermods/blynk_relay_control/README.md
Normal file
28
usermods/blynk_relay_control/README.md
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
# Blynk controllable relay
|
||||||
|
This usermod allows controlling a relay state from the user variables. It also allows the user variables to be set over Blynk.
|
||||||
|
|
||||||
|
Optionally, the servo can have a reset timer to go back to it's default state after an interval. This interval is set through userVar1.
|
||||||
|
|
||||||
|
## Instalation
|
||||||
|
|
||||||
|
Replace the WLED06_usermod.ino file in Aircoookies WLED folder with the one here.
|
||||||
|
|
||||||
|
## Customizations
|
||||||
|
|
||||||
|
Update the following parameters in WLED06_usermod.ino to configure the mod's behavior:
|
||||||
|
|
||||||
|
```cpp
|
||||||
|
//Which pin is the relay connected to
|
||||||
|
#define RELAY_PIN 5
|
||||||
|
//Which pin state should the relay default to
|
||||||
|
#define RELAY_PIN_DEFAULT LOW
|
||||||
|
//If >0 The controller returns to RELAY_PIN_DEFAULT after this time in milliseconds
|
||||||
|
#define RELAY_PIN_TIMER_DEFAULT 3000
|
||||||
|
|
||||||
|
//Blynk virtual pin for controlling relay
|
||||||
|
#define BLYNK_USER_VAR0_PIN V9
|
||||||
|
//Blynk virtual pin for controlling relay timer
|
||||||
|
#define BLYNK_USER_VAR1_PIN V10
|
||||||
|
//Number of milliseconds between updating blynk
|
||||||
|
#define BLYNK_RELAY_UPDATE_INTERVAL 5000
|
||||||
|
```
|
96
usermods/blynk_relay_control/wled06_usermod.ino
Normal file
96
usermods/blynk_relay_control/wled06_usermod.ino
Normal file
@ -0,0 +1,96 @@
|
|||||||
|
/*
|
||||||
|
* This file allows you to add own functionality to WLED more easily
|
||||||
|
* See: https://github.com/Aircoookie/WLED/wiki/Add-own-functionality
|
||||||
|
* EEPROM bytes 2750+ are reserved for your custom use case. (if you extend #define EEPSIZE in wled01_eeprom.h)
|
||||||
|
* bytes 2400+ are currently ununsed, but might be used for future wled features
|
||||||
|
*/
|
||||||
|
|
||||||
|
//Use userVar0 (API calls &U0=, uint16_t) to set relay state
|
||||||
|
#define relayPinState userVar0
|
||||||
|
//Use userVar1 (API calls &U1=, uint16_t) to set relay timer duration
|
||||||
|
//Ignored if 0, otherwise number of milliseconds to allow relay to stay in
|
||||||
|
//non default state.
|
||||||
|
#define relayTimerInterval userVar1
|
||||||
|
|
||||||
|
//Which pin is the relay connected to
|
||||||
|
#define RELAY_PIN 5
|
||||||
|
//Which pin state should the relay default to
|
||||||
|
#define RELAY_PIN_DEFAULT LOW
|
||||||
|
//If >0 The controller returns to RELAY_PIN_DEFAULT after this time in milliseconds
|
||||||
|
#define RELAY_PIN_TIMER_DEFAULT 3000
|
||||||
|
|
||||||
|
//Blynk virtual pin for controlling relay
|
||||||
|
#define BLYNK_USER_VAR0_PIN V9
|
||||||
|
//Blynk virtual pin for controlling relay timer
|
||||||
|
#define BLYNK_USER_VAR1_PIN V10
|
||||||
|
//Number of milliseconds between updating blynk
|
||||||
|
#define BLYNK_RELAY_UPDATE_INTERVAL 5000
|
||||||
|
|
||||||
|
//Is the timer for resetting the relay active
|
||||||
|
bool relayTimerStarted = false;
|
||||||
|
//millis() time after which relay will be reset
|
||||||
|
unsigned long relayTimeToDefault = 0;
|
||||||
|
//millis() time after which relay vars in Blynk will be sent
|
||||||
|
unsigned long relayBlynkUpdateTime = 0;
|
||||||
|
|
||||||
|
//gets called once at boot. Do all initialization that doesn't depend on network here
|
||||||
|
void userSetup()
|
||||||
|
{
|
||||||
|
relayPinState = RELAY_PIN_DEFAULT;
|
||||||
|
relayTimerInterval = RELAY_PIN_TIMER_DEFAULT;
|
||||||
|
pinMode(RELAY_PIN, OUTPUT);
|
||||||
|
digitalWrite(RELAY_PIN, relayPinState);
|
||||||
|
}
|
||||||
|
|
||||||
|
//gets called every time WiFi is (re-)connected. Initialize own network interfaces here
|
||||||
|
void userConnected()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
//loop. You can use "if (WLED_CONNECTED)" to check for successful connection
|
||||||
|
void userLoop()
|
||||||
|
{
|
||||||
|
//Normalize relayPinState to an accepted value
|
||||||
|
if (relayPinState != HIGH && relayPinState != LOW) {
|
||||||
|
relayPinState = RELAY_PIN_DEFAULT;
|
||||||
|
}
|
||||||
|
//If relay changes and relayTimerInterval is set, start a timer to change back
|
||||||
|
if (relayTimerInterval != 0 &&
|
||||||
|
relayPinState != RELAY_PIN_DEFAULT &&
|
||||||
|
!relayTimerStarted ) {
|
||||||
|
relayTimerStarted = true;
|
||||||
|
relayTimeToDefault = millis() + relayTimerInterval;
|
||||||
|
}
|
||||||
|
//If manually changed back to default, cancel timer
|
||||||
|
if (relayTimerStarted && relayPinState == RELAY_PIN_DEFAULT ) {
|
||||||
|
relayTimerStarted = false;
|
||||||
|
}
|
||||||
|
//If timer completes, set relay back to default
|
||||||
|
if (relayTimerStarted && millis() > relayTimeToDefault) {
|
||||||
|
relayPinState = RELAY_PIN_DEFAULT;
|
||||||
|
relayTimerStarted = false;
|
||||||
|
}
|
||||||
|
digitalWrite(RELAY_PIN, relayPinState);
|
||||||
|
updateRelayBlynk();
|
||||||
|
}
|
||||||
|
|
||||||
|
//Update Blynk with state of userVars at BLYNK_RELAY_UPDATE_INTERVAL
|
||||||
|
void updateRelayBlynk()
|
||||||
|
{
|
||||||
|
if (!WLED_CONNECTED) return;
|
||||||
|
if (relayBlynkUpdateTime > millis()) return;
|
||||||
|
Blynk.virtualWrite(BLYNK_USER_VAR0_PIN, userVar0);
|
||||||
|
Blynk.virtualWrite(BLYNK_USER_VAR1_PIN, userVar1);
|
||||||
|
relayBlynkUpdateTime = millis() + BLYNK_RELAY_UPDATE_INTERVAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
//Add Blynk callback for setting userVar0
|
||||||
|
BLYNK_WRITE(BLYNK_USER_VAR0_PIN)
|
||||||
|
{
|
||||||
|
userVar0 = param.asInt();
|
||||||
|
}
|
||||||
|
//Add Blynk callback for setting userVar1
|
||||||
|
BLYNK_WRITE(BLYNK_USER_VAR1_PIN)
|
||||||
|
{
|
||||||
|
userVar1 = param.asInt();
|
||||||
|
}
|
@ -2970,8 +2970,9 @@ uint16_t WS2812FX::mode_plasma(void) {
|
|||||||
for (int i = 0; i < SEGLEN; i++) { // For each of the LED's in the strand, set color & brightness based on a wave as follows:
|
for (int i = 0; i < SEGLEN; i++) { // For each of the LED's in the strand, set color & brightness based on a wave as follows:
|
||||||
uint8_t colorIndex = cubicwave8((i*(1+ 3*(SEGMENT.speed >> 5)))+(thisPhase) & 0xFF)/2 // factor=23 // Create a wave and add a phase change and add another wave with its own phase change.
|
uint8_t colorIndex = cubicwave8((i*(1+ 3*(SEGMENT.speed >> 5)))+(thisPhase) & 0xFF)/2 // factor=23 // Create a wave and add a phase change and add another wave with its own phase change.
|
||||||
+ cos8((i*(1+ 2*(SEGMENT.speed >> 5)))+(thatPhase) & 0xFF)/2; // factor=15 // Hey, you can even change the frequencies if you wish.
|
+ cos8((i*(1+ 2*(SEGMENT.speed >> 5)))+(thatPhase) & 0xFF)/2; // factor=15 // Hey, you can even change the frequencies if you wish.
|
||||||
uint8_t thisBright = qsub8(colorIndex, beatsin8(6,0,128));
|
uint8_t thisBright = qsub8(colorIndex, beatsin8(6,0, (255 - SEGMENT.intensity)|0x01 ));
|
||||||
setPixelColor(i, color_blend(SEGCOLOR(1), color_from_palette(colorIndex, false, false, 0), thisBright));
|
CRGB color = ColorFromPalette(currentPalette, colorIndex, thisBright, LINEARBLEND);
|
||||||
|
setPixelColor(i, color.red, color.green, color.blue);
|
||||||
}
|
}
|
||||||
|
|
||||||
return FRAMETIME;
|
return FRAMETIME;
|
||||||
|
@ -248,7 +248,7 @@ public:
|
|||||||
if (color.R == 255 & color.G == 255 && color.B == 255 && color.W == 255) {
|
if (color.R == 255 & color.G == 255 && color.B == 255 && color.W == 255) {
|
||||||
SetRgbwPwm(0, 0, 0, 0, color.W * b / 255);
|
SetRgbwPwm(0, 0, 0, 0, color.W * b / 255);
|
||||||
} else if (color.R == 127 & color.G == 127 && color.B == 127 && color.W == 255) {
|
} else if (color.R == 127 & color.G == 127 && color.B == 127 && color.W == 255) {
|
||||||
SetRgbwPwm(0, 0, 0, color.W * b / 512, colorW.W * b / 255);
|
SetRgbwPwm(0, 0, 0, color.W * b / 512, color.W * b / 255);
|
||||||
} else if (color.R == 0 & color.G == 0 && color.B == 0 && color.W == 255) {
|
} else if (color.R == 0 & color.G == 0 && color.B == 0 && color.W == 255) {
|
||||||
SetRgbwPwm(0, 0, 0, color.W * b / 255, 0);
|
SetRgbwPwm(0, 0, 0, color.W * b / 255, 0);
|
||||||
} else if (color.R == 130 & color.G == 90 && color.B == 0 && color.W == 255) {
|
} else if (color.R == 130 & color.G == 90 && color.B == 0 && color.W == 255) {
|
||||||
@ -256,7 +256,7 @@ public:
|
|||||||
} else if (color.R == 255 & color.G == 153 && color.B == 0 && color.W == 255) {
|
} else if (color.R == 255 & color.G == 153 && color.B == 0 && color.W == 255) {
|
||||||
SetRgbwPwm(0, 0, 0, color.W * b / 255, 0);
|
SetRgbwPwm(0, 0, 0, color.W * b / 255, 0);
|
||||||
} else { // not only white colors
|
} else { // not only white colors
|
||||||
SetRgbwPwm(color.R * b / 255, colorW.G * b / 255, colorW.B * b / 255, color.W * b / 255);
|
SetRgbwPwm(color.R * b / 255, color.G * b / 255, color.B * b / 255, color.W * b / 255);
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
SetRgbwPwm(color.R * b / 255, color.G * b / 255, color.B * b / 255, color.W * b / 255);
|
SetRgbwPwm(color.R * b / 255, color.G * b / 255, color.B * b / 255, color.W * b / 255);
|
||||||
|
@ -147,10 +147,10 @@ void decodeIR24OLD(uint32_t code)
|
|||||||
case IR24_OLD_MAGENTA : colorFromUint32(COLOR_MAGENTA); break;
|
case IR24_OLD_MAGENTA : colorFromUint32(COLOR_MAGENTA); break;
|
||||||
case IR24_OLD_PINK : colorFromUint32(COLOR_PINK); break;
|
case IR24_OLD_PINK : colorFromUint32(COLOR_PINK); break;
|
||||||
case IR24_OLD_WHITE : colorFromUint32(COLOR_WHITE); effectCurrent = 0; break;
|
case IR24_OLD_WHITE : colorFromUint32(COLOR_WHITE); effectCurrent = 0; break;
|
||||||
case IR24_OLD_FLASH : if (!applyPreset(1)) effectCurrent = FX_MODE_COLORTWINKLE; effectPalette = 0; break;
|
case IR24_OLD_FLASH : if (!applyPreset(1)) { effectCurrent = FX_MODE_COLORTWINKLE; effectPalette = 0; } break;
|
||||||
case IR24_OLD_STROBE : if (!applyPreset(2)) effectCurrent = FX_MODE_RAINBOW_CYCLE; effectPalette = 0; break;
|
case IR24_OLD_STROBE : if (!applyPreset(2)) { effectCurrent = FX_MODE_RAINBOW_CYCLE; effectPalette = 0; } break;
|
||||||
case IR24_OLD_FADE : if (!applyPreset(3)) effectCurrent = FX_MODE_BREATH; effectPalette = 0; break;
|
case IR24_OLD_FADE : if (!applyPreset(3)) { effectCurrent = FX_MODE_BREATH; effectPalette = 0; } break;
|
||||||
case IR24_OLD_SMOOTH : if (!applyPreset(4)) effectCurrent = FX_MODE_RAINBOW; effectPalette = 0; break;
|
case IR24_OLD_SMOOTH : if (!applyPreset(4)) { effectCurrent = FX_MODE_RAINBOW; effectPalette = 0; } break;
|
||||||
default: return;
|
default: return;
|
||||||
}
|
}
|
||||||
lastValidCode = code;
|
lastValidCode = code;
|
||||||
@ -180,13 +180,13 @@ void decodeIR24CT(uint32_t code)
|
|||||||
case IR24_CT_PURPLE : colorFromUint32(COLOR_PURPLE); break;
|
case IR24_CT_PURPLE : colorFromUint32(COLOR_PURPLE); break;
|
||||||
case IR24_CT_MAGENTA : colorFromUint32(COLOR_MAGENTA); break;
|
case IR24_CT_MAGENTA : colorFromUint32(COLOR_MAGENTA); break;
|
||||||
case IR24_CT_PINK : colorFromUint32(COLOR_PINK); break;
|
case IR24_CT_PINK : colorFromUint32(COLOR_PINK); break;
|
||||||
case IR24_CT_COLDWHITE : colorFromUint32(COLOR_COLDWHITE); effectCurrent = 0; break;
|
case IR24_CT_COLDWHITE : colorFromUint32(COLOR2_COLDWHITE); effectCurrent = 0; break;
|
||||||
case IR24_CT_WARMWHITE : colorFromUint32(COLOR_WARMWHITE); effectCurrent = 0; break;
|
case IR24_CT_WARMWHITE : colorFromUint32(COLOR2_WARMWHITE); effectCurrent = 0; break;
|
||||||
case IR24_CT_CTPLUS : colorFromUint32(COLOR_COLDWHITE2); effectCurrent = 0; break;
|
case IR24_CT_CTPLUS : colorFromUint32(COLOR2_COLDWHITE2); effectCurrent = 0; break;
|
||||||
case IR24_CT_CTMINUS : colorFromUint32(COLOR_WARMWHITE2); effectCurrent = 0; break;
|
case IR24_CT_CTMINUS : colorFromUint32(COLOR2_WARMWHITE2); effectCurrent = 0; break;
|
||||||
case IR24_CT_MEMORY : {
|
case IR24_CT_MEMORY : {
|
||||||
if (col[3] > 0) col[3] = 0;
|
if (col[3] > 0) col[3] = 0;
|
||||||
else colorFromUint32(COLOR_NEUTRALWHITE); effectCurrent = 0; } break;
|
else colorFromUint32(COLOR2_NEUTRALWHITE); effectCurrent = 0; } break;
|
||||||
default: return;
|
default: return;
|
||||||
}
|
}
|
||||||
lastValidCode = code;
|
lastValidCode = code;
|
||||||
@ -243,10 +243,10 @@ void decodeIR40(uint32_t code)
|
|||||||
case IR40_SLOW : relativeChange(&effectSpeed, -10, 5); break;
|
case IR40_SLOW : relativeChange(&effectSpeed, -10, 5); break;
|
||||||
case IR40_JUMP7 : relativeChange(&effectIntensity, 10); break;
|
case IR40_JUMP7 : relativeChange(&effectIntensity, 10); break;
|
||||||
case IR40_AUTO : relativeChange(&effectIntensity, -10, 5); break;
|
case IR40_AUTO : relativeChange(&effectIntensity, -10, 5); break;
|
||||||
case IR40_JUMP3 : if (!applyPreset(1)) effectCurrent = FX_MODE_STATIC; effectPalette = 0; break;
|
case IR40_JUMP3 : if (!applyPreset(1)) { effectCurrent = FX_MODE_STATIC; effectPalette = 0; } break;
|
||||||
case IR40_FADE3 : if (!applyPreset(2)) effectCurrent = FX_MODE_BREATH; effectPalette = 0; break;
|
case IR40_FADE3 : if (!applyPreset(2)) { effectCurrent = FX_MODE_BREATH; effectPalette = 0; } break;
|
||||||
case IR40_FADE7 : if (!applyPreset(3)) effectCurrent = FX_MODE_FIRE_FLICKER; effectPalette = 0; break;
|
case IR40_FADE7 : if (!applyPreset(3)) { effectCurrent = FX_MODE_FIRE_FLICKER; effectPalette = 0; } break;
|
||||||
case IR40_FLASH : if (!applyPreset(4)) effectCurrent = FX_MODE_RAINBOW; effectPalette = 0; break;
|
case IR40_FLASH : if (!applyPreset(4)) { effectCurrent = FX_MODE_RAINBOW; effectPalette = 0; } break;
|
||||||
}
|
}
|
||||||
lastValidCode = code;
|
lastValidCode = code;
|
||||||
colorUpdated(2); //for notifier, IR is considered a button input
|
colorUpdated(2); //for notifier, IR is considered a button input
|
||||||
@ -299,12 +299,12 @@ void decodeIR44(uint32_t code)
|
|||||||
case IR44_BLUEMINUS : relativeChange(&effectIntensity, -10, 5); break;
|
case IR44_BLUEMINUS : relativeChange(&effectIntensity, -10, 5); break;
|
||||||
case IR44_QUICK : relativeChange(&effectSpeed, 10); break;
|
case IR44_QUICK : relativeChange(&effectSpeed, 10); break;
|
||||||
case IR44_SLOW : relativeChange(&effectSpeed, -10, 5); break;
|
case IR44_SLOW : relativeChange(&effectSpeed, -10, 5); break;
|
||||||
case IR44_DIY1 : if (!applyPreset(1)) effectCurrent = FX_MODE_STATIC; effectPalette = 0; break;
|
case IR44_DIY1 : if (!applyPreset(1)) { effectCurrent = FX_MODE_STATIC; effectPalette = 0; } break;
|
||||||
case IR44_DIY2 : if (!applyPreset(2)) effectCurrent = FX_MODE_BREATH; effectPalette = 0; break;
|
case IR44_DIY2 : if (!applyPreset(2)) { effectCurrent = FX_MODE_BREATH; effectPalette = 0; } break;
|
||||||
case IR44_DIY3 : if (!applyPreset(3)) effectCurrent = FX_MODE_FIRE_FLICKER; effectPalette = 0; break;
|
case IR44_DIY3 : if (!applyPreset(3)) { effectCurrent = FX_MODE_FIRE_FLICKER; effectPalette = 0; } break;
|
||||||
case IR44_DIY4 : if (!applyPreset(4)) effectCurrent = FX_MODE_RAINBOW; effectPalette = 0; break;
|
case IR44_DIY4 : if (!applyPreset(4)) { effectCurrent = FX_MODE_RAINBOW; effectPalette = 0; } break;
|
||||||
case IR44_DIY5 : if (!applyPreset(5)) effectCurrent = FX_MODE_METEOR_SMOOTH; effectPalette = 0; break;
|
case IR44_DIY5 : if (!applyPreset(5)) { effectCurrent = FX_MODE_METEOR_SMOOTH; effectPalette = 0; } break;
|
||||||
case IR44_DIY6 : if (!applyPreset(6)) effectCurrent = FX_MODE_RAIN; effectPalette = 0; break;
|
case IR44_DIY6 : if (!applyPreset(6)) { effectCurrent = FX_MODE_RAIN; effectPalette = 0; } break;
|
||||||
case IR44_AUTO : effectCurrent = FX_MODE_STATIC; break;
|
case IR44_AUTO : effectCurrent = FX_MODE_STATIC; break;
|
||||||
case IR44_FLASH : effectCurrent = FX_MODE_PALETTE; break;
|
case IR44_FLASH : effectCurrent = FX_MODE_PALETTE; break;
|
||||||
case IR44_JUMP3 : bri = 63; break;
|
case IR44_JUMP3 : bri = 63; break;
|
||||||
@ -336,10 +336,10 @@ void decodeIR21(uint32_t code)
|
|||||||
case IR21_PURPLE: colorFromUint32(COLOR_PURPLE); break;
|
case IR21_PURPLE: colorFromUint32(COLOR_PURPLE); break;
|
||||||
case IR21_PINK: colorFromUint32(COLOR_PINK); break;
|
case IR21_PINK: colorFromUint32(COLOR_PINK); break;
|
||||||
case IR21_WHITE: colorFromUint32(COLOR_WHITE); effectCurrent = 0; break;
|
case IR21_WHITE: colorFromUint32(COLOR_WHITE); effectCurrent = 0; break;
|
||||||
case IR21_FLASH: if (!applyPreset(1)) effectCurrent = FX_MODE_COLORTWINKLE; break;
|
case IR21_FLASH: if (!applyPreset(1)) { effectCurrent = FX_MODE_COLORTWINKLE; effectPalette = 0; } break;
|
||||||
case IR21_STROBE: if (!applyPreset(2)) effectCurrent = FX_MODE_RAINBOW_CYCLE; break;
|
case IR21_STROBE: if (!applyPreset(2)) { effectCurrent = FX_MODE_RAINBOW_CYCLE; effectPalette = 0; } break;
|
||||||
case IR21_FADE: if (!applyPreset(3)) effectCurrent = FX_MODE_BREATH; break;
|
case IR21_FADE: if (!applyPreset(3)) { effectCurrent = FX_MODE_BREATH; effectPalette = 0; } break;
|
||||||
case IR21_SMOOTH: if (!applyPreset(4)) effectCurrent = FX_MODE_RAINBOW; break;
|
case IR21_SMOOTH: if (!applyPreset(4)) { effectCurrent = FX_MODE_RAINBOW; effectPalette = 0; } break;
|
||||||
default: return;
|
default: return;
|
||||||
}
|
}
|
||||||
lastValidCode = code;
|
lastValidCode = code;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user