ESPHome 2025.5.0
Loading...
Searching...
No Matches
lvgl_number.h
Go to the documentation of this file.
1#pragma once
2
3#include <utility>
4
8
9namespace esphome {
10namespace lvgl {
11
12class LVGLNumber : public number::Number, public Component {
13 public:
14 LVGLNumber(std::function<void(float)> control_lambda, std::function<float()> value_lambda, lv_event_code_t event,
15 bool restore)
16 : control_lambda_(std::move(control_lambda)),
17 value_lambda_(std::move(value_lambda)),
18 event_(event),
19 restore_(restore) {}
20
21 void setup() override {
22 float value = this->value_lambda_();
23 if (this->restore_) {
25 if (this->pref_.load(&value)) {
26 this->control_lambda_(value);
27 }
28 }
29 this->publish_state(value);
30 }
31
32 void on_value() { this->publish_state(this->value_lambda_()); }
33
34 protected:
35 void control(float value) override {
36 this->control_lambda_(value);
37 this->publish_state(value);
38 if (this->restore_)
39 this->pref_.save(&value);
40 }
41 std::function<void(float)> control_lambda_;
42 std::function<float()> value_lambda_;
43 lv_event_code_t event_;
46};
47
48} // namespace lvgl
49} // namespace esphome
bool save(const T *src)
Definition preferences.h:21
virtual ESPPreferenceObject make_preference(size_t length, uint32_t type, bool in_flash)=0
uint32_t get_object_id_hash()
std::function< float()> value_lambda_
Definition lvgl_number.h:42
lv_event_code_t event_
Definition lvgl_number.h:43
LVGLNumber(std::function< void(float)> control_lambda, std::function< float()> value_lambda, lv_event_code_t event, bool restore)
Definition lvgl_number.h:14
void control(float value) override
Definition lvgl_number.h:35
std::function< void(float)> control_lambda_
Definition lvgl_number.h:41
ESPPreferenceObject pref_
Definition lvgl_number.h:45
void setup() override
Definition lvgl_number.h:21
Base-class for all numbers.
Definition number.h:39
void publish_state(float state)
Definition number.cpp:9
Providing packet encoding functions for exchanging data with a remote host.
Definition a01nyub.cpp:7
ESPPreferences * global_preferences