mirror of
https://github.com/esphome/esphome.git
synced 2024-11-21 11:37:27 +01:00
[lvgl] Allow esphome::Image in lambda to update image source directly (#7624)
This commit is contained in:
parent
8bbe4efded
commit
ef6ccddc0d
@ -4,6 +4,9 @@
|
||||
#ifdef USE_BINARY_SENSOR
|
||||
#include "esphome/components/binary_sensor/binary_sensor.h"
|
||||
#endif // USE_BINARY_SENSOR
|
||||
#ifdef USE_LVGL_IMAGE
|
||||
#include "esphome/components/image/image.h"
|
||||
#endif // USE_LVGL_IMAGE
|
||||
#ifdef USE_LVGL_ROTARY_ENCODER
|
||||
#include "esphome/components/rotary_encoder/rotary_encoder.h"
|
||||
#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;
|
||||
#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
|
||||
class LvCompound {
|
||||
public:
|
||||
|
@ -127,6 +127,11 @@ binary_sensor:
|
||||
- platform: lvgl
|
||||
name: LVGL checkbox
|
||||
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:
|
||||
ssid: SSID
|
||||
|
@ -419,6 +419,7 @@ lvgl:
|
||||
spin_time: 2s
|
||||
align: left_mid
|
||||
- image:
|
||||
id: lv_image
|
||||
src: cat_image
|
||||
align: top_left
|
||||
y: 50
|
||||
|
Loading…
Reference in New Issue
Block a user