mirror of
https://github.com/esphome/esphome.git
synced 2024-11-24 07:58:09 +01:00
[lvgl] Allow esphome::Image in lambda to update image source directly (#7624)
Some checks failed
CI / Run script/ci-custom (push) Blocked by required conditions
CI / Check pylint (push) Blocked by required conditions
CI / Check pyupgrade (push) Blocked by required conditions
CI / list-components (push) Blocked by required conditions
CI / Create common environment (push) Waiting to run
CI / Check black (push) Blocked by required conditions
CI / Check flake8 (push) Blocked by required conditions
CI / Run pytest (push) Blocked by required conditions
CI / Check clang-format (push) Blocked by required conditions
CI / Run script/clang-tidy for ESP32 Arduino 1/4 (push) Blocked by required conditions
CI / Run script/clang-tidy for ESP32 Arduino 2/4 (push) Blocked by required conditions
CI / Run script/clang-tidy for ESP32 Arduino 3/4 (push) Blocked by required conditions
CI / Run script/clang-tidy for ESP32 Arduino 4/4 (push) Blocked by required conditions
CI / Run script/clang-tidy for ESP32 IDF (push) Blocked by required conditions
CI / Run script/clang-tidy for ESP8266 (push) Blocked by required conditions
CI / Component test (push) Blocked by required conditions
CI / Split components for testing into 20 groups maximum (push) Blocked by required conditions
CI / Test split components (push) Blocked by required conditions
CI / CI Status (push) Blocked by required conditions
YAML lint / yamllint (push) Has been cancelled
Some checks failed
CI / Run script/ci-custom (push) Blocked by required conditions
CI / Check pylint (push) Blocked by required conditions
CI / Check pyupgrade (push) Blocked by required conditions
CI / list-components (push) Blocked by required conditions
CI / Create common environment (push) Waiting to run
CI / Check black (push) Blocked by required conditions
CI / Check flake8 (push) Blocked by required conditions
CI / Run pytest (push) Blocked by required conditions
CI / Check clang-format (push) Blocked by required conditions
CI / Run script/clang-tidy for ESP32 Arduino 1/4 (push) Blocked by required conditions
CI / Run script/clang-tidy for ESP32 Arduino 2/4 (push) Blocked by required conditions
CI / Run script/clang-tidy for ESP32 Arduino 3/4 (push) Blocked by required conditions
CI / Run script/clang-tidy for ESP32 Arduino 4/4 (push) Blocked by required conditions
CI / Run script/clang-tidy for ESP32 IDF (push) Blocked by required conditions
CI / Run script/clang-tidy for ESP8266 (push) Blocked by required conditions
CI / Component test (push) Blocked by required conditions
CI / Split components for testing into 20 groups maximum (push) Blocked by required conditions
CI / Test split components (push) Blocked by required conditions
CI / CI Status (push) Blocked by required conditions
YAML lint / yamllint (push) Has been cancelled
This commit is contained in:
parent
8bbe4efded
commit
ef6ccddc0d
3 changed files with 17 additions and 0 deletions
|
@ -4,6 +4,9 @@
|
||||||
#ifdef USE_BINARY_SENSOR
|
#ifdef USE_BINARY_SENSOR
|
||||||
#include "esphome/components/binary_sensor/binary_sensor.h"
|
#include "esphome/components/binary_sensor/binary_sensor.h"
|
||||||
#endif // USE_BINARY_SENSOR
|
#endif // USE_BINARY_SENSOR
|
||||||
|
#ifdef USE_LVGL_IMAGE
|
||||||
|
#include "esphome/components/image/image.h"
|
||||||
|
#endif // USE_LVGL_IMAGE
|
||||||
#ifdef USE_LVGL_ROTARY_ENCODER
|
#ifdef USE_LVGL_ROTARY_ENCODER
|
||||||
#include "esphome/components/rotary_encoder/rotary_encoder.h"
|
#include "esphome/components/rotary_encoder/rotary_encoder.h"
|
||||||
#endif // USE_LVGL_ROTARY_ENCODER
|
#endif // USE_LVGL_ROTARY_ENCODER
|
||||||
|
@ -47,6 +50,14 @@ static const display::ColorBitness LV_BITNESS = display::ColorBitness::COLOR_BIT
|
||||||
static const display::ColorBitness LV_BITNESS = display::ColorBitness::COLOR_BITNESS_332;
|
static const display::ColorBitness LV_BITNESS = display::ColorBitness::COLOR_BITNESS_332;
|
||||||
#endif // LV_COLOR_DEPTH
|
#endif // LV_COLOR_DEPTH
|
||||||
|
|
||||||
|
#ifdef USE_LVGL_IMAGE
|
||||||
|
// Shortcut / overload, so that the source of an image can easily be updated
|
||||||
|
// from within a lambda.
|
||||||
|
inline void lv_img_set_src(lv_obj_t *obj, esphome::image::Image *image) {
|
||||||
|
lv_img_set_src(obj, image->get_lv_img_dsc());
|
||||||
|
}
|
||||||
|
#endif // USE_LVGL_IMAGE
|
||||||
|
|
||||||
// Parent class for things that wrap an LVGL object
|
// Parent class for things that wrap an LVGL object
|
||||||
class LvCompound {
|
class LvCompound {
|
||||||
public:
|
public:
|
||||||
|
|
|
@ -127,6 +127,11 @@ binary_sensor:
|
||||||
- platform: lvgl
|
- platform: lvgl
|
||||||
name: LVGL checkbox
|
name: LVGL checkbox
|
||||||
widget: checkbox_id
|
widget: checkbox_id
|
||||||
|
on_state:
|
||||||
|
then:
|
||||||
|
- lvgl.image.update:
|
||||||
|
id: lv_image
|
||||||
|
src: !lambda if (x) return id(cat_image); else return id(dog_image);
|
||||||
|
|
||||||
wifi:
|
wifi:
|
||||||
ssid: SSID
|
ssid: SSID
|
||||||
|
|
|
@ -419,6 +419,7 @@ lvgl:
|
||||||
spin_time: 2s
|
spin_time: 2s
|
||||||
align: left_mid
|
align: left_mid
|
||||||
- image:
|
- image:
|
||||||
|
id: lv_image
|
||||||
src: cat_image
|
src: cat_image
|
||||||
align: top_left
|
align: top_left
|
||||||
y: 50
|
y: 50
|
||||||
|
|
Loading…
Reference in a new issue