Files
MuditaOS/module-services/service-evtmgr/screen-light-control/ControlFunctions.hpp
wojtekrzepecki 8513eaaef5 [EGD-7900] Fix backlight behavior
Cumulated fixes for both screen and keypad light
2021-11-23 09:15:45 +01:00

44 lines
1.2 KiB
C++

// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
#pragma once
#include <bsp/eink_frontlight/eink_frontlight.hpp>
#include <bsp/light_sensor/light_sensor.hpp>
#include <chrono>
#include <vector>
#include <utility>
namespace screen_light_control::functions
{
using BrightnessFunction =
std::vector<std::pair<bsp::light_sensor::IlluminanceLux, bsp::eink_frontlight::BrightnessPercentage>>;
struct LinearProgressFunction
{
float target = 100.0f;
std::chrono::milliseconds duration = std::chrono::milliseconds::zero();
};
bsp::eink_frontlight::BrightnessPercentage brightnessRampOut();
void calculateBrightness(bsp::light_sensor::IlluminanceLux measurement);
void setRampState(float state);
void setRampStep(float step);
void resetRampToTarget();
void setHysteresis(float hyst);
void setFunctionFromPoints(const BrightnessFunction &points);
void setRampTarget(bsp::eink_frontlight::BrightnessPercentage value);
bool isRampTargetReached();
bsp::eink_frontlight::BrightnessPercentage getRampState();
} // namespace screen_light_control::functions