From cf1630a94a3de7b59e2dd21562a607627c9fa2d2 Mon Sep 17 00:00:00 2001
From: Frank <91616163+softhack007@users.noreply.github.com>
Date: Mon, 4 Nov 2024 19:49:43 +0100
Subject: [PATCH] 0 FPS = unlimited
---
wled00/FX.h | 2 +-
wled00/FX_fcn.cpp | 8 ++++----
wled00/data/settings_leds.htm | 8 +++++++-
3 files changed, 12 insertions(+), 6 deletions(-)
diff --git a/wled00/FX.h b/wled00/FX.h
index 1f0df9da3..5c80686d6 100644
--- a/wled00/FX.h
+++ b/wled00/FX.h
@@ -52,7 +52,7 @@
#else
#define MIN_SHOW_DELAY (_frametime < 16 ? 8 : 15) // legacy MIN_SHOW_DELAY - creates more idle loops, but reduces framerates
#endif
-#define FPS_UNLIMITED 120
+#define FPS_UNLIMITED 0
/* each segment uses 82 bytes of SRAM memory, so if you're application fails because of
insufficient memory, decreasing MAX_NUM_SEGMENTS may help */
diff --git a/wled00/FX_fcn.cpp b/wled00/FX_fcn.cpp
index 3972dad2c..30882c4e7 100644
--- a/wled00/FX_fcn.cpp
+++ b/wled00/FX_fcn.cpp
@@ -1314,7 +1314,7 @@ void WS2812FX::service() {
#if defined(ARDUINO_ARCH_ESP32) && !defined(CONFIG_IDF_TARGET_ESP32C3)
if (elapsed < 2) return; // keep wifi alive
- if ( !_triggered && (_targetFps != FPS_UNLIMITED) && (_targetFps > 0)) {
+ if ( !_triggered && (_targetFps != FPS_UNLIMITED)) {
if (elapsed < MIN_SHOW_DELAY) return; // WLEDMM too early for service
}
#else // legacy
@@ -1450,9 +1450,9 @@ uint16_t WS2812FX::getFps() const {
}
void WS2812FX::setTargetFps(uint8_t fps) {
- if (fps > 0 && fps <= 120) _targetFps = fps;
- _frametime = 1000 / _targetFps;
- if (fps == FPS_UNLIMITED) _frametime = 3; // unlimited mode
+ if (fps <= 120) _targetFps = fps;
+ if (_targetFps > 0) _frametime = 1000 / _targetFps;
+ else _frametime = 3; // unlimited mode
}
void WS2812FX::setMode(uint8_t segid, uint8_t m) {
diff --git a/wled00/data/settings_leds.htm b/wled00/data/settings_leds.htm
index 6be5becd1..35bbbd312 100644
--- a/wled00/data/settings_leds.htm
+++ b/wled00/data/settings_leds.htm
@@ -380,6 +380,10 @@
gId('psu').innerHTML = s;
gId('psu2').innerHTML = s2;
gId("json").style.display = d.Sf.IT.value==8 ? "" : "none";
+
+ // show/hide unlimited FPS message
+ gId('fpsNone').style.display = (d.Sf.FR.value == 0) ? 'block':'none';
+ gId('fpsHelp').style.display = (d.Sf.FR.value == 0)? 'none':'block';
}
function lastEnd(i) {
if (i-- < 1) return 0;
@@ -870,7 +874,9 @@ Swap:
- Target refresh rate: FPS
+ Target refresh rate: FPS
+