mirror of
https://github.com/hyperion-project/hyperion.ng.git
synced 2025-03-01 10:33:28 +00:00
Minimum luminance for backlight in dark scenes (#646)
* Include miminum luminance * Add luminance minimum * Add luminance minimum * fixed missing ; * Add luminance minimum * Add luminance minimum check Check if luminance mimimum is other than default * Add luminance minimum * Add luminance minimum * Add luminance minimum * Add luminance minimum * Add luminance minimum * Safe luminance calculation Former-commit-id: 35a762b18b473a333155acba7a00894204400076
This commit is contained in:
@@ -4,13 +4,15 @@
|
||||
|
||||
HslTransform::HslTransform() :
|
||||
_saturationGain(1.0),
|
||||
_luminanceGain(1.0)
|
||||
_luminanceGain(1.0),
|
||||
_luminanceMinimum(0.0)
|
||||
{
|
||||
}
|
||||
|
||||
HslTransform::HslTransform(double saturationGain, double luminanceGain) :
|
||||
HslTransform::HslTransform(double saturationGain, double luminanceGain, double luminanceMinimum) :
|
||||
_saturationGain(saturationGain),
|
||||
_luminanceGain(luminanceGain)
|
||||
_luminanceGain(luminanceGain),
|
||||
_luminanceMinimum(luminanceMinimum)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -38,9 +40,19 @@ double HslTransform::getLuminanceGain() const
|
||||
return _luminanceGain;
|
||||
}
|
||||
|
||||
void HslTransform::setLuminanceMinimum(double luminanceMinimum)
|
||||
{
|
||||
_luminanceMinimum = luminanceMinimum;
|
||||
}
|
||||
|
||||
double HslTransform::getLuminanceMinimum() const
|
||||
{
|
||||
return _luminanceMinimum;
|
||||
}
|
||||
|
||||
void HslTransform::transform(uint8_t & red, uint8_t & green, uint8_t & blue) const
|
||||
{
|
||||
if (_saturationGain != 1.0 || _luminanceGain != 1.0)
|
||||
if (_saturationGain != 1.0 || _luminanceGain != 1.0 || _luminanceMinimum != 0.0)
|
||||
{
|
||||
uint16_t hue;
|
||||
float saturation, luminance;
|
||||
@@ -53,9 +65,11 @@ void HslTransform::transform(uint8_t & red, uint8_t & green, uint8_t & blue) con
|
||||
saturation = s;
|
||||
|
||||
float l = luminance * _luminanceGain;
|
||||
if (l < _luminanceMinimum)
|
||||
l = _luminanceMinimum;
|
||||
if (l > 1.0f)
|
||||
luminance = 1.0f;
|
||||
else
|
||||
else
|
||||
luminance = l;
|
||||
|
||||
hsl2rgb(hue, saturation, luminance, red, green, blue);
|
||||
|
Reference in New Issue
Block a user