From 62540e8443d79a89c561515b178ff23fd3e12c0f Mon Sep 17 00:00:00 2001 From: fvanroie <15969459+fvanroie@users.noreply.github.com> Date: Tue, 18 May 2021 04:20:05 +0200 Subject: [PATCH] Add static_text for labels --- src/hasp/hasp_attribute.h | 6 ++++++ src/hasp/hasp_attribute_helper.h | 36 +++++++++++++++++++++----------- 2 files changed, 30 insertions(+), 12 deletions(-) diff --git a/src/hasp/hasp_attribute.h b/src/hasp/hasp_attribute.h index 0e8db12a..792d1fed 100644 --- a/src/hasp/hasp_attribute.h +++ b/src/hasp/hasp_attribute.h @@ -451,4 +451,10 @@ _HASP_ATTRIBUTE(SCALE_END_LINE_WIDTH, scale_end_line_width, lv_style_int_t) #define ATTR_OBJID 41010 #define ATTR_OBJ 53623 +#define ATTR_TEXT_MAC 38107 +#define ATTR_TEXT_IP 41785 +#define ATTR_TEXT_HOSTNAME 10125 +#define ATTR_TEXT_MODEL 54561 +#define ATTR_TEXT_VERSION 60178 + #endif diff --git a/src/hasp/hasp_attribute_helper.h b/src/hasp/hasp_attribute_helper.h index 15379023..e7df8cd2 100644 --- a/src/hasp/hasp_attribute_helper.h +++ b/src/hasp/hasp_attribute_helper.h @@ -138,24 +138,36 @@ static const char* my_label_get_text(const lv_obj_t* label) static void my_label_set_text(lv_obj_t* label, const char* text) { if(text[0] == '%') { - uint16_t hash = Parser::get_sdbm(text); - size_t len = strlen(text); - const char* static_text; + uint16_t hash = Parser::get_sdbm(text); + size_t len = strlen(text); + const char* static_text = NULL; switch(hash) { - - case 10125: - static_text = haspDevice.get_hostname(); + case ATTR_TEXT_MAC: + case ATTR_TEXT_IP: + if(len == 4) break; + break; + + case ATTR_TEXT_HOSTNAME: + if(len == 10) static_text = haspDevice.get_hostname(); + break; + + case ATTR_TEXT_MODEL: + if(len == 7) static_text = haspDevice.get_model(); + break; + + case ATTR_TEXT_VERSION: + if(len == 9) static_text = haspDevice.get_version(); break; - default: - lv_label_set_text(label, text); - return; } - lv_label_set_text_static(label, static_text); - } else { - lv_label_set_text(label, text); + if(static_text) { + lv_label_set_text_static(label, static_text); + return; + } } + + lv_label_set_text(label, text); } // OK