Browse Source

Fade from current position.

Robert Marshall 5 years ago
parent
commit
0a586fc30c
1 changed files with 7 additions and 4 deletions
  1. 7 4
      Receiver/src/LED.cpp

+ 7 - 4
Receiver/src/LED.cpp

@@ -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: