diff --git a/RGB.NET.Decorators/Brush/FlashDecorator.cs b/RGB.NET.Decorators/Brush/FlashDecorator.cs index 1d7daff..dd84f2c 100644 --- a/RGB.NET.Decorators/Brush/FlashDecorator.cs +++ b/RGB.NET.Decorators/Brush/FlashDecorator.cs @@ -51,6 +51,11 @@ namespace RGB.NET.Decorators.Brush /// public double SustainValue { get; set; } = 1; + /// + /// Gets or sets the level at which the oppacity (percentage) should stay in the pause-cycle. (default: 0); + /// + public double PauseValue { get; set; } = 0; + /// /// Gets or sets the interval (in seconds) in which the decorator should repeat (if repetition is enabled). (default: 1) /// @@ -84,7 +89,7 @@ namespace RGB.NET.Decorators.Brush if (_currentPhase == ADSRPhase.Attack) if (_currentPhaseValue > 0) - _currentValue = Math.Min(1, (Attack - _currentPhaseValue) / Attack) * AttackValue; + _currentValue = PauseValue + (Math.Min(1, (Attack - _currentPhaseValue) / Attack) * (AttackValue - PauseValue)); else { _currentPhaseValue = Decay; @@ -111,7 +116,7 @@ namespace RGB.NET.Decorators.Brush if (_currentPhase == ADSRPhase.Release) if (_currentPhaseValue > 0) - _currentValue = Math.Min(1, _currentPhaseValue / Release) * SustainValue; + _currentValue = PauseValue + (Math.Min(1, _currentPhaseValue / Release) * (SustainValue - PauseValue)); else { _currentPhaseValue = Interval; @@ -120,7 +125,7 @@ namespace RGB.NET.Decorators.Brush if (_currentPhase == ADSRPhase.Pause) if (_currentPhaseValue > 0) - _currentValue = 0; + _currentValue = PauseValue; else { if ((++_repetitionCount >= Repetitions) && (Repetitions > 0))