From 627304a52201b3a952108ffbb15c8dabaf73012f Mon Sep 17 00:00:00 2001 From: Tigran Soghbatyan Date: Fri, 5 Nov 2021 16:06:28 +0100 Subject: [PATCH] [BH-1148] Fix front light intensity Scale front light intensity to possible illumination values --- .../models/advanced/FrontlightModel.cpp | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/products/BellHybrid/apps/application-bell-settings/models/advanced/FrontlightModel.cpp b/products/BellHybrid/apps/application-bell-settings/models/advanced/FrontlightModel.cpp index 08b37a6181bf0fd282cba4aab7f2b1dc79b85998..203187d98582f65ab785ece939f4579348b2d87e 100644 --- a/products/BellHybrid/apps/application-bell-settings/models/advanced/FrontlightModel.cpp +++ b/products/BellHybrid/apps/application-bell-settings/models/advanced/FrontlightModel.cpp @@ -10,15 +10,23 @@ namespace { - constexpr auto multiplier = 10U; + constexpr auto minPercent = 0.0f; + constexpr auto maxPercent = 100.0f; + constexpr auto minimumLightOnPercentOffsetValue = 16.0f; + constexpr auto minBrightness = 1U; + constexpr auto maxBrightness = 10U; + constexpr float multiplier = (maxPercent - minimumLightOnPercentOffsetValue) / maxBrightness; + float fixedValToPercentage(app::bell_settings::AbstractFrontlightModel::Brightness value) { - return value * multiplier; + float scaled = minimumLightOnPercentOffsetValue + (value - minBrightness) * multiplier; + return std::min(maxPercent, std::max(minPercent, scaled)); } - app::bell_settings::AbstractFrontlightModel::Brightness percentageToFixedVal(float value) + app::bell_settings::AbstractFrontlightModel::Brightness percentageToFixedVal(float percent) { - return value / multiplier; + auto value = (percent - minimumLightOnPercentOffsetValue) / multiplier; + return std::round(value + minBrightness); } } // namespace