mirror of
https://github.com/mudita/MuditaOS.git
synced 2026-05-19 14:15:02 -04:00
44 lines
1.2 KiB
C++
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
|