summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichele Bini <michele.bini@gmail.com>2022-03-31 07:05:36 (GMT)
committerMichele Bini <michele.bini@gmail.com>2022-03-31 07:05:36 (GMT)
commit1a166673fbbf12cfc3f047afe0305131b9b96e39 (patch)
treedcbac8e2b7f4c12ef5b35ece40e421e2cf42ae80
parent8a0f738a027b758f253330d7171fd28ffe4f6162 (diff)
parentd081bc82fa01b5ecb373671d38fa88397c49a235 (diff)
Merge ../InfiniSim/InfiniTime into semireduxsemiredux
-rw-r--r--src/displayapp/fonts/neofont.c9
-rw-r--r--src/displayapp/screens/Symbols.h11
-rw-r--r--src/displayapp/screens/WatchFaceDigital.cpp149
-rw-r--r--src/displayapp/screens/WatchFaceDigital.h4
4 files changed, 117 insertions, 56 deletions
diff --git a/src/displayapp/fonts/neofont.c b/src/displayapp/fonts/neofont.c
index b1abad4..db2363a 100644
--- a/src/displayapp/fonts/neofont.c
+++ b/src/displayapp/fonts/neofont.c
@@ -346,7 +346,8 @@ static bool neofont0mono_glyph_dsc_cb(const lv_font_t * font, lv_font_glyph_dsc_
/* Get the bitmap of `unicode_letter` from `font`. */
static const uint8_t * neofont0mono_glyph_bitmap_cb(const lv_font_t * font, uint32_t unicode_letter)
{
- static const uint8_t spc[2] = {0,0};
+ static const uint8_t spc[] = { 0, 0 };
+ static uint8_t custom[2];
/* Your code here */
// /* The bitmap should be a continuous bitstream where
@@ -374,6 +375,12 @@ static const uint8_t * neofont0mono_glyph_bitmap_cb(const lv_font_t * font, uint
case 0xB0:
return glyphs[sizeof(glyphs)/sizeof(glyphs[0])-1];
}
+
+ if ((0xF0000 < unicode_letter) && (unicode_letter < 0xF7FFF)) {
+ custom[0] = unicode_letter;
+ custom[1] = (unicode_letter >> 7);
+ return custom;
+ }
return glyphs[sizeof(glyphs)/sizeof(glyphs[0])-2];
}
diff --git a/src/displayapp/screens/Symbols.h b/src/displayapp/screens/Symbols.h
index 928bcd7..63f3778 100644
--- a/src/displayapp/screens/Symbols.h
+++ b/src/displayapp/screens/Symbols.h
@@ -10,7 +10,16 @@ namespace Pinetime {
static constexpr const char* batteryThreeQuarter = "\xEF\x89\x81";
static constexpr const char* batteryHalf = "\xEF\x89\x82";
static constexpr const char* batteryOneQuarter = "\xEF\x89\x83";
- static constexpr const char* heartBeat = "\xEF\x88\x9E";
+ static constexpr const char* heartBeat =
+ // Standard: "\xEF\x88\x9E"
+ // For neofont:
+ // Layout for 3-byte codes: 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
+ // U+F0000: 11110011 10110000 000000 000000
+ // Neofont glyph: 11110011 10110zzz zzzzyy yyyyyy
+ // CDD DEEEAA ABBBCC
+ // \xF3 \xB[0-7] \x[8-B]. \x[8-B].
+ "\xF3\xB5\x80\x97"
+ ;
static constexpr const char* bluetoothFull = "\xEF\x8A\x93";
static constexpr const char* bluetooth = "\xEF\x8A\x94";
static constexpr const char* plug = "\xEF\x87\xA6";
diff --git a/src/displayapp/screens/WatchFaceDigital.cpp b/src/displayapp/screens/WatchFaceDigital.cpp
index 9bf3541..44af905 100644
--- a/src/displayapp/screens/WatchFaceDigital.cpp
+++ b/src/displayapp/screens/WatchFaceDigital.cpp
@@ -3,6 +3,7 @@
#include <date/date.h>
#include <lvgl/lvgl.h>
#include <cstdio>
+#include "drivers/Hrs3300.h"
#include "displayapp/screens/BatteryIcon.h"
#include "displayapp/screens/BleIcon.h"
#include "displayapp/screens/NotificationIcon.h"
@@ -16,6 +17,28 @@
#include "displayapp/fonts/neofont.h"
using namespace Pinetime::Applications::Screens;
+static inline uint8_t sprintuint4hex(uint8_t x) {
+ return x < 10 ? '0' + x : ('A' - 10) + x;
+}
+
+static void sprintuint32hex(char x[9], uint32_t v) {
+ uint16_t p = v;
+ uint16_t q = v >> 16;
+ uint8_t a = q >> 8;
+ x[0] = sprintuint4hex(a>>4);
+ x[1] = sprintuint4hex(a&0xf);
+ a = q;
+ x[2] = sprintuint4hex(a>>4);
+ x[3] = sprintuint4hex(a&0xf);
+ a = p >> 8;
+ x[4] = sprintuint4hex(a>>4);
+ x[5] = sprintuint4hex(a&0xf);
+ a = p;
+ x[6] = sprintuint4hex(a>>4);
+ x[7] = sprintuint4hex(a&0xf);
+ x[8] = 0;
+}
+
WatchFaceDigital::WatchFaceDigital(DisplayApp* app,
Controllers::DateTime& dateTimeController,
Controllers::Battery& batteryController,
@@ -36,10 +59,11 @@ WatchFaceDigital::WatchFaceDigital(DisplayApp* app,
heartRateController {heartRateController},
motionController {motionController} {
+ lv_obj_t *area1, *area2, *area3, *area4, *area5, *area6, *area7, *area8, *area9, *area10, *area11;
if (1) {
lv_obj_t * b1, * l1;
- b1 = lv_obj_create(lv_scr_act(), nullptr);
+ area3 = b1 = lv_obj_create(lv_scr_act(), nullptr);
lv_obj_set_style_local_bg_color(b1, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x000099));
lv_obj_set_style_local_radius(b1, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, 0);
lv_obj_set_size(b1, 96, 48);
@@ -49,7 +73,7 @@ WatchFaceDigital::WatchFaceDigital(DisplayApp* app,
lv_obj_set_style_local_text_color(l1, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x000000));
lv_obj_align(l1, b1, LV_ALIGN_IN_TOP_MID, 0, 0);
- b1 = lv_obj_create(lv_scr_act(), nullptr);
+ area6 = b1 = lv_obj_create(lv_scr_act(), nullptr);
lv_obj_set_style_local_bg_color(b1, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x444488));
lv_obj_set_style_local_text_color(b1, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x3b5d6e));
lv_obj_set_size(b1, 96, 48);
@@ -59,7 +83,7 @@ WatchFaceDigital::WatchFaceDigital(DisplayApp* app,
lv_obj_set_style_local_text_color(l1, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x000000));
lv_obj_align(l1, b1, LV_ALIGN_IN_TOP_MID, 0, 0);
- b1 = lv_obj_create(lv_scr_act(), nullptr);
+ area1 = b1 = lv_obj_create(lv_scr_act(), nullptr);
lv_obj_set_style_local_bg_color(b1, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x444488));
lv_obj_set_style_local_radius(b1, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, 0);
lv_obj_set_size(b1, 96, 48);
@@ -69,7 +93,7 @@ WatchFaceDigital::WatchFaceDigital(DisplayApp* app,
lv_obj_set_style_local_text_color(l1, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x000000));
lv_obj_align(l1, b1, LV_ALIGN_IN_TOP_MID, 0, 0);
- b1 = lv_obj_create(lv_scr_act(), nullptr);
+ area4 = b1 = lv_obj_create(lv_scr_act(), nullptr);
lv_obj_set_style_local_bg_color(b1, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x444488));
lv_obj_set_style_local_radius(b1, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, 0);
lv_obj_set_size(b1, 48, 48);
@@ -79,7 +103,7 @@ WatchFaceDigital::WatchFaceDigital(DisplayApp* app,
lv_obj_set_style_local_text_color(l1, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x000000));
lv_obj_align(l1, b1, LV_ALIGN_IN_TOP_MID, 0, 0);
- b1 = lv_obj_create(lv_scr_act(), nullptr);
+ area2 = b1 = lv_obj_create(lv_scr_act(), nullptr);
lv_obj_set_style_local_bg_color(b1, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x336677));
lv_obj_set_size(b1, 48, 48);
lv_obj_align(b1, lv_scr_act(), LV_ALIGN_IN_TOP_LEFT, 96, 0);
@@ -88,7 +112,7 @@ WatchFaceDigital::WatchFaceDigital(DisplayApp* app,
lv_obj_set_style_local_text_color(l1, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x000000));
lv_obj_align(l1, b1, LV_ALIGN_IN_TOP_MID, 0, 0);
- b1 = lv_obj_create(lv_scr_act(), nullptr);
+ area5 = b1 = lv_obj_create(lv_scr_act(), nullptr);
lv_obj_set_style_local_bg_color(b1, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x336677));
lv_obj_set_style_local_text_color(b1, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x3b5d6e));
lv_obj_set_size(b1, 96, 48);
@@ -98,7 +122,7 @@ WatchFaceDigital::WatchFaceDigital(DisplayApp* app,
lv_obj_set_style_local_text_color(l1, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x000000));
lv_obj_align(l1, b1, LV_ALIGN_IN_TOP_MID, 0, 0);
- b1 = lv_obj_create(lv_scr_act(), nullptr);
+ area7 = b1 = lv_obj_create(lv_scr_act(), nullptr);
lv_obj_set_style_local_bg_color(b1, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x000099));
lv_obj_set_style_local_radius(b1, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, 0);
lv_obj_set_size(b1, 240, 48);
@@ -108,17 +132,7 @@ WatchFaceDigital::WatchFaceDigital(DisplayApp* app,
lv_obj_set_style_local_text_color(l1, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x000000));
lv_obj_align(l1, b1, LV_ALIGN_IN_TOP_MID, 0, 0);
- b1 = lv_obj_create(lv_scr_act(), nullptr);
- lv_obj_set_style_local_bg_color(b1, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x000099));
- lv_obj_set_style_local_radius(b1, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, 0);
- lv_obj_set_size(b1, 96, 48);
- lv_obj_align(b1, lv_scr_act(), LV_ALIGN_IN_TOP_LEFT, 0, 192);
- l1 = lv_label_create(lv_scr_act(), nullptr);
- lv_label_set_text_static(l1, "11");
- lv_obj_set_style_local_text_color(l1, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x000000));
- lv_obj_align(l1, b1, LV_ALIGN_IN_TOP_MID, 0, 0);
-
- b1 = lv_obj_create(lv_scr_act(), nullptr);
+ area8 = b1 = lv_obj_create(lv_scr_act(), nullptr);
lv_obj_set_style_local_bg_color(b1, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x444488));
lv_obj_set_style_local_text_color(b1, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x3b5d6e));
lv_obj_set_size(b1, 96, 48);
@@ -128,18 +142,8 @@ WatchFaceDigital::WatchFaceDigital(DisplayApp* app,
lv_obj_set_style_local_text_color(l1, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x000000));
lv_obj_align(l1, b1, LV_ALIGN_IN_TOP_MID, 0, 0);
- b1 = lv_obj_create(lv_scr_act(), nullptr);
- lv_obj_set_style_local_bg_color(b1, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x444488));
- lv_obj_set_style_local_radius(b1, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, 0);
- lv_obj_set_size(b1, 96, 48);
- lv_obj_align(b1, lv_scr_act(), LV_ALIGN_IN_TOP_LEFT, 144, 192);
- l1 = lv_label_create(lv_scr_act(), nullptr);
- lv_label_set_text_static(l1, "13");
- lv_obj_set_style_local_text_color(l1, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x000000));
- lv_obj_align(l1, b1, LV_ALIGN_IN_TOP_MID, 0, 0);
-
- b1 = lv_obj_create(lv_scr_act(), nullptr);
- lv_obj_set_style_local_bg_color(b1, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x444488));
+ area10 = b1 = lv_obj_create(lv_scr_act(), nullptr);
+ lv_obj_set_style_local_bg_color(b1, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x222277));
lv_obj_set_style_local_radius(b1, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, 0);
lv_obj_set_size(b1, 48, 48);
lv_obj_align(b1, lv_scr_act(), LV_ALIGN_IN_TOP_LEFT, 192, 144);
@@ -148,17 +152,17 @@ WatchFaceDigital::WatchFaceDigital(DisplayApp* app,
lv_obj_set_style_local_text_color(l1, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x000000));
lv_obj_align(l1, b1, LV_ALIGN_IN_TOP_MID, 0, 0);
- b1 = lv_obj_create(lv_scr_act(), nullptr);
- lv_obj_set_style_local_bg_color(b1, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x336677));
- lv_obj_set_style_local_text_color(b1, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x3b5d6e));
- lv_obj_set_size(b1, 48, 48);
- lv_obj_align(b1, lv_scr_act(), LV_ALIGN_IN_TOP_LEFT, 96, 192);
+ area11 = b1 = lv_obj_create(lv_scr_act(), nullptr);
+ lv_obj_set_style_local_bg_color(b1, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x222277));
+ lv_obj_set_style_local_radius(b1, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, 0);
+ lv_obj_set_size(b1, 240, 48);
+ lv_obj_align(b1, lv_scr_act(), LV_ALIGN_IN_TOP_LEFT, 0, 192);
l1 = lv_label_create(lv_scr_act(), nullptr);
- lv_label_set_text_static(l1, "12");
+ lv_label_set_text_static(l1, "11");
lv_obj_set_style_local_text_color(l1, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x000000));
- lv_obj_align(l1, b1, LV_ALIGN_IN_TOP_MID, 0, 0);
+ lv_obj_align(l1, b1, LV_ALIGN_IN_RIGHT_MID, 0, 0);
- b1 = lv_obj_create(lv_scr_act(), nullptr);
+ area9 = b1 = lv_obj_create(lv_scr_act(), nullptr);
lv_obj_set_style_local_bg_color(b1, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x336677));
lv_obj_set_style_local_text_color(b1, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x3b5d6e));
lv_obj_set_size(b1, 96, 48);
@@ -171,7 +175,7 @@ WatchFaceDigital::WatchFaceDigital(DisplayApp* app,
batteryIcon = lv_label_create(lv_scr_act(), nullptr);
lv_label_set_text_fmt(batteryIcon, "B##%%");
- lv_obj_set_style_local_text_font(batteryIcon, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &neofont1);
+ lv_obj_set_style_local_text_font(batteryIcon, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &neofont2);
lv_obj_align(batteryIcon, lv_scr_act(), LV_ALIGN_IN_TOP_RIGHT, 0, 0);
batteryPlug = lv_label_create(lv_scr_act(), nullptr);
@@ -189,11 +193,11 @@ WatchFaceDigital::WatchFaceDigital(DisplayApp* app,
lv_label_set_text_static(notificationIcon, NotificationIcon::GetIcon(false));
lv_obj_align(notificationIcon, nullptr, LV_ALIGN_IN_TOP_LEFT, 0, 0);
- label_temp = lv_label_create(lv_scr_act(), nullptr);
- lv_obj_set_style_local_text_color( label_temp, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x222222));
+ label_temp = lv_label_create(area3, nullptr);
+ lv_obj_set_style_local_text_color( label_temp, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0xCCCCCC));
lv_obj_set_style_local_text_font( label_temp, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &neofont15);
lv_label_set_text_fmt(label_temp, "??°C");
- lv_obj_align(label_temp, lv_scr_act(), LV_ALIGN_CENTER, 75, -75);
+ lv_obj_align(label_temp, nullptr, LV_ALIGN_IN_BOTTOM_LEFT, 0, 0);
label_temp = lv_label_create(lv_scr_act(), nullptr);
lv_obj_align(label_temp, lv_scr_act(), LV_ALIGN_CENTER, 0, -60);
@@ -217,19 +221,19 @@ WatchFaceDigital::WatchFaceDigital(DisplayApp* app,
#else
label_time_sec = lv_label_create(lv_scr_act(), nullptr);
// lv_obj_set_style_local_text_color(label_time_sec, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0xFFFFFF));
- lv_obj_set_style_local_text_font(label_time_sec, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &neofont15);
+ lv_obj_set_style_local_text_font(label_time_sec, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &neofont2);
lv_label_set_text_fmt(label_time_sec, ":??");
lv_obj_align(label_time_sec, label_time, LV_ALIGN_OUT_RIGHT_BOTTOM, 0, 0); // -2
#endif
label_time_pm = lv_label_create(lv_scr_act(), nullptr);
- lv_label_set_text_static(label_time_pm, "PM");
+ lv_label_set_text_static(label_time_pm, "P");
lv_obj_set_style_local_text_font(label_time_pm, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &neofont1);
lv_obj_align(label_time_pm, label_time, LV_ALIGN_OUT_LEFT_TOP, 0, 0);
- lv_obj_set_hidden(label_time_pm, 1);
+ // lv_obj_set_hidden(label_time_pm, 1);
label_date_dd = lv_label_create(lv_scr_act(), nullptr);
- lv_obj_set_style_local_text_color(label_date_dd, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x999999));
+ // lv_obj_set_style_local_text_color(label_date_dd, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x999999));
lv_label_set_text_fmt(label_date_dd, "DD");
lv_obj_set_style_local_text_font(label_date_dd, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &neofont2);
lv_obj_align(label_date_dd, label_time, LV_ALIGN_OUT_TOP_MID, 0, 0);
@@ -237,21 +241,21 @@ WatchFaceDigital::WatchFaceDigital(DisplayApp* app,
lv_label_set_align(label_date_dd, LV_LABEL_ALIGN_CENTER);
label_date_dow = lv_label_create(lv_scr_act(), nullptr);
- lv_obj_set_style_local_text_color(label_date_dow, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x999999));
+ // lv_obj_set_style_local_text_color(label_date_dow, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x999999));
lv_label_set_text_fmt(label_date_dow, "DOW ");
lv_obj_set_style_local_text_font(label_date_dow, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &neofont2);
lv_obj_align(label_date_dow, label_date_dd, LV_ALIGN_OUT_LEFT_MID, 0, 0);
label_date_mmm = lv_label_create(lv_scr_act(), nullptr);
- lv_obj_set_style_local_text_color(label_date_mmm, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x999999));
+ // lv_obj_set_style_local_text_color(label_date_mmm, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x999999));
lv_label_set_text_fmt(label_date_mmm, "MMM");
lv_obj_set_style_local_text_font(label_date_mmm, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &neofont15);
lv_obj_align(label_date_mmm, label_date_dd, LV_ALIGN_OUT_TOP_MID, 0, 0);
label_date_yyyy = lv_label_create(lv_scr_act(), nullptr);
- lv_obj_set_style_local_text_color(label_date_yyyy, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x999999));
+ // lv_obj_set_style_local_text_color(label_date_yyyy, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x999999));
lv_label_set_text_fmt(label_date_yyyy, "YYYY");
- lv_obj_set_style_local_text_font(label_date_yyyy, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &neofont1);
+ lv_obj_set_style_local_text_font(label_date_yyyy, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &neofont0);
lv_obj_align(label_date_yyyy, label_date_mmm, LV_ALIGN_OUT_TOP_MID, 0, 0);
lv_label_set_long_mode(label_date_yyyy, LV_LABEL_LONG_CROP);
lv_label_set_align(label_date_yyyy, LV_LABEL_ALIGN_CENTER);
@@ -264,16 +268,45 @@ WatchFaceDigital::WatchFaceDigital(DisplayApp* app,
lv_label_set_text_static(backgroundLabel, "");
heartbeatIcon = lv_label_create(lv_scr_act(), nullptr);
- lv_label_set_text_static(heartbeatIcon, Symbols::heartBeat);
lv_obj_set_style_local_text_color(heartbeatIcon, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0xCE1B1B));
- lv_obj_align(heartbeatIcon, lv_scr_act(), LV_ALIGN_IN_BOTTOM_LEFT, 0, 0);
+ lv_obj_set_style_local_text_font(heartbeatIcon, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &neofont2);
+ lv_label_set_text_static(heartbeatIcon, Symbols::heartBeat);
+ lv_obj_align(heartbeatIcon, area8, LV_ALIGN_IN_BOTTOM_LEFT, 0, 0);
heartbeatValue = lv_label_create(lv_scr_act(), nullptr);
lv_obj_set_style_local_text_color(heartbeatValue, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0xCE1B1B));
- lv_label_set_text_static(heartbeatValue, "");
- lv_obj_align(heartbeatValue, heartbeatIcon, LV_ALIGN_OUT_RIGHT_MID, 5, 0);
+ lv_obj_set_style_local_text_font(heartbeatValue, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &neofont2);
+ lv_label_set_text_static(heartbeatValue, "???");
+ lv_obj_align(heartbeatValue, heartbeatIcon, LV_ALIGN_OUT_RIGHT_MID, 0, 0);
+ lv_label_set_align(heartbeatValue, LV_LABEL_ALIGN_RIGHT);
+
+ sprintuint32hex(hrs_label_text, 0x33);
+ hrsValue = lv_label_create(lv_scr_act(), nullptr);
+ lv_obj_set_style_local_text_color( hrsValue, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0xFFFFFF));
+ lv_obj_set_style_local_text_font( hrsValue, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &neofont15);
+ lv_obj_align(hrsValue, heartbeatValue, LV_ALIGN_OUT_BOTTOM_LEFT, 0, 0);
+ lv_label_set_text_static(hrsValue, hrs_label_text);
+
+ sprintuint32hex(als_label_text, 0x15617811);
+ alsValue = lv_label_create(lv_scr_act(), nullptr);
+ lv_obj_set_style_local_text_color( alsValue, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0xFFFFAA));
+ lv_obj_set_style_local_text_font( alsValue, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &neofont15);
+ lv_obj_align(alsValue, hrsValue, LV_ALIGN_OUT_BOTTOM_LEFT, 0, 0);
+ lv_label_set_text_static(alsValue, als_label_text);
taskRefresh = lv_task_create(RefreshTaskCallback, LV_DISP_DEF_REFR_PERIOD, LV_TASK_PRIO_MID, this);
+
+ lv_obj_del(area1);
+ lv_obj_del(area2);
+ lv_obj_del(area4);
+ lv_obj_del(area5);
+ lv_obj_del(area6);
+ lv_obj_del(area7);
+ lv_obj_del(area8);
+ lv_obj_del(area9);
+ lv_obj_del(area10);
+ lv_obj_del(area11);
+
Refresh();
}
@@ -413,4 +446,12 @@ void WatchFaceDigital::Refresh() {
lv_obj_realign(heartbeatIcon);
lv_obj_realign(heartbeatValue);
}
+
+ {
+ auto &sensor = systemTask.heartRateSensor;
+ sprintuint32hex(als_label_text, sensor.ReadHrs());
+ sprintuint32hex(hrs_label_text, sensor.ReadAls());
+ lv_label_set_text_static(hrsValue, hrs_label_text);
+ lv_label_set_text_static(alsValue, als_label_text);
+ }
}
diff --git a/src/displayapp/screens/WatchFaceDigital.h b/src/displayapp/screens/WatchFaceDigital.h
index 62f4bcf..8d5bc8d 100644
--- a/src/displayapp/screens/WatchFaceDigital.h
+++ b/src/displayapp/screens/WatchFaceDigital.h
@@ -49,6 +49,8 @@ namespace Pinetime {
uint8_t currentDay = 0;
char hhmm_label_text[6] = { '?', '?', ':', '?', '?', 0 };
+ char hrs_label_text[9] = { '?', 0,0,0,0, 0,0,0,0 };
+ char als_label_text[9] = { '?', 0,0,0,0, 0,0,0,0 };
DirtyValue<uint8_t> batteryPercentRemaining {};
DirtyValue<bool> powerPresent {};
@@ -75,6 +77,8 @@ namespace Pinetime {
lv_obj_t* batteryPlug;
lv_obj_t* heartbeatIcon;
lv_obj_t* heartbeatValue;
+ lv_obj_t* hrsValue;
+ lv_obj_t* alsValue;
lv_obj_t* stepIcon;
lv_obj_t* stepValue;
lv_obj_t* notificationIcon;