|
@@ -7,16 +7,19 @@ class LED{
|
|
|
bool _on;
|
|
|
unsigned long _fadeDuration, _fadeStart, _fadeEnd;
|
|
|
|
|
|
- float getMultiplier() {
|
|
|
+ unsigned long getRemainingFadeTime(){
|
|
|
unsigned long now = millis();
|
|
|
- float remainingTime = _fadeEnd >= now ? constrain(_fadeEnd - now, 0, _fadeDuration) : 0;
|
|
|
- float value = remainingTime / (float)_fadeDuration;
|
|
|
+ return _fadeEnd >= now ? constrain(_fadeEnd - now, 0, _fadeDuration) : 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ float getMultiplier() {
|
|
|
+ float value = getRemainingFadeTime() / (float)_fadeDuration;
|
|
|
return _on ? value : 1.0f - value;
|
|
|
}
|
|
|
|
|
|
void resetTimers(){
|
|
|
_fadeStart = millis();
|
|
|
- _fadeEnd = _fadeStart + _fadeDuration;
|
|
|
+ _fadeEnd = (_fadeStart + _fadeDuration) - getRemainingFadeTime();
|
|
|
}
|
|
|
|
|
|
public:
|