From ae705f23a5a818551fb7c432a0a1a7a2f29db618 Mon Sep 17 00:00:00 2001 From: Diego Miguel Date: Sat, 26 Feb 2022 20:32:31 +0100 Subject: Implement watchface Infineat --- src/displayapp/screens/WatchFaceInfineat.cpp | 466 +++++++++++++++++++++++++++ 1 file changed, 466 insertions(+) create mode 100644 src/displayapp/screens/WatchFaceInfineat.cpp (limited to 'src/displayapp/screens/WatchFaceInfineat.cpp') diff --git a/src/displayapp/screens/WatchFaceInfineat.cpp b/src/displayapp/screens/WatchFaceInfineat.cpp new file mode 100644 index 00000000..4d9ec1e6 --- /dev/null +++ b/src/displayapp/screens/WatchFaceInfineat.cpp @@ -0,0 +1,466 @@ +#include "displayapp/screens/WatchFaceInfineat.h" + +#include +#include +#include +#include "displayapp/screens/Symbols.h" +#include "displayapp/screens/BleIcon.h" +#include "components/settings/Settings.h" +#include "components/ble/NotificationManager.h" +#include "components/ble/BleController.h" +#include "components/motion/MotionController.h" + +using namespace Pinetime::Applications::Screens; + +namespace { + void event_handler(lv_obj_t* obj, lv_event_t event) { + auto* screen = static_cast(obj->user_data); + screen->UpdateSelected(obj, event); + } +} + +LV_IMG_DECLARE(logo_pine); + +WatchFaceInfineat::WatchFaceInfineat(DisplayApp* app, + Controllers::DateTime& dateTimeController, + Controllers::Ble& bleController, + Controllers::NotificationManager& notificationManager, + Controllers::Settings& settingsController, + Controllers::MotionController& motionController) + : Screen(app), + currentDateTime {{}}, + dateTimeController {dateTimeController}, + bleController {bleController}, + notificationManager {notificationManager}, + settingsController {settingsController}, + motionController {motionController} { + + // Black background covering the whole screen + background = lv_obj_create(lv_scr_act(), nullptr); + lv_obj_set_style_local_bg_color(background, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_BLACK); + lv_obj_set_size(background, 240, 240); + lv_obj_align(background, lv_scr_act(), LV_ALIGN_IN_TOP_LEFT, 0, 0); + + // Side Cover + line0 = lv_line_create(lv_scr_act(), nullptr); + line1 = lv_line_create(lv_scr_act(), nullptr); + line2 = lv_line_create(lv_scr_act(), nullptr); + line3 = lv_line_create(lv_scr_act(), nullptr); + line4 = lv_line_create(lv_scr_act(), nullptr); + line5 = lv_line_create(lv_scr_act(), nullptr); + line6 = lv_line_create(lv_scr_act(), nullptr); + line7 = lv_line_create(lv_scr_act(), nullptr); + line8 = lv_line_create(lv_scr_act(), nullptr); + + lv_style_init(&line0Style); + lv_style_set_line_width(&line0Style, LV_STATE_DEFAULT, 18); + lv_style_set_line_color(&line0Style, LV_STATE_DEFAULT, + lv_color_hex(infineatColors.orange[settingsController.GetInfineatColorIndex()*nLines])); + lv_obj_add_style(line0, LV_LINE_PART_MAIN, &line0Style); + line0Points[0] = {30, 25}; + line0Points[1] = {68, -8}; + lv_line_set_points(line0, line0Points, 2); + + lv_style_set_line_width(&line1Style, LV_STATE_DEFAULT, 15); + lv_style_set_line_color(&line1Style, LV_STATE_DEFAULT, + lv_color_hex(infineatColors.orange[settingsController.GetInfineatColorIndex()*nLines + 1])); + lv_obj_add_style(line1, LV_LINE_PART_MAIN, &line1Style); + line1Points[0] = {26, 167}; + line1Points[1] = {43, 216}; + lv_line_set_points(line1, line1Points, 2); + + lv_style_init(&line2Style); + lv_style_set_line_width(&line2Style, LV_STATE_DEFAULT, 14); + lv_style_set_line_color(&line2Style, LV_STATE_DEFAULT, + lv_color_hex(infineatColors.orange[settingsController.GetInfineatColorIndex()*nLines + 2])); + lv_obj_add_style(line2, LV_LINE_PART_MAIN, &line2Style); + line2Points[0] = {27, 40}; + line2Points[1] = {27, 196}; + lv_line_set_points(line2, line2Points, 2); + + lv_style_init(&line3Style); + lv_style_set_line_width(&line3Style, LV_STATE_DEFAULT, 22); + lv_style_set_line_color(&line3Style, LV_STATE_DEFAULT, + lv_color_hex(infineatColors.orange[settingsController.GetInfineatColorIndex()*nLines + 3])); + lv_obj_add_style(line3, LV_LINE_PART_MAIN, &line3Style); + line3Points[0] = {12, 182}; + line3Points[1] = {65, 249}; + lv_line_set_points(line3, line3Points, 2); + + lv_style_init(&line4Style); + lv_style_set_line_width(&line4Style, LV_STATE_DEFAULT, 20); + lv_style_set_line_color(&line4Style, LV_STATE_DEFAULT, + lv_color_hex(infineatColors.orange[settingsController.GetInfineatColorIndex()*nLines + 4])); + lv_obj_add_style(line4, LV_LINE_PART_MAIN, &line4Style); + line4Points[0] = {17, 99}; + line4Points[1] = {17, 144}; + lv_line_set_points(line4, line4Points, 2); + + lv_style_init(&line5Style); + lv_style_set_line_width(&line5Style, LV_STATE_DEFAULT, 18); + lv_style_set_line_color(&line5Style, LV_STATE_DEFAULT, + lv_color_hex(infineatColors.orange[settingsController.GetInfineatColorIndex()*nLines + 5])); + lv_obj_add_style(line5, LV_LINE_PART_MAIN, &line5Style); + line5Points[0] = {14, 81}; + line5Points[1] = {40, 127}; + lv_line_set_points(line5, line5Points, 2); + + lv_style_init(&line6Style); + lv_style_set_line_width(&line6Style, LV_STATE_DEFAULT, 18); + lv_style_set_line_color(&line6Style, LV_STATE_DEFAULT, + lv_color_hex(infineatColors.orange[settingsController.GetInfineatColorIndex()*nLines + 6])); + lv_obj_add_style(line6, LV_LINE_PART_MAIN, &line6Style); + line6Points[0] = {14, 163}; + line6Points[1] = {40, 118}; + lv_line_set_points(line6, line6Points, 2); + + lv_style_init(&line7Style); + lv_style_set_line_width(&line7Style, LV_STATE_DEFAULT, 52); + lv_style_set_line_color(&line7Style, LV_STATE_DEFAULT, + lv_color_hex(infineatColors.orange[settingsController.GetInfineatColorIndex()*nLines + 7])); + lv_obj_add_style(line7, LV_LINE_PART_MAIN, &line7Style); + line7Points[0] = {-20, 124}; + line7Points[1] = {25, -11}; + lv_line_set_points(line7, line7Points, 2); + + lv_style_init(&line8Style); + lv_style_set_line_width(&line8Style, LV_STATE_DEFAULT, 48); + lv_style_set_line_color(&line8Style, LV_STATE_DEFAULT, + lv_color_hex(infineatColors.orange[settingsController.GetInfineatColorIndex()*nLines + 8])); + lv_obj_add_style(line8, LV_LINE_PART_MAIN, &line8Style); + line8Points[0] = {-29, 89}; + line8Points[1] = {27, 254}; + lv_line_set_points(line8, line8Points, 2); + + logoPine = lv_img_create(lv_scr_act(), nullptr); + lv_img_set_src(logoPine, &logo_pine); + lv_obj_set_pos(logoPine, 15, 106); + + if(!settingsController.GetInfineatShowSideCover()) { + lv_obj_set_hidden(logoPine, true); + lv_obj_set_hidden(line0, true); + lv_obj_set_hidden(line1, true); + lv_obj_set_hidden(line2, true); + lv_obj_set_hidden(line3, true); + lv_obj_set_hidden(line4, true); + lv_obj_set_hidden(line5, true); + lv_obj_set_hidden(line6, true); + lv_obj_set_hidden(line7, true); + lv_obj_set_hidden(line8, true); + } + + notificationIcon = lv_obj_create(lv_scr_act(), nullptr); + lv_obj_set_style_local_bg_color(notificationIcon, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, + lv_color_hex(infineatColors.orange[settingsController.GetInfineatColorIndex()*nLines + 7])); + lv_obj_set_style_local_radius(notificationIcon, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE); + lv_obj_set_size(notificationIcon, 13, 13); + lv_obj_set_hidden(notificationIcon, true); + + labelHour = lv_label_create(lv_scr_act(), nullptr); + lv_obj_set_style_local_text_font(labelHour, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &bebas_neue_120); + lv_label_set_text(labelHour, "01"); + lv_obj_align(labelHour, lv_scr_act(), LV_ALIGN_IN_TOP_MID, 0, 5); + + labelMinutes = lv_label_create(lv_scr_act(), nullptr); + lv_obj_set_style_local_text_font(labelMinutes, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &bebas_neue_120); + lv_label_set_text(labelMinutes, "00"); + lv_obj_align(labelMinutes, lv_scr_act(), LV_ALIGN_IN_BOTTOM_MID, 0, -15); + + labelTimeAmPm = lv_label_create(lv_scr_act(), nullptr); + lv_obj_set_style_local_text_font(labelTimeAmPm, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &teko_28); + lv_label_set_text(labelTimeAmPm, ""); + + labelDate = lv_label_create(lv_scr_act(), nullptr); + lv_obj_set_style_local_text_color(labelDate, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x999999)); + lv_obj_set_style_local_text_font(labelDate, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &teko_28); + lv_obj_align(labelDate, lv_scr_act(), LV_ALIGN_IN_RIGHT_MID, -1, 0); + lv_label_set_text(labelDate, "Mon 01"); + + bleIcon = lv_label_create(lv_scr_act(), nullptr); + lv_obj_set_style_local_text_color(bleIcon, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x999999)); + lv_label_set_text(bleIcon, Symbols::bluetooth); + lv_obj_align(bleIcon, labelDate, LV_ALIGN_OUT_BOTTOM_MID, 0, 3); + + stepValue = lv_label_create(lv_scr_act(), nullptr); + lv_obj_set_style_local_text_color(stepValue, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x999999)); + lv_obj_set_style_local_text_font(stepValue, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &teko_28); + lv_obj_align(stepValue, lv_scr_act(), LV_ALIGN_IN_BOTTOM_RIGHT, 10, 0); + lv_label_set_text(stepValue, "0"); + + stepIcon = lv_label_create(lv_scr_act(), nullptr); + lv_obj_set_style_local_text_color(stepIcon, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x999999)); + lv_label_set_text(stepIcon, Symbols::shoe); + lv_obj_align(stepIcon, stepValue, LV_ALIGN_OUT_LEFT_MID, -5, 0); + + // Setting buttons + btnClose = lv_btn_create(lv_scr_act(), nullptr); + btnClose->user_data = this; + lv_obj_set_size(btnClose, 60, 60); + lv_obj_align(btnClose, lv_scr_act(), LV_ALIGN_CENTER, 0, -80); + lv_obj_set_style_local_bg_opa(btnClose, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_OPA_70); + lv_obj_set_style_local_value_str(btnClose, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, "X"); + lv_obj_set_event_cb(btnClose, event_handler); + lv_obj_set_hidden(btnClose, true); + + btnNextColor = lv_btn_create(lv_scr_act(), nullptr); + btnNextColor->user_data = this; + lv_obj_set_size(btnNextColor, 60, 60); + lv_obj_align(btnNextColor, lv_scr_act(), LV_ALIGN_IN_RIGHT_MID, -15, 0); + lv_obj_set_style_local_bg_opa(btnNextColor, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_OPA_70); + lv_obj_set_style_local_value_str(btnNextColor, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, ">"); + lv_obj_set_event_cb(btnNextColor, event_handler); + lv_obj_set_hidden(btnNextColor, true); + + btnPrevColor = lv_btn_create(lv_scr_act(), nullptr); + btnPrevColor->user_data = this; + lv_obj_set_size(btnPrevColor, 60, 60); + lv_obj_align(btnPrevColor, lv_scr_act(), LV_ALIGN_IN_LEFT_MID, 15, 0); + lv_obj_set_style_local_bg_opa(btnPrevColor, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_OPA_70); + lv_obj_set_style_local_value_str(btnPrevColor, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, "<"); + lv_obj_set_event_cb(btnPrevColor, event_handler); + lv_obj_set_hidden(btnPrevColor, true); + + btnToggleCover = lv_btn_create(lv_scr_act(), nullptr); + btnToggleCover->user_data = this; + lv_obj_set_size(btnToggleCover, 60, 60); + lv_obj_align(btnToggleCover, lv_scr_act(), LV_ALIGN_CENTER, 0, 80); + lv_obj_set_style_local_bg_opa(btnToggleCover, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_OPA_70); + const char* labelToggle = settingsController.GetInfineatShowSideCover() ? "ON" : "OFF"; + lv_obj_set_style_local_value_str(btnToggleCover, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, labelToggle); + lv_obj_set_event_cb(btnToggleCover, event_handler); + lv_obj_set_hidden(btnToggleCover, true); + + // Button to access the settings + btnSettings = lv_btn_create(lv_scr_act(), nullptr); + btnSettings->user_data = this; + lv_obj_set_size(btnSettings, 150, 150); + lv_obj_align(btnSettings, lv_scr_act(), LV_ALIGN_CENTER, 0, 0); + lv_obj_set_style_local_radius(btnSettings, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, 30); + lv_obj_set_style_local_bg_opa(btnSettings, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_OPA_70); + lv_obj_set_event_cb(btnSettings, event_handler); + labelBtnSettings = lv_label_create(btnSettings, nullptr); + lv_obj_set_style_local_text_font(labelBtnSettings, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &lv_font_sys_48); + lv_label_set_text_static(labelBtnSettings, Symbols::settings); + lv_obj_set_hidden(btnSettings, true); + + taskRefresh = lv_task_create(RefreshTaskCallback, LV_DISP_DEF_REFR_PERIOD, LV_TASK_PRIO_MID, this); + Refresh(); +} + +WatchFaceInfineat::~WatchFaceInfineat() { + lv_task_del(taskRefresh); + + lv_style_reset(&line0Style); + lv_style_reset(&line1Style); + lv_style_reset(&line2Style); + lv_style_reset(&line3Style); + lv_style_reset(&line4Style); + lv_style_reset(&line5Style); + lv_style_reset(&line6Style); + lv_style_reset(&line7Style); + lv_style_reset(&line8Style); + + lv_obj_clean(lv_scr_act()); +} + +bool WatchFaceInfineat::OnTouchEvent(Pinetime::Applications::TouchEvents event) { + if ((event == Pinetime::Applications::TouchEvents::LongTap) && lv_obj_get_hidden(btnSettings)) { + lv_obj_set_hidden(btnSettings, false); + savedTick = lv_tick_get(); + return true; + } + // Prevent screen from sleeping when double tapping with settings on + if ((event == Pinetime::Applications::TouchEvents::DoubleTap) && !lv_obj_get_hidden(btnClose)) { + return true; + } + return false; +} + +void WatchFaceInfineat::CloseMenu() { + settingsController.SaveSettings(); + lv_obj_set_hidden(btnClose, true); + lv_obj_set_hidden(btnNextColor, true); + lv_obj_set_hidden(btnPrevColor, true); + lv_obj_set_hidden(btnToggleCover, true); +} + +bool WatchFaceInfineat::OnButtonPushed() { + if (!lv_obj_get_hidden(btnClose)) { + CloseMenu(); + return true; + } + return false; +} + +void WatchFaceInfineat::UpdateSelected(lv_obj_t* object, lv_event_t event) { + if (event == LV_EVENT_CLICKED) { + if (object == btnSettings) { + lv_obj_set_hidden(btnSettings, true); + lv_obj_set_hidden(btnClose, false); + lv_obj_set_hidden(btnNextColor, settingsController.GetInfineatShowSideCover()); + lv_obj_set_hidden(btnPrevColor, settingsController.GetInfineatShowSideCover()); + lv_obj_set_hidden(btnToggleCover, false); + } + if (object == btnClose) { + CloseMenu(); + } + if (object == btnToggleCover) { + bool hidden = ToggleShowSideCover(); + lv_obj_set_hidden(btnNextColor, hidden); + lv_obj_set_hidden(btnPrevColor, hidden); + const char* labelToggle = hidden ? "OFF" : "ON"; + lv_obj_set_style_local_value_str(btnToggleCover, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, labelToggle); + } + if (object == btnNextColor) { + settingsController.SetInfineatColorIndex((settingsController.GetInfineatColorIndex() + 1) % nColors); + } + if (object == btnPrevColor) { + int colorIndex = settingsController.GetInfineatColorIndex() - 1; + if (colorIndex < 0) + colorIndex = nColors - 1; + settingsController.SetInfineatColorIndex(colorIndex); + } + if (object == btnNextColor || object == btnPrevColor) { + lv_style_set_line_color(&line0Style, LV_STATE_DEFAULT, + lv_color_hex(infineatColors.orange[settingsController.GetInfineatColorIndex()*nLines])); + lv_style_set_line_color(&line1Style, LV_STATE_DEFAULT, + lv_color_hex(infineatColors.orange[settingsController.GetInfineatColorIndex()*nLines + 1])); + lv_style_set_line_color(&line2Style, LV_STATE_DEFAULT, + lv_color_hex(infineatColors.orange[settingsController.GetInfineatColorIndex()*nLines + 2])); + lv_style_set_line_color(&line3Style, LV_STATE_DEFAULT, + lv_color_hex(infineatColors.orange[settingsController.GetInfineatColorIndex()*nLines + 3])); + lv_style_set_line_color(&line4Style, LV_STATE_DEFAULT, + lv_color_hex(infineatColors.orange[settingsController.GetInfineatColorIndex()*nLines + 4])); + lv_style_set_line_color(&line5Style, LV_STATE_DEFAULT, + lv_color_hex(infineatColors.orange[settingsController.GetInfineatColorIndex()*nLines + 5])); + lv_style_set_line_color(&line6Style, LV_STATE_DEFAULT, + lv_color_hex(infineatColors.orange[settingsController.GetInfineatColorIndex()*nLines + 6])); + lv_style_set_line_color(&line7Style, LV_STATE_DEFAULT, + lv_color_hex(infineatColors.orange[settingsController.GetInfineatColorIndex()*nLines + 7])); + lv_style_set_line_color(&line8Style, LV_STATE_DEFAULT, + lv_color_hex(infineatColors.orange[settingsController.GetInfineatColorIndex()*nLines + 8])); + lv_obj_add_style(line0, LV_LINE_PART_MAIN, &line0Style); + lv_obj_add_style(line1, LV_LINE_PART_MAIN, &line1Style); + lv_obj_add_style(line2, LV_LINE_PART_MAIN, &line2Style); + lv_obj_add_style(line3, LV_LINE_PART_MAIN, &line3Style); + lv_obj_add_style(line4, LV_LINE_PART_MAIN, &line4Style); + lv_obj_add_style(line5, LV_LINE_PART_MAIN, &line5Style); + lv_obj_add_style(line6, LV_LINE_PART_MAIN, &line6Style); + lv_obj_add_style(line7, LV_LINE_PART_MAIN, &line7Style); + lv_obj_add_style(line8, LV_LINE_PART_MAIN, &line8Style); + lv_obj_set_style_local_bg_color(notificationIcon, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, + lv_color_hex(infineatColors.orange[settingsController.GetInfineatColorIndex()*nLines + 7])); + } + } +} + +void WatchFaceInfineat::Refresh() { + notificationState = notificationManager.AreNewNotificationsAvailable(); + if (notificationState.IsUpdated()) { + lv_obj_set_hidden(notificationIcon, !notificationState.Get()); + lv_obj_align(notificationIcon, lv_scr_act(), LV_ALIGN_IN_TOP_RIGHT, 0, 0); + } + + currentDateTime = dateTimeController.CurrentDateTime(); + + if (currentDateTime.IsUpdated()) { + auto newDateTime = currentDateTime.Get(); + + auto dp = date::floor(newDateTime); + auto time = date::make_time(newDateTime - dp); + auto yearMonthDay = date::year_month_day(dp); + + auto year = static_cast(yearMonthDay.year()); + auto month = static_cast(static_cast(yearMonthDay.month())); + auto day = static_cast(yearMonthDay.day()); + auto dayOfWeek = static_cast(date::weekday(yearMonthDay).iso_encoding()); + + int hour = time.hours().count(); + auto minute = time.minutes().count(); + + char minutesChar[3]; + sprintf(minutesChar, "%02d", static_cast(minute)); + + char hoursChar[3]; + char ampmChar[3]; + + if (settingsController.GetClockType() == Controllers::Settings::ClockType::H12) { + if (hour < 12) { + if (hour == 0) { + hour = 12; + } + sprintf(ampmChar, "AM"); + } else { // hour >= 12 + if (hour != 12) { + hour = hour - 12; + } + sprintf(ampmChar, "PM"); + } + } + sprintf(hoursChar, "%02d", hour); + + if ((hoursChar[0] != displayedChar[0]) || (hoursChar[1] != displayedChar[1]) || (minutesChar[0] != displayedChar[2]) || + (minutesChar[1] != displayedChar[3])) { + displayedChar[0] = hoursChar[0]; + displayedChar[1] = hoursChar[1]; + displayedChar[2] = minutesChar[0]; + displayedChar[3] = minutesChar[1]; + + lv_label_set_text_fmt(labelHour, "%s", hoursChar); + lv_label_set_text_fmt(labelMinutes, "%s", minutesChar); + } + + if (settingsController.GetClockType() == Controllers::Settings::ClockType::H12) { + lv_label_set_text(labelTimeAmPm, ampmChar); + lv_obj_align(labelTimeAmPm, labelHour, LV_ALIGN_OUT_RIGHT_TOP, 5, 28); + } + + if ((year != currentYear) || (month != currentMonth) || (dayOfWeek != currentDayOfWeek) || (day != currentDay)) { + lv_label_set_text_fmt(labelDate, "%s %02d", dateTimeController.DayOfWeekShortToStringLow(), day); + lv_obj_align(labelDate, lv_scr_act(), LV_ALIGN_IN_RIGHT_MID, 0, 0); + lv_obj_set_size(labelDate, 5, 5); + + currentYear = year; + currentMonth = month; + currentDayOfWeek = dayOfWeek; + currentDay = day; + } + } + + bleState = bleController.IsConnected(); + if (bleState.IsUpdated()) { + lv_label_set_text(bleIcon, BleIcon::GetIcon(bleState.Get())); + lv_obj_align(bleIcon, labelDate, LV_ALIGN_OUT_BOTTOM_MID, 0, 3); + } + + stepCount = motionController.NbSteps(); + motionSensorOk = motionController.IsSensorOk(); + if (stepCount.IsUpdated() || motionSensorOk.IsUpdated()) { + lv_label_set_text_fmt(stepValue, "%lu", stepCount.Get()); + lv_obj_align(stepValue, lv_scr_act(), LV_ALIGN_IN_BOTTOM_MID, 10, 0); + lv_obj_align(stepIcon, stepValue, LV_ALIGN_OUT_LEFT_MID, -5, 0); + } + + if (!lv_obj_get_hidden(btnSettings)) { + if ((savedTick > 0) && (lv_tick_get() - savedTick > 3000)) { + lv_obj_set_hidden(btnSettings, true); + savedTick = 0; + } + } +} + +bool WatchFaceInfineat::ToggleShowSideCover() { + bool visible = !settingsController.GetInfineatShowSideCover(); + settingsController.SetInfineatShowSideCover(visible); + lv_obj_set_hidden(logoPine, visible); + lv_obj_set_hidden(line0, visible); + lv_obj_set_hidden(line1, visible); + lv_obj_set_hidden(line2, visible); + lv_obj_set_hidden(line3, visible); + lv_obj_set_hidden(line4, visible); + lv_obj_set_hidden(line5, visible); + lv_obj_set_hidden(line6, visible); + lv_obj_set_hidden(line7, visible); + lv_obj_set_hidden(line8, visible); + return visible; +} -- cgit v1.2.3 From be16ef0d56c471dc905c10e8708a107285639d0b Mon Sep 17 00:00:00 2001 From: Diego Miguel Date: Wed, 2 Mar 2022 00:34:39 +0100 Subject: Update BLE controller in Infineat watchface --- src/CMakeLists.txt | 1 + src/displayapp/screens/WatchFaceInfineat.cpp | 3 ++- src/displayapp/screens/WatchFaceInfineat.h | 1 + 3 files changed, 4 insertions(+), 1 deletion(-) (limited to 'src/displayapp/screens/WatchFaceInfineat.cpp') diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 78c925ad..8b038cde 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -422,6 +422,7 @@ list(APPEND SOURCE_FILES ## Watch faces displayapp/icons/bg_clock.c + displayapp/icons/logo_pine.c displayapp/screens/WatchFaceAnalog.cpp displayapp/screens/WatchFaceDigital.cpp displayapp/screens/WatchFaceInfineat.cpp diff --git a/src/displayapp/screens/WatchFaceInfineat.cpp b/src/displayapp/screens/WatchFaceInfineat.cpp index 4d9ec1e6..5ca7d70d 100644 --- a/src/displayapp/screens/WatchFaceInfineat.cpp +++ b/src/displayapp/screens/WatchFaceInfineat.cpp @@ -428,8 +428,9 @@ void WatchFaceInfineat::Refresh() { } bleState = bleController.IsConnected(); + bleRadioEnabled = bleController.IsRadioEnabled(); if (bleState.IsUpdated()) { - lv_label_set_text(bleIcon, BleIcon::GetIcon(bleState.Get())); + lv_label_set_text(bleIcon, BleIcon::GetIcon(bleRadioEnabled.Get(), bleState.Get())); lv_obj_align(bleIcon, labelDate, LV_ALIGN_OUT_BOTTOM_MID, 0, 3); } diff --git a/src/displayapp/screens/WatchFaceInfineat.h b/src/displayapp/screens/WatchFaceInfineat.h index 66a29784..77730062 100644 --- a/src/displayapp/screens/WatchFaceInfineat.h +++ b/src/displayapp/screens/WatchFaceInfineat.h @@ -48,6 +48,7 @@ namespace Pinetime { DirtyValue batteryPercentRemaining {}; DirtyValue powerPresent {}; DirtyValue bleState {}; + DirtyValue bleRadioEnabled {}; DirtyValue> currentDateTime {}; DirtyValue motionSensorOk {}; DirtyValue stepCount {}; -- cgit v1.2.3 From a890f8568a0d0adfdd7118a21393d16c2423f941 Mon Sep 17 00:00:00 2001 From: Diego Miguel Date: Thu, 3 Mar 2022 01:57:42 +0100 Subject: Fixes in side cover toggling --- src/components/settings/Settings.h | 10 +++-- src/displayapp/screens/WatchFaceInfineat.cpp | 67 ++++++++++++++-------------- src/displayapp/screens/WatchFaceInfineat.h | 2 - 3 files changed, 39 insertions(+), 40 deletions(-) (limited to 'src/displayapp/screens/WatchFaceInfineat.cpp') diff --git a/src/components/settings/Settings.h b/src/components/settings/Settings.h index 686024b2..56248d02 100644 --- a/src/components/settings/Settings.h +++ b/src/components/settings/Settings.h @@ -99,18 +99,20 @@ namespace Pinetime { }; void SetInfineatShowSideCover(bool show) { - if (show != settings.watchFaceInfineat.showSideCover) + if (show != settings.watchFaceInfineat.showSideCover) { + settings.watchFaceInfineat.showSideCover = show; settingsChanged = true; - settings.watchFaceInfineat.showSideCover = show; + } }; bool GetInfineatShowSideCover() const { return settings.watchFaceInfineat.showSideCover; }; void SetInfineatColorIndex(int index) { - if (index != settings.watchFaceInfineat.colorIndex) + if (index != settings.watchFaceInfineat.colorIndex) { + settings.watchFaceInfineat.colorIndex = index; settingsChanged = true; - settings.watchFaceInfineat.colorIndex = index; + } }; int GetInfineatColorIndex() const { return settings.watchFaceInfineat.colorIndex; diff --git a/src/displayapp/screens/WatchFaceInfineat.cpp b/src/displayapp/screens/WatchFaceInfineat.cpp index 5ca7d70d..c21b8555 100644 --- a/src/displayapp/screens/WatchFaceInfineat.cpp +++ b/src/displayapp/screens/WatchFaceInfineat.cpp @@ -61,6 +61,7 @@ WatchFaceInfineat::WatchFaceInfineat(DisplayApp* app, line0Points[1] = {68, -8}; lv_line_set_points(line0, line0Points, 2); + lv_style_init(&line1Style); lv_style_set_line_width(&line1Style, LV_STATE_DEFAULT, 15); lv_style_set_line_color(&line1Style, LV_STATE_DEFAULT, lv_color_hex(infineatColors.orange[settingsController.GetInfineatColorIndex()*nLines + 1])); @@ -294,51 +295,65 @@ bool WatchFaceInfineat::OnButtonPushed() { void WatchFaceInfineat::UpdateSelected(lv_obj_t* object, lv_event_t event) { if (event == LV_EVENT_CLICKED) { + bool showSideCover = settingsController.GetInfineatShowSideCover(); + int colorIndex = settingsController.GetInfineatColorIndex(); + if (object == btnSettings) { lv_obj_set_hidden(btnSettings, true); lv_obj_set_hidden(btnClose, false); - lv_obj_set_hidden(btnNextColor, settingsController.GetInfineatShowSideCover()); - lv_obj_set_hidden(btnPrevColor, settingsController.GetInfineatShowSideCover()); + lv_obj_set_hidden(btnNextColor, !showSideCover); + lv_obj_set_hidden(btnPrevColor, !showSideCover); lv_obj_set_hidden(btnToggleCover, false); } if (object == btnClose) { CloseMenu(); } if (object == btnToggleCover) { - bool hidden = ToggleShowSideCover(); - lv_obj_set_hidden(btnNextColor, hidden); - lv_obj_set_hidden(btnPrevColor, hidden); - const char* labelToggle = hidden ? "OFF" : "ON"; + settingsController.SetInfineatShowSideCover(!showSideCover); + lv_obj_set_hidden(logoPine, showSideCover); + lv_obj_set_hidden(line0, showSideCover); + lv_obj_set_hidden(line1, showSideCover); + lv_obj_set_hidden(line2, showSideCover); + lv_obj_set_hidden(line3, showSideCover); + lv_obj_set_hidden(line4, showSideCover); + lv_obj_set_hidden(line5, showSideCover); + lv_obj_set_hidden(line6, showSideCover); + lv_obj_set_hidden(line7, showSideCover); + lv_obj_set_hidden(line8, showSideCover); + lv_obj_set_hidden(btnNextColor, showSideCover); + lv_obj_set_hidden(btnPrevColor, showSideCover); + const char* labelToggle = showSideCover ? "OFF" : "ON"; lv_obj_set_style_local_value_str(btnToggleCover, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, labelToggle); } if (object == btnNextColor) { - settingsController.SetInfineatColorIndex((settingsController.GetInfineatColorIndex() + 1) % nColors); + colorIndex = (colorIndex + 1) % nColors; + settingsController.SetInfineatColorIndex(colorIndex); } if (object == btnPrevColor) { - int colorIndex = settingsController.GetInfineatColorIndex() - 1; + colorIndex -= 1; if (colorIndex < 0) colorIndex = nColors - 1; settingsController.SetInfineatColorIndex(colorIndex); } if (object == btnNextColor || object == btnPrevColor) { lv_style_set_line_color(&line0Style, LV_STATE_DEFAULT, - lv_color_hex(infineatColors.orange[settingsController.GetInfineatColorIndex()*nLines])); + lv_color_hex(infineatColors.orange[colorIndex*nLines])); lv_style_set_line_color(&line1Style, LV_STATE_DEFAULT, - lv_color_hex(infineatColors.orange[settingsController.GetInfineatColorIndex()*nLines + 1])); + lv_color_hex(infineatColors.orange[colorIndex*nLines + 1])); lv_style_set_line_color(&line2Style, LV_STATE_DEFAULT, - lv_color_hex(infineatColors.orange[settingsController.GetInfineatColorIndex()*nLines + 2])); + lv_color_hex(infineatColors.orange[colorIndex*nLines + 2])); lv_style_set_line_color(&line3Style, LV_STATE_DEFAULT, - lv_color_hex(infineatColors.orange[settingsController.GetInfineatColorIndex()*nLines + 3])); + lv_color_hex(infineatColors.orange[colorIndex*nLines + 3])); lv_style_set_line_color(&line4Style, LV_STATE_DEFAULT, - lv_color_hex(infineatColors.orange[settingsController.GetInfineatColorIndex()*nLines + 4])); + lv_color_hex(infineatColors.orange[colorIndex*nLines + 4])); lv_style_set_line_color(&line5Style, LV_STATE_DEFAULT, - lv_color_hex(infineatColors.orange[settingsController.GetInfineatColorIndex()*nLines + 5])); + lv_color_hex(infineatColors.orange[colorIndex*nLines + 5])); lv_style_set_line_color(&line6Style, LV_STATE_DEFAULT, - lv_color_hex(infineatColors.orange[settingsController.GetInfineatColorIndex()*nLines + 6])); + lv_color_hex(infineatColors.orange[colorIndex*nLines + 6])); lv_style_set_line_color(&line7Style, LV_STATE_DEFAULT, - lv_color_hex(infineatColors.orange[settingsController.GetInfineatColorIndex()*nLines + 7])); + lv_color_hex(infineatColors.orange[colorIndex*nLines + 7])); lv_style_set_line_color(&line8Style, LV_STATE_DEFAULT, - lv_color_hex(infineatColors.orange[settingsController.GetInfineatColorIndex()*nLines + 8])); + lv_color_hex(infineatColors.orange[colorIndex*nLines + 8])); lv_obj_add_style(line0, LV_LINE_PART_MAIN, &line0Style); lv_obj_add_style(line1, LV_LINE_PART_MAIN, &line1Style); lv_obj_add_style(line2, LV_LINE_PART_MAIN, &line2Style); @@ -349,7 +364,7 @@ void WatchFaceInfineat::UpdateSelected(lv_obj_t* object, lv_event_t event) { lv_obj_add_style(line7, LV_LINE_PART_MAIN, &line7Style); lv_obj_add_style(line8, LV_LINE_PART_MAIN, &line8Style); lv_obj_set_style_local_bg_color(notificationIcon, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, - lv_color_hex(infineatColors.orange[settingsController.GetInfineatColorIndex()*nLines + 7])); + lv_color_hex(infineatColors.orange[colorIndex*nLines + 7])); } } } @@ -449,19 +464,3 @@ void WatchFaceInfineat::Refresh() { } } } - -bool WatchFaceInfineat::ToggleShowSideCover() { - bool visible = !settingsController.GetInfineatShowSideCover(); - settingsController.SetInfineatShowSideCover(visible); - lv_obj_set_hidden(logoPine, visible); - lv_obj_set_hidden(line0, visible); - lv_obj_set_hidden(line1, visible); - lv_obj_set_hidden(line2, visible); - lv_obj_set_hidden(line3, visible); - lv_obj_set_hidden(line4, visible); - lv_obj_set_hidden(line5, visible); - lv_obj_set_hidden(line6, visible); - lv_obj_set_hidden(line7, visible); - lv_obj_set_hidden(line8, visible); - return visible; -} diff --git a/src/displayapp/screens/WatchFaceInfineat.h b/src/displayapp/screens/WatchFaceInfineat.h index 77730062..afc25393 100644 --- a/src/displayapp/screens/WatchFaceInfineat.h +++ b/src/displayapp/screens/WatchFaceInfineat.h @@ -123,8 +123,6 @@ namespace Pinetime { Controllers::MotionController& motionController; lv_task_t* taskRefresh; - - bool ToggleShowSideCover(); }; } } -- cgit v1.2.3 From 6eb5b99aa69cb00119b6333fbd6015c6f8a3d95b Mon Sep 17 00:00:00 2001 From: Diego Miguel Date: Thu, 3 Mar 2022 22:22:33 +0100 Subject: Fix aligment of time labels --- src/displayapp/screens/WatchFaceInfineat.cpp | 11 ++++++++--- src/displayapp/screens/WatchFaceInfineat.h | 1 + 2 files changed, 9 insertions(+), 3 deletions(-) (limited to 'src/displayapp/screens/WatchFaceInfineat.cpp') diff --git a/src/displayapp/screens/WatchFaceInfineat.cpp b/src/displayapp/screens/WatchFaceInfineat.cpp index c21b8555..a04618da 100644 --- a/src/displayapp/screens/WatchFaceInfineat.cpp +++ b/src/displayapp/screens/WatchFaceInfineat.cpp @@ -157,15 +157,20 @@ WatchFaceInfineat::WatchFaceInfineat(DisplayApp* app, lv_obj_set_size(notificationIcon, 13, 13); lv_obj_set_hidden(notificationIcon, true); + timeContainer = lv_obj_create(lv_scr_act(), nullptr); + lv_obj_set_style_local_bg_opa(timeContainer, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_OPA_TRANSP); + lv_obj_set_size(timeContainer, 185, 185); + lv_obj_align(timeContainer, lv_scr_act(), LV_ALIGN_CENTER, 0, -10); + labelHour = lv_label_create(lv_scr_act(), nullptr); lv_obj_set_style_local_text_font(labelHour, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &bebas_neue_120); lv_label_set_text(labelHour, "01"); - lv_obj_align(labelHour, lv_scr_act(), LV_ALIGN_IN_TOP_MID, 0, 5); + lv_obj_align(labelHour, timeContainer, LV_ALIGN_IN_TOP_MID, 0, 0); labelMinutes = lv_label_create(lv_scr_act(), nullptr); lv_obj_set_style_local_text_font(labelMinutes, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &bebas_neue_120); lv_label_set_text(labelMinutes, "00"); - lv_obj_align(labelMinutes, lv_scr_act(), LV_ALIGN_IN_BOTTOM_MID, 0, -15); + lv_obj_align(labelMinutes, timeContainer, LV_ALIGN_IN_BOTTOM_MID, 0, 0); labelTimeAmPm = lv_label_create(lv_scr_act(), nullptr); lv_obj_set_style_local_text_font(labelTimeAmPm, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &teko_28); @@ -427,7 +432,7 @@ void WatchFaceInfineat::Refresh() { if (settingsController.GetClockType() == Controllers::Settings::ClockType::H12) { lv_label_set_text(labelTimeAmPm, ampmChar); - lv_obj_align(labelTimeAmPm, labelHour, LV_ALIGN_OUT_RIGHT_TOP, 5, 28); + lv_obj_align(labelTimeAmPm, labelHour, LV_ALIGN_OUT_RIGHT_TOP, 5, 20); } if ((year != currentYear) || (month != currentMonth) || (dayOfWeek != currentDayOfWeek) || (day != currentDay)) { diff --git a/src/displayapp/screens/WatchFaceInfineat.h b/src/displayapp/screens/WatchFaceInfineat.h index afc25393..bcfdd73b 100644 --- a/src/displayapp/screens/WatchFaceInfineat.h +++ b/src/displayapp/screens/WatchFaceInfineat.h @@ -89,6 +89,7 @@ namespace Pinetime { lv_obj_t* logoPine; + lv_obj_t* timeContainer; lv_obj_t* labelHour; lv_obj_t* labelMinutes; lv_obj_t* labelTimeAmPm; -- cgit v1.2.3 From a4c3558ed7d2d9e0b9fc615b2b5770a7c9652871 Mon Sep 17 00:00:00 2001 From: Diego Miguel Date: Sun, 3 Apr 2022 17:49:32 +0200 Subject: Fix bleIcon in Infineat watchface after upstream rebase --- src/displayapp/screens/WatchFaceInfineat.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/displayapp/screens/WatchFaceInfineat.cpp') diff --git a/src/displayapp/screens/WatchFaceInfineat.cpp b/src/displayapp/screens/WatchFaceInfineat.cpp index a04618da..c6429111 100644 --- a/src/displayapp/screens/WatchFaceInfineat.cpp +++ b/src/displayapp/screens/WatchFaceInfineat.cpp @@ -450,8 +450,8 @@ void WatchFaceInfineat::Refresh() { bleState = bleController.IsConnected(); bleRadioEnabled = bleController.IsRadioEnabled(); if (bleState.IsUpdated()) { - lv_label_set_text(bleIcon, BleIcon::GetIcon(bleRadioEnabled.Get(), bleState.Get())); - lv_obj_align(bleIcon, labelDate, LV_ALIGN_OUT_BOTTOM_MID, 0, 3); + lv_label_set_text(bleIcon, BleIcon::GetIcon(bleState.Get())); + lv_obj_align(bleIcon, dateContainer, LV_ALIGN_OUT_BOTTOM_MID, 0, 3); } stepCount = motionController.NbSteps(); -- cgit v1.2.3 From f6f6f9507f0424398d71183da8f78f1aa1482334 Mon Sep 17 00:00:00 2001 From: Diego Miguel Date: Mon, 21 Mar 2022 10:34:35 +0100 Subject: Use existing fonts in Infineat watchface --- src/CMakeLists.txt | 2 - src/displayapp/fonts/BebasNeue-Regular.ttf | Bin 60576 -> 0 bytes src/displayapp/fonts/BebasNeue_OFL.txt | 93 ---- src/displayapp/fonts/Teko-Light.ttf | Bin 279608 -> 0 bytes src/displayapp/fonts/Teko_OFL.txt | 93 ---- src/displayapp/fonts/bebas_neue_120.c | 659 --------------------------- src/displayapp/fonts/teko_28.c | 453 ------------------ src/displayapp/screens/WatchFaceInfineat.cpp | 49 +- src/displayapp/screens/WatchFaceInfineat.h | 4 +- src/libs/lv_conf.h | 4 +- 10 files changed, 36 insertions(+), 1321 deletions(-) delete mode 100644 src/displayapp/fonts/BebasNeue-Regular.ttf delete mode 100644 src/displayapp/fonts/BebasNeue_OFL.txt delete mode 100644 src/displayapp/fonts/Teko-Light.ttf delete mode 100644 src/displayapp/fonts/Teko_OFL.txt delete mode 100644 src/displayapp/fonts/bebas_neue_120.c delete mode 100644 src/displayapp/fonts/teko_28.c (limited to 'src/displayapp/screens/WatchFaceInfineat.cpp') diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 819ad072..3467013d 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -479,8 +479,6 @@ list(APPEND SOURCE_FILES displayapp/LittleVgl.cpp displayapp/lv_pinetime_theme.c - displayapp/fonts/bebas_neue_120.c - displayapp/fonts/teko_28.c systemtask/SystemTask.cpp systemtask/SystemMonitor.cpp diff --git a/src/displayapp/fonts/BebasNeue-Regular.ttf b/src/displayapp/fonts/BebasNeue-Regular.ttf deleted file mode 100644 index 76e22b8b..00000000 Binary files a/src/displayapp/fonts/BebasNeue-Regular.ttf and /dev/null differ diff --git a/src/displayapp/fonts/BebasNeue_OFL.txt b/src/displayapp/fonts/BebasNeue_OFL.txt deleted file mode 100644 index da957148..00000000 --- a/src/displayapp/fonts/BebasNeue_OFL.txt +++ /dev/null @@ -1,93 +0,0 @@ -Copyright © 2010 by Dharma Type. - -This Font Software is licensed under the SIL Open Font License, Version 1.1. -This license is copied below, and is also available with a FAQ at: -http://scripts.sil.org/OFL - - ------------------------------------------------------------ -SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 ------------------------------------------------------------ - -PREAMBLE -The goals of the Open Font License (OFL) are to stimulate worldwide -development of collaborative font projects, to support the font creation -efforts of academic and linguistic communities, and to provide a free and -open framework in which fonts may be shared and improved in partnership -with others. - -The OFL allows the licensed fonts to be used, studied, modified and -redistributed freely as long as they are not sold by themselves. The -fonts, including any derivative works, can be bundled, embedded, -redistributed and/or sold with any software provided that any reserved -names are not used by derivative works. The fonts and derivatives, -however, cannot be released under any other type of license. The -requirement for fonts to remain under this license does not apply -to any document created using the fonts or their derivatives. - -DEFINITIONS -"Font Software" refers to the set of files released by the Copyright -Holder(s) under this license and clearly marked as such. This may -include source files, build scripts and documentation. - -"Reserved Font Name" refers to any names specified as such after the -copyright statement(s). - -"Original Version" refers to the collection of Font Software components as -distributed by the Copyright Holder(s). - -"Modified Version" refers to any derivative made by adding to, deleting, -or substituting -- in part or in whole -- any of the components of the -Original Version, by changing formats or by porting the Font Software to a -new environment. - -"Author" refers to any designer, engineer, programmer, technical -writer or other person who contributed to the Font Software. - -PERMISSION & CONDITIONS -Permission is hereby granted, free of charge, to any person obtaining -a copy of the Font Software, to use, study, copy, merge, embed, modify, -redistribute, and sell modified and unmodified copies of the Font -Software, subject to the following conditions: - -1) Neither the Font Software nor any of its individual components, -in Original or Modified Versions, may be sold by itself. - -2) Original or Modified Versions of the Font Software may be bundled, -redistributed and/or sold with any software, provided that each copy -contains the above copyright notice and this license. These can be -included either as stand-alone text files, human-readable headers or -in the appropriate machine-readable metadata fields within text or -binary files as long as those fields can be easily viewed by the user. - -3) No Modified Version of the Font Software may use the Reserved Font -Name(s) unless explicit written permission is granted by the corresponding -Copyright Holder. This restriction only applies to the primary font name as -presented to the users. - -4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font -Software shall not be used to promote, endorse or advertise any -Modified Version, except to acknowledge the contribution(s) of the -Copyright Holder(s) and the Author(s) or with their explicit written -permission. - -5) The Font Software, modified or unmodified, in part or in whole, -must be distributed entirely under this license, and must not be -distributed under any other license. The requirement for fonts to -remain under this license does not apply to any document created -using the Font Software. - -TERMINATION -This license becomes null and void if any of the above conditions are -not met. - -DISCLAIMER -THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT -OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE -COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL -DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM -OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/src/displayapp/fonts/Teko-Light.ttf b/src/displayapp/fonts/Teko-Light.ttf deleted file mode 100644 index 679f0137..00000000 Binary files a/src/displayapp/fonts/Teko-Light.ttf and /dev/null differ diff --git a/src/displayapp/fonts/Teko_OFL.txt b/src/displayapp/fonts/Teko_OFL.txt deleted file mode 100644 index 6dd80965..00000000 --- a/src/displayapp/fonts/Teko_OFL.txt +++ /dev/null @@ -1,93 +0,0 @@ -Copyright (c) 2014, Indian Type Foundry (info@indiantypefoundry.com). - -This Font Software is licensed under the SIL Open Font License, Version 1.1. -This license is copied below, and is also available with a FAQ at: -http://scripts.sil.org/OFL - - ------------------------------------------------------------ -SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 ------------------------------------------------------------ - -PREAMBLE -The goals of the Open Font License (OFL) are to stimulate worldwide -development of collaborative font projects, to support the font creation -efforts of academic and linguistic communities, and to provide a free and -open framework in which fonts may be shared and improved in partnership -with others. - -The OFL allows the licensed fonts to be used, studied, modified and -redistributed freely as long as they are not sold by themselves. The -fonts, including any derivative works, can be bundled, embedded, -redistributed and/or sold with any software provided that any reserved -names are not used by derivative works. The fonts and derivatives, -however, cannot be released under any other type of license. The -requirement for fonts to remain under this license does not apply -to any document created using the fonts or their derivatives. - -DEFINITIONS -"Font Software" refers to the set of files released by the Copyright -Holder(s) under this license and clearly marked as such. This may -include source files, build scripts and documentation. - -"Reserved Font Name" refers to any names specified as such after the -copyright statement(s). - -"Original Version" refers to the collection of Font Software components as -distributed by the Copyright Holder(s). - -"Modified Version" refers to any derivative made by adding to, deleting, -or substituting -- in part or in whole -- any of the components of the -Original Version, by changing formats or by porting the Font Software to a -new environment. - -"Author" refers to any designer, engineer, programmer, technical -writer or other person who contributed to the Font Software. - -PERMISSION & CONDITIONS -Permission is hereby granted, free of charge, to any person obtaining -a copy of the Font Software, to use, study, copy, merge, embed, modify, -redistribute, and sell modified and unmodified copies of the Font -Software, subject to the following conditions: - -1) Neither the Font Software nor any of its individual components, -in Original or Modified Versions, may be sold by itself. - -2) Original or Modified Versions of the Font Software may be bundled, -redistributed and/or sold with any software, provided that each copy -contains the above copyright notice and this license. These can be -included either as stand-alone text files, human-readable headers or -in the appropriate machine-readable metadata fields within text or -binary files as long as those fields can be easily viewed by the user. - -3) No Modified Version of the Font Software may use the Reserved Font -Name(s) unless explicit written permission is granted by the corresponding -Copyright Holder. This restriction only applies to the primary font name as -presented to the users. - -4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font -Software shall not be used to promote, endorse or advertise any -Modified Version, except to acknowledge the contribution(s) of the -Copyright Holder(s) and the Author(s) or with their explicit written -permission. - -5) The Font Software, modified or unmodified, in part or in whole, -must be distributed entirely under this license, and must not be -distributed under any other license. The requirement for fonts to -remain under this license does not apply to any document created -using the Font Software. - -TERMINATION -This license becomes null and void if any of the above conditions are -not met. - -DISCLAIMER -THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT -OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE -COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL -DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM -OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/src/displayapp/fonts/bebas_neue_120.c b/src/displayapp/fonts/bebas_neue_120.c deleted file mode 100644 index 3938a2e5..00000000 --- a/src/displayapp/fonts/bebas_neue_120.c +++ /dev/null @@ -1,659 +0,0 @@ -/******************************************************************************* - * Size: 120 px - * Bpp: 1 - * Opts: - ******************************************************************************/ - -#ifdef LV_LVGL_H_INCLUDE_SIMPLE -#include "lvgl.h" -#else -#include "lvgl/lvgl.h" -#endif - -#ifndef BEBAS_NEUE_120 -#define BEBAS_NEUE_120 1 -#endif - -#if BEBAS_NEUE_120 - -/*----------------- - * BITMAPS - *----------------*/ - -/*Store the image of the glyphs*/ -static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = { - /* U+0030 "0" */ - 0x0, 0x1, 0xff, 0x80, 0x0, 0x0, 0x1f, 0xff, - 0xf8, 0x0, 0x0, 0x7f, 0xff, 0xfe, 0x0, 0x1, - 0xff, 0xff, 0xff, 0x80, 0x3, 0xff, 0xff, 0xff, - 0xc0, 0x7, 0xff, 0xff, 0xff, 0xe0, 0xf, 0xff, - 0xff, 0xff, 0xf0, 0xf, 0xff, 0xff, 0xff, 0xf0, - 0x1f, 0xff, 0xff, 0xff, 0xf8, 0x3f, 0xff, 0xff, - 0xff, 0xfc, 0x3f, 0xff, 0xff, 0xff, 0xfc, 0x7f, - 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0x81, 0xff, - 0xfe, 0x7f, 0xfe, 0x0, 0x7f, 0xfe, 0x7f, 0xfc, - 0x0, 0x3f, 0xfe, 0xff, 0xfc, 0x0, 0x3f, 0xff, - 0xff, 0xf8, 0x0, 0x1f, 0xff, 0xff, 0xf8, 0x0, - 0x1f, 0xff, 0xff, 0xf8, 0x0, 0x1f, 0xff, 0xff, - 0xf8, 0x0, 0x1f, 0xff, 0xff, 0xf8, 0x0, 0x1f, - 0xff, 0xff, 0xf8, 0x0, 0x1f, 0xff, 0xff, 0xf8, - 0x0, 0x1f, 0xff, 0xff, 0xf8, 0x0, 0x1f, 0xff, - 0xff, 0xf8, 0x0, 0x1f, 0xff, 0xff, 0xf8, 0x0, - 0x1f, 0xff, 0xff, 0xf8, 0x0, 0x1f, 0xff, 0xff, - 0xf8, 0x0, 0x1f, 0xff, 0xff, 0xf8, 0x0, 0x1f, - 0xff, 0xff, 0xf8, 0x0, 0x1f, 0xff, 0xff, 0xf8, - 0x0, 0x1f, 0xff, 0xff, 0xf8, 0x0, 0x1f, 0xff, - 0xff, 0xf8, 0x0, 0x1f, 0xff, 0xff, 0xf8, 0x0, - 0x1f, 0xff, 0xff, 0xf8, 0x0, 0x1f, 0xff, 0xff, - 0xf8, 0x0, 0x1f, 0xff, 0xff, 0xf8, 0x0, 0x1f, - 0xff, 0xff, 0xf8, 0x0, 0x1f, 0xff, 0xff, 0xf8, - 0x0, 0x1f, 0xff, 0xff, 0xf8, 0x0, 0x1f, 0xff, - 0xff, 0xf8, 0x0, 0x1f, 0xff, 0xff, 0xf8, 0x0, - 0x1f, 0xff, 0xff, 0xf8, 0x0, 0x1f, 0xff, 0xff, - 0xf8, 0x0, 0x1f, 0xff, 0xff, 0xf8, 0x0, 0x1f, - 0xff, 0xff, 0xf8, 0x0, 0x1f, 0xff, 0xff, 0xf8, - 0x0, 0x1f, 0xff, 0xff, 0xf8, 0x0, 0x1f, 0xff, - 0xff, 0xf8, 0x0, 0x1f, 0xff, 0xff, 0xf8, 0x0, - 0x1f, 0xff, 0xff, 0xf8, 0x0, 0x1f, 0xff, 0xff, - 0xf8, 0x0, 0x1f, 0xff, 0xff, 0xf8, 0x0, 0x1f, - 0xff, 0xff, 0xf8, 0x0, 0x1f, 0xff, 0xff, 0xf8, - 0x0, 0x1f, 0xff, 0xff, 0xf8, 0x0, 0x1f, 0xff, - 0xff, 0xf8, 0x0, 0x1f, 0xff, 0xff, 0xf8, 0x0, - 0x1f, 0xff, 0xff, 0xf8, 0x0, 0x1f, 0xff, 0xff, - 0xf8, 0x0, 0x1f, 0xff, 0xff, 0xf8, 0x0, 0x1f, - 0xff, 0xff, 0xf8, 0x0, 0x1f, 0xff, 0xff, 0xf8, - 0x0, 0x1f, 0xff, 0xff, 0xf8, 0x0, 0x1f, 0xff, - 0xff, 0xf8, 0x0, 0x1f, 0xff, 0xff, 0xf8, 0x0, - 0x1f, 0xff, 0xff, 0xf8, 0x0, 0x1f, 0xff, 0xff, - 0xf8, 0x0, 0x1f, 0xff, 0xff, 0xf8, 0x0, 0x1f, - 0xff, 0xff, 0xf8, 0x0, 0x1f, 0xff, 0xff, 0xfc, - 0x0, 0x3f, 0xff, 0x7f, 0xfc, 0x0, 0x3f, 0xfe, - 0x7f, 0xfe, 0x0, 0x7f, 0xfe, 0x7f, 0xff, 0x81, - 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xfc, 0x3f, - 0xff, 0xff, 0xff, 0xfc, 0x3f, 0xff, 0xff, 0xff, - 0xfc, 0x1f, 0xff, 0xff, 0xff, 0xf8, 0xf, 0xff, - 0xff, 0xff, 0xf0, 0xf, 0xff, 0xff, 0xff, 0xf0, - 0x7, 0xff, 0xff, 0xff, 0xe0, 0x3, 0xff, 0xff, - 0xff, 0xc0, 0x1, 0xff, 0xff, 0xff, 0x80, 0x0, - 0x7f, 0xff, 0xfe, 0x0, 0x0, 0x1f, 0xff, 0xf8, - 0x0, 0x0, 0x1, 0xff, 0x80, 0x0, - - /* U+0031 "1" */ - 0x0, 0x0, 0x3f, 0xe0, 0x0, 0x7, 0xfc, 0x0, - 0x1, 0xff, 0x80, 0x0, 0x3f, 0xf0, 0x0, 0xf, - 0xfe, 0x0, 0x1, 0xff, 0xc0, 0x0, 0x7f, 0xf8, - 0x0, 0x1f, 0xff, 0x0, 0xf, 0xff, 0xe0, 0x3, - 0xff, 0xfc, 0x7, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xf0, 0x0, 0x3f, 0xfe, 0x0, - 0x7, 0xff, 0xc0, 0x0, 0xff, 0xf8, 0x0, 0x1f, - 0xff, 0x0, 0x3, 0xff, 0xe0, 0x0, 0x7f, 0xfc, - 0x0, 0xf, 0xff, 0x80, 0x1, 0xff, 0xf0, 0x0, - 0x3f, 0xfe, 0x0, 0x7, 0xff, 0xc0, 0x0, 0xff, - 0xf8, 0x0, 0x1f, 0xff, 0x0, 0x3, 0xff, 0xe0, - 0x0, 0x7f, 0xfc, 0x0, 0xf, 0xff, 0x80, 0x1, - 0xff, 0xf0, 0x0, 0x3f, 0xfe, 0x0, 0x7, 0xff, - 0xc0, 0x0, 0xff, 0xf8, 0x0, 0x1f, 0xff, 0x0, - 0x3, 0xff, 0xe0, 0x0, 0x7f, 0xfc, 0x0, 0xf, - 0xff, 0x80, 0x1, 0xff, 0xf0, 0x0, 0x3f, 0xfe, - 0x0, 0x7, 0xff, 0xc0, 0x0, 0xff, 0xf8, 0x0, - 0x1f, 0xff, 0x0, 0x3, 0xff, 0xe0, 0x0, 0x7f, - 0xfc, 0x0, 0xf, 0xff, 0x80, 0x1, 0xff, 0xf0, - 0x0, 0x3f, 0xfe, 0x0, 0x7, 0xff, 0xc0, 0x0, - 0xff, 0xf8, 0x0, 0x1f, 0xff, 0x0, 0x3, 0xff, - 0xe0, 0x0, 0x7f, 0xfc, 0x0, 0xf, 0xff, 0x80, - 0x1, 0xff, 0xf0, 0x0, 0x3f, 0xfe, 0x0, 0x7, - 0xff, 0xc0, 0x0, 0xff, 0xf8, 0x0, 0x1f, 0xff, - 0x0, 0x3, 0xff, 0xe0, 0x0, 0x7f, 0xfc, 0x0, - 0xf, 0xff, 0x80, 0x1, 0xff, 0xf0, 0x0, 0x3f, - 0xfe, 0x0, 0x7, 0xff, 0xc0, 0x0, 0xff, 0xf8, - 0x0, 0x1f, 0xff, 0x0, 0x3, 0xff, 0xe0, 0x0, - 0x7f, 0xfc, 0x0, 0xf, 0xff, 0x80, 0x1, 0xff, - 0xf0, 0x0, 0x3f, 0xfe, 0x0, 0x7, 0xff, 0xc0, - 0x0, 0xff, 0xf8, 0x0, 0x1f, 0xff, 0x0, 0x3, - 0xff, 0xe0, 0x0, 0x7f, 0xfc, 0x0, 0xf, 0xff, - 0x80, 0x1, 0xff, 0xf0, - - /* U+0032 "2" */ - 0x0, 0x3, 0xff, 0x80, 0x0, 0x0, 0x3f, 0xff, - 0xe0, 0x0, 0x1, 0xff, 0xff, 0xf0, 0x0, 0xf, - 0xff, 0xff, 0xf8, 0x0, 0x3f, 0xff, 0xff, 0xf8, - 0x0, 0xff, 0xff, 0xff, 0xf8, 0x3, 0xff, 0xff, - 0xff, 0xf8, 0xf, 0xff, 0xff, 0xff, 0xf8, 0x1f, - 0xff, 0xff, 0xff, 0xf0, 0x7f, 0xff, 0xff, 0xff, - 0xf0, 0xff, 0xff, 0xff, 0xff, 0xe3, 0xff, 0xff, - 0xff, 0xff, 0xe7, 0xff, 0xf8, 0x3f, 0xff, 0xcf, - 0xff, 0xc0, 0x1f, 0xff, 0x9f, 0xff, 0x0, 0x1f, - 0xff, 0x7f, 0xfe, 0x0, 0x3f, 0xff, 0xff, 0xf8, - 0x0, 0x7f, 0xff, 0xff, 0xf0, 0x0, 0x7f, 0xff, - 0xff, 0xe0, 0x0, 0xff, 0xff, 0xff, 0xc0, 0x1, - 0xff, 0xff, 0xff, 0x80, 0x3, 0xff, 0xff, 0xff, - 0x0, 0x7, 0xff, 0xff, 0xfe, 0x0, 0xf, 0xff, - 0xff, 0xfc, 0x0, 0x1f, 0xff, 0xff, 0xf8, 0x0, - 0x3f, 0xff, 0xff, 0xf0, 0x0, 0x7f, 0xff, 0xff, - 0xe0, 0x1, 0xff, 0xff, 0xff, 0xc0, 0x3, 0xff, - 0xef, 0xff, 0x80, 0x7, 0xff, 0xc0, 0x0, 0x0, - 0xf, 0xff, 0x80, 0x0, 0x0, 0x3f, 0xff, 0x0, - 0x0, 0x0, 0x7f, 0xfc, 0x0, 0x0, 0x1, 0xff, - 0xf8, 0x0, 0x0, 0x3, 0xff, 0xf0, 0x0, 0x0, - 0xf, 0xff, 0xc0, 0x0, 0x0, 0x1f, 0xff, 0x80, - 0x0, 0x0, 0x7f, 0xfe, 0x0, 0x0, 0x1, 0xff, - 0xfc, 0x0, 0x0, 0x3, 0xff, 0xf0, 0x0, 0x0, - 0xf, 0xff, 0xc0, 0x0, 0x0, 0x3f, 0xff, 0x80, - 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0x1, 0xff, - 0xf8, 0x0, 0x0, 0x7, 0xff, 0xf0, 0x0, 0x0, - 0x1f, 0xff, 0xc0, 0x0, 0x0, 0x7f, 0xff, 0x0, - 0x0, 0x1, 0xff, 0xfc, 0x0, 0x0, 0x7, 0xff, - 0xf8, 0x0, 0x0, 0x1f, 0xff, 0xe0, 0x0, 0x0, - 0x7f, 0xff, 0x80, 0x0, 0x1, 0xff, 0xfe, 0x0, - 0x0, 0x3, 0xff, 0xf8, 0x0, 0x0, 0xf, 0xff, - 0xe0, 0x0, 0x0, 0x3f, 0xff, 0x80, 0x0, 0x0, - 0xff, 0xfe, 0x0, 0x0, 0x1, 0xff, 0xf8, 0x0, - 0x0, 0x7, 0xff, 0xf0, 0x0, 0x0, 0x1f, 0xff, - 0xc0, 0x0, 0x0, 0x3f, 0xff, 0x0, 0x0, 0x0, - 0xff, 0xfc, 0x0, 0x0, 0x1, 0xff, 0xf0, 0x0, - 0x0, 0x7, 0xff, 0xe0, 0x0, 0x0, 0xf, 0xff, - 0x80, 0x0, 0x0, 0x1f, 0xff, 0x0, 0x0, 0x0, - 0x7f, 0xfc, 0x0, 0x0, 0x0, 0xff, 0xf8, 0x0, - 0x0, 0x1, 0xff, 0xf0, 0x0, 0x0, 0x3, 0xff, - 0xc0, 0x0, 0x0, 0x7, 0xff, 0x80, 0x0, 0x0, - 0x1f, 0xff, 0x0, 0x0, 0x0, 0x3f, 0xfe, 0x0, - 0x0, 0x0, 0x7f, 0xfc, 0x0, 0x0, 0x0, 0xff, - 0xf8, 0x0, 0x0, 0x1, 0xff, 0xff, 0xff, 0xff, - 0xfb, 0xff, 0xff, 0xff, 0xff, 0xf7, 0xff, 0xff, - 0xff, 0xff, 0xef, 0xff, 0xff, 0xff, 0xff, 0xdf, - 0xff, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xff, 0xff, - 0xff, 0x7f, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, - 0xff, 0xff, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xfb, - 0xff, 0xff, 0xff, 0xff, 0xf7, 0xff, 0xff, 0xff, - 0xff, 0xef, 0xff, 0xff, 0xff, 0xff, 0xc0, - - /* U+0033 "3" */ - 0x0, 0x3, 0xff, 0x80, 0x0, 0x0, 0x3f, 0xff, - 0xe0, 0x0, 0x1, 0xff, 0xff, 0xf0, 0x0, 0xf, - 0xff, 0xff, 0xf8, 0x0, 0x3f, 0xff, 0xff, 0xf8, - 0x0, 0xff, 0xff, 0xff, 0xf8, 0x3, 0xff, 0xff, - 0xff, 0xf8, 0xf, 0xff, 0xff, 0xff, 0xf8, 0x1f, - 0xff, 0xff, 0xff, 0xf0, 0x7f, 0xff, 0xff, 0xff, - 0xf0, 0xff, 0xff, 0xff, 0xff, 0xe3, 0xff, 0xff, - 0xff, 0xff, 0xe7, 0xff, 0xf8, 0x3f, 0xff, 0xcf, - 0xff, 0xc0, 0x1f, 0xff, 0x9f, 0xff, 0x0, 0x1f, - 0xff, 0x7f, 0xfe, 0x0, 0x3f, 0xff, 0xff, 0xf8, - 0x0, 0x3f, 0xff, 0xff, 0xf0, 0x0, 0x7f, 0xff, - 0xff, 0xe0, 0x0, 0xff, 0xff, 0xff, 0xc0, 0x1, - 0xff, 0xff, 0xff, 0x80, 0x3, 0xff, 0xff, 0xff, - 0x0, 0x7, 0xff, 0xff, 0xfe, 0x0, 0xf, 0xff, - 0xff, 0xfc, 0x0, 0x1f, 0xff, 0xff, 0xf8, 0x0, - 0x3f, 0xfe, 0x0, 0x0, 0x0, 0x7f, 0xfc, 0x0, - 0x0, 0x0, 0xff, 0xf8, 0x0, 0x0, 0x1, 0xff, - 0xf0, 0x0, 0x0, 0x3, 0xff, 0xe0, 0x0, 0x0, - 0x7, 0xff, 0x80, 0x0, 0x0, 0x1f, 0xff, 0x0, - 0x0, 0x0, 0x3f, 0xfe, 0x0, 0x0, 0x0, 0xff, - 0xfc, 0x0, 0x0, 0x3, 0xff, 0xf0, 0x0, 0x0, - 0xf, 0xff, 0xe0, 0x0, 0x3f, 0xff, 0xff, 0x80, - 0x0, 0x7f, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xff, - 0xf8, 0x0, 0x1, 0xff, 0xff, 0xe0, 0x0, 0x3, - 0xff, 0xff, 0x0, 0x0, 0x7, 0xff, 0xfc, 0x0, - 0x0, 0xf, 0xff, 0xfe, 0x0, 0x0, 0x1f, 0xff, - 0xfe, 0x0, 0x0, 0x3f, 0xff, 0xfe, 0x0, 0x0, - 0x7f, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xff, 0xfe, - 0x0, 0x1, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x3, - 0xff, 0xfc, 0x0, 0x0, 0x1, 0xff, 0xfc, 0x0, - 0x0, 0x1, 0xff, 0xf8, 0x0, 0x0, 0x1, 0xff, - 0xf0, 0x0, 0x0, 0x3, 0xff, 0xe0, 0x0, 0x0, - 0x7, 0xff, 0xe0, 0x0, 0x0, 0x7, 0xff, 0xc0, - 0x0, 0x0, 0xf, 0xff, 0x80, 0x0, 0x0, 0x1f, - 0xff, 0x0, 0x0, 0x0, 0x3f, 0xfe, 0x0, 0x0, - 0x0, 0x7f, 0xff, 0xff, 0xe0, 0x0, 0xff, 0xff, - 0xff, 0xc0, 0x1, 0xff, 0xff, 0xff, 0x80, 0x3, - 0xff, 0xff, 0xff, 0x0, 0x7, 0xff, 0xff, 0xfe, - 0x0, 0xf, 0xff, 0xff, 0xfc, 0x0, 0x1f, 0xff, - 0xff, 0xf8, 0x0, 0x3f, 0xff, 0xff, 0xf0, 0x0, - 0x7f, 0xff, 0xff, 0xe0, 0x0, 0xff, 0xff, 0xff, - 0xc0, 0x1, 0xff, 0xff, 0xff, 0x80, 0x3, 0xff, - 0xff, 0xff, 0x0, 0xf, 0xff, 0xff, 0xff, 0x0, - 0x1f, 0xff, 0xbf, 0xfe, 0x0, 0x3f, 0xfe, 0x7f, - 0xfe, 0x0, 0xff, 0xfc, 0xff, 0xff, 0x7, 0xff, - 0xf9, 0xff, 0xff, 0xff, 0xff, 0xf1, 0xff, 0xff, - 0xff, 0xff, 0xc3, 0xff, 0xff, 0xff, 0xff, 0x83, - 0xff, 0xff, 0xff, 0xfe, 0x7, 0xff, 0xff, 0xff, - 0xfc, 0x7, 0xff, 0xff, 0xff, 0xf0, 0x7, 0xff, - 0xff, 0xff, 0xc0, 0x7, 0xff, 0xff, 0xff, 0x0, - 0x7, 0xff, 0xff, 0xfc, 0x0, 0x3, 0xff, 0xff, - 0xf0, 0x0, 0x1, 0xff, 0xff, 0x0, 0x0, 0x0, - 0x7f, 0xf0, 0x0, 0x0, - - /* U+0034 "4" */ - 0x0, 0x0, 0x0, 0xff, 0xfc, 0x0, 0x0, 0x0, - 0xf, 0xff, 0xe0, 0x0, 0x0, 0x0, 0x7f, 0xff, - 0x0, 0x0, 0x0, 0x7, 0xff, 0xf8, 0x0, 0x0, - 0x0, 0x3f, 0xff, 0xc0, 0x0, 0x0, 0x3, 0xff, - 0xfe, 0x0, 0x0, 0x0, 0x1f, 0xff, 0xf0, 0x0, - 0x0, 0x0, 0xff, 0xff, 0x80, 0x0, 0x0, 0xf, - 0xff, 0xfc, 0x0, 0x0, 0x0, 0x7f, 0xff, 0xe0, - 0x0, 0x0, 0x7, 0xff, 0xff, 0x0, 0x0, 0x0, - 0x3f, 0xff, 0xf8, 0x0, 0x0, 0x1, 0xff, 0xff, - 0xc0, 0x0, 0x0, 0x1f, 0xff, 0xfe, 0x0, 0x0, - 0x0, 0xff, 0xff, 0xf0, 0x0, 0x0, 0xf, 0xff, - 0xff, 0x80, 0x0, 0x0, 0x7f, 0xff, 0xfc, 0x0, - 0x0, 0x7, 0xff, 0xff, 0xe0, 0x0, 0x0, 0x3f, - 0xff, 0xff, 0x0, 0x0, 0x1, 0xff, 0xff, 0xf8, - 0x0, 0x0, 0x1f, 0xff, 0xff, 0xc0, 0x0, 0x0, - 0xff, 0xff, 0xfe, 0x0, 0x0, 0xf, 0xff, 0xff, - 0xf0, 0x0, 0x0, 0x7f, 0xff, 0xff, 0x80, 0x0, - 0x3, 0xff, 0xff, 0xfc, 0x0, 0x0, 0x3f, 0xfb, - 0xff, 0xe0, 0x0, 0x1, 0xff, 0xdf, 0xff, 0x0, - 0x0, 0x1f, 0xfc, 0xff, 0xf8, 0x0, 0x0, 0xff, - 0xe7, 0xff, 0xc0, 0x0, 0xf, 0xff, 0x3f, 0xfe, - 0x0, 0x0, 0x7f, 0xf1, 0xff, 0xf0, 0x0, 0x3, - 0xff, 0x8f, 0xff, 0x80, 0x0, 0x3f, 0xf8, 0x7f, - 0xfc, 0x0, 0x1, 0xff, 0xc3, 0xff, 0xe0, 0x0, - 0x1f, 0xfe, 0x1f, 0xff, 0x0, 0x0, 0xff, 0xe0, - 0xff, 0xf8, 0x0, 0x7, 0xff, 0x7, 0xff, 0xc0, - 0x0, 0x7f, 0xf8, 0x3f, 0xfe, 0x0, 0x3, 0xff, - 0x81, 0xff, 0xf0, 0x0, 0x3f, 0xfc, 0xf, 0xff, - 0x80, 0x1, 0xff, 0xc0, 0x7f, 0xfc, 0x0, 0x1f, - 0xfe, 0x3, 0xff, 0xe0, 0x0, 0xff, 0xf0, 0x1f, - 0xff, 0x0, 0x7, 0xff, 0x0, 0xff, 0xf8, 0x0, - 0x7f, 0xf8, 0x7, 0xff, 0xc0, 0x3, 0xff, 0x80, - 0x3f, 0xfe, 0x0, 0x3f, 0xfc, 0x1, 0xff, 0xf0, - 0x1, 0xff, 0xe0, 0xf, 0xff, 0x80, 0xf, 0xfe, - 0x0, 0x7f, 0xfc, 0x0, 0xff, 0xf0, 0x3, 0xff, - 0xe0, 0x7, 0xff, 0x0, 0x1f, 0xff, 0x0, 0x7f, - 0xf8, 0x0, 0xff, 0xf8, 0x3, 0xff, 0xc0, 0x7, - 0xff, 0xc0, 0x3f, 0xfc, 0x0, 0x3f, 0xfe, 0x1, - 0xff, 0xe0, 0x1, 0xff, 0xf0, 0xf, 0xff, 0x0, - 0xf, 0xff, 0x80, 0xff, 0xf0, 0x0, 0x7f, 0xfc, - 0x7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0x80, 0x0, 0x0, 0x3f, - 0xfe, 0x0, 0x0, 0x0, 0x1, 0xff, 0xf0, 0x0, - 0x0, 0x0, 0xf, 0xff, 0x80, 0x0, 0x0, 0x0, - 0x7f, 0xfc, 0x0, 0x0, 0x0, 0x3, 0xff, 0xe0, - 0x0, 0x0, 0x0, 0x1f, 0xff, 0x0, 0x0, 0x0, - 0x0, 0xff, 0xf8, 0x0, 0x0, 0x0, 0x7, 0xff, - 0xc0, 0x0, 0x0, 0x0, 0x3f, 0xfe, 0x0, 0x0, - 0x0, 0x1, 0xff, 0xf0, 0x0, 0x0, 0x0, 0xf, - 0xff, 0x80, 0x0, 0x0, 0x0, 0x7f, 0xfc, 0x0, - 0x0, 0x0, 0x3, 0xff, 0xe0, 0x0, 0x0, 0x0, - 0x1f, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0xf8, - 0x0, - - /* U+0035 "5" */ - 0x3f, 0xff, 0xff, 0xff, 0xf8, 0x7f, 0xff, 0xff, - 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xe1, 0xff, - 0xff, 0xff, 0xff, 0xc3, 0xff, 0xff, 0xff, 0xff, - 0x87, 0xff, 0xff, 0xff, 0xff, 0xf, 0xff, 0xff, - 0xff, 0xfe, 0x1f, 0xff, 0xff, 0xff, 0xfc, 0x3f, - 0xff, 0xff, 0xff, 0xf8, 0x7f, 0xff, 0xff, 0xff, - 0xf0, 0xff, 0xff, 0xff, 0xff, 0xe1, 0xff, 0xff, - 0xff, 0xff, 0xc3, 0xff, 0xc0, 0x0, 0x0, 0x7, - 0xff, 0x80, 0x0, 0x0, 0xf, 0xff, 0x0, 0x0, - 0x0, 0x1f, 0xfe, 0x0, 0x0, 0x0, 0x3f, 0xfc, - 0x0, 0x0, 0x0, 0x7f, 0xf8, 0x0, 0x0, 0x1, - 0xff, 0xf0, 0x0, 0x0, 0x3, 0xff, 0xe0, 0x0, - 0x0, 0x7, 0xff, 0xc0, 0x0, 0x0, 0xf, 0xff, - 0x80, 0x0, 0x0, 0x1f, 0xff, 0x0, 0x0, 0x0, - 0x3f, 0xfe, 0x0, 0x0, 0x0, 0x7f, 0xfc, 0x0, - 0x0, 0x0, 0xff, 0xf8, 0x0, 0x0, 0x1, 0xff, - 0xf0, 0x1f, 0xe0, 0x3, 0xff, 0xe0, 0xff, 0xf8, - 0x7, 0xff, 0xc7, 0xff, 0xf8, 0xf, 0xff, 0x9f, - 0xff, 0xf8, 0x1f, 0xff, 0x7f, 0xff, 0xf8, 0x3f, - 0xfe, 0xff, 0xff, 0xf8, 0x7f, 0xff, 0xff, 0xff, - 0xf0, 0xff, 0xff, 0xff, 0xff, 0xf1, 0xff, 0xff, - 0xff, 0xff, 0xe3, 0xff, 0xff, 0xff, 0xff, 0xe7, - 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, - 0xff, 0xbf, 0xff, 0xe0, 0xff, 0xff, 0x7f, 0xff, - 0x0, 0x7f, 0xff, 0xff, 0xfc, 0x0, 0x7f, 0xff, - 0xff, 0xf8, 0x0, 0xff, 0xff, 0xff, 0xe0, 0x0, - 0xff, 0xff, 0xff, 0xc0, 0x1, 0xff, 0xff, 0xff, - 0x80, 0x3, 0xff, 0xff, 0xff, 0x0, 0x7, 0xff, - 0xff, 0xfe, 0x0, 0xf, 0xff, 0x80, 0x0, 0x0, - 0x1f, 0xff, 0x0, 0x0, 0x0, 0x3f, 0xfe, 0x0, - 0x0, 0x0, 0x7f, 0xfc, 0x0, 0x0, 0x0, 0xff, - 0xf8, 0x0, 0x0, 0x1, 0xff, 0xf0, 0x0, 0x0, - 0x3, 0xff, 0xe0, 0x0, 0x0, 0x7, 0xff, 0xc0, - 0x0, 0x0, 0xf, 0xff, 0x80, 0x0, 0x0, 0x1f, - 0xff, 0x0, 0x0, 0x0, 0x3f, 0xff, 0xff, 0xf0, - 0x0, 0x7f, 0xff, 0xff, 0xe0, 0x0, 0xff, 0xff, - 0xff, 0xc0, 0x1, 0xff, 0xff, 0xff, 0x80, 0x3, - 0xff, 0xff, 0xff, 0x0, 0x7, 0xff, 0xff, 0xfe, - 0x0, 0xf, 0xff, 0xff, 0xfc, 0x0, 0x1f, 0xff, - 0xff, 0xf8, 0x0, 0x3f, 0xff, 0xff, 0xf0, 0x0, - 0x7f, 0xff, 0xff, 0xe0, 0x0, 0xff, 0xff, 0xff, - 0xc0, 0x1, 0xff, 0xff, 0xff, 0x80, 0x3, 0xff, - 0xff, 0xff, 0x80, 0xf, 0xff, 0xdf, 0xff, 0x0, - 0x1f, 0xff, 0x3f, 0xff, 0x0, 0x7f, 0xfe, 0x7f, - 0xff, 0x83, 0xff, 0xfc, 0xff, 0xff, 0xff, 0xff, - 0xf8, 0xff, 0xff, 0xff, 0xff, 0xe1, 0xff, 0xff, - 0xff, 0xff, 0xc1, 0xff, 0xff, 0xff, 0xff, 0x3, - 0xff, 0xff, 0xff, 0xfe, 0x3, 0xff, 0xff, 0xff, - 0xf8, 0x3, 0xff, 0xff, 0xff, 0xe0, 0x3, 0xff, - 0xff, 0xff, 0x80, 0x3, 0xff, 0xff, 0xfe, 0x0, - 0x1, 0xff, 0xff, 0xf0, 0x0, 0x0, 0xff, 0xff, - 0x80, 0x0, 0x0, 0x3f, 0xf8, 0x0, 0x0, - - /* U+0036 "6" */ - 0x0, 0x1, 0xff, 0xc0, 0x0, 0x0, 0x1f, 0xff, - 0xf8, 0x0, 0x0, 0x7f, 0xff, 0xfe, 0x0, 0x1, - 0xff, 0xff, 0xff, 0x80, 0x3, 0xff, 0xff, 0xff, - 0xc0, 0x7, 0xff, 0xff, 0xff, 0xe0, 0xf, 0xff, - 0xff, 0xff, 0xf0, 0x1f, 0xff, 0xff, 0xff, 0xf8, - 0x1f, 0xff, 0xff, 0xff, 0xf8, 0x3f, 0xff, 0xff, - 0xff, 0xfc, 0x3f, 0xff, 0xff, 0xff, 0xfc, 0x7f, - 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0x81, 0xff, - 0xfe, 0x7f, 0xff, 0x0, 0x7f, 0xfe, 0x7f, 0xfe, - 0x0, 0x3f, 0xfe, 0xff, 0xfc, 0x0, 0x3f, 0xff, - 0xff, 0xfc, 0x0, 0x1f, 0xff, 0xff, 0xf8, 0x0, - 0x1f, 0xff, 0xff, 0xf8, 0x0, 0x1f, 0xff, 0xff, - 0xf8, 0x0, 0x1f, 0xff, 0xff, 0xf8, 0x0, 0x1f, - 0xff, 0xff, 0xf8, 0x0, 0x1f, 0xff, 0xff, 0xf8, - 0x0, 0x1f, 0xff, 0xff, 0xf8, 0x0, 0x0, 0x0, - 0xff, 0xf8, 0x0, 0x0, 0x0, 0xff, 0xf8, 0x0, - 0x0, 0x0, 0xff, 0xf8, 0x0, 0x0, 0x0, 0xff, - 0xf8, 0x0, 0x0, 0x0, 0xff, 0xf8, 0x0, 0x0, - 0x0, 0xff, 0xf8, 0x0, 0x0, 0x0, 0xff, 0xf8, - 0x0, 0x0, 0x0, 0xff, 0xf8, 0x7, 0xfc, 0x0, - 0xff, 0xf8, 0x1f, 0xff, 0x0, 0xff, 0xf8, 0x7f, - 0xff, 0xc0, 0xff, 0xf8, 0xff, 0xff, 0xe0, 0xff, - 0xf9, 0xff, 0xff, 0xf0, 0xff, 0xfb, 0xff, 0xff, - 0xf8, 0xff, 0xfb, 0xff, 0xff, 0xf8, 0xff, 0xff, - 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xfc, - 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, - 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, - 0xff, 0x81, 0xff, 0xfe, 0xff, 0xfe, 0x0, 0x7f, - 0xff, 0xff, 0xfc, 0x0, 0x3f, 0xff, 0xff, 0xfc, - 0x0, 0x3f, 0xff, 0xff, 0xf8, 0x0, 0x1f, 0xff, - 0xff, 0xf8, 0x0, 0x1f, 0xff, 0xff, 0xf8, 0x0, - 0x1f, 0xff, 0xff, 0xf8, 0x0, 0x1f, 0xff, 0xff, - 0xf8, 0x0, 0x1f, 0xff, 0xff, 0xf8, 0x0, 0x1f, - 0xff, 0xff, 0xf8, 0x0, 0x1f, 0xff, 0xff, 0xf8, - 0x0, 0x1f, 0xff, 0xff, 0xf8, 0x0, 0x1f, 0xff, - 0xff, 0xf8, 0x0, 0x1f, 0xff, 0xff, 0xf8, 0x0, - 0x1f, 0xff, 0xff, 0xf8, 0x0, 0x1f, 0xff, 0xff, - 0xf8, 0x0, 0x1f, 0xff, 0xff, 0xf8, 0x0, 0x1f, - 0xff, 0xff, 0xf8, 0x0, 0x1f, 0xff, 0xff, 0xf8, - 0x0, 0x1f, 0xff, 0xff, 0xf8, 0x0, 0x1f, 0xff, - 0xff, 0xf8, 0x0, 0x1f, 0xff, 0xff, 0xf8, 0x0, - 0x1f, 0xff, 0xff, 0xf8, 0x0, 0x1f, 0xff, 0xff, - 0xf8, 0x0, 0x1f, 0xff, 0xff, 0xf8, 0x0, 0x1f, - 0xff, 0xff, 0xf8, 0x0, 0x1f, 0xff, 0xff, 0xfc, - 0x0, 0x3f, 0xff, 0x7f, 0xfc, 0x0, 0x3f, 0xfe, - 0x7f, 0xfe, 0x0, 0x7f, 0xfe, 0x7f, 0xff, 0x81, - 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xfc, 0x3f, - 0xff, 0xff, 0xff, 0xfc, 0x3f, 0xff, 0xff, 0xff, - 0xfc, 0x1f, 0xff, 0xff, 0xff, 0xf8, 0xf, 0xff, - 0xff, 0xff, 0xf0, 0xf, 0xff, 0xff, 0xff, 0xf0, - 0x7, 0xff, 0xff, 0xff, 0xe0, 0x3, 0xff, 0xff, - 0xff, 0xc0, 0x1, 0xff, 0xff, 0xff, 0x80, 0x0, - 0x7f, 0xff, 0xfe, 0x0, 0x0, 0x1f, 0xff, 0xf8, - 0x0, 0x0, 0x1, 0xff, 0x80, 0x0, - - /* U+0037 "7" */ - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x1f, - 0xff, 0x0, 0x0, 0x0, 0x3f, 0xfe, 0x0, 0x0, - 0x0, 0x3f, 0xfe, 0x0, 0x0, 0x0, 0x3f, 0xfe, - 0x0, 0x0, 0x0, 0x3f, 0xfe, 0x0, 0x0, 0x0, - 0x7f, 0xfc, 0x0, 0x0, 0x0, 0x7f, 0xfc, 0x0, - 0x0, 0x0, 0x7f, 0xfc, 0x0, 0x0, 0x0, 0xff, - 0xf8, 0x0, 0x0, 0x0, 0xff, 0xf8, 0x0, 0x0, - 0x0, 0xff, 0xf8, 0x0, 0x0, 0x1, 0xff, 0xf8, - 0x0, 0x0, 0x1, 0xff, 0xf0, 0x0, 0x0, 0x1, - 0xff, 0xf0, 0x0, 0x0, 0x1, 0xff, 0xf0, 0x0, - 0x0, 0x3, 0xff, 0xe0, 0x0, 0x0, 0x3, 0xff, - 0xe0, 0x0, 0x0, 0x3, 0xff, 0xe0, 0x0, 0x0, - 0x7, 0xff, 0xe0, 0x0, 0x0, 0x7, 0xff, 0xc0, - 0x0, 0x0, 0x7, 0xff, 0xc0, 0x0, 0x0, 0x7, - 0xff, 0xc0, 0x0, 0x0, 0xf, 0xff, 0x80, 0x0, - 0x0, 0xf, 0xff, 0x80, 0x0, 0x0, 0xf, 0xff, - 0x80, 0x0, 0x0, 0x1f, 0xff, 0x80, 0x0, 0x0, - 0x1f, 0xff, 0x0, 0x0, 0x0, 0x1f, 0xff, 0x0, - 0x0, 0x0, 0x3f, 0xff, 0x0, 0x0, 0x0, 0x3f, - 0xfe, 0x0, 0x0, 0x0, 0x3f, 0xfe, 0x0, 0x0, - 0x0, 0x3f, 0xfe, 0x0, 0x0, 0x0, 0x7f, 0xfe, - 0x0, 0x0, 0x0, 0x7f, 0xfc, 0x0, 0x0, 0x0, - 0x7f, 0xfc, 0x0, 0x0, 0x0, 0xff, 0xfc, 0x0, - 0x0, 0x0, 0xff, 0xf8, 0x0, 0x0, 0x0, 0xff, - 0xf8, 0x0, 0x0, 0x1, 0xff, 0xf8, 0x0, 0x0, - 0x1, 0xff, 0xf8, 0x0, 0x0, 0x1, 0xff, 0xf0, - 0x0, 0x0, 0x1, 0xff, 0xf0, 0x0, 0x0, 0x3, - 0xff, 0xf0, 0x0, 0x0, 0x3, 0xff, 0xe0, 0x0, - 0x0, 0x3, 0xff, 0xe0, 0x0, 0x0, 0x7, 0xff, - 0xe0, 0x0, 0x0, 0x7, 0xff, 0xe0, 0x0, 0x0, - 0x7, 0xff, 0xc0, 0x0, 0x0, 0x7, 0xff, 0xc0, - 0x0, 0x0, 0xf, 0xff, 0xc0, 0x0, 0x0, 0xf, - 0xff, 0x80, 0x0, 0x0, 0xf, 0xff, 0x80, 0x0, - 0x0, 0x1f, 0xff, 0x80, 0x0, 0x0, 0x1f, 0xff, - 0x0, 0x0, 0x0, 0x1f, 0xff, 0x0, 0x0, 0x0, - 0x3f, 0xff, 0x0, 0x0, 0x0, 0x3f, 0xff, 0x0, - 0x0, 0x0, 0x3f, 0xfe, 0x0, 0x0, 0x0, 0x3f, - 0xfe, 0x0, 0x0, 0x0, 0x7f, 0xfe, 0x0, 0x0, - 0x0, 0x7f, 0xfc, 0x0, 0x0, 0x0, 0x7f, 0xfc, - 0x0, 0x0, 0x0, 0xff, 0xfc, 0x0, 0x0, 0x0, - 0xff, 0xfc, 0x0, 0x0, 0x0, 0xff, 0xf8, 0x0, - 0x0, 0x1, 0xff, 0xf8, 0x0, 0x0, 0x1, 0xff, - 0xf8, 0x0, 0x0, 0x1, 0xff, 0xf0, 0x0, 0x0, - 0x1, 0xff, 0xf0, 0x0, 0x0, 0x3, 0xff, 0xf0, - 0x0, 0x0, 0x3, 0xff, 0xf0, 0x0, 0x0, 0x3, - 0xff, 0xe0, 0x0, 0x0, - - /* U+0038 "8" */ - 0x0, 0x0, 0xff, 0xc0, 0x0, 0x0, 0x7, 0xff, - 0xfe, 0x0, 0x0, 0xf, 0xff, 0xff, 0xc0, 0x0, - 0x1f, 0xff, 0xff, 0xf8, 0x0, 0x1f, 0xff, 0xff, - 0xfe, 0x0, 0x1f, 0xff, 0xff, 0xff, 0x80, 0x1f, - 0xff, 0xff, 0xff, 0xe0, 0x1f, 0xff, 0xff, 0xff, - 0xf8, 0xf, 0xff, 0xff, 0xff, 0xfc, 0xf, 0xff, - 0xff, 0xff, 0xff, 0x7, 0xff, 0xff, 0xff, 0xff, - 0x87, 0xff, 0xff, 0xff, 0xff, 0xe3, 0xff, 0xfc, - 0xf, 0xff, 0xf1, 0xff, 0xf8, 0x1, 0xff, 0xf8, - 0xff, 0xf8, 0x0, 0x7f, 0xfc, 0xff, 0xfc, 0x0, - 0x3f, 0xff, 0x7f, 0xfc, 0x0, 0xf, 0xff, 0xbf, - 0xfe, 0x0, 0x7, 0xff, 0xdf, 0xff, 0x0, 0x3, - 0xff, 0xef, 0xff, 0x80, 0x1, 0xff, 0xf7, 0xff, - 0xc0, 0x0, 0xff, 0xfb, 0xff, 0xe0, 0x0, 0x7f, - 0xfd, 0xff, 0xf0, 0x0, 0x3f, 0xfe, 0xff, 0xf8, - 0x0, 0x1f, 0xff, 0x7f, 0xfc, 0x0, 0xf, 0xff, - 0xbf, 0xfe, 0x0, 0x7, 0xff, 0xdf, 0xff, 0x0, - 0x3, 0xff, 0xef, 0xff, 0x80, 0x1, 0xff, 0xf7, - 0xff, 0xc0, 0x0, 0xff, 0xfb, 0xff, 0xe0, 0x0, - 0x7f, 0xf8, 0xff, 0xf0, 0x0, 0x3f, 0xfc, 0x7f, - 0xfc, 0x0, 0x3f, 0xfe, 0x3f, 0xfe, 0x0, 0x1f, - 0xff, 0xf, 0xff, 0x80, 0x1f, 0xff, 0x7, 0xff, - 0xf0, 0x3f, 0xff, 0x81, 0xff, 0xff, 0xff, 0xff, - 0x80, 0xff, 0xff, 0xff, 0xff, 0x80, 0x3f, 0xff, - 0xff, 0xff, 0x80, 0xf, 0xff, 0xff, 0xff, 0x80, - 0x3, 0xff, 0xff, 0xff, 0x80, 0x0, 0x7f, 0xff, - 0xff, 0x80, 0x0, 0xff, 0xff, 0xff, 0xe0, 0x0, - 0xff, 0xff, 0xff, 0xf8, 0x0, 0xff, 0xff, 0xff, - 0xfe, 0x0, 0xff, 0xff, 0xff, 0xff, 0x80, 0xff, - 0xff, 0xff, 0xff, 0xe0, 0xff, 0xff, 0xff, 0xff, - 0xf8, 0x7f, 0xff, 0x83, 0xff, 0xfc, 0x3f, 0xff, - 0x0, 0x7f, 0xff, 0x3f, 0xff, 0x0, 0x1f, 0xff, - 0x9f, 0xff, 0x0, 0x7, 0xff, 0xcf, 0xff, 0x80, - 0x3, 0xff, 0xef, 0xff, 0x80, 0x0, 0xff, 0xff, - 0xff, 0xc0, 0x0, 0x7f, 0xff, 0xff, 0xe0, 0x0, - 0x3f, 0xff, 0xff, 0xf0, 0x0, 0x1f, 0xff, 0xff, - 0xf8, 0x0, 0xf, 0xff, 0xff, 0xfc, 0x0, 0x7, - 0xff, 0xff, 0xfe, 0x0, 0x3, 0xff, 0xff, 0xff, - 0x0, 0x1, 0xff, 0xff, 0xff, 0x80, 0x0, 0xff, - 0xff, 0xff, 0xc0, 0x0, 0x7f, 0xff, 0xff, 0xe0, - 0x0, 0x3f, 0xff, 0xff, 0xf0, 0x0, 0x1f, 0xff, - 0xff, 0xf8, 0x0, 0xf, 0xff, 0xff, 0xfc, 0x0, - 0x7, 0xff, 0xff, 0xfe, 0x0, 0x3, 0xff, 0xff, - 0xff, 0x0, 0x1, 0xff, 0xff, 0xff, 0x80, 0x0, - 0xff, 0xff, 0xff, 0xe0, 0x0, 0xff, 0xff, 0xff, - 0xf0, 0x0, 0x7f, 0xfe, 0xff, 0xfc, 0x0, 0x7f, - 0xfe, 0x7f, 0xff, 0x0, 0x7f, 0xff, 0x3f, 0xff, - 0xe0, 0xff, 0xff, 0x9f, 0xff, 0xff, 0xff, 0xff, - 0xc7, 0xff, 0xff, 0xff, 0xff, 0xc3, 0xff, 0xff, - 0xff, 0xff, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xe0, - 0x7f, 0xff, 0xff, 0xff, 0xe0, 0x1f, 0xff, 0xff, - 0xff, 0xf0, 0x7, 0xff, 0xff, 0xff, 0xf0, 0x1, - 0xff, 0xff, 0xff, 0xf0, 0x0, 0x7f, 0xff, 0xff, - 0xe0, 0x0, 0xf, 0xff, 0xff, 0xe0, 0x0, 0x1, - 0xff, 0xff, 0xc0, 0x0, 0x0, 0xf, 0xfe, 0x0, - 0x0, - - /* U+0039 "9" */ - 0x0, 0x1, 0xff, 0x80, 0x0, 0x0, 0x1f, 0xff, - 0xf8, 0x0, 0x0, 0x7f, 0xff, 0xfe, 0x0, 0x1, - 0xff, 0xff, 0xff, 0x80, 0x3, 0xff, 0xff, 0xff, - 0xc0, 0x7, 0xff, 0xff, 0xff, 0xe0, 0xf, 0xff, - 0xff, 0xff, 0xf0, 0xf, 0xff, 0xff, 0xff, 0xf0, - 0x1f, 0xff, 0xff, 0xff, 0xf8, 0x3f, 0xff, 0xff, - 0xff, 0xfc, 0x3f, 0xff, 0xff, 0xff, 0xfc, 0x7f, - 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0x81, 0xff, - 0xfe, 0x7f, 0xfe, 0x0, 0x7f, 0xfe, 0x7f, 0xfc, - 0x0, 0x3f, 0xfe, 0xff, 0xfc, 0x0, 0x3f, 0xff, - 0xff, 0xf8, 0x0, 0x1f, 0xff, 0xff, 0xf8, 0x0, - 0x1f, 0xff, 0xff, 0xf8, 0x0, 0x1f, 0xff, 0xff, - 0xf8, 0x0, 0x1f, 0xff, 0xff, 0xf8, 0x0, 0x1f, - 0xff, 0xff, 0xf8, 0x0, 0x1f, 0xff, 0xff, 0xf8, - 0x0, 0x1f, 0xff, 0xff, 0xf8, 0x0, 0x1f, 0xff, - 0xff, 0xf8, 0x0, 0x1f, 0xff, 0xff, 0xf8, 0x0, - 0x1f, 0xff, 0xff, 0xf8, 0x0, 0x1f, 0xff, 0xff, - 0xf8, 0x0, 0x1f, 0xff, 0xff, 0xf8, 0x0, 0x1f, - 0xff, 0xff, 0xf8, 0x0, 0x1f, 0xff, 0xff, 0xf8, - 0x0, 0x1f, 0xff, 0xff, 0xf8, 0x0, 0x1f, 0xff, - 0xff, 0xf8, 0x0, 0x1f, 0xff, 0xff, 0xf8, 0x0, - 0x1f, 0xff, 0xff, 0xf8, 0x0, 0x1f, 0xff, 0xff, - 0xf8, 0x0, 0x1f, 0xff, 0xff, 0xf8, 0x0, 0x1f, - 0xff, 0xff, 0xf8, 0x0, 0x1f, 0xff, 0xff, 0xf8, - 0x0, 0x1f, 0xff, 0xff, 0xfc, 0x0, 0x3f, 0xff, - 0xff, 0xfc, 0x0, 0x3f, 0xff, 0xff, 0xfe, 0x0, - 0x7f, 0xff, 0x7f, 0xff, 0x81, 0xff, 0xff, 0x7f, - 0xff, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, - 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xff, - 0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xff, 0xff, - 0x1f, 0xff, 0xff, 0xdf, 0xff, 0x1f, 0xff, 0xff, - 0xdf, 0xff, 0xf, 0xff, 0xff, 0x9f, 0xff, 0x7, - 0xff, 0xff, 0x1f, 0xff, 0x3, 0xff, 0xfe, 0x1f, - 0xff, 0x0, 0xff, 0xf8, 0x1f, 0xff, 0x0, 0x3f, - 0xe0, 0x1f, 0xff, 0x0, 0x0, 0x0, 0x1f, 0xff, - 0x0, 0x0, 0x0, 0x1f, 0xff, 0x0, 0x0, 0x0, - 0x1f, 0xff, 0x0, 0x0, 0x0, 0x1f, 0xff, 0x0, - 0x0, 0x0, 0x1f, 0xff, 0x0, 0x0, 0x0, 0x1f, - 0xff, 0x0, 0x0, 0x0, 0x1f, 0xff, 0x0, 0x0, - 0x0, 0x1f, 0xff, 0xff, 0xf8, 0x0, 0x1f, 0xff, - 0xff, 0xf8, 0x0, 0x1f, 0xff, 0xff, 0xf8, 0x0, - 0x1f, 0xff, 0xff, 0xf8, 0x0, 0x1f, 0xff, 0xff, - 0xf8, 0x0, 0x1f, 0xff, 0xff, 0xf8, 0x0, 0x1f, - 0xff, 0xff, 0xf8, 0x0, 0x3f, 0xff, 0xff, 0xfc, - 0x0, 0x3f, 0xfe, 0x7f, 0xfc, 0x0, 0x7f, 0xfe, - 0x7f, 0xfe, 0x0, 0xff, 0xfe, 0x7f, 0xff, 0x81, - 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xfc, 0x3f, - 0xff, 0xff, 0xff, 0xfc, 0x3f, 0xff, 0xff, 0xff, - 0xfc, 0x1f, 0xff, 0xff, 0xff, 0xf8, 0x1f, 0xff, - 0xff, 0xff, 0xf8, 0xf, 0xff, 0xff, 0xff, 0xf0, - 0x7, 0xff, 0xff, 0xff, 0xe0, 0x3, 0xff, 0xff, - 0xff, 0xc0, 0x1, 0xff, 0xff, 0xff, 0x80, 0x0, - 0x7f, 0xff, 0xfe, 0x0, 0x0, 0x1f, 0xff, 0xf8, - 0x0, 0x0, 0x3, 0xff, 0xc0, 0x0 -}; - - -/*--------------------- - * GLYPH DESCRIPTION - *--------------------*/ - -static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = { - {.bitmap_index = 0, .adv_w = 0, .box_w = 0, .box_h = 0, .ofs_x = 0, .ofs_y = 0} /* id = 0 reserved */, - {.bitmap_index = 0, .adv_w = 768, .box_w = 40, .box_h = 86, .ofs_x = 4, .ofs_y = -1}, - {.bitmap_index = 430, .adv_w = 768, .box_w = 27, .box_h = 84, .ofs_x = 10, .ofs_y = 0}, - {.bitmap_index = 714, .adv_w = 768, .box_w = 39, .box_h = 85, .ofs_x = 5, .ofs_y = 0}, - {.bitmap_index = 1129, .adv_w = 768, .box_w = 39, .box_h = 86, .ofs_x = 4, .ofs_y = -1}, - {.bitmap_index = 1549, .adv_w = 768, .box_w = 45, .box_h = 84, .ofs_x = 2, .ofs_y = 0}, - {.bitmap_index = 2022, .adv_w = 768, .box_w = 39, .box_h = 85, .ofs_x = 5, .ofs_y = -1}, - {.bitmap_index = 2437, .adv_w = 768, .box_w = 40, .box_h = 86, .ofs_x = 4, .ofs_y = -1}, - {.bitmap_index = 2867, .adv_w = 768, .box_w = 40, .box_h = 84, .ofs_x = 4, .ofs_y = 0}, - {.bitmap_index = 3287, .adv_w = 768, .box_w = 41, .box_h = 86, .ofs_x = 3, .ofs_y = -1}, - {.bitmap_index = 3728, .adv_w = 768, .box_w = 40, .box_h = 86, .ofs_x = 4, .ofs_y = -1} -}; - -/*--------------------- - * CHARACTER MAPPING - *--------------------*/ - - - -/*Collect the unicode lists and glyph_id offsets*/ -static const lv_font_fmt_txt_cmap_t cmaps[] = -{ - { - .range_start = 48, .range_length = 10, .glyph_id_start = 1, - .unicode_list = NULL, .glyph_id_ofs_list = NULL, .list_length = 0, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY - } -}; - - - -/*-------------------- - * ALL CUSTOM DATA - *--------------------*/ - -#if LV_VERSION_CHECK(8, 0, 0) -/*Store all the custom data of the font*/ -static lv_font_fmt_txt_glyph_cache_t cache; -static const lv_font_fmt_txt_dsc_t font_dsc = { -#else -static lv_font_fmt_txt_dsc_t font_dsc = { -#endif - .glyph_bitmap = glyph_bitmap, - .glyph_dsc = glyph_dsc, - .cmaps = cmaps, - .kern_dsc = NULL, - .kern_scale = 0, - .cmap_num = 1, - .bpp = 1, - .kern_classes = 0, - .bitmap_format = 0, -#if LV_VERSION_CHECK(8, 0, 0) - .cache = &cache -#endif -}; - - -/*----------------- - * PUBLIC FONT - *----------------*/ - -/*Initialize a public general font descriptor*/ -#if LV_VERSION_CHECK(8, 0, 0) -const lv_font_t bebas_neue_120 = { -#else -lv_font_t bebas_neue_120 = { -#endif - .get_glyph_dsc = lv_font_get_glyph_dsc_fmt_txt, /*Function pointer to get glyph's data*/ - .get_glyph_bitmap = lv_font_get_bitmap_fmt_txt, /*Function pointer to get glyph's bitmap*/ - .line_height = 86, /*The maximum line height required by the font*/ - .base_line = 1, /*Baseline measured from the bottom of the line*/ -#if !(LVGL_VERSION_MAJOR == 6 && LVGL_VERSION_MINOR == 0) - .subpx = LV_FONT_SUBPX_NONE, -#endif -#if LV_VERSION_CHECK(7, 4, 0) || LVGL_VERSION_MAJOR >= 8 - .underline_position = -5, - .underline_thickness = 10, -#endif - .dsc = &font_dsc /*The custom font data. Will be accessed by `get_glyph_bitmap/dsc` */ -}; - - - -#endif /*#if BEBAS_NEUE_120*/ - diff --git a/src/displayapp/fonts/teko_28.c b/src/displayapp/fonts/teko_28.c deleted file mode 100644 index e72d7ddb..00000000 --- a/src/displayapp/fonts/teko_28.c +++ /dev/null @@ -1,453 +0,0 @@ -/******************************************************************************* - * Size: 28 px - * Bpp: 1 - * Opts: - ******************************************************************************/ - -#ifdef LV_LVGL_H_INCLUDE_SIMPLE -#include "lvgl.h" -#else -#include "lvgl/lvgl.h" -#endif - -#ifndef TEKO_28 -#define TEKO_28 1 -#endif - -#if TEKO_28 - -/*----------------- - * BITMAPS - *----------------*/ - -/*Store the image of the glyphs*/ -static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = { - /* U+0020 " " */ - 0x0, - - /* U+0030 "0" */ - 0x7d, 0x8f, 0x1e, 0x3c, 0x78, 0xf1, 0xe3, 0xc7, - 0x8f, 0x1e, 0x3c, 0x78, 0xf1, 0xe3, 0xc6, 0xf8, - - /* U+0031 "1" */ - 0xf3, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, - 0x33, - - /* U+0032 "2" */ - 0x7d, 0x8f, 0x1e, 0x3c, 0x60, 0xc1, 0x86, 0xc, - 0x38, 0x61, 0xc3, 0x6, 0x18, 0x30, 0xc1, 0xfc, - - /* U+0033 "3" */ - 0x7d, 0x8f, 0x1e, 0x3c, 0x60, 0xc1, 0x83, 0x3c, - 0xc, 0x18, 0x3c, 0x78, 0xf1, 0xe3, 0xc6, 0xf8, - - /* U+0034 "4" */ - 0x6, 0x6, 0x3, 0x1, 0x81, 0x80, 0xc0, 0xe0, - 0x60, 0x30, 0x31, 0x98, 0xcc, 0x6c, 0x37, 0xfc, - 0xc, 0x6, 0x3, 0x1, 0x80, - - /* U+0035 "5" */ - 0xff, 0x83, 0x6, 0xc, 0x18, 0x30, 0x7e, 0x6, - 0xc, 0x18, 0x3c, 0x78, 0xf1, 0xe3, 0xc6, 0xf8, - - /* U+0036 "6" */ - 0x7d, 0x8f, 0x1e, 0x3c, 0x78, 0xf0, 0x60, 0xfd, - 0x8f, 0x1e, 0x3c, 0x78, 0xf1, 0xe3, 0xc6, 0xf8, - - /* U+0037 "7" */ - 0xfe, 0xc, 0x38, 0x60, 0xc1, 0x86, 0xc, 0x18, - 0x30, 0xc1, 0x83, 0x6, 0x18, 0x30, 0x60, 0xc0, - - /* U+0038 "8" */ - 0x7d, 0x8f, 0x1e, 0x3c, 0x78, 0xf1, 0xe3, 0x7d, - 0x8f, 0x1e, 0x3c, 0x78, 0xf1, 0xe3, 0xc6, 0xf8, - - /* U+0039 "9" */ - 0x7d, 0x8f, 0x1e, 0x3c, 0x78, 0xf1, 0xe3, 0xc6, - 0xfc, 0x18, 0x3c, 0x78, 0xf1, 0xe3, 0xc6, 0xf8, - - /* U+0041 "A" */ - 0x1c, 0xe, 0x7, 0x82, 0xc3, 0x61, 0xb0, 0xd8, - 0x64, 0x33, 0x19, 0x88, 0xcc, 0x67, 0xf3, 0x9, - 0x86, 0xc3, 0x61, 0xe0, 0xc0, - - /* U+0042 "B" */ - 0xfe, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, - 0xfe, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, - 0xc3, 0xfe, - - /* U+0043 "C" */ - 0x7d, 0x8f, 0x1e, 0x3c, 0x78, 0x30, 0x60, 0xc1, - 0x83, 0x6, 0xc, 0x18, 0xf1, 0xe3, 0xc6, 0xf8, - - /* U+0044 "D" */ - 0xfe, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, - 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, - 0xc3, 0xfe, - - /* U+0045 "E" */ - 0xff, 0x83, 0x6, 0xc, 0x18, 0x30, 0x60, 0xfd, - 0x83, 0x6, 0xc, 0x18, 0x30, 0x60, 0xc1, 0xfc, - - /* U+0046 "F" */ - 0xff, 0x83, 0x6, 0xc, 0x18, 0x30, 0x60, 0xfd, - 0x83, 0x6, 0xc, 0x18, 0x30, 0x60, 0xc1, 0x80, - - /* U+0047 "G" */ - 0x7d, 0x8f, 0x1e, 0x3c, 0x78, 0x30, 0x60, 0xc1, - 0x9f, 0x1e, 0x3c, 0x78, 0xf1, 0xe3, 0xc6, 0xf8, - - /* U+0048 "H" */ - 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, - 0xc3, 0xff, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, - 0xc3, 0xc3, - - /* U+0049 "I" */ - 0xff, 0xff, 0xff, 0xff, 0xf0, - - /* U+004A "J" */ - 0x6, 0xc, 0x18, 0x30, 0x60, 0xc1, 0x83, 0x6, - 0xc, 0x18, 0x30, 0x78, 0xf1, 0xe3, 0xc6, 0xf8, - - /* U+004B "K" */ - 0xc3, 0xc6, 0xc6, 0xce, 0xcc, 0xcc, 0xd8, 0xd8, - 0xf0, 0xf0, 0xd8, 0xd8, 0xcc, 0xcc, 0xcc, 0xc6, - 0xc6, 0xc3, - - /* U+004C "L" */ - 0xc3, 0xc, 0x30, 0xc3, 0xc, 0x30, 0xc3, 0xc, - 0x30, 0xc3, 0xc, 0x30, 0xc3, 0xf0, - - /* U+004D "M" */ - 0xe1, 0xf8, 0x7e, 0x1f, 0x87, 0xe1, 0xfc, 0xff, - 0x3f, 0x4b, 0xd2, 0xf7, 0xbd, 0xef, 0x33, 0xcc, - 0xf3, 0x3c, 0xf, 0x3, 0xc0, 0xf0, 0x30, - - /* U+004E "N" */ - 0xe3, 0xe3, 0xe3, 0xe3, 0xf3, 0xf3, 0xd3, 0xd3, - 0xdb, 0xdb, 0xcb, 0xcb, 0xcf, 0xcf, 0xc7, 0xc7, - 0xc7, 0xc3, - - /* U+004F "O" */ - 0x7d, 0x8f, 0x1e, 0x3c, 0x78, 0xf1, 0xe3, 0xc7, - 0x8f, 0x1e, 0x3c, 0x78, 0xf1, 0xe3, 0xc6, 0xf8, - - /* U+0050 "P" */ - 0xfd, 0x8f, 0x1e, 0x3c, 0x78, 0xf1, 0xe3, 0xc7, - 0xfb, 0x6, 0xc, 0x18, 0x30, 0x60, 0xc1, 0x80, - - /* U+0051 "Q" */ - 0x7d, 0x8f, 0x1e, 0x3c, 0x78, 0xf1, 0xe3, 0xc7, - 0x8f, 0x1e, 0x3c, 0x78, 0xf1, 0xe3, 0xc6, 0xf8, - 0x30, 0x60, 0x60, - - /* U+0052 "R" */ - 0xfc, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, - 0xc6, 0xfc, 0xc8, 0xcc, 0xcc, 0xcc, 0xc6, 0xc6, - 0xc6, 0xc3, - - /* U+0053 "S" */ - 0x7d, 0x8f, 0x1e, 0x3c, 0x78, 0x30, 0x60, 0x7c, - 0xc, 0x18, 0x30, 0x78, 0xf1, 0xe3, 0xc6, 0xf8, - - /* U+0054 "T" */ - 0xff, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, - 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, - 0x18, 0x18, - - /* U+0055 "U" */ - 0xc7, 0x8f, 0x1e, 0x3c, 0x78, 0xf1, 0xe3, 0xc7, - 0x8f, 0x1e, 0x3c, 0x78, 0xf1, 0xe3, 0xc6, 0xf8, - - /* U+0056 "V" */ - 0xc1, 0xe0, 0xd0, 0xcc, 0x66, 0x33, 0x19, 0x8c, - 0xc6, 0x62, 0x13, 0xd, 0x86, 0xc3, 0x61, 0xb0, - 0xd8, 0x28, 0x1c, 0xe, 0x0, - - /* U+0057 "W" */ - 0xc3, 0x87, 0x87, 0xd, 0x8e, 0x1b, 0x1c, 0x36, - 0x38, 0x4c, 0x59, 0x98, 0xb3, 0x31, 0x66, 0x66, - 0xcc, 0x4d, 0x98, 0xd9, 0x31, 0xb2, 0x43, 0x44, - 0x86, 0x8f, 0xd, 0x1e, 0x1e, 0x3c, 0x1c, 0x78, - 0x38, 0x70, - - /* U+0058 "X" */ - 0x61, 0xb1, 0x98, 0xc6, 0x63, 0x61, 0xb0, 0x78, - 0x38, 0xc, 0xe, 0x7, 0x2, 0xc3, 0x61, 0x99, - 0x8c, 0xc6, 0x61, 0xe0, 0xc0, - - /* U+0059 "Y" */ - 0xc3, 0xc3, 0xc3, 0x42, 0x66, 0x66, 0x66, 0x24, - 0x3c, 0x3c, 0x3c, 0x18, 0x18, 0x18, 0x18, 0x18, - 0x18, 0x18, - - /* U+005A "Z" */ - 0xfe, 0xc, 0x18, 0x60, 0xc1, 0x6, 0xc, 0x10, - 0x60, 0xc1, 0x6, 0xc, 0x10, 0x60, 0xc1, 0xfc, - - /* U+0061 "a" */ - 0x7f, 0x8f, 0x1e, 0x3c, 0x78, 0xf1, 0xe3, 0xc7, - 0x8f, 0x1e, 0x3c, 0x6f, 0xc0, - - /* U+0062 "b" */ - 0xc1, 0x83, 0x6, 0xc, 0x1f, 0xb1, 0xe3, 0xc7, - 0x8f, 0x1e, 0x3c, 0x78, 0xf1, 0xe3, 0xc7, 0x8f, - 0xf0, - - /* U+0063 "c" */ - 0x7d, 0x8f, 0x1e, 0x3c, 0x18, 0x30, 0x60, 0xc1, - 0x83, 0x1e, 0x3c, 0x6f, 0x80, - - /* U+0064 "d" */ - 0x6, 0xc, 0x18, 0x30, 0x6f, 0xf1, 0xe3, 0xc7, - 0x8f, 0x1e, 0x3c, 0x78, 0xf1, 0xe3, 0xc7, 0x8d, - 0xf8, - - /* U+0065 "e" */ - 0x7d, 0x8f, 0x1e, 0x3c, 0x78, 0xff, 0xe0, 0xc1, - 0x83, 0x1e, 0x3c, 0x6f, 0x80, - - /* U+0066 "f" */ - 0x3b, 0x18, 0xc6, 0x7d, 0x8c, 0x63, 0x18, 0xc6, - 0x31, 0x8c, 0x63, 0x18, - - /* U+0067 "g" */ - 0x7f, 0x8f, 0x1e, 0x3c, 0x78, 0xf1, 0xe3, 0xc7, - 0x8f, 0x1e, 0x3c, 0x6f, 0xc1, 0x83, 0x7, 0xf8, - - /* U+0068 "h" */ - 0xc1, 0x83, 0x6, 0xc, 0x1f, 0xb1, 0xe3, 0xc7, - 0x8f, 0x1e, 0x3c, 0x78, 0xf1, 0xe3, 0xc7, 0x8f, - 0x18, - - /* U+0069 "i" */ - 0xc0, 0x3f, 0xff, 0xff, 0xfc, - - /* U+006A "j" */ - 0x60, 0x0, 0xdb, 0x6d, 0xb6, 0xdb, 0x6d, 0xb6, - 0xf0, - - /* U+006B "k" */ - 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc7, 0xc6, 0xc6, - 0xcc, 0xcc, 0xd8, 0xd8, 0xd8, 0xd8, 0xcc, 0xcc, - 0xc6, 0xc6, 0xc7, - - /* U+006C "l" */ - 0xff, 0xff, 0xff, 0xff, 0xfc, - - /* U+006D "m" */ - 0xff, 0xec, 0x63, 0xc6, 0x3c, 0x63, 0xc6, 0x3c, - 0x63, 0xc6, 0x3c, 0x63, 0xc6, 0x3c, 0x63, 0xc6, - 0x3c, 0x63, 0xc6, 0x3c, 0x63, - - /* U+006E "n" */ - 0xfd, 0x8f, 0x1e, 0x3c, 0x78, 0xf1, 0xe3, 0xc7, - 0x8f, 0x1e, 0x3c, 0x78, 0xc0, - - /* U+006F "o" */ - 0x7d, 0x8f, 0x1e, 0x3c, 0x78, 0xf1, 0xe3, 0xc7, - 0x8f, 0x1e, 0x3c, 0x6f, 0x80, - - /* U+0070 "p" */ - 0xfd, 0x8f, 0x1e, 0x3c, 0x78, 0xf1, 0xe3, 0xc7, - 0x8f, 0x1e, 0x3c, 0x7f, 0xb0, 0x60, 0xc1, 0x80, - - /* U+0071 "q" */ - 0x7f, 0x8f, 0x1e, 0x3c, 0x78, 0xf1, 0xe3, 0xc7, - 0x8f, 0x1e, 0x3c, 0x6f, 0xc1, 0x83, 0x6, 0xc, - - /* U+0072 "r" */ - 0xff, 0x31, 0x8c, 0x63, 0x18, 0xc6, 0x31, 0x8c, - 0x60, - - /* U+0073 "s" */ - 0x7b, 0x3c, 0xf3, 0xc3, 0xc, 0x1f, 0xc, 0x30, - 0xf3, 0xcd, 0xe0, - - /* U+0074 "t" */ - 0x63, 0x19, 0xf6, 0x31, 0x8c, 0x63, 0x18, 0xc6, - 0x31, 0x8c, 0x38, - - /* U+0075 "u" */ - 0xc7, 0x8f, 0x1e, 0x3c, 0x78, 0xf1, 0xe3, 0xc7, - 0x8f, 0x1e, 0x3c, 0x6f, 0xc0, - - /* U+0076 "v" */ - 0xc3, 0xc6, 0x46, 0x66, 0x66, 0x66, 0x66, 0x64, - 0x6c, 0x2c, 0x3c, 0x3c, 0x3c, 0x3c, - - /* U+0077 "w" */ - 0xc3, 0xf, 0xe, 0x34, 0x78, 0xd9, 0xe2, 0x67, - 0x99, 0x9e, 0x66, 0x69, 0x99, 0x26, 0x24, 0xd8, - 0xf3, 0x43, 0xcf, 0xf, 0x3c, 0x3c, 0xf0, 0xf1, - 0xc0, - - /* U+0078 "x" */ - 0x63, 0x31, 0x8d, 0x86, 0xc3, 0x40, 0xe0, 0x60, - 0x38, 0x1c, 0x1b, 0xd, 0x8c, 0xc6, 0x36, 0x18, - - /* U+0079 "y" */ - 0xc3, 0xc3, 0xc2, 0xc6, 0x66, 0x66, 0x66, 0x66, - 0x64, 0x2c, 0x3c, 0x3c, 0x3c, 0x3c, 0x8, 0x18, - 0x18, 0x70, - - /* U+007A "z" */ - 0xfc, 0x30, 0x86, 0x18, 0x43, 0xc, 0x21, 0x84, - 0x10, 0xc3, 0xf0 -}; - - -/*--------------------- - * GLYPH DESCRIPTION - *--------------------*/ - -static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = { - {.bitmap_index = 0, .adv_w = 0, .box_w = 0, .box_h = 0, .ofs_x = 0, .ofs_y = 0} /* id = 0 reserved */, - {.bitmap_index = 0, .adv_w = 58, .box_w = 1, .box_h = 1, .ofs_x = 0, .ofs_y = 0}, - {.bitmap_index = 1, .adv_w = 162, .box_w = 7, .box_h = 18, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 17, .adv_w = 95, .box_w = 4, .box_h = 18, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 26, .adv_w = 130, .box_w = 7, .box_h = 18, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 42, .adv_w = 144, .box_w = 7, .box_h = 18, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 58, .adv_w = 146, .box_w = 9, .box_h = 18, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 79, .adv_w = 144, .box_w = 7, .box_h = 18, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 95, .adv_w = 158, .box_w = 7, .box_h = 18, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 111, .adv_w = 115, .box_w = 7, .box_h = 18, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 127, .adv_w = 161, .box_w = 7, .box_h = 18, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 143, .adv_w = 155, .box_w = 7, .box_h = 18, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 159, .adv_w = 154, .box_w = 9, .box_h = 18, .ofs_x = 0, .ofs_y = 0}, - {.bitmap_index = 180, .adv_w = 171, .box_w = 8, .box_h = 18, .ofs_x = 2, .ofs_y = 0}, - {.bitmap_index = 198, .adv_w = 155, .box_w = 7, .box_h = 18, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 214, .adv_w = 171, .box_w = 8, .box_h = 18, .ofs_x = 2, .ofs_y = 0}, - {.bitmap_index = 232, .adv_w = 141, .box_w = 7, .box_h = 18, .ofs_x = 2, .ofs_y = 0}, - {.bitmap_index = 248, .adv_w = 136, .box_w = 7, .box_h = 18, .ofs_x = 2, .ofs_y = 0}, - {.bitmap_index = 264, .adv_w = 157, .box_w = 7, .box_h = 18, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 280, .adv_w = 171, .box_w = 8, .box_h = 18, .ofs_x = 2, .ofs_y = 0}, - {.bitmap_index = 298, .adv_w = 89, .box_w = 2, .box_h = 18, .ofs_x = 2, .ofs_y = 0}, - {.bitmap_index = 303, .adv_w = 135, .box_w = 7, .box_h = 18, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 319, .adv_w = 155, .box_w = 8, .box_h = 18, .ofs_x = 2, .ofs_y = 0}, - {.bitmap_index = 337, .adv_w = 121, .box_w = 6, .box_h = 18, .ofs_x = 2, .ofs_y = 0}, - {.bitmap_index = 351, .adv_w = 213, .box_w = 10, .box_h = 18, .ofs_x = 2, .ofs_y = 0}, - {.bitmap_index = 374, .adv_w = 169, .box_w = 8, .box_h = 18, .ofs_x = 2, .ofs_y = 0}, - {.bitmap_index = 392, .adv_w = 161, .box_w = 7, .box_h = 18, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 408, .adv_w = 155, .box_w = 7, .box_h = 18, .ofs_x = 2, .ofs_y = 0}, - {.bitmap_index = 424, .adv_w = 161, .box_w = 7, .box_h = 21, .ofs_x = 1, .ofs_y = -3}, - {.bitmap_index = 443, .adv_w = 163, .box_w = 8, .box_h = 18, .ofs_x = 2, .ofs_y = 0}, - {.bitmap_index = 461, .adv_w = 146, .box_w = 7, .box_h = 18, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 477, .adv_w = 125, .box_w = 8, .box_h = 18, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 495, .adv_w = 163, .box_w = 7, .box_h = 18, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 511, .adv_w = 143, .box_w = 9, .box_h = 18, .ofs_x = 0, .ofs_y = 0}, - {.bitmap_index = 532, .adv_w = 246, .box_w = 15, .box_h = 18, .ofs_x = 0, .ofs_y = 0}, - {.bitmap_index = 566, .adv_w = 150, .box_w = 9, .box_h = 18, .ofs_x = 0, .ofs_y = 0}, - {.bitmap_index = 587, .adv_w = 143, .box_w = 8, .box_h = 18, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 605, .adv_w = 122, .box_w = 7, .box_h = 18, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 621, .adv_w = 147, .box_w = 7, .box_h = 14, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 634, .adv_w = 147, .box_w = 7, .box_h = 19, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 651, .adv_w = 146, .box_w = 7, .box_h = 14, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 664, .adv_w = 147, .box_w = 7, .box_h = 19, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 681, .adv_w = 148, .box_w = 7, .box_h = 14, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 694, .adv_w = 88, .box_w = 5, .box_h = 19, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 706, .adv_w = 147, .box_w = 7, .box_h = 18, .ofs_x = 1, .ofs_y = -4}, - {.bitmap_index = 722, .adv_w = 149, .box_w = 7, .box_h = 19, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 739, .adv_w = 71, .box_w = 2, .box_h = 19, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 744, .adv_w = 71, .box_w = 3, .box_h = 23, .ofs_x = 0, .ofs_y = -4}, - {.bitmap_index = 753, .adv_w = 146, .box_w = 8, .box_h = 19, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 772, .adv_w = 71, .box_w = 2, .box_h = 19, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 777, .adv_w = 225, .box_w = 12, .box_h = 14, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 798, .adv_w = 149, .box_w = 7, .box_h = 14, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 811, .adv_w = 152, .box_w = 7, .box_h = 14, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 824, .adv_w = 147, .box_w = 7, .box_h = 18, .ofs_x = 1, .ofs_y = -4}, - {.bitmap_index = 840, .adv_w = 147, .box_w = 7, .box_h = 18, .ofs_x = 1, .ofs_y = -4}, - {.bitmap_index = 856, .adv_w = 95, .box_w = 5, .box_h = 14, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 865, .adv_w = 133, .box_w = 6, .box_h = 14, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 876, .adv_w = 88, .box_w = 5, .box_h = 17, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 887, .adv_w = 149, .box_w = 7, .box_h = 14, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 900, .adv_w = 125, .box_w = 8, .box_h = 14, .ofs_x = 0, .ofs_y = 0}, - {.bitmap_index = 914, .adv_w = 227, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = 0}, - {.bitmap_index = 939, .adv_w = 141, .box_w = 9, .box_h = 14, .ofs_x = 0, .ofs_y = 0}, - {.bitmap_index = 955, .adv_w = 138, .box_w = 8, .box_h = 18, .ofs_x = 0, .ofs_y = -4}, - {.bitmap_index = 973, .adv_w = 119, .box_w = 6, .box_h = 14, .ofs_x = 1, .ofs_y = 0} -}; - -/*--------------------- - * CHARACTER MAPPING - *--------------------*/ - - - -/*Collect the unicode lists and glyph_id offsets*/ -static const lv_font_fmt_txt_cmap_t cmaps[] = -{ - { - .range_start = 32, .range_length = 1, .glyph_id_start = 1, - .unicode_list = NULL, .glyph_id_ofs_list = NULL, .list_length = 0, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY - }, - { - .range_start = 48, .range_length = 10, .glyph_id_start = 2, - .unicode_list = NULL, .glyph_id_ofs_list = NULL, .list_length = 0, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY - }, - { - .range_start = 65, .range_length = 26, .glyph_id_start = 12, - .unicode_list = NULL, .glyph_id_ofs_list = NULL, .list_length = 0, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY - }, - { - .range_start = 97, .range_length = 26, .glyph_id_start = 38, - .unicode_list = NULL, .glyph_id_ofs_list = NULL, .list_length = 0, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY - } -}; - - - -/*-------------------- - * ALL CUSTOM DATA - *--------------------*/ - -#if LV_VERSION_CHECK(8, 0, 0) -/*Store all the custom data of the font*/ -static lv_font_fmt_txt_glyph_cache_t cache; -static const lv_font_fmt_txt_dsc_t font_dsc = { -#else -static lv_font_fmt_txt_dsc_t font_dsc = { -#endif - .glyph_bitmap = glyph_bitmap, - .glyph_dsc = glyph_dsc, - .cmaps = cmaps, - .kern_dsc = NULL, - .kern_scale = 0, - .cmap_num = 4, - .bpp = 1, - .kern_classes = 0, - .bitmap_format = 0, -#if LV_VERSION_CHECK(8, 0, 0) - .cache = &cache -#endif -}; - - -/*----------------- - * PUBLIC FONT - *----------------*/ - -/*Initialize a public general font descriptor*/ -#if LV_VERSION_CHECK(8, 0, 0) -const lv_font_t teko_28 = { -#else -lv_font_t teko_28 = { -#endif - .get_glyph_dsc = lv_font_get_glyph_dsc_fmt_txt, /*Function pointer to get glyph's data*/ - .get_glyph_bitmap = lv_font_get_bitmap_fmt_txt, /*Function pointer to get glyph's bitmap*/ - .line_height = 23, /*The maximum line height required by the font*/ - .base_line = 4, /*Baseline measured from the bottom of the line*/ -#if !(LVGL_VERSION_MAJOR == 6 && LVGL_VERSION_MINOR == 0) - .subpx = LV_FONT_SUBPX_NONE, -#endif -#if LV_VERSION_CHECK(7, 4, 0) || LVGL_VERSION_MAJOR >= 8 - .underline_position = -2, - .underline_thickness = 1, -#endif - .dsc = &font_dsc /*The custom font data. Will be accessed by `get_glyph_bitmap/dsc` */ -}; - - - -#endif /*#if TEKO_28*/ - diff --git a/src/displayapp/screens/WatchFaceInfineat.cpp b/src/displayapp/screens/WatchFaceInfineat.cpp index c6429111..dfd29f9f 100644 --- a/src/displayapp/screens/WatchFaceInfineat.cpp +++ b/src/displayapp/screens/WatchFaceInfineat.cpp @@ -159,37 +159,49 @@ WatchFaceInfineat::WatchFaceInfineat(DisplayApp* app, timeContainer = lv_obj_create(lv_scr_act(), nullptr); lv_obj_set_style_local_bg_opa(timeContainer, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_OPA_TRANSP); - lv_obj_set_size(timeContainer, 185, 185); - lv_obj_align(timeContainer, lv_scr_act(), LV_ALIGN_CENTER, 0, -10); + lv_obj_set_size(timeContainer, 110, 145); + lv_obj_align(timeContainer, lv_scr_act(), LV_ALIGN_CENTER, 0, 0); labelHour = lv_label_create(lv_scr_act(), nullptr); - lv_obj_set_style_local_text_font(labelHour, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &bebas_neue_120); + lv_obj_set_style_local_text_font(labelHour, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &jetbrains_mono_extrabold_compressed); lv_label_set_text(labelHour, "01"); - lv_obj_align(labelHour, timeContainer, LV_ALIGN_IN_TOP_MID, 0, 0); + lv_obj_align(labelHour, timeContainer, LV_ALIGN_IN_TOP_MID, 0, 5); labelMinutes = lv_label_create(lv_scr_act(), nullptr); - lv_obj_set_style_local_text_font(labelMinutes, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &bebas_neue_120); + lv_obj_set_style_local_text_font(labelMinutes, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &jetbrains_mono_extrabold_compressed); lv_label_set_text(labelMinutes, "00"); lv_obj_align(labelMinutes, timeContainer, LV_ALIGN_IN_BOTTOM_MID, 0, 0); labelTimeAmPm = lv_label_create(lv_scr_act(), nullptr); - lv_obj_set_style_local_text_font(labelTimeAmPm, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &teko_28); + lv_obj_set_style_local_text_font(labelTimeAmPm, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &jetbrains_mono_bold_20); lv_label_set_text(labelTimeAmPm, ""); + lv_obj_align(labelTimeAmPm, timeContainer, LV_ALIGN_OUT_RIGHT_TOP, 0, 15); - labelDate = lv_label_create(lv_scr_act(), nullptr); - lv_obj_set_style_local_text_color(labelDate, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x999999)); - lv_obj_set_style_local_text_font(labelDate, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &teko_28); - lv_obj_align(labelDate, lv_scr_act(), LV_ALIGN_IN_RIGHT_MID, -1, 0); - lv_label_set_text(labelDate, "Mon 01"); + dateContainer = lv_obj_create(lv_scr_act(), nullptr); + lv_obj_set_style_local_bg_opa(dateContainer, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_OPA_TRANSP); + lv_obj_set_size(dateContainer, 40, 50); + lv_obj_align(dateContainer, lv_scr_act(), LV_ALIGN_IN_RIGHT_MID, 0, 5); + + labelDateDay = lv_label_create(lv_scr_act(), nullptr); + lv_obj_set_style_local_text_color(labelDateDay, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x999999)); + lv_obj_set_style_local_text_font(labelDateDay, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &jetbrains_mono_bold_20); + lv_obj_align(labelDateDay, dateContainer, LV_ALIGN_IN_TOP_MID, 0, 0); + lv_label_set_text(labelDateDay, "Mon"); + + labelDateNum = lv_label_create(lv_scr_act(), nullptr); + lv_obj_set_style_local_text_color(labelDateNum, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x999999)); + lv_obj_set_style_local_text_font(labelDateNum, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &jetbrains_mono_bold_20); + lv_obj_align(labelDateNum, dateContainer, LV_ALIGN_IN_BOTTOM_MID, 0, 0); + lv_label_set_text(labelDateNum, "01"); bleIcon = lv_label_create(lv_scr_act(), nullptr); lv_obj_set_style_local_text_color(bleIcon, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x999999)); lv_label_set_text(bleIcon, Symbols::bluetooth); - lv_obj_align(bleIcon, labelDate, LV_ALIGN_OUT_BOTTOM_MID, 0, 3); + lv_obj_align(bleIcon, dateContainer, LV_ALIGN_OUT_BOTTOM_MID, 0, 7); stepValue = lv_label_create(lv_scr_act(), nullptr); lv_obj_set_style_local_text_color(stepValue, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x999999)); - lv_obj_set_style_local_text_font(stepValue, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &teko_28); + lv_obj_set_style_local_text_font(stepValue, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &jetbrains_mono_bold_20); lv_obj_align(stepValue, lv_scr_act(), LV_ALIGN_IN_BOTTOM_RIGHT, 10, 0); lv_label_set_text(stepValue, "0"); @@ -432,13 +444,16 @@ void WatchFaceInfineat::Refresh() { if (settingsController.GetClockType() == Controllers::Settings::ClockType::H12) { lv_label_set_text(labelTimeAmPm, ampmChar); - lv_obj_align(labelTimeAmPm, labelHour, LV_ALIGN_OUT_RIGHT_TOP, 5, 20); + lv_obj_align(labelTimeAmPm, timeContainer, LV_ALIGN_OUT_RIGHT_TOP, 0, 10); + lv_obj_align(labelHour, timeContainer, LV_ALIGN_IN_TOP_MID, 0, 5); + lv_obj_align(labelMinutes, timeContainer, LV_ALIGN_IN_BOTTOM_MID, 0, 0); } if ((year != currentYear) || (month != currentMonth) || (dayOfWeek != currentDayOfWeek) || (day != currentDay)) { - lv_label_set_text_fmt(labelDate, "%s %02d", dateTimeController.DayOfWeekShortToStringLow(), day); - lv_obj_align(labelDate, lv_scr_act(), LV_ALIGN_IN_RIGHT_MID, 0, 0); - lv_obj_set_size(labelDate, 5, 5); + lv_label_set_text_fmt(labelDateDay, "%s", dateTimeController.DayOfWeekShortToStringLow()); + lv_label_set_text_fmt(labelDateNum, "%02d", day); + lv_obj_align(labelDateDay, dateContainer, LV_ALIGN_IN_TOP_MID, 0, 0); + lv_obj_align(labelDateNum, dateContainer, LV_ALIGN_IN_BOTTOM_MID, 0, 0); currentYear = year; currentMonth = month; diff --git a/src/displayapp/screens/WatchFaceInfineat.h b/src/displayapp/screens/WatchFaceInfineat.h index c7e21379..da9d9964 100644 --- a/src/displayapp/screens/WatchFaceInfineat.h +++ b/src/displayapp/screens/WatchFaceInfineat.h @@ -93,7 +93,9 @@ namespace Pinetime { lv_obj_t* labelHour; lv_obj_t* labelMinutes; lv_obj_t* labelTimeAmPm; - lv_obj_t* labelDate; + lv_obj_t* dateContainer; + lv_obj_t* labelDateDay; + lv_obj_t* labelDateNum; lv_obj_t* bleIcon; lv_obj_t* stepIcon; lv_obj_t* stepValue; diff --git a/src/libs/lv_conf.h b/src/libs/lv_conf.h index 7cabcdba..73109c5a 100644 --- a/src/libs/lv_conf.h +++ b/src/libs/lv_conf.h @@ -418,9 +418,7 @@ typedef void* lv_indev_drv_user_data_t; /*Type of user data in the in LV_FONT_DECLARE(jetbrains_mono_42) \ LV_FONT_DECLARE(jetbrains_mono_76) \ LV_FONT_DECLARE(open_sans_light) \ - LV_FONT_DECLARE(lv_font_sys_48) \ - LV_FONT_DECLARE(bebas_neue_120) \ - LV_FONT_DECLARE(teko_28) + LV_FONT_DECLARE(lv_font_sys_48) /* Enable it if you have fonts with a lot of characters. * The limit depends on the font size, font face and bpp -- cgit v1.2.3 From b5bf6c51a462a94d2765cc33dd6a8afa0836e8ef Mon Sep 17 00:00:00 2001 From: Diego Miguel Date: Fri, 1 Apr 2022 16:22:26 +0200 Subject: Implement battery indicator --- src/displayapp/screens/Clock.cpp | 1 + src/displayapp/screens/WatchFaceInfineat.cpp | 35 +++++++++++++++++++++++++++- src/displayapp/screens/WatchFaceInfineat.h | 8 +++++++ 3 files changed, 43 insertions(+), 1 deletion(-) (limited to 'src/displayapp/screens/WatchFaceInfineat.cpp') diff --git a/src/displayapp/screens/Clock.cpp b/src/displayapp/screens/Clock.cpp index 7ed9539d..e9e03df0 100644 --- a/src/displayapp/screens/Clock.cpp +++ b/src/displayapp/screens/Clock.cpp @@ -111,6 +111,7 @@ std::unique_ptr Clock::WatchFaceTerminalScreen() { std::unique_ptr Clock::WatchFaceInfineatScreen() { return std::make_unique(app, dateTimeController, + batteryController, bleController, notificatioManager, settingsController, diff --git a/src/displayapp/screens/WatchFaceInfineat.cpp b/src/displayapp/screens/WatchFaceInfineat.cpp index dfd29f9f..b9b13a09 100644 --- a/src/displayapp/screens/WatchFaceInfineat.cpp +++ b/src/displayapp/screens/WatchFaceInfineat.cpp @@ -6,8 +6,9 @@ #include "displayapp/screens/Symbols.h" #include "displayapp/screens/BleIcon.h" #include "components/settings/Settings.h" -#include "components/ble/NotificationManager.h" +#include "components/battery/BatteryController.h" #include "components/ble/BleController.h" +#include "components/ble/NotificationManager.h" #include "components/motion/MotionController.h" using namespace Pinetime::Applications::Screens; @@ -23,6 +24,7 @@ LV_IMG_DECLARE(logo_pine); WatchFaceInfineat::WatchFaceInfineat(DisplayApp* app, Controllers::DateTime& dateTimeController, + Controllers::Battery& batteryController, Controllers::Ble& bleController, Controllers::NotificationManager& notificationManager, Controllers::Settings& settingsController, @@ -30,6 +32,7 @@ WatchFaceInfineat::WatchFaceInfineat(DisplayApp* app, : Screen(app), currentDateTime {{}}, dateTimeController {dateTimeController}, + batteryController {batteryController}, bleController {bleController}, notificationManager {notificationManager}, settingsController {settingsController}, @@ -51,6 +54,7 @@ WatchFaceInfineat::WatchFaceInfineat(DisplayApp* app, line6 = lv_line_create(lv_scr_act(), nullptr); line7 = lv_line_create(lv_scr_act(), nullptr); line8 = lv_line_create(lv_scr_act(), nullptr); + lineBattery = lv_line_create(lv_scr_act(), nullptr); lv_style_init(&line0Style); lv_style_set_line_width(&line0Style, LV_STATE_DEFAULT, 18); @@ -137,6 +141,17 @@ WatchFaceInfineat::WatchFaceInfineat(DisplayApp* app, lv_img_set_src(logoPine, &logo_pine); lv_obj_set_pos(logoPine, 15, 106); + lv_style_init(&lineBatteryStyle); + lv_style_set_line_width(&lineBatteryStyle, LV_STATE_DEFAULT, 24); + lv_style_set_line_color(&lineBatteryStyle, LV_STATE_DEFAULT, + lv_color_hex(infineatColors.orange[settingsController.GetInfineatColorIndex()*nLines + 4])); + lv_style_set_line_opa(&lineBatteryStyle, LV_STATE_DEFAULT, LV_OPA_80); + lv_obj_add_style(lineBattery, LV_LINE_PART_MAIN, &lineBatteryStyle); + lineBatteryPoints[0] = {27, 105}; + lineBatteryPoints[1] = {27, 106}; + lv_line_set_points(lineBattery, lineBatteryPoints, 2); + lv_obj_move_foreground(lineBattery); + if(!settingsController.GetInfineatShowSideCover()) { lv_obj_set_hidden(logoPine, true); lv_obj_set_hidden(line0, true); @@ -148,6 +163,7 @@ WatchFaceInfineat::WatchFaceInfineat(DisplayApp* app, lv_obj_set_hidden(line6, true); lv_obj_set_hidden(line7, true); lv_obj_set_hidden(line8, true); + lv_obj_set_hidden(lineBattery, true); } notificationIcon = lv_obj_create(lv_scr_act(), nullptr); @@ -277,6 +293,7 @@ WatchFaceInfineat::~WatchFaceInfineat() { lv_style_reset(&line6Style); lv_style_reset(&line7Style); lv_style_reset(&line8Style); + lv_style_reset(&lineBatteryStyle); lv_obj_clean(lv_scr_act()); } @@ -337,6 +354,7 @@ void WatchFaceInfineat::UpdateSelected(lv_obj_t* object, lv_event_t event) { lv_obj_set_hidden(line6, showSideCover); lv_obj_set_hidden(line7, showSideCover); lv_obj_set_hidden(line8, showSideCover); + lv_obj_set_hidden(lineBattery, showSideCover); lv_obj_set_hidden(btnNextColor, showSideCover); lv_obj_set_hidden(btnPrevColor, showSideCover); const char* labelToggle = showSideCover ? "OFF" : "ON"; @@ -371,6 +389,8 @@ void WatchFaceInfineat::UpdateSelected(lv_obj_t* object, lv_event_t event) { lv_color_hex(infineatColors.orange[colorIndex*nLines + 7])); lv_style_set_line_color(&line8Style, LV_STATE_DEFAULT, lv_color_hex(infineatColors.orange[colorIndex*nLines + 8])); + lv_style_set_line_color(&lineBatteryStyle, LV_STATE_DEFAULT, + lv_color_hex(infineatColors.orange[colorIndex*nLines + 4])); lv_obj_add_style(line0, LV_LINE_PART_MAIN, &line0Style); lv_obj_add_style(line1, LV_LINE_PART_MAIN, &line1Style); lv_obj_add_style(line2, LV_LINE_PART_MAIN, &line2Style); @@ -380,6 +400,7 @@ void WatchFaceInfineat::UpdateSelected(lv_obj_t* object, lv_event_t event) { lv_obj_add_style(line6, LV_LINE_PART_MAIN, &line6Style); lv_obj_add_style(line7, LV_LINE_PART_MAIN, &line7Style); lv_obj_add_style(line8, LV_LINE_PART_MAIN, &line8Style); + lv_obj_add_style(lineBattery, LV_LINE_PART_MAIN, &lineBatteryStyle); lv_obj_set_style_local_bg_color(notificationIcon, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(infineatColors.orange[colorIndex*nLines + 7])); } @@ -462,6 +483,12 @@ void WatchFaceInfineat::Refresh() { } } + batteryPercentRemaining = batteryController.PercentRemaining(); + if (batteryPercentRemaining.IsUpdated()) { + auto batteryPercent = batteryPercentRemaining.Get(); + SetBatteryLevel(batteryPercent); + } + bleState = bleController.IsConnected(); bleRadioEnabled = bleController.IsRadioEnabled(); if (bleState.IsUpdated()) { @@ -484,3 +511,9 @@ void WatchFaceInfineat::Refresh() { } } } + +void WatchFaceInfineat::SetBatteryLevel(uint8_t batteryPercent) { + // starting point (y) + Pine64 logo height * (100 - batteryPercent) / 100 + lineBatteryPoints[1] = {27, static_cast(105 + 32*(100-batteryPercent)/100)}; + lv_line_set_points(lineBattery, lineBatteryPoints, 2); +} diff --git a/src/displayapp/screens/WatchFaceInfineat.h b/src/displayapp/screens/WatchFaceInfineat.h index da9d9964..42d2d16d 100644 --- a/src/displayapp/screens/WatchFaceInfineat.h +++ b/src/displayapp/screens/WatchFaceInfineat.h @@ -10,6 +10,7 @@ namespace Pinetime { namespace Controllers { class Settings; + class Battery; class Ble; class NotificationManager; class MotionController; @@ -22,6 +23,7 @@ namespace Pinetime { public: WatchFaceInfineat(DisplayApp* app, Controllers::DateTime& dateTimeController, + Controllers::Battery& batteryController, Controllers::Ble& bleController, Controllers::NotificationManager& notificationManager, Controllers::Settings& settingsController, @@ -66,6 +68,7 @@ namespace Pinetime { lv_obj_t* line6; lv_obj_t* line7; lv_obj_t* line8; + lv_obj_t* lineBattery; lv_style_t line0Style; lv_style_t line1Style; @@ -76,6 +79,7 @@ namespace Pinetime { lv_style_t line6Style; lv_style_t line7Style; lv_style_t line8Style; + lv_style_t lineBatteryStyle; lv_point_t line0Points[2]; lv_point_t line1Points[2]; @@ -86,6 +90,7 @@ namespace Pinetime { lv_point_t line6Points[2]; lv_point_t line7Points[2]; lv_point_t line8Points[2]; + lv_point_t lineBatteryPoints[2]; lv_obj_t* logoPine; @@ -120,11 +125,14 @@ namespace Pinetime { } infineatColors; Controllers::DateTime& dateTimeController; + Controllers::Battery& batteryController; Controllers::Ble& bleController; Controllers::NotificationManager& notificationManager; Controllers::Settings& settingsController; Controllers::MotionController& motionController; + void SetBatteryLevel(uint8_t batteryPercent); + lv_task_t* taskRefresh; }; } -- cgit v1.2.3 From cb2131ec2cc26a55131192e86287dd6f5fe3e472 Mon Sep 17 00:00:00 2001 From: Diego Miguel Date: Sun, 3 Apr 2022 17:20:25 +0200 Subject: Implement charging battery animation --- src/displayapp/screens/WatchFaceInfineat.cpp | 19 +++++++++++++++---- src/displayapp/screens/WatchFaceInfineat.h | 4 +++- 2 files changed, 18 insertions(+), 5 deletions(-) (limited to 'src/displayapp/screens/WatchFaceInfineat.cpp') diff --git a/src/displayapp/screens/WatchFaceInfineat.cpp b/src/displayapp/screens/WatchFaceInfineat.cpp index b9b13a09..c5c18d0d 100644 --- a/src/displayapp/screens/WatchFaceInfineat.cpp +++ b/src/displayapp/screens/WatchFaceInfineat.cpp @@ -145,7 +145,7 @@ WatchFaceInfineat::WatchFaceInfineat(DisplayApp* app, lv_style_set_line_width(&lineBatteryStyle, LV_STATE_DEFAULT, 24); lv_style_set_line_color(&lineBatteryStyle, LV_STATE_DEFAULT, lv_color_hex(infineatColors.orange[settingsController.GetInfineatColorIndex()*nLines + 4])); - lv_style_set_line_opa(&lineBatteryStyle, LV_STATE_DEFAULT, LV_OPA_80); + lv_style_set_line_opa(&lineBatteryStyle, LV_STATE_DEFAULT, 190); lv_obj_add_style(lineBattery, LV_LINE_PART_MAIN, &lineBatteryStyle); lineBatteryPoints[0] = {27, 105}; lineBatteryPoints[1] = {27, 106}; @@ -484,9 +484,20 @@ void WatchFaceInfineat::Refresh() { } batteryPercentRemaining = batteryController.PercentRemaining(); - if (batteryPercentRemaining.IsUpdated()) { - auto batteryPercent = batteryPercentRemaining.Get(); - SetBatteryLevel(batteryPercent); + isCharging = batteryController.IsCharging(); + // We store if battery and charging are updated before calling Get(), + // since Get() sets isUpdated to false. + bool isBatteryUpdated = batteryPercentRemaining.IsUpdated(); + bool isChargingUpdated = isCharging.IsUpdated(); + if (isCharging.Get()) { // Charging battery animation + chargingBatteryPercent += 1; + if (chargingBatteryPercent > 100) { + chargingBatteryPercent = batteryPercentRemaining.Get(); + } + SetBatteryLevel(chargingBatteryPercent); + } else if (isChargingUpdated || isBatteryUpdated) { + chargingBatteryPercent = batteryPercentRemaining.Get(); + SetBatteryLevel(chargingBatteryPercent); } bleState = bleController.IsConnected(); diff --git a/src/displayapp/screens/WatchFaceInfineat.h b/src/displayapp/screens/WatchFaceInfineat.h index 42d2d16d..54e3cb74 100644 --- a/src/displayapp/screens/WatchFaceInfineat.h +++ b/src/displayapp/screens/WatchFaceInfineat.h @@ -46,9 +46,11 @@ namespace Pinetime { Pinetime::Controllers::DateTime::Days currentDayOfWeek = Pinetime::Controllers::DateTime::Days::Unknown; uint8_t currentDay = 0; uint32_t savedTick = 0; + uint8_t chargingBatteryPercent = 101; // not a mistake ;) + DirtyValue batteryPercentRemaining {}; - DirtyValue powerPresent {}; + DirtyValue isCharging {}; DirtyValue bleState {}; DirtyValue bleRadioEnabled {}; DirtyValue> currentDateTime {}; -- cgit v1.2.3 From 603af7c372bbd1c36e72ba9ef0e80c1ad8b1a438 Mon Sep 17 00:00:00 2001 From: Diego Miguel Date: Mon, 4 Apr 2022 20:48:39 +0200 Subject: Better alignment of the date label --- src/displayapp/screens/WatchFaceInfineat.cpp | 36 +++++++++++----------------- src/displayapp/screens/WatchFaceInfineat.h | 5 ++++ 2 files changed, 19 insertions(+), 22 deletions(-) (limited to 'src/displayapp/screens/WatchFaceInfineat.cpp') diff --git a/src/displayapp/screens/WatchFaceInfineat.cpp b/src/displayapp/screens/WatchFaceInfineat.cpp index c5c18d0d..215a7db6 100644 --- a/src/displayapp/screens/WatchFaceInfineat.cpp +++ b/src/displayapp/screens/WatchFaceInfineat.cpp @@ -193,27 +193,21 @@ WatchFaceInfineat::WatchFaceInfineat(DisplayApp* app, lv_label_set_text(labelTimeAmPm, ""); lv_obj_align(labelTimeAmPm, timeContainer, LV_ALIGN_OUT_RIGHT_TOP, 0, 15); - dateContainer = lv_obj_create(lv_scr_act(), nullptr); - lv_obj_set_style_local_bg_opa(dateContainer, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_OPA_TRANSP); - lv_obj_set_size(dateContainer, 40, 50); - lv_obj_align(dateContainer, lv_scr_act(), LV_ALIGN_IN_RIGHT_MID, 0, 5); - - labelDateDay = lv_label_create(lv_scr_act(), nullptr); - lv_obj_set_style_local_text_color(labelDateDay, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x999999)); - lv_obj_set_style_local_text_font(labelDateDay, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &jetbrains_mono_bold_20); - lv_obj_align(labelDateDay, dateContainer, LV_ALIGN_IN_TOP_MID, 0, 0); - lv_label_set_text(labelDateDay, "Mon"); - - labelDateNum = lv_label_create(lv_scr_act(), nullptr); - lv_obj_set_style_local_text_color(labelDateNum, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x999999)); - lv_obj_set_style_local_text_font(labelDateNum, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &jetbrains_mono_bold_20); - lv_obj_align(labelDateNum, dateContainer, LV_ALIGN_IN_BOTTOM_MID, 0, 0); - lv_label_set_text(labelDateNum, "01"); + dateBleContainer = lv_obj_create(lv_scr_act(), nullptr); + lv_obj_set_style_local_bg_opa(dateBleContainer, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_OPA_TRANSP); + lv_obj_set_size(dateBleContainer, 60, 30); + lv_obj_align(dateBleContainer, lv_scr_act(), LV_ALIGN_IN_RIGHT_MID, 0, 0); + + labelDate = lv_label_create(lv_scr_act(), nullptr); + lv_obj_set_style_local_text_color(labelDate, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x999999)); + lv_obj_set_style_local_text_font(labelDate, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &teko_28); + lv_obj_align(labelDate, dateBleContainer, LV_ALIGN_IN_TOP_MID, 0, 0); + lv_label_set_text(labelDate, "Mon 01"); bleIcon = lv_label_create(lv_scr_act(), nullptr); lv_obj_set_style_local_text_color(bleIcon, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x999999)); lv_label_set_text(bleIcon, Symbols::bluetooth); - lv_obj_align(bleIcon, dateContainer, LV_ALIGN_OUT_BOTTOM_MID, 0, 7); + lv_obj_align(bleIcon, dateBleContainer, LV_ALIGN_OUT_BOTTOM_MID, 0, 0); stepValue = lv_label_create(lv_scr_act(), nullptr); lv_obj_set_style_local_text_color(stepValue, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x999999)); @@ -471,10 +465,8 @@ void WatchFaceInfineat::Refresh() { } if ((year != currentYear) || (month != currentMonth) || (dayOfWeek != currentDayOfWeek) || (day != currentDay)) { - lv_label_set_text_fmt(labelDateDay, "%s", dateTimeController.DayOfWeekShortToStringLow()); - lv_label_set_text_fmt(labelDateNum, "%02d", day); - lv_obj_align(labelDateDay, dateContainer, LV_ALIGN_IN_TOP_MID, 0, 0); - lv_obj_align(labelDateNum, dateContainer, LV_ALIGN_IN_BOTTOM_MID, 0, 0); + lv_label_set_text_fmt(labelDate, "%s %02d", dateTimeController.DayOfWeekShortToStringLow(), day); + lv_obj_realign(labelDate); currentYear = year; currentMonth = month; @@ -504,7 +496,7 @@ void WatchFaceInfineat::Refresh() { bleRadioEnabled = bleController.IsRadioEnabled(); if (bleState.IsUpdated()) { lv_label_set_text(bleIcon, BleIcon::GetIcon(bleState.Get())); - lv_obj_align(bleIcon, dateContainer, LV_ALIGN_OUT_BOTTOM_MID, 0, 3); + lv_obj_realign(bleIcon); } stepCount = motionController.NbSteps(); diff --git a/src/displayapp/screens/WatchFaceInfineat.h b/src/displayapp/screens/WatchFaceInfineat.h index 54e3cb74..3e4491fe 100644 --- a/src/displayapp/screens/WatchFaceInfineat.h +++ b/src/displayapp/screens/WatchFaceInfineat.h @@ -100,9 +100,14 @@ namespace Pinetime { lv_obj_t* labelHour; lv_obj_t* labelMinutes; lv_obj_t* labelTimeAmPm; +<<<<<<< HEAD lv_obj_t* dateContainer; lv_obj_t* labelDateDay; lv_obj_t* labelDateNum; +======= + lv_obj_t* dateBleContainer; + lv_obj_t* labelDate; +>>>>>>> 5e798689 (Better alignment of the date label) lv_obj_t* bleIcon; lv_obj_t* stepIcon; lv_obj_t* stepValue; -- cgit v1.2.3 From 20b31fdbe5667930ad9ec1fae5dd13010c783a47 Mon Sep 17 00:00:00 2001 From: Diego Miguel Date: Sat, 21 May 2022 14:04:49 +0200 Subject: Show battery indicator when side cover hidden --- src/displayapp/screens/WatchFaceInfineat.cpp | 19 +++++++++++++++---- src/displayapp/screens/WatchFaceInfineat.h | 1 + 2 files changed, 16 insertions(+), 4 deletions(-) (limited to 'src/displayapp/screens/WatchFaceInfineat.cpp') diff --git a/src/displayapp/screens/WatchFaceInfineat.cpp b/src/displayapp/screens/WatchFaceInfineat.cpp index 215a7db6..d4b7c446 100644 --- a/src/displayapp/screens/WatchFaceInfineat.cpp +++ b/src/displayapp/screens/WatchFaceInfineat.cpp @@ -153,7 +153,7 @@ WatchFaceInfineat::WatchFaceInfineat(DisplayApp* app, lv_obj_move_foreground(lineBattery); if(!settingsController.GetInfineatShowSideCover()) { - lv_obj_set_hidden(logoPine, true); + ToggleBatteryIndicatorColor(false); lv_obj_set_hidden(line0, true); lv_obj_set_hidden(line1, true); lv_obj_set_hidden(line2, true); @@ -163,7 +163,6 @@ WatchFaceInfineat::WatchFaceInfineat(DisplayApp* app, lv_obj_set_hidden(line6, true); lv_obj_set_hidden(line7, true); lv_obj_set_hidden(line8, true); - lv_obj_set_hidden(lineBattery, true); } notificationIcon = lv_obj_create(lv_scr_act(), nullptr); @@ -338,7 +337,7 @@ void WatchFaceInfineat::UpdateSelected(lv_obj_t* object, lv_event_t event) { } if (object == btnToggleCover) { settingsController.SetInfineatShowSideCover(!showSideCover); - lv_obj_set_hidden(logoPine, showSideCover); + ToggleBatteryIndicatorColor(!showSideCover); lv_obj_set_hidden(line0, showSideCover); lv_obj_set_hidden(line1, showSideCover); lv_obj_set_hidden(line2, showSideCover); @@ -348,7 +347,6 @@ void WatchFaceInfineat::UpdateSelected(lv_obj_t* object, lv_event_t event) { lv_obj_set_hidden(line6, showSideCover); lv_obj_set_hidden(line7, showSideCover); lv_obj_set_hidden(line8, showSideCover); - lv_obj_set_hidden(lineBattery, showSideCover); lv_obj_set_hidden(btnNextColor, showSideCover); lv_obj_set_hidden(btnPrevColor, showSideCover); const char* labelToggle = showSideCover ? "OFF" : "ON"; @@ -520,3 +518,16 @@ void WatchFaceInfineat::SetBatteryLevel(uint8_t batteryPercent) { lineBatteryPoints[1] = {27, static_cast(105 + 32*(100-batteryPercent)/100)}; lv_line_set_points(lineBattery, lineBatteryPoints, 2); } + +void WatchFaceInfineat::ToggleBatteryIndicatorColor(bool showSideCover) { + if (!showSideCover) { // make indicator white + lv_obj_set_style_local_image_recolor_opa(logoPine, LV_IMG_PART_MAIN, LV_STATE_DEFAULT, LV_OPA_100); + lv_obj_set_style_local_image_recolor(logoPine, LV_IMG_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_WHITE); + lv_style_set_line_color(&lineBatteryStyle, LV_STATE_DEFAULT, LV_COLOR_BLACK); + } else { + lv_obj_set_style_local_image_recolor_opa(logoPine, LV_IMG_PART_MAIN, LV_STATE_DEFAULT, LV_OPA_0); + lv_style_set_line_color(&lineBatteryStyle, LV_STATE_DEFAULT, + lv_color_hex(infineatColors.orange[settingsController.GetInfineatColorIndex()*nLines + 4])); + } + lv_obj_add_style(lineBattery, LV_LINE_PART_MAIN, &lineBatteryStyle); +} diff --git a/src/displayapp/screens/WatchFaceInfineat.h b/src/displayapp/screens/WatchFaceInfineat.h index 3e4491fe..b6f5f08c 100644 --- a/src/displayapp/screens/WatchFaceInfineat.h +++ b/src/displayapp/screens/WatchFaceInfineat.h @@ -139,6 +139,7 @@ namespace Pinetime { Controllers::MotionController& motionController; void SetBatteryLevel(uint8_t batteryPercent); + void ToggleBatteryIndicatorColor(bool showSideCover); lv_task_t* taskRefresh; }; -- cgit v1.2.3 From 4e9fe3f36db3d833ac8f60d7f437c3018ebc82aa Mon Sep 17 00:00:00 2001 From: Diego Miguel Date: Sat, 21 May 2022 14:18:00 +0200 Subject: Simplify code --- src/displayapp/screens/WatchFaceInfineat.cpp | 57 +++++++++++----------------- 1 file changed, 23 insertions(+), 34 deletions(-) (limited to 'src/displayapp/screens/WatchFaceInfineat.cpp') diff --git a/src/displayapp/screens/WatchFaceInfineat.cpp b/src/displayapp/screens/WatchFaceInfineat.cpp index d4b7c446..dfa57e79 100644 --- a/src/displayapp/screens/WatchFaceInfineat.cpp +++ b/src/displayapp/screens/WatchFaceInfineat.cpp @@ -363,36 +363,26 @@ void WatchFaceInfineat::UpdateSelected(lv_obj_t* object, lv_event_t event) { settingsController.SetInfineatColorIndex(colorIndex); } if (object == btnNextColor || object == btnPrevColor) { - lv_style_set_line_color(&line0Style, LV_STATE_DEFAULT, - lv_color_hex(infineatColors.orange[colorIndex*nLines])); - lv_style_set_line_color(&line1Style, LV_STATE_DEFAULT, - lv_color_hex(infineatColors.orange[colorIndex*nLines + 1])); - lv_style_set_line_color(&line2Style, LV_STATE_DEFAULT, - lv_color_hex(infineatColors.orange[colorIndex*nLines + 2])); - lv_style_set_line_color(&line3Style, LV_STATE_DEFAULT, - lv_color_hex(infineatColors.orange[colorIndex*nLines + 3])); - lv_style_set_line_color(&line4Style, LV_STATE_DEFAULT, - lv_color_hex(infineatColors.orange[colorIndex*nLines + 4])); - lv_style_set_line_color(&line5Style, LV_STATE_DEFAULT, - lv_color_hex(infineatColors.orange[colorIndex*nLines + 5])); - lv_style_set_line_color(&line6Style, LV_STATE_DEFAULT, - lv_color_hex(infineatColors.orange[colorIndex*nLines + 6])); - lv_style_set_line_color(&line7Style, LV_STATE_DEFAULT, - lv_color_hex(infineatColors.orange[colorIndex*nLines + 7])); - lv_style_set_line_color(&line8Style, LV_STATE_DEFAULT, - lv_color_hex(infineatColors.orange[colorIndex*nLines + 8])); - lv_style_set_line_color(&lineBatteryStyle, LV_STATE_DEFAULT, - lv_color_hex(infineatColors.orange[colorIndex*nLines + 4])); - lv_obj_add_style(line0, LV_LINE_PART_MAIN, &line0Style); - lv_obj_add_style(line1, LV_LINE_PART_MAIN, &line1Style); - lv_obj_add_style(line2, LV_LINE_PART_MAIN, &line2Style); - lv_obj_add_style(line3, LV_LINE_PART_MAIN, &line3Style); - lv_obj_add_style(line4, LV_LINE_PART_MAIN, &line4Style); - lv_obj_add_style(line5, LV_LINE_PART_MAIN, &line5Style); - lv_obj_add_style(line6, LV_LINE_PART_MAIN, &line6Style); - lv_obj_add_style(line7, LV_LINE_PART_MAIN, &line7Style); - lv_obj_add_style(line8, LV_LINE_PART_MAIN, &line8Style); - lv_obj_add_style(lineBattery, LV_LINE_PART_MAIN, &lineBatteryStyle); + lv_obj_set_style_local_line_color(line0, LV_LINE_PART_MAIN, LV_STATE_DEFAULT, + lv_color_hex(infineatColors.orange[colorIndex*nLines + 0])); + lv_obj_set_style_local_line_color(line1, LV_LINE_PART_MAIN, LV_STATE_DEFAULT, + lv_color_hex(infineatColors.orange[colorIndex*nLines + 1])); + lv_obj_set_style_local_line_color(line2, LV_LINE_PART_MAIN, LV_STATE_DEFAULT, + lv_color_hex(infineatColors.orange[colorIndex*nLines + 2])); + lv_obj_set_style_local_line_color(line3, LV_LINE_PART_MAIN, LV_STATE_DEFAULT, + lv_color_hex(infineatColors.orange[colorIndex*nLines + 3])); + lv_obj_set_style_local_line_color(line4, LV_LINE_PART_MAIN, LV_STATE_DEFAULT, + lv_color_hex(infineatColors.orange[colorIndex*nLines + 4])); + lv_obj_set_style_local_line_color(line5, LV_LINE_PART_MAIN, LV_STATE_DEFAULT, + lv_color_hex(infineatColors.orange[colorIndex*nLines + 5])); + lv_obj_set_style_local_line_color(line6, LV_LINE_PART_MAIN, LV_STATE_DEFAULT, + lv_color_hex(infineatColors.orange[colorIndex*nLines + 6])); + lv_obj_set_style_local_line_color(line7, LV_LINE_PART_MAIN, LV_STATE_DEFAULT, + lv_color_hex(infineatColors.orange[colorIndex*nLines + 7])); + lv_obj_set_style_local_line_color(line8, LV_LINE_PART_MAIN, LV_STATE_DEFAULT, + lv_color_hex(infineatColors.orange[colorIndex*nLines + 8])); + lv_obj_set_style_local_line_color(lineBattery, LV_LINE_PART_MAIN, LV_STATE_DEFAULT, + lv_color_hex(infineatColors.orange[colorIndex*nLines + 4])); lv_obj_set_style_local_bg_color(notificationIcon, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(infineatColors.orange[colorIndex*nLines + 7])); } @@ -523,11 +513,10 @@ void WatchFaceInfineat::ToggleBatteryIndicatorColor(bool showSideCover) { if (!showSideCover) { // make indicator white lv_obj_set_style_local_image_recolor_opa(logoPine, LV_IMG_PART_MAIN, LV_STATE_DEFAULT, LV_OPA_100); lv_obj_set_style_local_image_recolor(logoPine, LV_IMG_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_WHITE); - lv_style_set_line_color(&lineBatteryStyle, LV_STATE_DEFAULT, LV_COLOR_BLACK); + lv_obj_set_style_local_line_color(lineBattery, LV_LINE_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_BLACK); } else { lv_obj_set_style_local_image_recolor_opa(logoPine, LV_IMG_PART_MAIN, LV_STATE_DEFAULT, LV_OPA_0); - lv_style_set_line_color(&lineBatteryStyle, LV_STATE_DEFAULT, - lv_color_hex(infineatColors.orange[settingsController.GetInfineatColorIndex()*nLines + 4])); + lv_obj_set_style_local_line_color(lineBattery, LV_LINE_PART_MAIN, LV_STATE_DEFAULT, + lv_color_hex(infineatColors.orange[settingsController.GetInfineatColorIndex()*nLines + 4])); } - lv_obj_add_style(lineBattery, LV_LINE_PART_MAIN, &lineBatteryStyle); } -- cgit v1.2.3 From 2ad51e6a98004f0f163c10231821ad4b2da70163 Mon Sep 17 00:00:00 2001 From: Diego Miguel Date: Sat, 11 Jun 2022 15:08:07 +0200 Subject: Fix date alignment --- src/displayapp/screens/WatchFaceInfineat.cpp | 36 +++++++++++++++++----------- src/displayapp/screens/WatchFaceInfineat.h | 5 ---- 2 files changed, 22 insertions(+), 19 deletions(-) (limited to 'src/displayapp/screens/WatchFaceInfineat.cpp') diff --git a/src/displayapp/screens/WatchFaceInfineat.cpp b/src/displayapp/screens/WatchFaceInfineat.cpp index dfa57e79..bd62c1b3 100644 --- a/src/displayapp/screens/WatchFaceInfineat.cpp +++ b/src/displayapp/screens/WatchFaceInfineat.cpp @@ -192,21 +192,27 @@ WatchFaceInfineat::WatchFaceInfineat(DisplayApp* app, lv_label_set_text(labelTimeAmPm, ""); lv_obj_align(labelTimeAmPm, timeContainer, LV_ALIGN_OUT_RIGHT_TOP, 0, 15); - dateBleContainer = lv_obj_create(lv_scr_act(), nullptr); - lv_obj_set_style_local_bg_opa(dateBleContainer, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_OPA_TRANSP); - lv_obj_set_size(dateBleContainer, 60, 30); - lv_obj_align(dateBleContainer, lv_scr_act(), LV_ALIGN_IN_RIGHT_MID, 0, 0); - - labelDate = lv_label_create(lv_scr_act(), nullptr); - lv_obj_set_style_local_text_color(labelDate, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x999999)); - lv_obj_set_style_local_text_font(labelDate, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &teko_28); - lv_obj_align(labelDate, dateBleContainer, LV_ALIGN_IN_TOP_MID, 0, 0); - lv_label_set_text(labelDate, "Mon 01"); + dateContainer = lv_obj_create(lv_scr_act(), nullptr); + lv_obj_set_style_local_bg_opa(dateContainer, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_OPA_TRANSP); + lv_obj_set_size(dateContainer, 40, 50); + lv_obj_align(dateContainer, lv_scr_act(), LV_ALIGN_IN_RIGHT_MID, 0, 5); + + labelDateDay = lv_label_create(lv_scr_act(), nullptr); + lv_obj_set_style_local_text_color(labelDateDay, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x999999)); + lv_obj_set_style_local_text_font(labelDateDay, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &jetbrains_mono_bold_20); + lv_obj_align(labelDateDay, dateContainer, LV_ALIGN_IN_TOP_MID, 0, 0); + lv_label_set_text(labelDateDay, "Mon"); + + labelDateNum = lv_label_create(lv_scr_act(), nullptr); + lv_obj_set_style_local_text_color(labelDateNum, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x999999)); + lv_obj_set_style_local_text_font(labelDateNum, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &jetbrains_mono_bold_20); + lv_obj_align(labelDateNum, dateContainer, LV_ALIGN_IN_BOTTOM_MID, 0, 0); + lv_label_set_text(labelDateNum, "01"); bleIcon = lv_label_create(lv_scr_act(), nullptr); lv_obj_set_style_local_text_color(bleIcon, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x999999)); lv_label_set_text(bleIcon, Symbols::bluetooth); - lv_obj_align(bleIcon, dateBleContainer, LV_ALIGN_OUT_BOTTOM_MID, 0, 0); + lv_obj_align(bleIcon, dateContainer, LV_ALIGN_OUT_BOTTOM_MID, 0, 7); stepValue = lv_label_create(lv_scr_act(), nullptr); lv_obj_set_style_local_text_color(stepValue, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x999999)); @@ -453,8 +459,10 @@ void WatchFaceInfineat::Refresh() { } if ((year != currentYear) || (month != currentMonth) || (dayOfWeek != currentDayOfWeek) || (day != currentDay)) { - lv_label_set_text_fmt(labelDate, "%s %02d", dateTimeController.DayOfWeekShortToStringLow(), day); - lv_obj_realign(labelDate); + lv_label_set_text_fmt(labelDateDay, "%s", dateTimeController.DayOfWeekShortToStringLow()); + lv_label_set_text_fmt(labelDateNum, "%02d", day); + lv_obj_align(labelDateDay, dateContainer, LV_ALIGN_IN_TOP_MID, 0, 0); + lv_obj_align(labelDateNum, dateContainer, LV_ALIGN_IN_BOTTOM_MID, 0, 0); currentYear = year; currentMonth = month; @@ -484,7 +492,7 @@ void WatchFaceInfineat::Refresh() { bleRadioEnabled = bleController.IsRadioEnabled(); if (bleState.IsUpdated()) { lv_label_set_text(bleIcon, BleIcon::GetIcon(bleState.Get())); - lv_obj_realign(bleIcon); + lv_obj_align(bleIcon, dateContainer, LV_ALIGN_OUT_BOTTOM_MID, 0, 3); } stepCount = motionController.NbSteps(); diff --git a/src/displayapp/screens/WatchFaceInfineat.h b/src/displayapp/screens/WatchFaceInfineat.h index b6f5f08c..9541f2ad 100644 --- a/src/displayapp/screens/WatchFaceInfineat.h +++ b/src/displayapp/screens/WatchFaceInfineat.h @@ -100,14 +100,9 @@ namespace Pinetime { lv_obj_t* labelHour; lv_obj_t* labelMinutes; lv_obj_t* labelTimeAmPm; -<<<<<<< HEAD lv_obj_t* dateContainer; lv_obj_t* labelDateDay; lv_obj_t* labelDateNum; -======= - lv_obj_t* dateBleContainer; - lv_obj_t* labelDate; ->>>>>>> 5e798689 (Better alignment of the date label) lv_obj_t* bleIcon; lv_obj_t* stepIcon; lv_obj_t* stepValue; -- cgit v1.2.3 From 18cff286c75f432095db4b188e0f9a8a9e2bd8e8 Mon Sep 17 00:00:00 2001 From: Diego Miguel Date: Sat, 11 Jun 2022 15:46:16 +0200 Subject: Make notification color white when side cover off --- src/displayapp/screens/WatchFaceInfineat.cpp | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) (limited to 'src/displayapp/screens/WatchFaceInfineat.cpp') diff --git a/src/displayapp/screens/WatchFaceInfineat.cpp b/src/displayapp/screens/WatchFaceInfineat.cpp index bd62c1b3..cdb7cdbd 100644 --- a/src/displayapp/screens/WatchFaceInfineat.cpp +++ b/src/displayapp/screens/WatchFaceInfineat.cpp @@ -152,6 +152,13 @@ WatchFaceInfineat::WatchFaceInfineat(DisplayApp* app, lv_line_set_points(lineBattery, lineBatteryPoints, 2); lv_obj_move_foreground(lineBattery); + notificationIcon = lv_obj_create(lv_scr_act(), nullptr); + lv_obj_set_style_local_bg_color(notificationIcon, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, + lv_color_hex(infineatColors.orange[settingsController.GetInfineatColorIndex()*nLines + 7])); + lv_obj_set_style_local_radius(notificationIcon, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE); + lv_obj_set_size(notificationIcon, 13, 13); + lv_obj_set_hidden(notificationIcon, true); + if(!settingsController.GetInfineatShowSideCover()) { ToggleBatteryIndicatorColor(false); lv_obj_set_hidden(line0, true); @@ -165,13 +172,6 @@ WatchFaceInfineat::WatchFaceInfineat(DisplayApp* app, lv_obj_set_hidden(line8, true); } - notificationIcon = lv_obj_create(lv_scr_act(), nullptr); - lv_obj_set_style_local_bg_color(notificationIcon, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, - lv_color_hex(infineatColors.orange[settingsController.GetInfineatColorIndex()*nLines + 7])); - lv_obj_set_style_local_radius(notificationIcon, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE); - lv_obj_set_size(notificationIcon, 13, 13); - lv_obj_set_hidden(notificationIcon, true); - timeContainer = lv_obj_create(lv_scr_act(), nullptr); lv_obj_set_style_local_bg_opa(timeContainer, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_OPA_TRANSP); lv_obj_set_size(timeContainer, 110, 145); @@ -518,13 +518,16 @@ void WatchFaceInfineat::SetBatteryLevel(uint8_t batteryPercent) { } void WatchFaceInfineat::ToggleBatteryIndicatorColor(bool showSideCover) { - if (!showSideCover) { // make indicator white + if (!showSideCover) { // make indicator and notification icon color white lv_obj_set_style_local_image_recolor_opa(logoPine, LV_IMG_PART_MAIN, LV_STATE_DEFAULT, LV_OPA_100); lv_obj_set_style_local_image_recolor(logoPine, LV_IMG_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_WHITE); lv_obj_set_style_local_line_color(lineBattery, LV_LINE_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_BLACK); + lv_obj_set_style_local_bg_color(notificationIcon, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_WHITE); } else { lv_obj_set_style_local_image_recolor_opa(logoPine, LV_IMG_PART_MAIN, LV_STATE_DEFAULT, LV_OPA_0); lv_obj_set_style_local_line_color(lineBattery, LV_LINE_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(infineatColors.orange[settingsController.GetInfineatColorIndex()*nLines + 4])); + lv_obj_set_style_local_bg_color(notificationIcon, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, + lv_color_hex(infineatColors.orange[settingsController.GetInfineatColorIndex()*nLines + 7])); } } -- cgit v1.2.3 From 4cf73fc169ec1f95abd9d50d5cad08538f7b947c Mon Sep 17 00:00:00 2001 From: Jean-François Milants Date: Sun, 11 Sep 2022 16:22:28 +0200 Subject: Infineat : Add support for external resources, and read the images and fonts from the ilesystem --- src/CMakeLists.txt | 1 - src/displayapp/DisplayApp.cpp | 9 +- src/displayapp/DisplayApp.h | 4 +- src/displayapp/fonts/jetbrains_mono_bold_20.c | 1344 ------------------------- src/displayapp/icons/logo_pine.c | 59 -- src/displayapp/screens/Clock.cpp | 7 +- src/displayapp/screens/Clock.h | 4 +- src/displayapp/screens/Symbols.h | 1 - src/displayapp/screens/WatchFaceInfineat.cpp | 93 +- src/displayapp/screens/WatchFaceInfineat.h | 8 +- src/main.cpp | 3 +- src/resources/fonts.json | 2 +- src/resources/images.json | 2 +- 13 files changed, 92 insertions(+), 1445 deletions(-) delete mode 100644 src/displayapp/fonts/jetbrains_mono_bold_20.c delete mode 100644 src/displayapp/icons/logo_pine.c (limited to 'src/displayapp/screens/WatchFaceInfineat.cpp') diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 0846b95c..8755579b 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -425,7 +425,6 @@ list(APPEND SOURCE_FILES ## Watch faces displayapp/icons/bg_clock.c - displayapp/icons/logo_pine.c displayapp/screens/WatchFaceAnalog.cpp displayapp/screens/WatchFaceDigital.cpp displayapp/screens/WatchFaceInfineat.cpp diff --git a/src/displayapp/DisplayApp.cpp b/src/displayapp/DisplayApp.cpp index 29684466..0d4d7ca9 100644 --- a/src/displayapp/DisplayApp.cpp +++ b/src/displayapp/DisplayApp.cpp @@ -75,7 +75,8 @@ DisplayApp::DisplayApp(Drivers::St7789& lcd, Pinetime::Controllers::TimerController& timerController, Pinetime::Controllers::AlarmController& alarmController, Pinetime::Controllers::BrightnessController& brightnessController, - Pinetime::Controllers::TouchHandler& touchHandler) + Pinetime::Controllers::TouchHandler& touchHandler, + Pinetime::Controllers::FS& filesystem) : lcd {lcd}, lvgl {lvgl}, touchPanel {touchPanel}, @@ -91,7 +92,8 @@ DisplayApp::DisplayApp(Drivers::St7789& lcd, timerController {timerController}, alarmController {alarmController}, brightnessController {brightnessController}, - touchHandler {touchHandler} { + touchHandler {touchHandler}, + filesystem{filesystem} { } void DisplayApp::Start(System::BootErrors error) { @@ -324,7 +326,8 @@ void DisplayApp::LoadApp(Apps app, DisplayApp::FullRefreshDirections direction) notificationManager, settingsController, heartRateController, - motionController); + motionController, + filesystem); break; case Apps::Error: diff --git a/src/displayapp/DisplayApp.h b/src/displayapp/DisplayApp.h index 43972232..ae605114 100644 --- a/src/displayapp/DisplayApp.h +++ b/src/displayapp/DisplayApp.h @@ -62,7 +62,8 @@ namespace Pinetime { Pinetime::Controllers::TimerController& timerController, Pinetime::Controllers::AlarmController& alarmController, Pinetime::Controllers::BrightnessController& brightnessController, - Pinetime::Controllers::TouchHandler& touchHandler); + Pinetime::Controllers::TouchHandler& touchHandler, + Pinetime::Controllers::FS& filesystem); void Start(System::BootErrors error); void PushMessage(Display::Messages msg); @@ -90,6 +91,7 @@ namespace Pinetime { Pinetime::Controllers::AlarmController& alarmController; Pinetime::Controllers::BrightnessController& brightnessController; Pinetime::Controllers::TouchHandler& touchHandler; + Pinetime::Controllers::FS& filesystem; Pinetime::Controllers::FirmwareValidator validator; diff --git a/src/displayapp/fonts/jetbrains_mono_bold_20.c b/src/displayapp/fonts/jetbrains_mono_bold_20.c deleted file mode 100644 index 50c442dd..00000000 --- a/src/displayapp/fonts/jetbrains_mono_bold_20.c +++ /dev/null @@ -1,1344 +0,0 @@ -/******************************************************************************* - * Size: 20 px - * Bpp: 1 - * Opts: - ******************************************************************************/ - -#ifdef LV_LVGL_H_INCLUDE_SIMPLE -#include "lvgl.h" -#else -#include "lvgl/lvgl.h" -#endif - -#ifndef JETBRAINS_MONO_BOLD_20 -#define JETBRAINS_MONO_BOLD_20 1 -#endif - -#if JETBRAINS_MONO_BOLD_20 - -/*----------------- - * BITMAPS - *----------------*/ - -/*Store the image of the glyphs*/ -static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = { - /* U+0020 " " */ - 0x0, - - /* U+0021 "!" */ - 0xff, 0xff, 0xff, 0xfc, 0xf, 0xc0, - - /* U+0022 "\"" */ - 0xef, 0xdf, 0xbf, 0x7e, 0xfd, 0xc0, - - /* U+0023 "#" */ - 0x8, 0xc3, 0x18, 0x62, 0x3f, 0xf7, 0xfe, 0x23, - 0xc, 0x61, 0x88, 0xff, 0xdf, 0xf8, 0x8c, 0x11, - 0x86, 0x30, 0xc4, 0x0, - - /* U+0024 "$" */ - 0x8, 0x2, 0x0, 0x81, 0xfc, 0x7f, 0xba, 0x7e, - 0x9f, 0xa0, 0xf8, 0x1f, 0x83, 0xf8, 0x3f, 0x9, - 0xfa, 0x7e, 0x9d, 0xfe, 0x7f, 0x2, 0x0, 0x80, - 0x20, - - /* U+0025 "%" */ - 0x78, 0x3f, 0xc6, 0xcc, 0xcc, 0xcc, 0xfd, 0x87, - 0xb0, 0x6, 0x0, 0x7e, 0xf, 0xf1, 0xb3, 0x33, - 0x33, 0x33, 0x63, 0xfc, 0x1e, - - /* U+0026 "&" */ - 0x1e, 0xf, 0xe1, 0x8e, 0x30, 0x6, 0x0, 0x60, - 0x1e, 0x7, 0xe6, 0xed, 0xdc, 0xf3, 0x9e, 0x73, - 0xcf, 0xfc, 0xf9, 0x80, - - /* U+0027 "'" */ - 0xff, 0xff, 0xc0, - - /* U+0028 "(" */ - 0x2, 0x1c, 0x79, 0xc7, 0x1e, 0x38, 0x70, 0xe1, - 0xc3, 0x87, 0xe, 0x1c, 0x3c, 0x38, 0x3c, 0x3c, - 0x38, - - /* U+0029 ")" */ - 0x1, 0xc3, 0xc3, 0xc1, 0xc3, 0xc3, 0x87, 0xe, - 0x1c, 0x38, 0x70, 0xe1, 0xc7, 0xe, 0x79, 0xe3, - 0x0, - - /* U+002A "*" */ - 0xc, 0x3, 0x8, 0xc7, 0xb7, 0x7f, 0x83, 0x1, - 0xe0, 0xcc, 0x73, 0x80, 0x0, - - /* U+002B "+" */ - 0x1c, 0x7, 0x1, 0xc3, 0xff, 0xff, 0xc7, 0x1, - 0xc0, 0x70, 0x1c, 0x0, - - /* U+002C "," */ - 0x7b, 0x9c, 0xce, 0x60, - - /* U+002D "-" */ - 0xff, 0xf0, - - /* U+002E "." */ - 0xff, 0xf0, - - /* U+002F "/" */ - 0x1, 0xc0, 0x60, 0x38, 0xe, 0x3, 0x1, 0xc0, - 0x70, 0x18, 0xe, 0x3, 0x1, 0xc0, 0x70, 0x18, - 0xe, 0x3, 0x80, 0xc0, 0x70, 0x18, 0xe, 0x0, - - /* U+0030 "0" */ - 0x3f, 0x1f, 0xef, 0x3f, 0x87, 0xe1, 0xf8, 0x7f, - 0xdf, 0xf7, 0xe1, 0xf8, 0x7e, 0x1f, 0xcf, 0x7f, - 0x8f, 0xc0, - - /* U+0031 "1" */ - 0x1e, 0x3f, 0x3f, 0x99, 0xc8, 0xe0, 0x70, 0x38, - 0x1c, 0xe, 0x7, 0x3, 0x81, 0xcf, 0xff, 0xfc, - - /* U+0032 "2" */ - 0x3e, 0x3f, 0xbd, 0xfc, 0x70, 0x38, 0x1c, 0x1c, - 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0xf, 0xff, 0xfc, - - /* U+0033 "3" */ - 0x7f, 0x9f, 0xe0, 0x30, 0x18, 0xc, 0x7, 0xc1, - 0xf8, 0xf, 0x1, 0xc0, 0x7e, 0x1f, 0xcf, 0x7f, - 0x8f, 0xc0, - - /* U+0034 "4" */ - 0x7, 0x7, 0x3, 0x83, 0x83, 0x83, 0xc1, 0xcf, - 0xe7, 0xe3, 0xff, 0xff, 0xe0, 0x70, 0x38, 0x1c, - - /* U+0035 "5" */ - 0x7f, 0x9f, 0xe7, 0x1, 0xc0, 0x77, 0x1f, 0xe7, - 0x3c, 0x7, 0x1, 0xc0, 0x77, 0x1d, 0xcf, 0x7f, - 0x87, 0xc0, - - /* U+0036 "6" */ - 0xe, 0x3, 0x1, 0xc0, 0x60, 0x38, 0x1d, 0xc7, - 0xfb, 0xcf, 0xe1, 0xf8, 0x7e, 0x1f, 0xcf, 0x7f, - 0x8f, 0x80, - - /* U+0037 "7" */ - 0xff, 0xff, 0xfe, 0x1f, 0x86, 0x3, 0x80, 0xe0, - 0x30, 0x1c, 0x6, 0x3, 0x80, 0xc0, 0x70, 0x1c, - 0xe, 0x0, - - /* U+0038 "8" */ - 0x3f, 0x1f, 0xef, 0x3f, 0x87, 0xe1, 0xdc, 0xe3, - 0xf0, 0xfc, 0x73, 0xb8, 0x7e, 0x1f, 0xcf, 0x7f, - 0x8f, 0xc0, - - /* U+0039 "9" */ - 0x1e, 0x1f, 0xef, 0x3f, 0x87, 0xe1, 0xf8, 0x7f, - 0x3d, 0xfe, 0x3b, 0x81, 0xc0, 0x60, 0x38, 0xc, - 0x7, 0x0, - - /* U+003A ":" */ - 0xff, 0x80, 0x0, 0xff, 0x80, - - /* U+003B ";" */ - 0x7b, 0xde, 0x0, 0x0, 0x0, 0x3, 0xdc, 0xe6, - 0x73, 0x0, - - /* U+003C "<" */ - 0x0, 0x81, 0xc3, 0xe7, 0xcf, 0x6, 0x3, 0xc0, - 0x7c, 0xf, 0x81, 0xc0, 0x20, - - /* U+003D "=" */ - 0xff, 0xff, 0xc0, 0x0, 0x0, 0x7, 0xff, 0xfe, - - /* U+003E ">" */ - 0x80, 0x70, 0x3e, 0x7, 0xc0, 0xf8, 0xc, 0x1e, - 0x3c, 0xf8, 0x70, 0x20, 0x0, - - /* U+003F "?" */ - 0xfc, 0xfe, 0xf, 0x7, 0x7, 0xf, 0x3e, 0x3c, - 0x30, 0x30, 0x0, 0x0, 0x70, 0x70, - - /* U+0040 "@" */ - 0x1f, 0x7, 0xf9, 0xc3, 0x70, 0x3c, 0x7, 0x8e, - 0xf3, 0xfe, 0x63, 0xcc, 0x79, 0x8f, 0x31, 0xe6, - 0x3c, 0xff, 0x8e, 0xf8, 0x3, 0x80, 0x3e, 0x3, - 0xc0, - - /* U+0041 "A" */ - 0x1e, 0x7, 0x81, 0xe0, 0xfc, 0x3f, 0xc, 0xc3, - 0x31, 0xce, 0x73, 0x9f, 0xe7, 0xfb, 0x87, 0xe1, - 0xf0, 0x30, - - /* U+0042 "B" */ - 0xfe, 0x3f, 0xce, 0x3b, 0x8e, 0xe3, 0xb8, 0xef, - 0xe3, 0xfc, 0xe3, 0xf8, 0x7e, 0x1f, 0x8f, 0xff, - 0xbf, 0xc0, - - /* U+0043 "C" */ - 0x3f, 0x1f, 0xef, 0x3f, 0x87, 0xe0, 0x38, 0xe, - 0x3, 0x80, 0xe0, 0x38, 0xe, 0x1f, 0xcf, 0x7f, - 0x8f, 0xc0, - - /* U+0044 "D" */ - 0xfe, 0x7f, 0xb9, 0xfc, 0x7e, 0x3f, 0x1f, 0x8f, - 0xc7, 0xe3, 0xf1, 0xf8, 0xfc, 0xff, 0xf7, 0xf0, - - /* U+0045 "E" */ - 0xff, 0xff, 0xf8, 0x1c, 0xe, 0x7, 0x3, 0xfd, - 0xfe, 0xe0, 0x70, 0x38, 0x1c, 0xf, 0xff, 0xfc, - - /* U+0046 "F" */ - 0xff, 0xff, 0xf8, 0x1c, 0xe, 0x7, 0x3, 0xff, - 0xff, 0xe0, 0x70, 0x38, 0x1c, 0xe, 0x7, 0x0, - - /* U+0047 "G" */ - 0x3f, 0x1f, 0xef, 0x3f, 0x87, 0xe0, 0x38, 0xe, - 0x7f, 0x9f, 0xe1, 0xf8, 0x7e, 0x1f, 0xcf, 0x7f, - 0x8f, 0xc0, - - /* U+0048 "H" */ - 0xe3, 0xf1, 0xf8, 0xfc, 0x7e, 0x3f, 0x1f, 0xff, - 0xff, 0xe3, 0xf1, 0xf8, 0xfc, 0x7e, 0x3f, 0x1c, - - /* U+0049 "I" */ - 0xff, 0xff, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, - 0x1c, 0x1c, 0x1c, 0x1c, 0xff, 0xff, - - /* U+004A "J" */ - 0x1f, 0xc7, 0xf0, 0x1c, 0x7, 0x1, 0xc0, 0x70, - 0x1c, 0x7, 0x1, 0xc0, 0x7e, 0x1f, 0xcf, 0x7f, - 0x8f, 0xc0, - - /* U+004B "K" */ - 0xe1, 0xf8, 0x7e, 0x3b, 0x8e, 0xe7, 0x39, 0xcf, - 0xe3, 0xf8, 0xe7, 0x39, 0xce, 0x3b, 0x8e, 0xe1, - 0xf8, 0x70, - - /* U+004C "L" */ - 0xe0, 0x70, 0x38, 0x1c, 0xe, 0x7, 0x3, 0x81, - 0xc0, 0xe0, 0x70, 0x38, 0x1c, 0xf, 0xff, 0xfc, - - /* U+004D "M" */ - 0xf3, 0xfc, 0xfd, 0x3f, 0xcf, 0xff, 0xff, 0xfe, - 0xdf, 0xb7, 0xe1, 0xf8, 0x7e, 0x1f, 0x87, 0xe1, - 0xf8, 0x70, - - /* U+004E "N" */ - 0xe1, 0xf0, 0xfc, 0x7e, 0x3f, 0x9e, 0xcf, 0x67, - 0x9b, 0xcd, 0xe6, 0xf1, 0xf8, 0xfc, 0x7e, 0x1c, - - /* U+004F "O" */ - 0x3e, 0x3f, 0xb8, 0xfc, 0x7e, 0x3f, 0x1f, 0x8f, - 0xc7, 0xe3, 0xf1, 0xf8, 0xfc, 0x77, 0xf1, 0xf0, - - /* U+0050 "P" */ - 0xff, 0x3f, 0xee, 0x3f, 0x87, 0xe1, 0xf8, 0xff, - 0xfb, 0xfc, 0xe0, 0x38, 0xe, 0x3, 0x80, 0xe0, - 0x38, 0x0, - - /* U+0051 "Q" */ - 0x3f, 0x1f, 0xef, 0x3f, 0x87, 0xe1, 0xf8, 0x7e, - 0x1f, 0x87, 0xe1, 0xf8, 0x7e, 0x1f, 0xcf, 0x7f, - 0x8f, 0x80, 0x70, 0xe, 0x3, 0x80, 0x70, - - /* U+0052 "R" */ - 0xff, 0x3f, 0xee, 0x3f, 0x87, 0xe1, 0xf8, 0xff, - 0xfb, 0xf8, 0xe6, 0x39, 0xce, 0x33, 0x8e, 0xe3, - 0xb8, 0x70, - - /* U+0053 "S" */ - 0x3f, 0x1f, 0xee, 0x3f, 0x87, 0xe0, 0x3e, 0x7, - 0xf0, 0xfe, 0x3, 0xc0, 0x7e, 0x1f, 0xcf, 0x7f, - 0x8f, 0xc0, - - /* U+0054 "T" */ - 0xff, 0xff, 0xf0, 0xe0, 0x38, 0xe, 0x3, 0x80, - 0xe0, 0x38, 0xe, 0x3, 0x80, 0xe0, 0x38, 0xe, - 0x3, 0x80, - - /* U+0055 "U" */ - 0xe3, 0xf1, 0xf8, 0xfc, 0x7e, 0x3f, 0x1f, 0x8f, - 0xc7, 0xe3, 0xf1, 0xf8, 0xfc, 0x77, 0xf1, 0xf0, - - /* U+0056 "V" */ - 0xc0, 0xf8, 0x7e, 0x1d, 0x86, 0x61, 0x9c, 0xe7, - 0x38, 0xcc, 0x33, 0xe, 0xc3, 0xf0, 0x78, 0x1e, - 0x7, 0x80, - - /* U+0057 "W" */ - 0xce, 0x79, 0xcf, 0x29, 0xe5, 0x3c, 0xa7, 0xd5, - 0xda, 0xb3, 0x56, 0x7b, 0xcf, 0x79, 0xef, 0x38, - 0xe7, 0x1c, 0xe3, 0x80, - - /* U+0058 "X" */ - 0xe1, 0xd8, 0x67, 0x38, 0xcc, 0x3f, 0x7, 0x81, - 0xe0, 0x78, 0x1e, 0xf, 0xc3, 0x31, 0xce, 0xe1, - 0xf8, 0x70, - - /* U+0059 "Y" */ - 0xe0, 0xfc, 0x1d, 0xc7, 0x38, 0xe3, 0xb8, 0x77, - 0x6, 0xc0, 0xf8, 0xe, 0x1, 0xc0, 0x38, 0x7, - 0x0, 0xe0, 0x1c, 0x0, - - /* U+005A "Z" */ - 0xff, 0xff, 0xc0, 0xe0, 0xe0, 0x70, 0x70, 0x70, - 0x38, 0x38, 0x38, 0x1c, 0x1c, 0xf, 0xff, 0xfc, - - /* U+005B "[" */ - 0xff, 0xfe, 0x38, 0xe3, 0x8e, 0x38, 0xe3, 0x8e, - 0x38, 0xe3, 0x8e, 0x38, 0xff, 0xf0, - - /* U+005C "\\" */ - 0xe0, 0x18, 0x7, 0x1, 0xc0, 0x30, 0xe, 0x3, - 0x80, 0x60, 0x1c, 0x3, 0x0, 0xe0, 0x38, 0x6, - 0x1, 0xc0, 0x70, 0xc, 0x3, 0x80, 0x60, 0x1c, - - /* U+005D "]" */ - 0xff, 0xf1, 0xc7, 0x1c, 0x71, 0xc7, 0x1c, 0x71, - 0xc7, 0x1c, 0x71, 0xc7, 0xff, 0xf0, - - /* U+005E "^" */ - 0xc, 0x7, 0x81, 0xe0, 0xfc, 0x33, 0x1c, 0xe6, - 0x19, 0x86, - - /* U+005F "_" */ - 0xff, 0xff, 0xf0, - - /* U+0060 "`" */ - 0xe3, 0x8c, - - /* U+0061 "a" */ - 0x1f, 0x1f, 0xe7, 0x1c, 0x7, 0x3f, 0xdf, 0xfe, - 0x1f, 0x87, 0xe3, 0xff, 0xf3, 0xdc, - - /* U+0062 "b" */ - 0xe0, 0x70, 0x38, 0x1d, 0xcf, 0xf7, 0x1f, 0x8f, - 0xc7, 0xe3, 0xf1, 0xf8, 0xfc, 0x7f, 0xf7, 0x70, - - /* U+0063 "c" */ - 0x3f, 0x1f, 0xef, 0x3f, 0x87, 0xe0, 0x38, 0xe, - 0x3, 0x87, 0xf3, 0xdf, 0xe3, 0xf0, - - /* U+0064 "d" */ - 0x3, 0x81, 0xc0, 0xe7, 0x77, 0xff, 0x1f, 0x8f, - 0xc7, 0xe3, 0xf1, 0xf8, 0xfc, 0x77, 0xf9, 0xdc, - - /* U+0065 "e" */ - 0x3e, 0x3f, 0xb8, 0xfc, 0x7f, 0xff, 0xff, 0x81, - 0xc0, 0xe3, 0xbf, 0x8f, 0x80, - - /* U+0066 "f" */ - 0xf, 0xc7, 0xf1, 0xc0, 0x70, 0xff, 0xff, 0xf1, - 0xc0, 0x70, 0x1c, 0x7, 0x1, 0xc0, 0x70, 0x1c, - 0x7, 0x0, - - /* U+0067 "g" */ - 0x3b, 0xbf, 0xfd, 0xfc, 0x7e, 0x3f, 0x1f, 0x8f, - 0xc7, 0xf7, 0xbf, 0xce, 0xe0, 0x70, 0x39, 0xf8, - 0xf8, - - /* U+0068 "h" */ - 0xe0, 0x70, 0x38, 0x1d, 0xcf, 0xf7, 0x1f, 0x8f, - 0xc7, 0xe3, 0xf1, 0xf8, 0xfc, 0x7e, 0x3f, 0x1c, - - /* U+0069 "i" */ - 0x1c, 0x7, 0x1, 0xc0, 0x0, 0x0, 0x3f, 0xf, - 0xc0, 0x70, 0x1c, 0x7, 0x1, 0xc0, 0x70, 0x1c, - 0x7, 0xf, 0xff, 0xff, - - /* U+006A "j" */ - 0x7, 0x7, 0x7, 0x0, 0xff, 0xff, 0x7, 0x7, - 0x7, 0x7, 0x7, 0x7, 0x7, 0x7, 0x7, 0x7, - 0xf, 0xfe, 0xfc, - - /* U+006B "k" */ - 0xe0, 0x38, 0xe, 0x3, 0x87, 0xe3, 0xb8, 0xee, - 0x73, 0xf8, 0xfe, 0x39, 0xce, 0x33, 0x8e, 0xe1, - 0xb8, 0x70, - - /* U+006C "l" */ - 0xfe, 0x1f, 0xc0, 0x38, 0x7, 0x0, 0xe0, 0x1c, - 0x3, 0x80, 0x70, 0xe, 0x1, 0xc0, 0x38, 0x7, - 0x0, 0x7e, 0x7, 0xc0, - - /* U+006D "m" */ - 0xd9, 0xbf, 0xfc, 0xcf, 0x33, 0xcc, 0xf3, 0x3c, - 0xcf, 0x33, 0xcc, 0xf3, 0x3c, 0xcc, - - /* U+006E "n" */ - 0xee, 0x7f, 0xb8, 0xfc, 0x7e, 0x3f, 0x1f, 0x8f, - 0xc7, 0xe3, 0xf1, 0xf8, 0xe0, - - /* U+006F "o" */ - 0x3e, 0x3f, 0xb8, 0xfc, 0x7e, 0x3f, 0x1f, 0x8f, - 0xc7, 0xe3, 0xbf, 0x8f, 0x80, - - /* U+0070 "p" */ - 0xee, 0x7f, 0xb8, 0xfc, 0x7e, 0x3f, 0x1f, 0x8f, - 0xc7, 0xe3, 0xff, 0xbb, 0x9c, 0xe, 0x7, 0x3, - 0x80, - - /* U+0071 "q" */ - 0x3b, 0xbf, 0xf8, 0xfc, 0x7e, 0x3f, 0x1f, 0x8f, - 0xc7, 0xe3, 0xbf, 0xce, 0xe0, 0x70, 0x38, 0x1c, - 0xe, - - /* U+0072 "r" */ - 0xee, 0x7f, 0xb8, 0xfc, 0x7e, 0x3f, 0x3, 0x81, - 0xc0, 0xe0, 0x70, 0x38, 0x0, - - /* U+0073 "s" */ - 0x1f, 0x1f, 0xf7, 0x1d, 0xc0, 0x7c, 0xf, 0xe0, - 0x3c, 0x7, 0x71, 0xdf, 0xf3, 0xf0, - - /* U+0074 "t" */ - 0x1c, 0x7, 0x1, 0xc3, 0xff, 0xff, 0xc7, 0x1, - 0xc0, 0x70, 0x1c, 0x7, 0x1, 0xc0, 0x70, 0x1f, - 0xc3, 0xf0, - - /* U+0075 "u" */ - 0xe3, 0xf1, 0xf8, 0xfc, 0x7e, 0x3f, 0x1f, 0x8f, - 0xc7, 0xe3, 0xbf, 0x8f, 0x80, - - /* U+0076 "v" */ - 0xc0, 0xf8, 0x7e, 0x1d, 0x86, 0x73, 0x8c, 0xc3, - 0x30, 0xfc, 0x1e, 0x7, 0x81, 0xe0, - - /* U+0077 "w" */ - 0xc6, 0x36, 0x66, 0x66, 0x66, 0xf6, 0x6f, 0x66, - 0x96, 0x69, 0x62, 0x94, 0x29, 0x43, 0x9c, 0x39, - 0xc0, - - /* U+0078 "x" */ - 0xe1, 0xdc, 0xe3, 0x30, 0xfc, 0x1e, 0x7, 0x81, - 0xe0, 0xfc, 0x73, 0x9c, 0xee, 0x1c, - - /* U+0079 "y" */ - 0xe0, 0xf8, 0x76, 0x19, 0xce, 0x73, 0x8c, 0xc3, - 0xf0, 0x7c, 0x1e, 0x7, 0x80, 0xe0, 0x30, 0x1c, - 0x6, 0x3, 0x80, - - /* U+007A "z" */ - 0xff, 0xff, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, - 0xe0, 0xe0, 0x7f, 0xff, 0xe0, - - /* U+007B "{" */ - 0x7, 0x87, 0xc3, 0x81, 0xc0, 0xe0, 0x70, 0x38, - 0x1c, 0xfc, 0x7e, 0x3, 0x81, 0xc0, 0xe0, 0x70, - 0x30, 0x1c, 0xf, 0x83, 0xc0, - - /* U+007C "|" */ - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, - - /* U+007D "}" */ - 0xf0, 0x7c, 0xe, 0x7, 0x3, 0x81, 0xc0, 0xe0, - 0x70, 0x1f, 0x8f, 0xce, 0x7, 0x3, 0x81, 0xc0, - 0x60, 0x70, 0xf8, 0x78, 0x0, - - /* U+007E "~" */ - 0x78, 0xff, 0x3c, 0xcf, 0x3f, 0xc7, 0x80, - - /* U+0410 "А" */ - 0x1e, 0x7, 0x81, 0xe0, 0xfc, 0x3f, 0xc, 0xc3, - 0x31, 0xce, 0x73, 0x9f, 0xe7, 0xfb, 0x87, 0xe1, - 0xf0, 0x30, - - /* U+0411 "Б" */ - 0xff, 0xbf, 0xee, 0x3, 0x80, 0xe0, 0x3f, 0xcf, - 0xfb, 0x8f, 0xe1, 0xf8, 0x7e, 0x1f, 0x8f, 0xff, - 0xbf, 0xc0, - - /* U+0412 "В" */ - 0xfe, 0x3f, 0xce, 0x3b, 0x8e, 0xe3, 0xb8, 0xef, - 0xe3, 0xfc, 0xe3, 0xf8, 0x7e, 0x1f, 0x8f, 0xff, - 0xbf, 0xc0, - - /* U+0413 "Г" */ - 0xff, 0xff, 0xf8, 0x1c, 0xe, 0x7, 0x3, 0x81, - 0xc0, 0xe0, 0x70, 0x38, 0x1c, 0xe, 0x7, 0x0, - - /* U+0414 "Д" */ - 0x3f, 0xc7, 0xf8, 0xe7, 0x1c, 0xe3, 0x9c, 0x73, - 0x8e, 0x71, 0xce, 0x39, 0xc7, 0x38, 0xe7, 0x38, - 0xef, 0xff, 0xff, 0xf8, 0x3f, 0x7, 0xe0, 0xe0, - - /* U+0415 "Е" */ - 0xff, 0xff, 0xf8, 0x1c, 0xe, 0x7, 0x3, 0xfd, - 0xfe, 0xe0, 0x70, 0x38, 0x1c, 0xf, 0xff, 0xfc, - - /* U+0416 "Ж" */ - 0xe6, 0x76, 0x66, 0x66, 0x67, 0x66, 0x36, 0xc3, - 0x6c, 0x3f, 0xc3, 0x6c, 0x36, 0xc7, 0x6e, 0x66, - 0x66, 0x66, 0x66, 0x6c, 0x63, - - /* U+0417 "З" */ - 0x3f, 0x1f, 0xef, 0x1f, 0x87, 0x1, 0xc7, 0xc1, - 0xf8, 0xf, 0x1, 0xc0, 0x7e, 0x1f, 0xcf, 0x7f, - 0x8f, 0x80, - - /* U+0418 "И" */ - 0xc3, 0xe3, 0xf1, 0xf8, 0xfc, 0xde, 0x6f, 0x37, - 0xb3, 0xd9, 0xfc, 0xfc, 0x7e, 0x3e, 0x1f, 0xc, - - /* U+0419 "Й" */ - 0x63, 0x31, 0x8f, 0x83, 0x80, 0x6, 0x1f, 0x1f, - 0x8f, 0xc7, 0xe7, 0xf3, 0x79, 0xbd, 0x9e, 0xcf, - 0xe7, 0xe3, 0xf1, 0xf8, 0xf8, 0x60, - - /* U+041A "К" */ - 0xe1, 0xf8, 0x7e, 0x3b, 0x8e, 0xe7, 0x39, 0xcf, - 0xe3, 0xf8, 0xe7, 0x39, 0xce, 0x3b, 0x8e, 0xe1, - 0xf8, 0x70, - - /* U+041B "Л" */ - 0x3f, 0xcf, 0xf3, 0x9c, 0xe7, 0x39, 0xce, 0x73, - 0x9c, 0xe7, 0x39, 0xce, 0x73, 0x9d, 0xe7, 0xf1, - 0xf8, 0x70, - - /* U+041C "М" */ - 0xf3, 0xfc, 0xfd, 0x3f, 0xcf, 0xff, 0xff, 0xfe, - 0xdf, 0xb7, 0xe1, 0xf8, 0x7e, 0x1f, 0x87, 0xe1, - 0xf8, 0x70, - - /* U+041D "Н" */ - 0xe3, 0xf1, 0xf8, 0xfc, 0x7e, 0x3f, 0x1f, 0xff, - 0xff, 0xe3, 0xf1, 0xf8, 0xfc, 0x7e, 0x3f, 0x1c, - - /* U+041E "О" */ - 0x3e, 0x3f, 0xb8, 0xfc, 0x7e, 0x3f, 0x1f, 0x8f, - 0xc7, 0xe3, 0xf1, 0xf8, 0xfc, 0x77, 0xf1, 0xf0, - - /* U+041F "П" */ - 0xff, 0xff, 0xf8, 0xfc, 0x7e, 0x3f, 0x1f, 0x8f, - 0xc7, 0xe3, 0xf1, 0xf8, 0xfc, 0x7e, 0x3f, 0x1c, - - /* U+0420 "Р" */ - 0xff, 0x3f, 0xee, 0x3f, 0x87, 0xe1, 0xf8, 0xff, - 0xfb, 0xfc, 0xe0, 0x38, 0xe, 0x3, 0x80, 0xe0, - 0x38, 0x0, - - /* U+0421 "С" */ - 0x3f, 0x1f, 0xef, 0x3f, 0x87, 0xe0, 0x38, 0xe, - 0x3, 0x80, 0xe0, 0x38, 0xe, 0x1f, 0xcf, 0x7f, - 0x8f, 0xc0, - - /* U+0422 "Т" */ - 0xff, 0xff, 0xf0, 0xe0, 0x38, 0xe, 0x3, 0x80, - 0xe0, 0x38, 0xe, 0x3, 0x80, 0xe0, 0x38, 0xe, - 0x3, 0x80, - - /* U+0423 "У" */ - 0xe1, 0xf8, 0x76, 0x19, 0xce, 0x33, 0x8c, 0xc3, - 0xb0, 0x7c, 0x1e, 0x3, 0x80, 0xc0, 0x70, 0x1c, - 0x6, 0x0, - - /* U+0424 "Ф" */ - 0xc, 0xf, 0xc7, 0xfb, 0xb7, 0xcc, 0xf3, 0x3c, - 0xcf, 0x33, 0xcc, 0xf3, 0x3c, 0xcf, 0xb7, 0x7f, - 0x8f, 0xc0, 0xc0, 0x30, - - /* U+0425 "Х" */ - 0xe1, 0xd8, 0x67, 0x38, 0xcc, 0x3f, 0x7, 0x81, - 0xe0, 0x78, 0x1e, 0xf, 0xc3, 0x31, 0xce, 0xe1, - 0xf8, 0x70, - - /* U+0426 "Ц" */ - 0xe3, 0xb8, 0xee, 0x3b, 0x8e, 0xe3, 0xb8, 0xee, - 0x3b, 0x8e, 0xe3, 0xb8, 0xee, 0x3b, 0x8e, 0xff, - 0xff, 0xf0, 0x1c, 0x7, 0x1, 0xc0, - - /* U+0427 "Ч" */ - 0xe3, 0xf1, 0xf8, 0xfc, 0x7e, 0x3f, 0x1f, 0x8f, - 0xff, 0x3f, 0x81, 0xc0, 0xe0, 0x70, 0x38, 0x1c, - - /* U+0428 "Ш" */ - 0xcc, 0xf3, 0x3c, 0xcf, 0x33, 0xcc, 0xf3, 0x3c, - 0xcf, 0x33, 0xcc, 0xf3, 0x3c, 0xcf, 0x33, 0xff, - 0xff, 0xf0, - - /* U+0429 "Щ" */ - 0xcc, 0xd9, 0x9b, 0x33, 0x66, 0x6c, 0xcd, 0x99, - 0xb3, 0x36, 0x66, 0xcc, 0xd9, 0x9b, 0x33, 0x66, - 0x6f, 0xff, 0xff, 0xc0, 0x18, 0x3, - - /* U+042A "Ъ" */ - 0xfc, 0xf, 0xc0, 0x1c, 0x1, 0xc0, 0x1c, 0x1, - 0xfc, 0x1f, 0xe1, 0xcf, 0x1c, 0x71, 0xc7, 0x1c, - 0x71, 0xcf, 0x1f, 0xe1, 0xfc, - - /* U+042B "Ы" */ - 0xc0, 0xf0, 0x3c, 0xf, 0x3, 0xc0, 0xfe, 0x3f, - 0xcf, 0x3b, 0xc6, 0xf1, 0xbc, 0x6f, 0x3b, 0xfc, - 0xfe, 0x30, - - /* U+042C "Ь" */ - 0xe0, 0x38, 0xe, 0x3, 0x80, 0xe0, 0x3f, 0xcf, - 0xfb, 0x8f, 0xe1, 0xf8, 0x7e, 0x1f, 0x8f, 0xff, - 0xbf, 0x80, - - /* U+042D "Э" */ - 0x3e, 0x3f, 0xb8, 0xfc, 0x70, 0x38, 0x1c, 0x7e, - 0x3f, 0x3, 0x81, 0xf8, 0xfc, 0x77, 0xf1, 0xf0, - - /* U+042E "Ю" */ - 0xc7, 0xb3, 0xfc, 0xcf, 0x33, 0xcc, 0xff, 0x3f, - 0xcf, 0x33, 0xcc, 0xf3, 0x3c, 0xcf, 0x33, 0xcf, - 0xf1, 0xe0, - - /* U+042F "Я" */ - 0x3f, 0xdf, 0xff, 0x1f, 0x87, 0xe1, 0xfc, 0x77, - 0xfc, 0x7f, 0x19, 0xce, 0x73, 0x1d, 0xc7, 0x71, - 0xf8, 0x70, - - /* U+0430 "а" */ - 0x1f, 0x1f, 0xe7, 0x1c, 0x7, 0x3f, 0xdf, 0xfe, - 0x1f, 0x87, 0xe3, 0xff, 0xf3, 0xdc, - - /* U+0431 "б" */ - 0x1f, 0x3f, 0x9c, 0x1c, 0xe, 0xe7, 0xfb, 0x9f, - 0xc7, 0xe3, 0xf1, 0xf8, 0xfe, 0xf7, 0xf1, 0xf0, - - /* U+0432 "в" */ - 0xff, 0x3f, 0xee, 0x3b, 0x8e, 0xfe, 0x3f, 0xee, - 0x1f, 0x87, 0xe1, 0xff, 0xef, 0xf0, - - /* U+0433 "г" */ - 0xff, 0xff, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, - 0xe0, 0xe0, 0xe0, - - /* U+0434 "д" */ - 0x3f, 0xc7, 0xf8, 0xe7, 0x1c, 0xe3, 0x9c, 0x73, - 0x8e, 0x71, 0xce, 0x71, 0xdf, 0xff, 0xff, 0xf0, - 0x7e, 0xf, 0xc1, 0xc0, - - /* U+0435 "е" */ - 0x3e, 0x3f, 0xb8, 0xfc, 0x7f, 0xff, 0xff, 0x81, - 0xc0, 0xe3, 0xbf, 0x8f, 0x80, - - /* U+0436 "ж" */ - 0xe6, 0x76, 0x66, 0x66, 0x63, 0x6c, 0x36, 0xc3, - 0xfc, 0x36, 0xc3, 0x6e, 0x66, 0x66, 0x66, 0xe6, - 0x70, - - /* U+0437 "з" */ - 0x3f, 0x1f, 0xfe, 0x1c, 0x7, 0x1f, 0x7, 0xe0, - 0x1c, 0x7, 0xe1, 0xdf, 0xe3, 0xf0, - - /* U+0438 "и" */ - 0xc3, 0xe3, 0xf1, 0xf9, 0xfc, 0xde, 0xef, 0x67, - 0xb3, 0xf1, 0xf8, 0xf8, 0x60, - - /* U+0439 "й" */ - 0x63, 0x31, 0x8f, 0x83, 0x80, 0x6, 0x1f, 0x1f, - 0x8f, 0xcf, 0xe6, 0xf7, 0x7b, 0x3f, 0x9f, 0x8f, - 0xc7, 0xc3, - - /* U+043A "к" */ - 0xe1, 0xf8, 0xee, 0x3b, 0x9c, 0xfe, 0x3f, 0x8e, - 0x73, 0x8c, 0xe3, 0xb8, 0x6e, 0x1c, - - /* U+043B "л" */ - 0x3f, 0xcf, 0xf3, 0x9c, 0xe7, 0x39, 0xce, 0x73, - 0x9c, 0xe7, 0x39, 0xfc, 0x7e, 0x1c, - - /* U+043C "м" */ - 0xe1, 0xf8, 0x7f, 0x3f, 0xcf, 0xda, 0xf7, 0xbd, - 0xef, 0x33, 0xc0, 0xf0, 0x3c, 0xc, - - /* U+043D "н" */ - 0xe3, 0xf1, 0xf8, 0xfc, 0x7f, 0xff, 0xff, 0x8f, - 0xc7, 0xe3, 0xf1, 0xf8, 0xe0, - - /* U+043E "о" */ - 0x3e, 0x3f, 0xb8, 0xfc, 0x7e, 0x3f, 0x1f, 0x8f, - 0xc7, 0xe3, 0xbf, 0x8f, 0x80, - - /* U+043F "п" */ - 0xff, 0xff, 0xf8, 0xfc, 0x7e, 0x3f, 0x1f, 0x8f, - 0xc7, 0xe3, 0xf1, 0xf8, 0xe0, - - /* U+0440 "р" */ - 0xee, 0x7f, 0xb8, 0xfc, 0x7e, 0x3f, 0x1f, 0x8f, - 0xc7, 0xe3, 0xff, 0xbb, 0x9c, 0xe, 0x7, 0x3, - 0x80, - - /* U+0441 "с" */ - 0x3f, 0x1f, 0xef, 0x3f, 0x87, 0xe0, 0x38, 0xe, - 0x3, 0x87, 0xf3, 0xdf, 0xe3, 0xf0, - - /* U+0442 "т" */ - 0xff, 0xff, 0xf0, 0xe0, 0x38, 0xe, 0x3, 0x80, - 0xe0, 0x38, 0xe, 0x3, 0x80, 0xe0, - - /* U+0443 "у" */ - 0xe0, 0xf8, 0x76, 0x19, 0xce, 0x73, 0x8c, 0xc3, - 0xf0, 0x7c, 0x1e, 0x7, 0x80, 0xe0, 0x30, 0x1c, - 0x6, 0x3, 0x80, - - /* U+0444 "ф" */ - 0xc, 0x3, 0x0, 0xc0, 0xfc, 0x7f, 0xbb, 0x7c, - 0xcf, 0x33, 0xcc, 0xf3, 0x3c, 0xcf, 0xb7, 0x7f, - 0x8f, 0xc0, 0xc0, 0x30, 0xc, 0x3, 0x0, - - /* U+0445 "х" */ - 0xe1, 0xdc, 0xe3, 0x30, 0xfc, 0x1e, 0x7, 0x81, - 0xe0, 0xfc, 0x73, 0x9c, 0xee, 0x1c, - - /* U+0446 "ц" */ - 0xe3, 0xb8, 0xee, 0x3b, 0x8e, 0xe3, 0xb8, 0xee, - 0x3b, 0x8e, 0xe3, 0xbf, 0xff, 0xfc, 0x7, 0x1, - 0xc0, 0x70, - - /* U+0447 "ч" */ - 0xe3, 0xf1, 0xf8, 0xfc, 0x7e, 0x3f, 0xfd, 0xfe, - 0x7, 0x3, 0x81, 0xc0, 0xe0, - - /* U+0448 "ш" */ - 0xcc, 0xf3, 0x3c, 0xcf, 0x33, 0xcc, 0xf3, 0x3c, - 0xcf, 0x33, 0xcc, 0xff, 0xff, 0xfc, - - /* U+0449 "щ" */ - 0xcc, 0xd9, 0x9b, 0x33, 0x66, 0x6c, 0xcd, 0x99, - 0xb3, 0x36, 0x66, 0xcc, 0xdf, 0xff, 0xff, 0x80, - 0x30, 0x6, - - /* U+044A "ъ" */ - 0xfc, 0xf, 0xc0, 0x1c, 0x1, 0xc0, 0x1f, 0xc1, - 0xfe, 0x1c, 0x71, 0xc7, 0x1c, 0x71, 0xfe, 0x1f, - 0xc0, - - /* U+044B "ы" */ - 0xc0, 0xf0, 0x3c, 0xf, 0x3, 0xf8, 0xff, 0x3c, - 0xef, 0x1b, 0xc6, 0xff, 0x3f, 0x8c, - - /* U+044C "ь" */ - 0xe0, 0x38, 0xe, 0x3, 0x80, 0xff, 0x3f, 0xee, - 0x1f, 0x87, 0xe1, 0xff, 0xef, 0xf0, - - /* U+044D "э" */ - 0x1f, 0x1f, 0xe6, 0x3c, 0x7, 0xf, 0xc3, 0xf0, - 0x1d, 0x87, 0x73, 0xdf, 0xe1, 0xf0, - - /* U+044E "ю" */ - 0xc7, 0xb3, 0xfc, 0xcf, 0x33, 0xfc, 0xff, 0x3c, - 0xcf, 0x33, 0xcc, 0xf3, 0xfc, 0x78, - - /* U+044F "я" */ - 0x3f, 0xbf, 0xf8, 0xfc, 0x7e, 0x3b, 0xfc, 0xfe, - 0x77, 0x33, 0xb9, 0xf8, 0xe0, - - /* U+F001 "" */ - 0x0, 0x0, 0x70, 0x0, 0x7f, 0x0, 0x3f, 0xf0, - 0x1f, 0xff, 0x7, 0xff, 0xf0, 0x7f, 0xff, 0x7, - 0xfc, 0x70, 0x7e, 0x7, 0x7, 0x0, 0x70, 0x70, - 0x7, 0x7, 0x0, 0x70, 0x70, 0x7, 0x7, 0x0, - 0x70, 0x70, 0x7f, 0x7, 0xf, 0xf7, 0xf0, 0xff, - 0xff, 0x7, 0xef, 0xf0, 0x10, 0xff, 0x0, 0x3, - 0xc0, 0x0, - - /* U+F015 "" */ - 0x0, 0x38, 0xe0, 0x0, 0xf9, 0xc0, 0x3, 0xfb, - 0x80, 0x1e, 0x3f, 0x0, 0x79, 0x3e, 0x1, 0xe7, - 0x3c, 0xf, 0x9f, 0xbc, 0x3c, 0xff, 0x9e, 0xf3, - 0xff, 0x9e, 0xcf, 0xff, 0x98, 0x3f, 0xff, 0x80, - 0x7f, 0xff, 0x0, 0xfc, 0x7e, 0x1, 0xf8, 0xfc, - 0x3, 0xf1, 0xf8, 0x7, 0xe3, 0xf0, 0xf, 0xc7, - 0xe0, - - /* U+F017 "" */ - 0x3, 0xf8, 0x1, 0xff, 0xc0, 0x7f, 0xfc, 0x1f, - 0xff, 0xc7, 0xf1, 0xfc, 0xfe, 0x3f, 0x9f, 0xc7, - 0xf7, 0xf8, 0xff, 0xff, 0x1f, 0xff, 0xe3, 0xff, - 0xfc, 0x3f, 0xff, 0x83, 0xff, 0xfc, 0x7e, 0xff, - 0xcf, 0x9f, 0xff, 0xf1, 0xff, 0xfc, 0x1f, 0xff, - 0x1, 0xff, 0xc0, 0x1f, 0xf0, 0x0, 0x70, 0x0, - - /* U+F024 "" */ - 0x70, 0x0, 0xf, 0x80, 0x0, 0xf9, 0x0, 0xf, - 0xff, 0xf, 0x7f, 0xff, 0xf7, 0xff, 0xff, 0x7f, - 0xff, 0xf7, 0xff, 0xff, 0x7f, 0xff, 0xf7, 0xff, - 0xff, 0x7f, 0xff, 0xf7, 0xff, 0xff, 0x7f, 0xff, - 0xf7, 0xff, 0xff, 0x7f, 0xff, 0xe7, 0x0, 0xf8, - 0x70, 0x0, 0x7, 0x0, 0x0, 0x70, 0x0, 0x7, - 0x0, 0x0, - - /* U+F027 "" */ - 0x0, 0xc0, 0x3, 0x80, 0xf, 0x0, 0x3e, 0xf, - 0xfc, 0x9f, 0xf9, 0xbf, 0xf1, 0xff, 0xe3, 0xff, - 0xc7, 0xff, 0x9b, 0xff, 0x20, 0x3e, 0x0, 0x3c, - 0x0, 0x38, 0x0, 0x30, 0x0, - - /* U+F028 "" */ - 0x0, 0x0, 0x40, 0x0, 0x0, 0xc0, 0x3, 0x0, - 0xc0, 0xe, 0x18, 0xc0, 0x3c, 0x39, 0xc0, 0xf8, - 0x39, 0xbf, 0xf2, 0x33, 0xff, 0xe6, 0x33, 0xff, - 0xc6, 0x67, 0xff, 0x8c, 0xcf, 0xff, 0x19, 0x9f, - 0xfe, 0x63, 0x3f, 0xfc, 0x8c, 0xe0, 0xf8, 0x39, - 0x80, 0xf0, 0xe7, 0x0, 0xe1, 0x8c, 0x0, 0xc0, - 0x30, 0x0, 0x0, 0xc0, 0x0, 0x1, 0x0, - - /* U+F029 "" */ - 0xff, 0x3f, 0xff, 0xcf, 0xfe, 0x73, 0x9f, 0x9c, - 0xe7, 0xe7, 0x39, 0xff, 0xcf, 0xff, 0xf3, 0xfc, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xf3, - 0xcf, 0xfc, 0xff, 0xff, 0x3f, 0xf9, 0xcf, 0xfe, - 0x73, 0xbf, 0xfc, 0xe0, 0xff, 0x3a, 0xc0, - - /* U+F03A "" */ - 0xf0, 0x0, 0xf, 0x3f, 0xff, 0xf3, 0xff, 0xff, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0xf, 0x0, 0x0, 0xf3, 0xff, 0xff, 0x3f, - 0xff, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0xf, 0x0, 0x0, 0xf3, 0xff, 0xff, 0x3f, 0xff, - 0xf0, 0x0, 0x0, - - /* U+F048 "" */ - 0xe0, 0x3f, 0x3, 0xf8, 0x3f, 0xc3, 0xfe, 0x3f, - 0xf3, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xfb, 0xff, 0xcf, 0xfe, 0x3f, 0xf0, 0xff, 0x83, - 0xfc, 0xf, 0xe0, 0x38, - - /* U+F04B "" */ - 0x0, 0x0, 0x3c, 0x0, 0xf, 0xc0, 0x3, 0xfc, - 0x0, 0xff, 0x80, 0x3f, 0xf8, 0xf, 0xff, 0x83, - 0xff, 0xf8, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xff, 0x8f, - 0xff, 0x83, 0xff, 0x80, 0xff, 0x80, 0x3f, 0xc0, - 0xf, 0xc0, 0x3, 0xc0, 0x0, 0x0, 0x0, 0x0, - - /* U+F04C "" */ - 0x7e, 0x1f, 0xbf, 0xcf, 0xff, 0xf3, 0xff, 0xfc, - 0xff, 0xff, 0x3f, 0xff, 0xcf, 0xff, 0xf3, 0xff, - 0xfc, 0xff, 0xff, 0x3f, 0xff, 0xcf, 0xff, 0xf3, - 0xff, 0xfc, 0xff, 0xff, 0x3f, 0xff, 0xcf, 0xff, - 0xf3, 0xff, 0xfc, 0xff, 0x7e, 0x1f, 0x80, - - /* U+F04D "" */ - 0x7f, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0x7f, 0xff, 0x80, - - /* U+F051 "" */ - 0xe0, 0x3f, 0x81, 0xfe, 0xf, 0xf8, 0x7f, 0xe3, - 0xff, 0x9f, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xef, 0xfe, 0x7f, 0xe3, 0xfe, 0x1f, 0xe0, - 0xfe, 0x7, 0xe0, 0x38, - - /* U+F069 "" */ - 0x0, 0xe0, 0x0, 0x1c, 0x0, 0x3, 0x80, 0x0, - 0x70, 0x6, 0xe, 0xc, 0xf1, 0xc7, 0x9f, 0xbb, - 0xf1, 0xff, 0xfc, 0xf, 0xfe, 0x0, 0x7f, 0x0, - 0xf, 0xe0, 0x7, 0xff, 0x3, 0xff, 0xf8, 0xfd, - 0xdf, 0x9e, 0x38, 0xf3, 0x7, 0x6, 0x0, 0xe0, - 0x0, 0x1c, 0x0, 0x3, 0x80, 0x0, 0x70, 0x0, - - /* U+F06E "" */ - 0x0, 0xfe, 0x0, 0xf, 0xff, 0x80, 0x3e, 0xf, - 0x80, 0xf8, 0xf, 0x83, 0xe3, 0x8f, 0x8f, 0x87, - 0x8f, 0xbf, 0x1f, 0x9f, 0xfe, 0xff, 0x3f, 0xfd, - 0xfe, 0x7e, 0xf9, 0xf8, 0xf8, 0xf9, 0xe3, 0xe0, - 0xf8, 0xf, 0x80, 0xf8, 0x3e, 0x0, 0xff, 0xf0, - 0x0, 0x3f, 0x80, 0x0, - - /* U+F095 "" */ - 0x0, 0x0, 0x0, 0x0, 0x3e, 0x0, 0x7, 0xf0, - 0x0, 0x7f, 0x0, 0x7, 0xf0, 0x0, 0xff, 0x0, - 0x7, 0xf0, 0x0, 0x3e, 0x0, 0x1, 0xe0, 0x0, - 0x3e, 0x0, 0x3, 0xc0, 0x0, 0x7c, 0x0, 0xf, - 0x81, 0xc1, 0xf0, 0x7e, 0x3e, 0xf, 0xff, 0xc0, - 0xff, 0xf8, 0xf, 0xff, 0x0, 0x7f, 0xc0, 0x7, - 0xf0, 0x0, 0x0, 0x0, 0x0, - - /* U+F111 "" */ - 0x3, 0xf8, 0x1, 0xff, 0xc0, 0x7f, 0xfc, 0x1f, - 0xff, 0xc7, 0xff, 0xfc, 0xff, 0xff, 0xbf, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, - 0xff, 0x9f, 0xff, 0xf1, 0xff, 0xfc, 0x1f, 0xff, - 0x1, 0xff, 0xc0, 0xf, 0xe0, 0x0, - - /* U+F129 "" */ - 0x3c, 0x7e, 0x7e, 0x7e, 0x3c, 0x0, 0x0, 0xfc, - 0xfc, 0xfc, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, - 0xff, 0xff, 0xff, - - /* U+F185 "" */ - 0x0, 0x60, 0x0, 0x6, 0x0, 0x0, 0xf0, 0x1, - 0xcf, 0x38, 0x1f, 0xff, 0x81, 0xf0, 0xf8, 0xc, - 0xf3, 0x1, 0xdf, 0xb8, 0x7b, 0xfd, 0xef, 0xbf, - 0xdf, 0x7b, 0xfd, 0xe1, 0x9f, 0x98, 0xc, 0xf3, - 0x0, 0xc0, 0x30, 0x1f, 0xf, 0x81, 0xff, 0xf8, - 0x1c, 0xf3, 0x80, 0xf, 0x0, 0x0, 0x60, 0x0, - 0x6, 0x0, - - /* U+F1E6 "" */ - 0x18, 0x30, 0x70, 0x70, 0xe0, 0xe1, 0xc1, 0xc3, - 0x83, 0x80, 0x0, 0x3f, 0xff, 0xff, 0xff, 0x7f, - 0xfc, 0xff, 0xf9, 0xff, 0xf1, 0xff, 0xc3, 0xff, - 0x83, 0xfe, 0x3, 0xf8, 0x1, 0xc0, 0x3, 0x80, - 0x7, 0x0, 0xe, 0x0, - - /* U+F1FC "" */ - 0x0, 0x0, 0xf0, 0x0, 0x1f, 0x0, 0x3, 0xf0, - 0x0, 0x7e, 0x0, 0xf, 0xe0, 0x3, 0xfc, 0x0, - 0x7f, 0xc0, 0xf, 0xf8, 0x0, 0xff, 0x80, 0x1f, - 0xf0, 0x0, 0xfe, 0x0, 0xf, 0xe0, 0xe, 0x7c, - 0x1, 0xf8, 0x0, 0x9f, 0xc0, 0xf, 0xfc, 0x0, - 0x7f, 0xc0, 0x7, 0xf8, 0x0, 0x1f, 0x0, 0x0, - - /* U+F201 "" */ - 0x40, 0x0, 0x7, 0x0, 0x0, 0x38, 0x1, 0xf9, - 0xc0, 0x7, 0xce, 0x18, 0x1e, 0x71, 0xe1, 0xf3, - 0x9f, 0x9d, 0x9d, 0xff, 0xc4, 0xe6, 0x7c, 0x7, - 0x1, 0xc0, 0x38, 0x0, 0x1, 0xc0, 0x0, 0xe, - 0x0, 0x0, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xe0, - - /* U+F21E "" */ - 0x1e, 0x7, 0x83, 0xf9, 0xfe, 0x7f, 0xff, 0xef, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0xff, 0xfc, - 0xf7, 0xf7, 0xd6, 0x3e, 0x79, 0x6b, 0xe0, 0x34, - 0x80, 0x1f, 0x9f, 0x80, 0xf9, 0xf0, 0x7, 0xfe, - 0x0, 0x3f, 0xc0, 0x1, 0xf8, 0x0, 0xf, 0x0, - 0x0, 0x60, 0x0, - - /* U+F240 "" */ - 0x7f, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xb8, 0x0, - 0x1, 0xfd, 0xff, 0xfe, 0xfe, 0xff, 0xff, 0x7f, - 0x7f, 0xff, 0x9f, 0xbf, 0xff, 0xcf, 0xdf, 0xff, - 0xef, 0xe0, 0x0, 0x7, 0xf0, 0x0, 0x3, 0xff, - 0xff, 0xff, 0xcf, 0xff, 0xff, 0xe0, - - /* U+F241 "" */ - 0x7f, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xb8, 0x0, - 0x1, 0xfd, 0xff, 0xe0, 0xfe, 0xff, 0xf0, 0x7f, - 0x7f, 0xf8, 0x1f, 0xbf, 0xfc, 0xf, 0xdf, 0xfe, - 0xf, 0xe0, 0x0, 0x7, 0xf0, 0x0, 0x3, 0xff, - 0xff, 0xff, 0xcf, 0xff, 0xff, 0xe0, - - /* U+F242 "" */ - 0x7f, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xb8, 0x0, - 0x1, 0xfd, 0xfe, 0x0, 0xfe, 0xff, 0x0, 0x7f, - 0x7f, 0x80, 0x1f, 0xbf, 0xc0, 0xf, 0xdf, 0xe0, - 0xf, 0xe0, 0x0, 0x7, 0xf0, 0x0, 0x3, 0xff, - 0xff, 0xff, 0xcf, 0xff, 0xff, 0xe0, - - /* U+F243 "" */ - 0x7f, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xb8, 0x0, - 0x1, 0xfd, 0xf0, 0x0, 0xfe, 0xf8, 0x0, 0x7f, - 0x7c, 0x0, 0x1f, 0xbe, 0x0, 0xf, 0xdf, 0x0, - 0xf, 0xe0, 0x0, 0x7, 0xf0, 0x0, 0x3, 0xff, - 0xff, 0xff, 0xcf, 0xff, 0xff, 0xe0, - - /* U+F244 "" */ - 0x7f, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xb8, 0x0, - 0x1, 0xfc, 0x0, 0x0, 0xfe, 0x0, 0x0, 0x7f, - 0x0, 0x0, 0x1f, 0x80, 0x0, 0xf, 0xc0, 0x0, - 0xf, 0xe0, 0x0, 0x7, 0xf0, 0x0, 0x3, 0xff, - 0xff, 0xff, 0xcf, 0xff, 0xff, 0xe0, - - /* U+F252 "" */ - 0xff, 0xff, 0xff, 0xfd, 0x80, 0x33, 0x80, 0xe7, - 0xff, 0xc7, 0xff, 0xf, 0xfe, 0xf, 0xf8, 0xf, - 0xe0, 0xf, 0x80, 0x7f, 0xc0, 0xe3, 0x83, 0x83, - 0x86, 0x3, 0x1f, 0xff, 0x3f, 0xfe, 0x7f, 0xfd, - 0xff, 0xff, 0xff, 0xf8, - - /* U+F293 "" */ - 0x7, 0xe0, 0x3f, 0xe0, 0xfb, 0xe3, 0xf3, 0xe7, - 0xe3, 0xdf, 0xd3, 0xf9, 0xb3, 0xf9, 0x4f, 0xf8, - 0x3f, 0xf8, 0xff, 0xf1, 0xff, 0xc1, 0xff, 0x29, - 0xfc, 0xd9, 0xff, 0xa7, 0xbf, 0x1e, 0x7e, 0x7c, - 0x7d, 0xf0, 0x7f, 0xe0, 0x7f, 0x0, - - /* U+F294 "" */ - 0x0, 0x0, 0x80, 0x18, 0x3, 0x80, 0x78, 0x8d, - 0xb9, 0x9b, 0xb6, 0x3f, 0x83, 0xe0, 0x38, 0x7, - 0x81, 0xf8, 0x6d, 0x99, 0x9a, 0x36, 0x7, 0x80, - 0xe0, 0x18, 0x2, 0x0, 0x0, - - /* U+F2F2 "" */ - 0x7, 0xe0, 0x7, 0xe0, 0x1, 0x80, 0x3, 0xc0, - 0xf, 0xf2, 0x1f, 0xff, 0x3e, 0x7e, 0x7e, 0x7e, - 0xfe, 0x7e, 0xfe, 0x7f, 0xfe, 0x7f, 0xfe, 0x7f, - 0xfe, 0x7f, 0xff, 0xff, 0x7f, 0xfe, 0x7f, 0xfe, - 0x3f, 0xfc, 0x1f, 0xf8, 0x7, 0xe0, - - /* U+F3DD "" */ - 0x40, 0x0, 0x40, 0x70, 0x0, 0x7e, 0x3c, 0x0, - 0x3f, 0x8f, 0x80, 0x1f, 0x81, 0xe0, 0x1f, 0xc0, - 0x78, 0xf, 0xe0, 0x1e, 0x7, 0xf0, 0x3, 0xc1, - 0xf8, 0x0, 0xf0, 0x78, 0x0, 0x3c, 0x3c, 0x0, - 0xf, 0xbe, 0x0, 0x1, 0xfe, 0x0, 0x0, 0x7e, - 0x0, 0x1c, 0x1f, 0x0, 0x7f, 0x3, 0xc0, 0x3f, - 0xf0, 0xf0, 0x1f, 0xfc, 0x3c, 0xf, 0xfe, 0x7, - 0x87, 0xfe, 0x1, 0xe3, 0xf8, 0x0, 0x70, 0x80, - 0x0, 0x10, - - /* U+F3FD "" */ - 0x0, 0xfe, 0x0, 0x7, 0xff, 0x0, 0x3f, 0xbf, - 0x80, 0xfe, 0x2f, 0x83, 0xfe, 0xcf, 0x8f, 0x3f, - 0x27, 0x9e, 0x7e, 0x4f, 0x3f, 0xfc, 0xfe, 0xff, - 0xf3, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xcf, 0xff, - 0xfe, 0x3f, 0xfe, 0x78, 0x3c, 0xff, 0xf0, 0x7f, - 0xdf, 0xe0, 0xff, 0x3f, 0xff, 0xfe, 0x3f, 0xff, - 0xf8, - - /* U+F45D "" */ - 0x0, 0x10, 0x0, 0xf, 0xe0, 0x3, 0xff, 0x80, - 0x7f, 0xfc, 0xf, 0xff, 0xe0, 0xff, 0xfe, 0x7, - 0xff, 0xe2, 0x3f, 0xff, 0x31, 0xff, 0xf3, 0x8f, - 0xff, 0x3e, 0x7f, 0xf3, 0xf3, 0xc2, 0x1f, 0x90, - 0x0, 0xfc, 0x3c, 0x1f, 0xe7, 0xe3, 0xfe, 0xff, - 0x7e, 0xef, 0xff, 0xc6, 0xff, 0x78, 0x7, 0xe3, - 0x0, 0x3c, - - /* U+F54B "" */ - 0x0, 0xf, 0xf8, 0x1, 0xdf, 0xff, 0x1, 0xef, - 0xff, 0xc0, 0xf7, 0xff, 0xf0, 0x7b, 0xff, 0xf8, - 0x1d, 0xff, 0xfc, 0x0, 0x1f, 0xfc, 0x0, 0x3, - 0xfc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x7, 0xf8, 0x0, 0xf, 0xfe, - 0x3, 0xbf, 0xff, 0x83, 0xdf, 0xff, 0xc1, 0xef, - 0xff, 0xe0, 0xf7, 0xff, 0xe0, 0x3b, 0xff, 0xe0, - 0x0, 0x7f, 0xc0, 0x0, - - /* U+F560 "" */ - 0x0, 0x0, 0x0, 0x0, 0x60, 0x0, 0xf, 0x0, - 0x1, 0xf0, 0x8, 0x3e, 0x1, 0xc7, 0xc4, 0x1e, - 0xf8, 0xe1, 0xff, 0x1f, 0xf, 0xe3, 0xf0, 0x7c, - 0x7e, 0x23, 0x8f, 0xc7, 0x11, 0xf8, 0xf8, 0x3f, - 0xf, 0xc7, 0xe0, 0x7e, 0xfc, 0x3, 0xff, 0x80, - 0x1f, 0xf0, 0x0, 0xfe, 0x0, 0x7, 0xc0, 0x0, - 0x38, 0x0, 0x1, 0x0, 0x0, - - /* U+F569 "" */ - 0x0, 0x0, 0x4, 0x0, 0x0, 0x3c, 0x0, 0x0, - 0xf0, 0x0, 0x7, 0xc0, 0x1f, 0xfe, 0x3, 0xff, - 0xfe, 0xf, 0x87, 0xfe, 0x38, 0x3e, 0xe, 0xc0, - 0xf8, 0x7, 0x81, 0xc0, 0xf, 0x0, 0x0, 0x1f, - 0x80, 0x0, 0xff, 0xe0, 0xf, 0xff, 0xff, 0xff, - 0xf9, 0xff, 0xf3, 0xf3, 0xe3, 0xe7, 0xe7, 0xc7, - 0xce, 0xcf, 0x8f, 0x98, 0x9f, 0x1f, 0x20, 0x3e, - 0x3e, 0x0, 0x4, 0x60, 0x0, - - /* U+F59F "" */ - 0x0, 0x78, 0x0, 0x7, 0xf8, 0x0, 0x1f, 0xe0, - 0x0, 0xff, 0xc0, 0x3, 0xff, 0x0, 0xf, 0xfc, - 0x0, 0x3f, 0xf0, 0x47, 0x7f, 0x87, 0x7d, 0xfe, - 0x7f, 0xf3, 0xf3, 0xff, 0xc7, 0x8f, 0xff, 0x5c, - 0xbf, 0xfd, 0xb6, 0xff, 0xf6, 0x1b, 0xff, 0xdf, - 0xef, 0xff, 0x7f, 0xbf, 0xfd, 0xfe, 0xff, 0xf7, - 0xfb, 0xff, 0x3, 0xef, 0x30, 0x1, 0xb0, - - /* U+F5A0 "" */ - 0x0, 0x78, 0x0, 0x7, 0xf8, 0x0, 0x1f, 0xe0, - 0x0, 0xf3, 0xc0, 0x3, 0x87, 0x0, 0xf, 0x3c, - 0x0, 0x9f, 0xe1, 0xcf, 0x7f, 0x9f, 0xfc, 0xfc, - 0xff, 0xf1, 0xe3, 0xff, 0xd7, 0xaf, 0xff, 0x4d, - 0xbf, 0xfd, 0x86, 0xff, 0xf7, 0xfb, 0xff, 0xdf, - 0xef, 0xff, 0x7f, 0xbf, 0xfd, 0xfe, 0xff, 0xc0, - 0xfb, 0xcc, 0x0, 0x6c, 0x0, - - /* U+F6A9 "" */ - 0x0, 0xc0, 0x0, 0x1c, 0x0, 0x3, 0xc0, 0x0, - 0x7c, 0x0, 0xff, 0xc6, 0x2f, 0xfc, 0x77, 0xff, - 0xc7, 0xef, 0xfc, 0x3c, 0xff, 0xc7, 0xef, 0xfc, - 0x77, 0xff, 0xc6, 0x20, 0x7c, 0x0, 0x3, 0xc0, - 0x0, 0x1c, 0x0, 0x0, 0xc0, 0x0 -}; - - -/*--------------------- - * GLYPH DESCRIPTION - *--------------------*/ - -static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = { - {.bitmap_index = 0, .adv_w = 0, .box_w = 0, .box_h = 0, .ofs_x = 0, .ofs_y = 0} /* id = 0 reserved */, - {.bitmap_index = 0, .adv_w = 192, .box_w = 1, .box_h = 1, .ofs_x = 0, .ofs_y = 0}, - {.bitmap_index = 1, .adv_w = 192, .box_w = 3, .box_h = 14, .ofs_x = 4, .ofs_y = 0}, - {.bitmap_index = 7, .adv_w = 192, .box_w = 7, .box_h = 6, .ofs_x = 3, .ofs_y = 8}, - {.bitmap_index = 13, .adv_w = 192, .box_w = 11, .box_h = 14, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 33, .adv_w = 192, .box_w = 10, .box_h = 20, .ofs_x = 1, .ofs_y = -3}, - {.bitmap_index = 58, .adv_w = 192, .box_w = 12, .box_h = 14, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 79, .adv_w = 192, .box_w = 11, .box_h = 14, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 99, .adv_w = 192, .box_w = 3, .box_h = 6, .ofs_x = 5, .ofs_y = 8}, - {.bitmap_index = 102, .adv_w = 192, .box_w = 7, .box_h = 19, .ofs_x = 3, .ofs_y = -2}, - {.bitmap_index = 119, .adv_w = 192, .box_w = 7, .box_h = 19, .ofs_x = 2, .ofs_y = -2}, - {.bitmap_index = 136, .adv_w = 192, .box_w = 10, .box_h = 10, .ofs_x = 1, .ofs_y = 1}, - {.bitmap_index = 149, .adv_w = 192, .box_w = 10, .box_h = 9, .ofs_x = 1, .ofs_y = 2}, - {.bitmap_index = 161, .adv_w = 192, .box_w = 5, .box_h = 6, .ofs_x = 3, .ofs_y = -4}, - {.bitmap_index = 165, .adv_w = 192, .box_w = 6, .box_h = 2, .ofs_x = 3, .ofs_y = 5}, - {.bitmap_index = 167, .adv_w = 192, .box_w = 4, .box_h = 3, .ofs_x = 4, .ofs_y = 0}, - {.bitmap_index = 169, .adv_w = 192, .box_w = 10, .box_h = 19, .ofs_x = 1, .ofs_y = -2}, - {.bitmap_index = 193, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 211, .adv_w = 192, .box_w = 9, .box_h = 14, .ofs_x = 2, .ofs_y = 0}, - {.bitmap_index = 227, .adv_w = 192, .box_w = 9, .box_h = 14, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 243, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 261, .adv_w = 192, .box_w = 9, .box_h = 14, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 277, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 295, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 313, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 331, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 349, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 367, .adv_w = 192, .box_w = 3, .box_h = 11, .ofs_x = 4, .ofs_y = 0}, - {.bitmap_index = 372, .adv_w = 192, .box_w = 5, .box_h = 15, .ofs_x = 3, .ofs_y = -4}, - {.bitmap_index = 382, .adv_w = 192, .box_w = 9, .box_h = 11, .ofs_x = 2, .ofs_y = 1}, - {.bitmap_index = 395, .adv_w = 192, .box_w = 9, .box_h = 7, .ofs_x = 2, .ofs_y = 3}, - {.bitmap_index = 403, .adv_w = 192, .box_w = 9, .box_h = 11, .ofs_x = 2, .ofs_y = 1}, - {.bitmap_index = 416, .adv_w = 192, .box_w = 8, .box_h = 14, .ofs_x = 2, .ofs_y = 0}, - {.bitmap_index = 430, .adv_w = 192, .box_w = 11, .box_h = 18, .ofs_x = 1, .ofs_y = -4}, - {.bitmap_index = 455, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 473, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 2, .ofs_y = 0}, - {.bitmap_index = 491, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 509, .adv_w = 192, .box_w = 9, .box_h = 14, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 525, .adv_w = 192, .box_w = 9, .box_h = 14, .ofs_x = 2, .ofs_y = 0}, - {.bitmap_index = 541, .adv_w = 192, .box_w = 9, .box_h = 14, .ofs_x = 2, .ofs_y = 0}, - {.bitmap_index = 557, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 575, .adv_w = 192, .box_w = 9, .box_h = 14, .ofs_x = 2, .ofs_y = 0}, - {.bitmap_index = 591, .adv_w = 192, .box_w = 8, .box_h = 14, .ofs_x = 2, .ofs_y = 0}, - {.bitmap_index = 605, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 623, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 2, .ofs_y = 0}, - {.bitmap_index = 641, .adv_w = 192, .box_w = 9, .box_h = 14, .ofs_x = 2, .ofs_y = 0}, - {.bitmap_index = 657, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 675, .adv_w = 192, .box_w = 9, .box_h = 14, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 691, .adv_w = 192, .box_w = 9, .box_h = 14, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 707, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 2, .ofs_y = 0}, - {.bitmap_index = 725, .adv_w = 192, .box_w = 10, .box_h = 18, .ofs_x = 1, .ofs_y = -4}, - {.bitmap_index = 748, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 2, .ofs_y = 0}, - {.bitmap_index = 766, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 784, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 802, .adv_w = 192, .box_w = 9, .box_h = 14, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 818, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 836, .adv_w = 192, .box_w = 11, .box_h = 14, .ofs_x = 0, .ofs_y = 0}, - {.bitmap_index = 856, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 874, .adv_w = 192, .box_w = 11, .box_h = 14, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 894, .adv_w = 192, .box_w = 9, .box_h = 14, .ofs_x = 2, .ofs_y = 0}, - {.bitmap_index = 910, .adv_w = 192, .box_w = 6, .box_h = 18, .ofs_x = 4, .ofs_y = -2}, - {.bitmap_index = 924, .adv_w = 192, .box_w = 10, .box_h = 19, .ofs_x = 1, .ofs_y = -2}, - {.bitmap_index = 948, .adv_w = 192, .box_w = 6, .box_h = 18, .ofs_x = 3, .ofs_y = -2}, - {.bitmap_index = 962, .adv_w = 192, .box_w = 10, .box_h = 8, .ofs_x = 1, .ofs_y = 7}, - {.bitmap_index = 972, .adv_w = 192, .box_w = 10, .box_h = 2, .ofs_x = 1, .ofs_y = -3}, - {.bitmap_index = 975, .adv_w = 192, .box_w = 5, .box_h = 3, .ofs_x = 3, .ofs_y = 13}, - {.bitmap_index = 977, .adv_w = 192, .box_w = 10, .box_h = 11, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 991, .adv_w = 192, .box_w = 9, .box_h = 14, .ofs_x = 2, .ofs_y = 0}, - {.bitmap_index = 1007, .adv_w = 192, .box_w = 10, .box_h = 11, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 1021, .adv_w = 192, .box_w = 9, .box_h = 14, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 1037, .adv_w = 192, .box_w = 9, .box_h = 11, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 1050, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 1068, .adv_w = 192, .box_w = 9, .box_h = 15, .ofs_x = 1, .ofs_y = -4}, - {.bitmap_index = 1085, .adv_w = 192, .box_w = 9, .box_h = 14, .ofs_x = 2, .ofs_y = 0}, - {.bitmap_index = 1101, .adv_w = 192, .box_w = 10, .box_h = 16, .ofs_x = 2, .ofs_y = 0}, - {.bitmap_index = 1121, .adv_w = 192, .box_w = 8, .box_h = 19, .ofs_x = 1, .ofs_y = -4}, - {.bitmap_index = 1140, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 2, .ofs_y = 0}, - {.bitmap_index = 1158, .adv_w = 192, .box_w = 11, .box_h = 14, .ofs_x = 0, .ofs_y = 0}, - {.bitmap_index = 1178, .adv_w = 192, .box_w = 10, .box_h = 11, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 1192, .adv_w = 192, .box_w = 9, .box_h = 11, .ofs_x = 2, .ofs_y = 0}, - {.bitmap_index = 1205, .adv_w = 192, .box_w = 9, .box_h = 11, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 1218, .adv_w = 192, .box_w = 9, .box_h = 15, .ofs_x = 2, .ofs_y = -4}, - {.bitmap_index = 1235, .adv_w = 192, .box_w = 9, .box_h = 15, .ofs_x = 1, .ofs_y = -4}, - {.bitmap_index = 1252, .adv_w = 192, .box_w = 9, .box_h = 11, .ofs_x = 2, .ofs_y = 0}, - {.bitmap_index = 1265, .adv_w = 192, .box_w = 10, .box_h = 11, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 1279, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 1297, .adv_w = 192, .box_w = 9, .box_h = 11, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 1310, .adv_w = 192, .box_w = 10, .box_h = 11, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 1324, .adv_w = 192, .box_w = 12, .box_h = 11, .ofs_x = 0, .ofs_y = 0}, - {.bitmap_index = 1341, .adv_w = 192, .box_w = 10, .box_h = 11, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 1355, .adv_w = 192, .box_w = 10, .box_h = 15, .ofs_x = 1, .ofs_y = -4}, - {.bitmap_index = 1374, .adv_w = 192, .box_w = 9, .box_h = 11, .ofs_x = 2, .ofs_y = 0}, - {.bitmap_index = 1387, .adv_w = 192, .box_w = 9, .box_h = 18, .ofs_x = 1, .ofs_y = -2}, - {.bitmap_index = 1408, .adv_w = 192, .box_w = 3, .box_h = 18, .ofs_x = 5, .ofs_y = -2}, - {.bitmap_index = 1415, .adv_w = 192, .box_w = 9, .box_h = 18, .ofs_x = 2, .ofs_y = -2}, - {.bitmap_index = 1436, .adv_w = 192, .box_w = 10, .box_h = 5, .ofs_x = 1, .ofs_y = 5}, - {.bitmap_index = 1443, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 1461, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 2, .ofs_y = 0}, - {.bitmap_index = 1479, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 2, .ofs_y = 0}, - {.bitmap_index = 1497, .adv_w = 192, .box_w = 9, .box_h = 14, .ofs_x = 2, .ofs_y = 0}, - {.bitmap_index = 1513, .adv_w = 192, .box_w = 11, .box_h = 17, .ofs_x = 1, .ofs_y = -3}, - {.bitmap_index = 1537, .adv_w = 192, .box_w = 9, .box_h = 14, .ofs_x = 2, .ofs_y = 0}, - {.bitmap_index = 1553, .adv_w = 192, .box_w = 12, .box_h = 14, .ofs_x = 0, .ofs_y = 0}, - {.bitmap_index = 1574, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 1592, .adv_w = 192, .box_w = 9, .box_h = 14, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 1608, .adv_w = 192, .box_w = 9, .box_h = 19, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 1630, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 2, .ofs_y = 0}, - {.bitmap_index = 1648, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 1666, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 1684, .adv_w = 192, .box_w = 9, .box_h = 14, .ofs_x = 2, .ofs_y = 0}, - {.bitmap_index = 1700, .adv_w = 192, .box_w = 9, .box_h = 14, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 1716, .adv_w = 192, .box_w = 9, .box_h = 14, .ofs_x = 2, .ofs_y = 0}, - {.bitmap_index = 1732, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 2, .ofs_y = 0}, - {.bitmap_index = 1750, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 1768, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 1786, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 1804, .adv_w = 192, .box_w = 10, .box_h = 16, .ofs_x = 1, .ofs_y = -1}, - {.bitmap_index = 1824, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 1842, .adv_w = 192, .box_w = 10, .box_h = 17, .ofs_x = 2, .ofs_y = -3}, - {.bitmap_index = 1864, .adv_w = 192, .box_w = 9, .box_h = 14, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 1880, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 1898, .adv_w = 192, .box_w = 11, .box_h = 16, .ofs_x = 1, .ofs_y = -2}, - {.bitmap_index = 1920, .adv_w = 192, .box_w = 12, .box_h = 14, .ofs_x = 0, .ofs_y = 0}, - {.bitmap_index = 1941, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 1959, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 2, .ofs_y = 0}, - {.bitmap_index = 1977, .adv_w = 192, .box_w = 9, .box_h = 14, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 1993, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 2011, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 2029, .adv_w = 192, .box_w = 10, .box_h = 11, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 2043, .adv_w = 192, .box_w = 9, .box_h = 14, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 2059, .adv_w = 192, .box_w = 10, .box_h = 11, .ofs_x = 2, .ofs_y = 0}, - {.bitmap_index = 2073, .adv_w = 192, .box_w = 8, .box_h = 11, .ofs_x = 2, .ofs_y = 0}, - {.bitmap_index = 2084, .adv_w = 192, .box_w = 11, .box_h = 14, .ofs_x = 1, .ofs_y = -3}, - {.bitmap_index = 2104, .adv_w = 192, .box_w = 9, .box_h = 11, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 2117, .adv_w = 192, .box_w = 12, .box_h = 11, .ofs_x = 0, .ofs_y = 0}, - {.bitmap_index = 2134, .adv_w = 192, .box_w = 10, .box_h = 11, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 2148, .adv_w = 192, .box_w = 9, .box_h = 11, .ofs_x = 2, .ofs_y = 0}, - {.bitmap_index = 2161, .adv_w = 192, .box_w = 9, .box_h = 16, .ofs_x = 2, .ofs_y = 0}, - {.bitmap_index = 2179, .adv_w = 192, .box_w = 10, .box_h = 11, .ofs_x = 2, .ofs_y = 0}, - {.bitmap_index = 2193, .adv_w = 192, .box_w = 10, .box_h = 11, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 2207, .adv_w = 192, .box_w = 10, .box_h = 11, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 2221, .adv_w = 192, .box_w = 9, .box_h = 11, .ofs_x = 2, .ofs_y = 0}, - {.bitmap_index = 2234, .adv_w = 192, .box_w = 9, .box_h = 11, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 2247, .adv_w = 192, .box_w = 9, .box_h = 11, .ofs_x = 2, .ofs_y = 0}, - {.bitmap_index = 2260, .adv_w = 192, .box_w = 9, .box_h = 15, .ofs_x = 2, .ofs_y = -4}, - {.bitmap_index = 2277, .adv_w = 192, .box_w = 10, .box_h = 11, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 2291, .adv_w = 192, .box_w = 10, .box_h = 11, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 2305, .adv_w = 192, .box_w = 10, .box_h = 15, .ofs_x = 1, .ofs_y = -4}, - {.bitmap_index = 2324, .adv_w = 192, .box_w = 10, .box_h = 18, .ofs_x = 1, .ofs_y = -4}, - {.bitmap_index = 2347, .adv_w = 192, .box_w = 10, .box_h = 11, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 2361, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 2, .ofs_y = -3}, - {.bitmap_index = 2379, .adv_w = 192, .box_w = 9, .box_h = 11, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 2392, .adv_w = 192, .box_w = 10, .box_h = 11, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 2406, .adv_w = 192, .box_w = 11, .box_h = 13, .ofs_x = 1, .ofs_y = -2}, - {.bitmap_index = 2424, .adv_w = 192, .box_w = 12, .box_h = 11, .ofs_x = 0, .ofs_y = 0}, - {.bitmap_index = 2441, .adv_w = 192, .box_w = 10, .box_h = 11, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 2455, .adv_w = 192, .box_w = 10, .box_h = 11, .ofs_x = 2, .ofs_y = 0}, - {.bitmap_index = 2469, .adv_w = 192, .box_w = 10, .box_h = 11, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 2483, .adv_w = 192, .box_w = 10, .box_h = 11, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 2497, .adv_w = 192, .box_w = 9, .box_h = 11, .ofs_x = 1, .ofs_y = 0}, - {.bitmap_index = 2510, .adv_w = 320, .box_w = 20, .box_h = 20, .ofs_x = 0, .ofs_y = -3}, - {.bitmap_index = 2560, .adv_w = 360, .box_w = 23, .box_h = 17, .ofs_x = 0, .ofs_y = -1}, - {.bitmap_index = 2609, .adv_w = 320, .box_w = 19, .box_h = 20, .ofs_x = 0, .ofs_y = -3}, - {.bitmap_index = 2657, .adv_w = 320, .box_w = 20, .box_h = 20, .ofs_x = 0, .ofs_y = -3}, - {.bitmap_index = 2707, .adv_w = 240, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = 0}, - {.bitmap_index = 2736, .adv_w = 360, .box_w = 23, .box_h = 19, .ofs_x = 0, .ofs_y = -2}, - {.bitmap_index = 2791, .adv_w = 280, .box_w = 18, .box_h = 17, .ofs_x = 0, .ofs_y = -1}, - {.bitmap_index = 2830, .adv_w = 320, .box_w = 20, .box_h = 17, .ofs_x = 0, .ofs_y = -1}, - {.bitmap_index = 2873, .adv_w = 280, .box_w = 13, .box_h = 17, .ofs_x = 2, .ofs_y = -1}, - {.bitmap_index = 2901, .adv_w = 280, .box_w = 18, .box_h = 21, .ofs_x = 0, .ofs_y = -3}, - {.bitmap_index = 2949, .adv_w = 280, .box_w = 18, .box_h = 17, .ofs_x = 0, .ofs_y = -1}, - {.bitmap_index = 2988, .adv_w = 280, .box_w = 18, .box_h = 17, .ofs_x = 0, .ofs_y = -1}, - {.bitmap_index = 3027, .adv_w = 280, .box_w = 13, .box_h = 17, .ofs_x = 2, .ofs_y = -1}, - {.bitmap_index = 3055, .adv_w = 320, .box_w = 19, .box_h = 20, .ofs_x = 0, .ofs_y = -3}, - {.bitmap_index = 3103, .adv_w = 360, .box_w = 23, .box_h = 15, .ofs_x = 0, .ofs_y = 0}, - {.bitmap_index = 3147, .adv_w = 320, .box_w = 20, .box_h = 21, .ofs_x = 0, .ofs_y = -3}, - {.bitmap_index = 3200, .adv_w = 320, .box_w = 19, .box_h = 19, .ofs_x = 0, .ofs_y = -2}, - {.bitmap_index = 3246, .adv_w = 120, .box_w = 8, .box_h = 19, .ofs_x = 0, .ofs_y = -2}, - {.bitmap_index = 3265, .adv_w = 320, .box_w = 20, .box_h = 20, .ofs_x = 0, .ofs_y = -3}, - {.bitmap_index = 3315, .adv_w = 240, .box_w = 15, .box_h = 19, .ofs_x = 0, .ofs_y = -2}, - {.bitmap_index = 3351, .adv_w = 320, .box_w = 20, .box_h = 19, .ofs_x = 0, .ofs_y = -2}, - {.bitmap_index = 3399, .adv_w = 320, .box_w = 21, .box_h = 15, .ofs_x = 0, .ofs_y = 0}, - {.bitmap_index = 3439, .adv_w = 320, .box_w = 20, .box_h = 17, .ofs_x = 0, .ofs_y = -1}, - {.bitmap_index = 3482, .adv_w = 400, .box_w = 25, .box_h = 12, .ofs_x = 0, .ofs_y = 1}, - {.bitmap_index = 3520, .adv_w = 400, .box_w = 25, .box_h = 12, .ofs_x = 0, .ofs_y = 1}, - {.bitmap_index = 3558, .adv_w = 400, .box_w = 25, .box_h = 12, .ofs_x = 0, .ofs_y = 1}, - {.bitmap_index = 3596, .adv_w = 400, .box_w = 25, .box_h = 12, .ofs_x = 0, .ofs_y = 1}, - {.bitmap_index = 3634, .adv_w = 400, .box_w = 25, .box_h = 12, .ofs_x = 0, .ofs_y = 1}, - {.bitmap_index = 3672, .adv_w = 240, .box_w = 15, .box_h = 19, .ofs_x = 0, .ofs_y = -2}, - {.bitmap_index = 3708, .adv_w = 280, .box_w = 15, .box_h = 20, .ofs_x = 1, .ofs_y = -3}, - {.bitmap_index = 3746, .adv_w = 200, .box_w = 11, .box_h = 21, .ofs_x = 0, .ofs_y = -3}, - {.bitmap_index = 3775, .adv_w = 280, .box_w = 16, .box_h = 19, .ofs_x = 1, .ofs_y = -2}, - {.bitmap_index = 3813, .adv_w = 400, .box_w = 25, .box_h = 21, .ofs_x = 0, .ofs_y = -3}, - {.bitmap_index = 3879, .adv_w = 360, .box_w = 23, .box_h = 17, .ofs_x = 0, .ofs_y = -1}, - {.bitmap_index = 3928, .adv_w = 320, .box_w = 20, .box_h = 20, .ofs_x = 0, .ofs_y = -2}, - {.bitmap_index = 3978, .adv_w = 400, .box_w = 25, .box_h = 19, .ofs_x = 0, .ofs_y = -2}, - {.bitmap_index = 4038, .adv_w = 320, .box_w = 20, .box_h = 21, .ofs_x = 0, .ofs_y = -3}, - {.bitmap_index = 4091, .adv_w = 360, .box_w = 23, .box_h = 21, .ofs_x = 0, .ofs_y = -3}, - {.bitmap_index = 4152, .adv_w = 360, .box_w = 22, .box_h = 20, .ofs_x = 0, .ofs_y = -2}, - {.bitmap_index = 4207, .adv_w = 360, .box_w = 22, .box_h = 19, .ofs_x = 0, .ofs_y = -2}, - {.bitmap_index = 4260, .adv_w = 320, .box_w = 20, .box_h = 15, .ofs_x = 0, .ofs_y = 0} -}; - -/*--------------------- - * CHARACTER MAPPING - *--------------------*/ - -static const uint16_t unicode_list_2[] = { - 0x0, 0x14, 0x16, 0x23, 0x26, 0x27, 0x28, 0x39, - 0x47, 0x4a, 0x4b, 0x4c, 0x50, 0x68, 0x6d, 0x94, - 0x110, 0x128, 0x184, 0x1e5, 0x1fb, 0x200, 0x21d, 0x23f, - 0x240, 0x241, 0x242, 0x243, 0x251, 0x292, 0x293, 0x2f1, - 0x3dc, 0x3fc, 0x45c, 0x54a, 0x55f, 0x568, 0x59e, 0x59f, - 0x6a8 -}; - -/*Collect the unicode lists and glyph_id offsets*/ -static const lv_font_fmt_txt_cmap_t cmaps[] = -{ - { - .range_start = 32, .range_length = 95, .glyph_id_start = 1, - .unicode_list = NULL, .glyph_id_ofs_list = NULL, .list_length = 0, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY - }, - { - .range_start = 1040, .range_length = 64, .glyph_id_start = 96, - .unicode_list = NULL, .glyph_id_ofs_list = NULL, .list_length = 0, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY - }, - { - .range_start = 61441, .range_length = 1705, .glyph_id_start = 160, - .unicode_list = unicode_list_2, .glyph_id_ofs_list = NULL, .list_length = 41, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY - } -}; - - - -/*-------------------- - * ALL CUSTOM DATA - *--------------------*/ - -#if LV_VERSION_CHECK(8, 0, 0) -/*Store all the custom data of the font*/ -static lv_font_fmt_txt_glyph_cache_t cache; -static const lv_font_fmt_txt_dsc_t font_dsc = { -#else -static lv_font_fmt_txt_dsc_t font_dsc = { -#endif - .glyph_bitmap = glyph_bitmap, - .glyph_dsc = glyph_dsc, - .cmaps = cmaps, - .kern_dsc = NULL, - .kern_scale = 0, - .cmap_num = 3, - .bpp = 1, - .kern_classes = 0, - .bitmap_format = 0, -#if LV_VERSION_CHECK(8, 0, 0) - .cache = &cache -#endif -}; - - -/*----------------- - * PUBLIC FONT - *----------------*/ - -/*Initialize a public general font descriptor*/ -#if LV_VERSION_CHECK(8, 0, 0) -const lv_font_t jetbrains_mono_bold_20 = { -#else -lv_font_t jetbrains_mono_bold_20 = { -#endif - .get_glyph_dsc = lv_font_get_glyph_dsc_fmt_txt, /*Function pointer to get glyph's data*/ - .get_glyph_bitmap = lv_font_get_bitmap_fmt_txt, /*Function pointer to get glyph's bitmap*/ - .line_height = 23, /*The maximum line height required by the font*/ - .base_line = 4, /*Baseline measured from the bottom of the line*/ -#if !(LVGL_VERSION_MAJOR == 6 && LVGL_VERSION_MINOR == 0) - .subpx = LV_FONT_SUBPX_NONE, -#endif -#if LV_VERSION_CHECK(7, 4, 0) || LVGL_VERSION_MAJOR >= 8 - .underline_position = -3, - .underline_thickness = 1, -#endif - .dsc = &font_dsc /*The custom font data. Will be accessed by `get_glyph_bitmap/dsc` */ -}; - - - -#endif /*#if JETBRAINS_MONO_BOLD_20*/ - diff --git a/src/displayapp/icons/logo_pine.c b/src/displayapp/icons/logo_pine.c deleted file mode 100644 index 9694eca2..00000000 --- a/src/displayapp/icons/logo_pine.c +++ /dev/null @@ -1,59 +0,0 @@ -#if defined(LV_LVGL_H_INCLUDE_SIMPLE) -#include "lvgl.h" -#else -#include "lvgl/lvgl.h" -#endif - - -#ifndef LV_ATTRIBUTE_MEM_ALIGN -#define LV_ATTRIBUTE_MEM_ALIGN -#endif - -#ifndef LV_ATTRIBUTE_IMG_LOGO_PINE -#define LV_ATTRIBUTE_IMG_LOGO_PINE -#endif - -const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_LOGO_PINE uint8_t logo_pine_map[] = { - /*Pixel format: Alpha 8 bit, Red: 5 bit, Green: 6 bit, Blue: 5 bit BUT the 2 color bytes are swapped*/ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xe4, 0x1a, 0x41, 0xe8, 0x9c, 0x5a, 0xab, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0xc3, 0x14, 0x10, 0x82, 0xd5, 0x42, 0x08, 0xc0, 0x5a, 0xcb, 0xd9, 0x63, 0x2c, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0xa2, 0x0e, 0x10, 0x82, 0xcb, 0x10, 0x82, 0xff, 0x42, 0x08, 0xc0, 0x5a, 0xcb, 0xff, 0x5a, 0xcb, 0xd0, 0x5a, 0xeb, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0xc3, 0x0b, 0x10, 0x82, 0x4b, 0x00, 0x00, 0x01, 0x20, 0xe4, 0x09, 0x10, 0xa2, 0x60, 0x10, 0x82, 0xc9, 0x42, 0x08, 0xc0, 0x5a, 0xcb, 0xc9, 0x5a, 0xeb, 0x60, 0x5a, 0xab, 0x09, 0x00, 0x00, 0x01, 0x5a, 0xcb, 0x4b, 0x73, 0xae, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x82, 0x5a, 0x10, 0x82, 0xff, 0x10, 0x82, 0xd5, 0x10, 0xa2, 0x62, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x39, 0xc7, 0x17, 0x00, 0x00, 0x00, 0x73, 0x6e, 0x07, 0x5a, 0xcb, 0x62, 0x5a, 0xcb, 0xd5, 0x5a, 0xcb, 0xff, 0x5a, 0xeb, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x82, 0xb2, 0x10, 0x82, 0xff, 0x10, 0x82, 0xd7, 0x10, 0x82, 0x65, 0x00, 0x00, 0x07, 0x20, 0xe4, 0x09, 0x39, 0xc7, 0x45, 0x5a, 0xab, 0x09, 0x73, 0x6e, 0x07, 0x5a, 0xcb, 0x65, 0x5a, 0xcb, 0xd7, 0x5a, 0xcb, 0xff, 0x5a, 0xcb, 0xb2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x82, 0x11, 0x10, 0x82, 0xbd, 0x10, 0x82, 0x55, 0x00, 0x00, 0x03, 0x08, 0x61, 0x17, 0x10, 0x82, 0x80, 0x10, 0x82, 0xeb, 0x42, 0x08, 0xc0, 0x5a, 0xcb, 0xf0, 0x5a, 0xcb, 0x91, 0x5a, 0xeb, 0x1c, 0x00, 0x00, 0x01, 0x5a, 0xcb, 0x44, 0x5a, 0xcb, 0xad, 0x62, 0xec, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x18, 0xa3, 0x30, 0x10, 0x82, 0xa0, 0x10, 0x82, 0xf9, 0x10, 0x82, 0xff, 0x10, 0x82, 0xff, 0x42, 0x08, 0xc0, 0x5a, 0xcb, 0xff, 0x5a, 0xcb, 0xff, 0x5a, 0xcb, 0xf9, 0x5a, 0xcb, 0xa0, 0x5a, 0xab, 0x30, 0x00, 0x00, 0x00, 0x5a, 0xab, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x82, 0x22, 0x10, 0x82, 0xbd, 0x10, 0x82, 0xff, 0x10, 0x82, 0xff, 0x10, 0x82, 0xff, 0x10, 0x82, 0xff, 0x10, 0x82, 0xff, 0x42, 0x08, 0xc0, 0x5a, 0xcb, 0xff, 0x5a, 0xcb, 0xff, 0x5a, 0xcb, 0xff, 0x5a, 0xcb, 0xff, 0x5a, 0xcb, 0xff, 0x5a, 0xcb, 0xbd, 0x5a, 0xeb, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x10, 0x82, 0x4e, 0x10, 0x82, 0xc4, 0x10, 0x82, 0x55, 0x00, 0x00, 0x04, 0x10, 0x82, 0x2f, 0x10, 0x82, 0x99, 0x10, 0x82, 0xf6, 0x10, 0x82, 0xff, 0x10, 0x82, 0xff, 0x10, 0x82, 0xff, 0x42, 0x08, 0xc0, 0x5a, 0xcb, 0xff, 0x5a, 0xcb, 0xff, 0x5a, 0xcb, 0xff, 0x5a, 0xcb, 0xf9, 0x5a, 0xcb, 0xaa, 0x5a, 0xab, 0x36, 0xff, 0xff, 0x02, 0x5a, 0xcb, 0x44, 0x5a, 0xcb, 0xb3, 0x5a, 0xcb, 0x4c, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x10, 0x82, 0x4e, 0x10, 0x82, 0xff, 0x10, 0x82, 0xff, 0x10, 0x82, 0xde, 0x10, 0x82, 0x74, 0x10, 0x82, 0x12, 0x18, 0xa3, 0x18, 0x10, 0x82, 0x83, 0x10, 0x82, 0xeb, 0x10, 0x82, 0xff, 0x42, 0x08, 0xc0, 0x5a, 0xcb, 0xff, 0x5a, 0xcb, 0xeb, 0x5a, 0xcb, 0x83, 0x5a, 0xab, 0x18, 0x5a, 0xab, 0x12, 0x5a, 0xeb, 0x74, 0x5a, 0xcb, 0xde, 0x5a, 0xcb, 0xff, 0x5a, 0xcb, 0xff, 0x5a, 0xcb, 0x4e, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x10, 0x82, 0x4e, 0x10, 0x82, 0xff, 0x10, 0x82, 0xff, 0x10, 0x82, 0xff, 0x10, 0x82, 0xff, 0x10, 0x82, 0xf5, 0x10, 0x82, 0x9b, 0x10, 0x82, 0x2f, 0x20, 0xe4, 0x09, 0x10, 0x82, 0x65, 0x41, 0xe8, 0x98, 0x5a, 0xcb, 0x65, 0x5a, 0xab, 0x09, 0x62, 0xec, 0x2f, 0x5a, 0xcb, 0x9b, 0x5a, 0xcb, 0xf5, 0x5a, 0xcb, 0xff, 0x5a, 0xcb, 0xff, 0x5a, 0xcb, 0xff, 0x5a, 0xcb, 0xff, 0x5a, 0xcb, 0x4e, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x10, 0x82, 0x4e, 0x10, 0x82, 0xff, 0x10, 0x82, 0xff, 0x10, 0x82, 0xff, 0x10, 0x82, 0xff, 0x10, 0x82, 0xff, 0x10, 0x82, 0xff, 0x10, 0x82, 0xca, 0x18, 0xc3, 0x2e, 0x00, 0x00, 0x00, 0x31, 0xa6, 0x0a, 0x00, 0x00, 0x00, 0x63, 0x0c, 0x2e, 0x5a, 0xcb, 0xca, 0x5a, 0xcb, 0xff, 0x5a, 0xcb, 0xff, 0x5a, 0xcb, 0xff, 0x5a, 0xcb, 0xff, 0x5a, 0xcb, 0xff, 0x5a, 0xcb, 0xff, 0x5a, 0xcb, 0x4e, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x10, 0x82, 0x4e, 0x10, 0x82, 0xff, 0x10, 0x82, 0xff, 0x10, 0x82, 0xff, 0x10, 0x82, 0xf9, 0x10, 0x82, 0xaa, 0x10, 0x82, 0x44, 0x00, 0x00, 0x00, 0x10, 0x82, 0x33, 0x10, 0x82, 0xa2, 0x42, 0x08, 0xbd, 0x5a, 0xcb, 0xb3, 0x5a, 0xcb, 0x3b, 0x00, 0x00, 0x00, 0x5a, 0xab, 0x33, 0x5a, 0xcb, 0x99, 0x5a, 0xcb, 0xf6, 0x5a, 0xcb, 0xff, 0x5a, 0xcb, 0xff, 0x5a, 0xcb, 0xff, 0x5a, 0xcb, 0x4e, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x10, 0x82, 0x4e, 0x10, 0x82, 0xff, 0x10, 0x82, 0xe4, 0x10, 0x82, 0x7c, 0x18, 0xc3, 0x16, 0x00, 0x00, 0x02, 0x10, 0xa2, 0x51, 0x10, 0x82, 0xc4, 0x10, 0x82, 0xff, 0x10, 0x82, 0xff, 0x42, 0x08, 0xc0, 0x5a, 0xcb, 0xff, 0x5a, 0xcb, 0xff, 0x5a, 0xcb, 0xc4, 0x5a, 0xcb, 0x51, 0xff, 0xff, 0x02, 0x6b, 0x4d, 0x16, 0x5a, 0xcb, 0x7c, 0x5a, 0xcb, 0xe4, 0x5a, 0xcb, 0xff, 0x5a, 0xcb, 0x4e, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x18, 0xa3, 0x30, 0x10, 0x82, 0x55, 0x00, 0x00, 0x04, 0x31, 0xa6, 0x0a, 0x10, 0x82, 0x69, 0x10, 0x82, 0xda, 0x10, 0x82, 0xff, 0x10, 0x82, 0xff, 0x10, 0x82, 0xff, 0x10, 0x82, 0xff, 0x42, 0x08, 0xc0, 0x5a, 0xcb, 0xff, 0x5a, 0xcb, 0xff, 0x5a, 0xcb, 0xff, 0x5a, 0xcb, 0xff, 0x5a, 0xcb, 0xda, 0x5a, 0xcb, 0x69, 0x6b, 0x4d, 0x0a, 0x84, 0x10, 0x04, 0x5a, 0xcb, 0x55, 0x5a, 0xab, 0x30, 0x00, 0x00, 0x00, - 0x18, 0xc3, 0x2e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0xc3, 0x14, 0x10, 0x82, 0xc8, 0x10, 0x82, 0xff, 0x10, 0x82, 0xff, 0x10, 0x82, 0xff, 0x10, 0x82, 0xff, 0x10, 0x82, 0xff, 0x10, 0x82, 0xff, 0x42, 0x08, 0xc0, 0x5a, 0xcb, 0xff, 0x5a, 0xcb, 0xff, 0x5a, 0xcb, 0xff, 0x5a, 0xcb, 0xff, 0x5a, 0xcb, 0xff, 0x5a, 0xcb, 0xff, 0x5a, 0xcb, 0xc8, 0x5a, 0xcb, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x0c, 0x2e, - 0x10, 0x82, 0x96, 0x10, 0x82, 0xcd, 0x10, 0x82, 0x66, 0x18, 0xc3, 0x0b, 0x00, 0x00, 0x02, 0x10, 0xa2, 0x4d, 0x10, 0x82, 0xc4, 0x10, 0x82, 0xff, 0x10, 0x82, 0xff, 0x10, 0x82, 0xff, 0x10, 0x82, 0xff, 0x42, 0x08, 0xc0, 0x5a, 0xcb, 0xff, 0x5a, 0xcb, 0xff, 0x5a, 0xcb, 0xff, 0x5a, 0xcb, 0xff, 0x5a, 0xcb, 0xcc, 0x5a, 0xcb, 0x5e, 0x84, 0x10, 0x04, 0x73, 0x6e, 0x07, 0x5a, 0xcb, 0x55, 0x5a, 0xcb, 0xc5, 0x5a, 0xcb, 0x95, - 0x10, 0x62, 0x27, 0x10, 0x82, 0xfd, 0x10, 0x82, 0xff, 0x10, 0x82, 0xee, 0x10, 0x82, 0x8d, 0x10, 0x82, 0x24, 0x00, 0x00, 0x00, 0x10, 0x82, 0x3b, 0x10, 0x82, 0xae, 0x10, 0x82, 0xfd, 0x10, 0x82, 0xff, 0x42, 0x08, 0xc0, 0x5a, 0xcb, 0xff, 0x5a, 0xcb, 0xfd, 0x5a, 0xcb, 0xae, 0x5a, 0xcb, 0x3b, 0x00, 0x00, 0x00, 0x5a, 0xab, 0x24, 0x5a, 0xcb, 0x8d, 0x5a, 0xcb, 0xee, 0x5a, 0xcb, 0xff, 0x5a, 0xcb, 0xfd, 0x5a, 0xab, 0x27, - 0x00, 0x00, 0x00, 0x10, 0x82, 0xb3, 0x10, 0x82, 0xff, 0x10, 0x82, 0xff, 0x10, 0x82, 0xff, 0x10, 0x82, 0xfe, 0x10, 0x82, 0xbb, 0x10, 0x82, 0x55, 0x00, 0x00, 0x04, 0x10, 0x82, 0x22, 0x10, 0x82, 0x91, 0x42, 0x08, 0xb6, 0x5a, 0xcb, 0xa2, 0x5a, 0xcb, 0x29, 0xff, 0xff, 0x02, 0x5a, 0xcb, 0x44, 0x5a, 0xcb, 0xaa, 0x5a, 0xcb, 0xfc, 0x5a, 0xcb, 0xff, 0x5a, 0xcb, 0xff, 0x5a, 0xcb, 0xff, 0x5a, 0xcb, 0xb2, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x10, 0x82, 0x42, 0x10, 0x82, 0xff, 0x10, 0x82, 0xff, 0x10, 0x82, 0xff, 0x10, 0x82, 0xff, 0x10, 0x82, 0xff, 0x10, 0x82, 0xff, 0x10, 0x82, 0xcc, 0x20, 0xe4, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0xcb, 0x1a, 0x5a, 0xcb, 0xcc, 0x5a, 0xcb, 0xff, 0x5a, 0xcb, 0xff, 0x5a, 0xcb, 0xff, 0x5a, 0xcb, 0xff, 0x5a, 0xcb, 0xff, 0x5a, 0xcb, 0xff, 0x62, 0xec, 0x42, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x82, 0xd0, 0x10, 0x82, 0xff, 0x10, 0x82, 0xff, 0x10, 0x82, 0xff, 0x10, 0x82, 0xdd, 0x10, 0x82, 0x6c, 0x18, 0xc3, 0x0b, 0x10, 0xa2, 0x0e, 0x10, 0x82, 0x76, 0x41, 0xe8, 0xa6, 0x5a, 0xcb, 0x76, 0x5a, 0xeb, 0x0e, 0x73, 0xae, 0x0b, 0x5a, 0xcb, 0x6c, 0x5a, 0xcb, 0xdd, 0x5a, 0xcb, 0xff, 0x5a, 0xcb, 0xff, 0x5a, 0xcb, 0xff, 0x5a, 0xcb, 0xd0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x82, 0x5f, 0x10, 0x82, 0xff, 0x10, 0x82, 0xc8, 0x10, 0x82, 0x55, 0x00, 0x00, 0x03, 0x08, 0x61, 0x17, 0x10, 0x82, 0x86, 0x10, 0x82, 0xef, 0x10, 0x82, 0xff, 0x42, 0x08, 0xc0, 0x5a, 0xcb, 0xff, 0x5a, 0xcb, 0xef, 0x5a, 0xcb, 0x86, 0x63, 0x2c, 0x17, 0x5a, 0xab, 0x03, 0x5a, 0xcb, 0x55, 0x5a, 0xcb, 0xc8, 0x5a, 0xcb, 0xff, 0x5a, 0xcb, 0x5f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x10, 0x82, 0x3c, 0x00, 0x00, 0x00, 0x10, 0x82, 0x22, 0x10, 0x82, 0x96, 0x10, 0x82, 0xf7, 0x10, 0x82, 0xff, 0x10, 0x82, 0xff, 0x10, 0x82, 0xff, 0x42, 0x08, 0xc0, 0x5a, 0xcb, 0xff, 0x5a, 0xcb, 0xff, 0x5a, 0xcb, 0xff, 0x5a, 0xcb, 0xf7, 0x5a, 0xcb, 0x96, 0x5a, 0xeb, 0x22, 0x00, 0x00, 0x00, 0x5a, 0xab, 0x3c, 0x73, 0x6e, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xe4, 0x1a, 0x10, 0x82, 0xc4, 0x10, 0x82, 0xff, 0x10, 0x82, 0xff, 0x10, 0x82, 0xff, 0x10, 0x82, 0xff, 0x10, 0x82, 0xff, 0x42, 0x08, 0xc0, 0x5a, 0xcb, 0xff, 0x5a, 0xcb, 0xff, 0x5a, 0xcb, 0xff, 0x5a, 0xcb, 0xff, 0x5a, 0xcb, 0xff, 0x5a, 0xcb, 0xc4, 0x5a, 0xcb, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0xa2, 0x40, 0x10, 0x82, 0xb7, 0x10, 0x82, 0xff, 0x10, 0x82, 0xff, 0x10, 0x82, 0xff, 0x42, 0x08, 0xc0, 0x5a, 0xcb, 0xff, 0x5a, 0xcb, 0xff, 0x5a, 0xcb, 0xff, 0x5a, 0xcb, 0xb7, 0x5a, 0xeb, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0xc3, 0x2e, 0x10, 0x82, 0xa2, 0x10, 0x82, 0xfb, 0x42, 0x08, 0xc0, 0x5a, 0xcb, 0xfd, 0x5a, 0xcb, 0xb3, 0x5a, 0xeb, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x82, 0x5d, 0x42, 0x08, 0xc0, 0x5a, 0xeb, 0x5d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0xa2, 0x52, 0x42, 0x08, 0xc0, 0x5a, 0xcb, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0xa2, 0x52, 0x42, 0x08, 0xc0, 0x5a, 0xcb, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0xa2, 0x52, 0x42, 0x08, 0xc0, 0x5a, 0xcb, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; - -const lv_img_dsc_t logo_pine = { - .header.cf = LV_IMG_CF_TRUE_COLOR_ALPHA, - .header.always_zero = 0, - .header.reserved = 0, - .header.w = 23, - .header.h = 31, - .data_size = 713 * LV_IMG_PX_SIZE_ALPHA_BYTE, - .data = logo_pine_map, -}; diff --git a/src/displayapp/screens/Clock.cpp b/src/displayapp/screens/Clock.cpp index e9e03df0..bb29d6a4 100644 --- a/src/displayapp/screens/Clock.cpp +++ b/src/displayapp/screens/Clock.cpp @@ -23,7 +23,8 @@ Clock::Clock(DisplayApp* app, Controllers::NotificationManager& notificatioManager, Controllers::Settings& settingsController, Controllers::HeartRateController& heartRateController, - Controllers::MotionController& motionController) + Controllers::MotionController& motionController, + Controllers::FS& fs) : Screen(app), dateTimeController {dateTimeController}, batteryController {batteryController}, @@ -32,6 +33,7 @@ Clock::Clock(DisplayApp* app, settingsController {settingsController}, heartRateController {heartRateController}, motionController {motionController}, + fs{fs}, screen {[this, &settingsController]() { switch (settingsController.GetClockFace()) { case 0: @@ -115,5 +117,6 @@ std::unique_ptr Clock::WatchFaceInfineatScreen() { bleController, notificatioManager, settingsController, - motionController); + motionController, + fs); } diff --git a/src/displayapp/screens/Clock.h b/src/displayapp/screens/Clock.h index c80aeeb3..0cdc6028 100644 --- a/src/displayapp/screens/Clock.h +++ b/src/displayapp/screens/Clock.h @@ -28,7 +28,8 @@ namespace Pinetime { Controllers::NotificationManager& notificatioManager, Controllers::Settings& settingsController, Controllers::HeartRateController& heartRateController, - Controllers::MotionController& motionController); + Controllers::MotionController& motionController, + Controllers::FS& fs); ~Clock() override; bool OnTouchEvent(TouchEvents event) override; @@ -42,6 +43,7 @@ namespace Pinetime { Controllers::Settings& settingsController; Controllers::HeartRateController& heartRateController; Controllers::MotionController& motionController; + Controllers::FS& fs; std::unique_ptr screen; std::unique_ptr WatchFaceDigitalScreen(); diff --git a/src/displayapp/screens/Symbols.h b/src/displayapp/screens/Symbols.h index c7bf1e59..1180ec6f 100644 --- a/src/displayapp/screens/Symbols.h +++ b/src/displayapp/screens/Symbols.h @@ -38,7 +38,6 @@ namespace Pinetime { static constexpr const char* eye = "\xEF\x81\xAE"; static constexpr const char* home = "\xEF\x80\x95"; static constexpr const char* sleep = "\xEE\xBD\x84"; - static constexpr const char* circle = "\xEF\x84\x91"; // lv_font_sys_48.c static constexpr const char* settings = "\xEE\xA2\xB8"; diff --git a/src/displayapp/screens/WatchFaceInfineat.cpp b/src/displayapp/screens/WatchFaceInfineat.cpp index cdb7cdbd..a685bb54 100644 --- a/src/displayapp/screens/WatchFaceInfineat.cpp +++ b/src/displayapp/screens/WatchFaceInfineat.cpp @@ -20,15 +20,14 @@ namespace { } } -LV_IMG_DECLARE(logo_pine); - WatchFaceInfineat::WatchFaceInfineat(DisplayApp* app, Controllers::DateTime& dateTimeController, Controllers::Battery& batteryController, Controllers::Ble& bleController, Controllers::NotificationManager& notificationManager, Controllers::Settings& settingsController, - Controllers::MotionController& motionController) + Controllers::MotionController& motionController, + Controllers::FS& fs) : Screen(app), currentDateTime {{}}, dateTimeController {dateTimeController}, @@ -37,6 +36,14 @@ WatchFaceInfineat::WatchFaceInfineat(DisplayApp* app, notificationManager {notificationManager}, settingsController {settingsController}, motionController {motionController} { + lfs_file f = {}; + if(fs.FileOpen(&f, "/fonts/teko.bin", LFS_O_RDONLY) >= 0) { + font_teko = lv_font_load("F:/fonts/teko.bin"); + } + + if(fs.FileOpen(&f, "/fonts/bebas.bin", LFS_O_RDONLY) >= 0) { + font_bebas = lv_font_load("F:/fonts/bebas.bin"); + } // Black background covering the whole screen background = lv_obj_create(lv_scr_act(), nullptr); @@ -138,7 +145,7 @@ WatchFaceInfineat::WatchFaceInfineat(DisplayApp* app, lv_line_set_points(line8, line8Points, 2); logoPine = lv_img_create(lv_scr_act(), nullptr); - lv_img_set_src(logoPine, &logo_pine); + lv_img_set_src(logoPine, "F:/images/pine_small.bin"); lv_obj_set_pos(logoPine, 15, 106); lv_style_init(&lineBatteryStyle); @@ -174,49 +181,76 @@ WatchFaceInfineat::WatchFaceInfineat(DisplayApp* app, timeContainer = lv_obj_create(lv_scr_act(), nullptr); lv_obj_set_style_local_bg_opa(timeContainer, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_OPA_TRANSP); - lv_obj_set_size(timeContainer, 110, 145); - lv_obj_align(timeContainer, lv_scr_act(), LV_ALIGN_CENTER, 0, 0); + if(font_bebas != nullptr) { + lv_obj_set_size(timeContainer, 185, 185); + lv_obj_align(timeContainer, lv_scr_act(), LV_ALIGN_CENTER, 0, -10); + } else { + lv_obj_set_size(timeContainer, 110, 145); + lv_obj_align(timeContainer, lv_scr_act(), LV_ALIGN_CENTER, 0, 0); + } labelHour = lv_label_create(lv_scr_act(), nullptr); lv_obj_set_style_local_text_font(labelHour, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &jetbrains_mono_extrabold_compressed); lv_label_set_text(labelHour, "01"); - lv_obj_align(labelHour, timeContainer, LV_ALIGN_IN_TOP_MID, 0, 5); + if(font_bebas != nullptr) { + lv_obj_set_style_local_text_font(labelHour, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, font_bebas); + lv_obj_align(labelHour, timeContainer, LV_ALIGN_IN_TOP_MID, 0, 0); + } + else { + lv_obj_set_style_local_text_font(labelHour, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &jetbrains_mono_extrabold_compressed); + lv_obj_align(labelHour, timeContainer, LV_ALIGN_IN_TOP_MID, 0, 5); + } labelMinutes = lv_label_create(lv_scr_act(), nullptr); - lv_obj_set_style_local_text_font(labelMinutes, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &jetbrains_mono_extrabold_compressed); + if(font_bebas != nullptr) { + lv_obj_set_style_local_text_font(labelMinutes, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, font_bebas); + } + else { + lv_obj_set_style_local_text_font(labelMinutes, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &jetbrains_mono_extrabold_compressed); + } lv_label_set_text(labelMinutes, "00"); lv_obj_align(labelMinutes, timeContainer, LV_ALIGN_IN_BOTTOM_MID, 0, 0); labelTimeAmPm = lv_label_create(lv_scr_act(), nullptr); - lv_obj_set_style_local_text_font(labelTimeAmPm, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &jetbrains_mono_bold_20); + if(font_teko != nullptr) { + lv_obj_set_style_local_text_font(labelTimeAmPm, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, font_teko); + } + else { + lv_obj_set_style_local_text_font(labelTimeAmPm, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &jetbrains_mono_bold_20); + } + lv_label_set_text(labelTimeAmPm, ""); lv_obj_align(labelTimeAmPm, timeContainer, LV_ALIGN_OUT_RIGHT_TOP, 0, 15); dateContainer = lv_obj_create(lv_scr_act(), nullptr); lv_obj_set_style_local_bg_opa(dateContainer, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_OPA_TRANSP); - lv_obj_set_size(dateContainer, 40, 50); + lv_obj_set_size(dateContainer, 60, 30); lv_obj_align(dateContainer, lv_scr_act(), LV_ALIGN_IN_RIGHT_MID, 0, 5); - labelDateDay = lv_label_create(lv_scr_act(), nullptr); - lv_obj_set_style_local_text_color(labelDateDay, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x999999)); - lv_obj_set_style_local_text_font(labelDateDay, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &jetbrains_mono_bold_20); - lv_obj_align(labelDateDay, dateContainer, LV_ALIGN_IN_TOP_MID, 0, 0); - lv_label_set_text(labelDateDay, "Mon"); - - labelDateNum = lv_label_create(lv_scr_act(), nullptr); - lv_obj_set_style_local_text_color(labelDateNum, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x999999)); - lv_obj_set_style_local_text_font(labelDateNum, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &jetbrains_mono_bold_20); - lv_obj_align(labelDateNum, dateContainer, LV_ALIGN_IN_BOTTOM_MID, 0, 0); - lv_label_set_text(labelDateNum, "01"); + labelDate = lv_label_create(lv_scr_act(), nullptr); + lv_obj_set_style_local_text_color(labelDate, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x999999)); + if(font_teko != nullptr) { + lv_obj_set_style_local_text_font(labelDate, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, font_teko); + } + else { + lv_obj_set_style_local_text_font(labelDate, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &jetbrains_mono_bold_20); + } + lv_obj_align(labelDate, dateContainer, LV_ALIGN_IN_TOP_MID, 0, 0); + lv_label_set_text(labelDate, "Mon 01"); bleIcon = lv_label_create(lv_scr_act(), nullptr); lv_obj_set_style_local_text_color(bleIcon, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x999999)); lv_label_set_text(bleIcon, Symbols::bluetooth); - lv_obj_align(bleIcon, dateContainer, LV_ALIGN_OUT_BOTTOM_MID, 0, 7); + lv_obj_align(bleIcon, dateContainer, LV_ALIGN_OUT_BOTTOM_MID, 0, 0); stepValue = lv_label_create(lv_scr_act(), nullptr); lv_obj_set_style_local_text_color(stepValue, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x999999)); - lv_obj_set_style_local_text_font(stepValue, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &jetbrains_mono_bold_20); + if(font_teko != nullptr) { + lv_obj_set_style_local_text_font(stepValue, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, font_teko); + } + else { + lv_obj_set_style_local_text_font(stepValue, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &jetbrains_mono_bold_20); + } lv_obj_align(stepValue, lv_scr_act(), LV_ALIGN_IN_BOTTOM_RIGHT, 10, 0); lv_label_set_text(stepValue, "0"); @@ -294,6 +328,13 @@ WatchFaceInfineat::~WatchFaceInfineat() { lv_style_reset(&line8Style); lv_style_reset(&lineBatteryStyle); + if (font_bebas != nullptr) { + lv_font_free(font_bebas); + } + if(font_teko != nullptr) { + lv_font_free(font_teko); + } + lv_obj_clean(lv_scr_act()); } @@ -459,10 +500,8 @@ void WatchFaceInfineat::Refresh() { } if ((year != currentYear) || (month != currentMonth) || (dayOfWeek != currentDayOfWeek) || (day != currentDay)) { - lv_label_set_text_fmt(labelDateDay, "%s", dateTimeController.DayOfWeekShortToStringLow()); - lv_label_set_text_fmt(labelDateNum, "%02d", day); - lv_obj_align(labelDateDay, dateContainer, LV_ALIGN_IN_TOP_MID, 0, 0); - lv_obj_align(labelDateNum, dateContainer, LV_ALIGN_IN_BOTTOM_MID, 0, 0); + lv_label_set_text_fmt(labelDate, "%s %02d", dateTimeController.DayOfWeekShortToStringLow(), day); + lv_obj_realign(labelDate); currentYear = year; currentMonth = month; diff --git a/src/displayapp/screens/WatchFaceInfineat.h b/src/displayapp/screens/WatchFaceInfineat.h index 9541f2ad..c71dfca3 100644 --- a/src/displayapp/screens/WatchFaceInfineat.h +++ b/src/displayapp/screens/WatchFaceInfineat.h @@ -27,7 +27,8 @@ namespace Pinetime { Controllers::Ble& bleController, Controllers::NotificationManager& notificationManager, Controllers::Settings& settingsController, - Controllers::MotionController& motionController); + Controllers::MotionController& motionController, + Controllers::FS& fs); ~WatchFaceInfineat() override; @@ -101,8 +102,7 @@ namespace Pinetime { lv_obj_t* labelMinutes; lv_obj_t* labelTimeAmPm; lv_obj_t* dateContainer; - lv_obj_t* labelDateDay; - lv_obj_t* labelDateNum; + lv_obj_t* labelDate; lv_obj_t* bleIcon; lv_obj_t* stepIcon; lv_obj_t* stepValue; @@ -137,6 +137,8 @@ namespace Pinetime { void ToggleBatteryIndicatorColor(bool showSideCover); lv_task_t* taskRefresh; + lv_font_t* font_teko = nullptr; + lv_font_t* font_bebas = nullptr; }; } } diff --git a/src/main.cpp b/src/main.cpp index 109971bc..ad7a07dc 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -131,7 +131,8 @@ Pinetime::Applications::DisplayApp displayApp(lcd, timerController, alarmController, brightnessController, - touchHandler); + touchHandler, + fs); Pinetime::System::SystemTask systemTask(spi, lcd, diff --git a/src/resources/fonts.json b/src/resources/fonts.json index 55882c3d..a270e6a2 100644 --- a/src/resources/fonts.json +++ b/src/resources/fonts.json @@ -3,7 +3,7 @@ "sources": [ { "file": "fonts/Teko-Light.ttf", - "symbols": "0123456789:/amp" + "symbols": "0123456789:/ampMonTueWdhFriSt " } ], "bpp": 1, diff --git a/src/resources/images.json b/src/resources/images.json index 764747ca..db2ccab0 100644 --- a/src/resources/images.json +++ b/src/resources/images.json @@ -1,7 +1,7 @@ { "pine_small" : { "sources": "images/pine_logo.png", - "color_format": "CF_TRUE_COLOR", + "color_format": "CF_TRUE_COLOR_ALPHA", "output_format": "bin", "binary_format": "ARGB8565_RBSWAP", "target_path": "/images/" -- cgit v1.2.3 From 58bb0e77db34703b99522956de804a674ec81a23 Mon Sep 17 00:00:00 2001 From: Jean-François Milants Date: Sun, 11 Sep 2022 20:18:01 +0200 Subject: Fix formatting --- src/displayapp/DisplayApp.cpp | 2 +- src/displayapp/screens/CheckboxList.cpp | 14 +- src/displayapp/screens/Clock.cpp | 2 +- src/displayapp/screens/WatchFaceInfineat.cpp | 173 ++++++++++++--------- src/displayapp/screens/WatchFaceInfineat.h | 5 +- .../screens/settings/SettingWatchFace.cpp | 32 ++-- 6 files changed, 135 insertions(+), 93 deletions(-) (limited to 'src/displayapp/screens/WatchFaceInfineat.cpp') diff --git a/src/displayapp/DisplayApp.cpp b/src/displayapp/DisplayApp.cpp index 0d4d7ca9..aa2c037e 100644 --- a/src/displayapp/DisplayApp.cpp +++ b/src/displayapp/DisplayApp.cpp @@ -93,7 +93,7 @@ DisplayApp::DisplayApp(Drivers::St7789& lcd, alarmController {alarmController}, brightnessController {brightnessController}, touchHandler {touchHandler}, - filesystem{filesystem} { + filesystem {filesystem} { } void DisplayApp::Start(System::BootErrors error) { diff --git a/src/displayapp/screens/CheckboxList.cpp b/src/displayapp/screens/CheckboxList.cpp index 4da7826c..177a9718 100644 --- a/src/displayapp/screens/CheckboxList.cpp +++ b/src/displayapp/screens/CheckboxList.cpp @@ -1,7 +1,6 @@ #include "displayapp/screens/CheckboxList.h" #include "displayapp/DisplayApp.h" #include "displayapp/screens/Styles.h" -#include "displayapp/screens/Symbols.h" using namespace Pinetime::Applications::Screens; @@ -20,10 +19,13 @@ CheckboxList::CheckboxList(const uint8_t screenID, const char* optionsTitle, const char* optionsSymbol, void (Controllers::Settings::*SetOptionIndex)(uint8_t), - uint8_t (Controllers::Settings::*GetOptionIndex )() const, + uint8_t (Controllers::Settings::*GetOptionIndex)() const, std::array options) - : Screen(app), screenID {screenID}, settingsController {settingsController}, - SetOptionIndex {SetOptionIndex}, GetOptionIndex {GetOptionIndex}, + : Screen(app), + screenID {screenID}, + settingsController {settingsController}, + SetOptionIndex {SetOptionIndex}, + GetOptionIndex {GetOptionIndex}, options {options} { settingsController.SetWatchfacesMenu(screenID); @@ -87,7 +89,7 @@ CheckboxList::CheckboxList(const uint8_t screenID, lv_obj_set_event_cb(cbOption[i], event_handler); SetRadioButtonStyle(cbOption[i]); - if (static_cast((settingsController.*GetOptionIndex)() - MAXLISTITEMS*screenID) == i) { + if (static_cast((settingsController.*GetOptionIndex)() - MAXLISTITEMS * screenID) == i) { lv_checkbox_set_checked(cbOption[i], true); } } @@ -105,7 +107,7 @@ void CheckboxList::UpdateSelected(lv_obj_t* object, lv_event_t event) { if (strcmp(options[i], "")) { if (object == cbOption[i]) { lv_checkbox_set_checked(cbOption[i], true); - (settingsController.*SetOptionIndex)(MAXLISTITEMS*screenID + i); + (settingsController.*SetOptionIndex)(MAXLISTITEMS * screenID + i); } else { lv_checkbox_set_checked(cbOption[i], false); } diff --git a/src/displayapp/screens/Clock.cpp b/src/displayapp/screens/Clock.cpp index bb29d6a4..90b65ebd 100644 --- a/src/displayapp/screens/Clock.cpp +++ b/src/displayapp/screens/Clock.cpp @@ -33,7 +33,7 @@ Clock::Clock(DisplayApp* app, settingsController {settingsController}, heartRateController {heartRateController}, motionController {motionController}, - fs{fs}, + fs {fs}, screen {[this, &settingsController]() { switch (settingsController.GetClockFace()) { case 0: diff --git a/src/displayapp/screens/WatchFaceInfineat.cpp b/src/displayapp/screens/WatchFaceInfineat.cpp index a685bb54..e3ed1bf7 100644 --- a/src/displayapp/screens/WatchFaceInfineat.cpp +++ b/src/displayapp/screens/WatchFaceInfineat.cpp @@ -37,11 +37,11 @@ WatchFaceInfineat::WatchFaceInfineat(DisplayApp* app, settingsController {settingsController}, motionController {motionController} { lfs_file f = {}; - if(fs.FileOpen(&f, "/fonts/teko.bin", LFS_O_RDONLY) >= 0) { + if (fs.FileOpen(&f, "/fonts/teko.bin", LFS_O_RDONLY) >= 0) { font_teko = lv_font_load("F:/fonts/teko.bin"); } - if(fs.FileOpen(&f, "/fonts/bebas.bin", LFS_O_RDONLY) >= 0) { + if (fs.FileOpen(&f, "/fonts/bebas.bin", LFS_O_RDONLY) >= 0) { font_bebas = lv_font_load("F:/fonts/bebas.bin"); } @@ -65,8 +65,9 @@ WatchFaceInfineat::WatchFaceInfineat(DisplayApp* app, lv_style_init(&line0Style); lv_style_set_line_width(&line0Style, LV_STATE_DEFAULT, 18); - lv_style_set_line_color(&line0Style, LV_STATE_DEFAULT, - lv_color_hex(infineatColors.orange[settingsController.GetInfineatColorIndex()*nLines])); + lv_style_set_line_color(&line0Style, + LV_STATE_DEFAULT, + lv_color_hex(infineatColors.orange[settingsController.GetInfineatColorIndex() * nLines])); lv_obj_add_style(line0, LV_LINE_PART_MAIN, &line0Style); line0Points[0] = {30, 25}; line0Points[1] = {68, -8}; @@ -74,8 +75,9 @@ WatchFaceInfineat::WatchFaceInfineat(DisplayApp* app, lv_style_init(&line1Style); lv_style_set_line_width(&line1Style, LV_STATE_DEFAULT, 15); - lv_style_set_line_color(&line1Style, LV_STATE_DEFAULT, - lv_color_hex(infineatColors.orange[settingsController.GetInfineatColorIndex()*nLines + 1])); + lv_style_set_line_color(&line1Style, + LV_STATE_DEFAULT, + lv_color_hex(infineatColors.orange[settingsController.GetInfineatColorIndex() * nLines + 1])); lv_obj_add_style(line1, LV_LINE_PART_MAIN, &line1Style); line1Points[0] = {26, 167}; line1Points[1] = {43, 216}; @@ -83,8 +85,9 @@ WatchFaceInfineat::WatchFaceInfineat(DisplayApp* app, lv_style_init(&line2Style); lv_style_set_line_width(&line2Style, LV_STATE_DEFAULT, 14); - lv_style_set_line_color(&line2Style, LV_STATE_DEFAULT, - lv_color_hex(infineatColors.orange[settingsController.GetInfineatColorIndex()*nLines + 2])); + lv_style_set_line_color(&line2Style, + LV_STATE_DEFAULT, + lv_color_hex(infineatColors.orange[settingsController.GetInfineatColorIndex() * nLines + 2])); lv_obj_add_style(line2, LV_LINE_PART_MAIN, &line2Style); line2Points[0] = {27, 40}; line2Points[1] = {27, 196}; @@ -92,8 +95,9 @@ WatchFaceInfineat::WatchFaceInfineat(DisplayApp* app, lv_style_init(&line3Style); lv_style_set_line_width(&line3Style, LV_STATE_DEFAULT, 22); - lv_style_set_line_color(&line3Style, LV_STATE_DEFAULT, - lv_color_hex(infineatColors.orange[settingsController.GetInfineatColorIndex()*nLines + 3])); + lv_style_set_line_color(&line3Style, + LV_STATE_DEFAULT, + lv_color_hex(infineatColors.orange[settingsController.GetInfineatColorIndex() * nLines + 3])); lv_obj_add_style(line3, LV_LINE_PART_MAIN, &line3Style); line3Points[0] = {12, 182}; line3Points[1] = {65, 249}; @@ -101,8 +105,9 @@ WatchFaceInfineat::WatchFaceInfineat(DisplayApp* app, lv_style_init(&line4Style); lv_style_set_line_width(&line4Style, LV_STATE_DEFAULT, 20); - lv_style_set_line_color(&line4Style, LV_STATE_DEFAULT, - lv_color_hex(infineatColors.orange[settingsController.GetInfineatColorIndex()*nLines + 4])); + lv_style_set_line_color(&line4Style, + LV_STATE_DEFAULT, + lv_color_hex(infineatColors.orange[settingsController.GetInfineatColorIndex() * nLines + 4])); lv_obj_add_style(line4, LV_LINE_PART_MAIN, &line4Style); line4Points[0] = {17, 99}; line4Points[1] = {17, 144}; @@ -110,8 +115,9 @@ WatchFaceInfineat::WatchFaceInfineat(DisplayApp* app, lv_style_init(&line5Style); lv_style_set_line_width(&line5Style, LV_STATE_DEFAULT, 18); - lv_style_set_line_color(&line5Style, LV_STATE_DEFAULT, - lv_color_hex(infineatColors.orange[settingsController.GetInfineatColorIndex()*nLines + 5])); + lv_style_set_line_color(&line5Style, + LV_STATE_DEFAULT, + lv_color_hex(infineatColors.orange[settingsController.GetInfineatColorIndex() * nLines + 5])); lv_obj_add_style(line5, LV_LINE_PART_MAIN, &line5Style); line5Points[0] = {14, 81}; line5Points[1] = {40, 127}; @@ -119,8 +125,9 @@ WatchFaceInfineat::WatchFaceInfineat(DisplayApp* app, lv_style_init(&line6Style); lv_style_set_line_width(&line6Style, LV_STATE_DEFAULT, 18); - lv_style_set_line_color(&line6Style, LV_STATE_DEFAULT, - lv_color_hex(infineatColors.orange[settingsController.GetInfineatColorIndex()*nLines + 6])); + lv_style_set_line_color(&line6Style, + LV_STATE_DEFAULT, + lv_color_hex(infineatColors.orange[settingsController.GetInfineatColorIndex() * nLines + 6])); lv_obj_add_style(line6, LV_LINE_PART_MAIN, &line6Style); line6Points[0] = {14, 163}; line6Points[1] = {40, 118}; @@ -128,8 +135,9 @@ WatchFaceInfineat::WatchFaceInfineat(DisplayApp* app, lv_style_init(&line7Style); lv_style_set_line_width(&line7Style, LV_STATE_DEFAULT, 52); - lv_style_set_line_color(&line7Style, LV_STATE_DEFAULT, - lv_color_hex(infineatColors.orange[settingsController.GetInfineatColorIndex()*nLines + 7])); + lv_style_set_line_color(&line7Style, + LV_STATE_DEFAULT, + lv_color_hex(infineatColors.orange[settingsController.GetInfineatColorIndex() * nLines + 7])); lv_obj_add_style(line7, LV_LINE_PART_MAIN, &line7Style); line7Points[0] = {-20, 124}; line7Points[1] = {25, -11}; @@ -137,8 +145,9 @@ WatchFaceInfineat::WatchFaceInfineat(DisplayApp* app, lv_style_init(&line8Style); lv_style_set_line_width(&line8Style, LV_STATE_DEFAULT, 48); - lv_style_set_line_color(&line8Style, LV_STATE_DEFAULT, - lv_color_hex(infineatColors.orange[settingsController.GetInfineatColorIndex()*nLines + 8])); + lv_style_set_line_color(&line8Style, + LV_STATE_DEFAULT, + lv_color_hex(infineatColors.orange[settingsController.GetInfineatColorIndex() * nLines + 8])); lv_obj_add_style(line8, LV_LINE_PART_MAIN, &line8Style); line8Points[0] = {-29, 89}; line8Points[1] = {27, 254}; @@ -150,8 +159,9 @@ WatchFaceInfineat::WatchFaceInfineat(DisplayApp* app, lv_style_init(&lineBatteryStyle); lv_style_set_line_width(&lineBatteryStyle, LV_STATE_DEFAULT, 24); - lv_style_set_line_color(&lineBatteryStyle, LV_STATE_DEFAULT, - lv_color_hex(infineatColors.orange[settingsController.GetInfineatColorIndex()*nLines + 4])); + lv_style_set_line_color(&lineBatteryStyle, + LV_STATE_DEFAULT, + lv_color_hex(infineatColors.orange[settingsController.GetInfineatColorIndex() * nLines + 4])); lv_style_set_line_opa(&lineBatteryStyle, LV_STATE_DEFAULT, 190); lv_obj_add_style(lineBattery, LV_LINE_PART_MAIN, &lineBatteryStyle); lineBatteryPoints[0] = {27, 105}; @@ -160,13 +170,15 @@ WatchFaceInfineat::WatchFaceInfineat(DisplayApp* app, lv_obj_move_foreground(lineBattery); notificationIcon = lv_obj_create(lv_scr_act(), nullptr); - lv_obj_set_style_local_bg_color(notificationIcon, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, - lv_color_hex(infineatColors.orange[settingsController.GetInfineatColorIndex()*nLines + 7])); + lv_obj_set_style_local_bg_color(notificationIcon, + LV_BTN_PART_MAIN, + LV_STATE_DEFAULT, + lv_color_hex(infineatColors.orange[settingsController.GetInfineatColorIndex() * nLines + 7])); lv_obj_set_style_local_radius(notificationIcon, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE); lv_obj_set_size(notificationIcon, 13, 13); lv_obj_set_hidden(notificationIcon, true); - if(!settingsController.GetInfineatShowSideCover()) { + if (!settingsController.GetInfineatShowSideCover()) { ToggleBatteryIndicatorColor(false); lv_obj_set_hidden(line0, true); lv_obj_set_hidden(line1, true); @@ -181,7 +193,7 @@ WatchFaceInfineat::WatchFaceInfineat(DisplayApp* app, timeContainer = lv_obj_create(lv_scr_act(), nullptr); lv_obj_set_style_local_bg_opa(timeContainer, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_OPA_TRANSP); - if(font_bebas != nullptr) { + if (font_bebas != nullptr) { lv_obj_set_size(timeContainer, 185, 185); lv_obj_align(timeContainer, lv_scr_act(), LV_ALIGN_CENTER, 0, -10); } else { @@ -192,30 +204,27 @@ WatchFaceInfineat::WatchFaceInfineat(DisplayApp* app, labelHour = lv_label_create(lv_scr_act(), nullptr); lv_obj_set_style_local_text_font(labelHour, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &jetbrains_mono_extrabold_compressed); lv_label_set_text(labelHour, "01"); - if(font_bebas != nullptr) { + if (font_bebas != nullptr) { lv_obj_set_style_local_text_font(labelHour, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, font_bebas); lv_obj_align(labelHour, timeContainer, LV_ALIGN_IN_TOP_MID, 0, 0); - } - else { + } else { lv_obj_set_style_local_text_font(labelHour, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &jetbrains_mono_extrabold_compressed); lv_obj_align(labelHour, timeContainer, LV_ALIGN_IN_TOP_MID, 0, 5); } labelMinutes = lv_label_create(lv_scr_act(), nullptr); - if(font_bebas != nullptr) { + if (font_bebas != nullptr) { lv_obj_set_style_local_text_font(labelMinutes, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, font_bebas); - } - else { + } else { lv_obj_set_style_local_text_font(labelMinutes, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &jetbrains_mono_extrabold_compressed); } lv_label_set_text(labelMinutes, "00"); lv_obj_align(labelMinutes, timeContainer, LV_ALIGN_IN_BOTTOM_MID, 0, 0); labelTimeAmPm = lv_label_create(lv_scr_act(), nullptr); - if(font_teko != nullptr) { + if (font_teko != nullptr) { lv_obj_set_style_local_text_font(labelTimeAmPm, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, font_teko); - } - else { + } else { lv_obj_set_style_local_text_font(labelTimeAmPm, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &jetbrains_mono_bold_20); } @@ -229,10 +238,9 @@ WatchFaceInfineat::WatchFaceInfineat(DisplayApp* app, labelDate = lv_label_create(lv_scr_act(), nullptr); lv_obj_set_style_local_text_color(labelDate, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x999999)); - if(font_teko != nullptr) { + if (font_teko != nullptr) { lv_obj_set_style_local_text_font(labelDate, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, font_teko); - } - else { + } else { lv_obj_set_style_local_text_font(labelDate, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &jetbrains_mono_bold_20); } lv_obj_align(labelDate, dateContainer, LV_ALIGN_IN_TOP_MID, 0, 0); @@ -245,10 +253,9 @@ WatchFaceInfineat::WatchFaceInfineat(DisplayApp* app, stepValue = lv_label_create(lv_scr_act(), nullptr); lv_obj_set_style_local_text_color(stepValue, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x999999)); - if(font_teko != nullptr) { + if (font_teko != nullptr) { lv_obj_set_style_local_text_font(stepValue, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, font_teko); - } - else { + } else { lv_obj_set_style_local_text_font(stepValue, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &jetbrains_mono_bold_20); } lv_obj_align(stepValue, lv_scr_act(), LV_ALIGN_IN_BOTTOM_RIGHT, 10, 0); @@ -331,7 +338,7 @@ WatchFaceInfineat::~WatchFaceInfineat() { if (font_bebas != nullptr) { lv_font_free(font_bebas); } - if(font_teko != nullptr) { + if (font_teko != nullptr) { lv_font_free(font_teko); } @@ -410,28 +417,50 @@ void WatchFaceInfineat::UpdateSelected(lv_obj_t* object, lv_event_t event) { settingsController.SetInfineatColorIndex(colorIndex); } if (object == btnNextColor || object == btnPrevColor) { - lv_obj_set_style_local_line_color(line0, LV_LINE_PART_MAIN, LV_STATE_DEFAULT, - lv_color_hex(infineatColors.orange[colorIndex*nLines + 0])); - lv_obj_set_style_local_line_color(line1, LV_LINE_PART_MAIN, LV_STATE_DEFAULT, - lv_color_hex(infineatColors.orange[colorIndex*nLines + 1])); - lv_obj_set_style_local_line_color(line2, LV_LINE_PART_MAIN, LV_STATE_DEFAULT, - lv_color_hex(infineatColors.orange[colorIndex*nLines + 2])); - lv_obj_set_style_local_line_color(line3, LV_LINE_PART_MAIN, LV_STATE_DEFAULT, - lv_color_hex(infineatColors.orange[colorIndex*nLines + 3])); - lv_obj_set_style_local_line_color(line4, LV_LINE_PART_MAIN, LV_STATE_DEFAULT, - lv_color_hex(infineatColors.orange[colorIndex*nLines + 4])); - lv_obj_set_style_local_line_color(line5, LV_LINE_PART_MAIN, LV_STATE_DEFAULT, - lv_color_hex(infineatColors.orange[colorIndex*nLines + 5])); - lv_obj_set_style_local_line_color(line6, LV_LINE_PART_MAIN, LV_STATE_DEFAULT, - lv_color_hex(infineatColors.orange[colorIndex*nLines + 6])); - lv_obj_set_style_local_line_color(line7, LV_LINE_PART_MAIN, LV_STATE_DEFAULT, - lv_color_hex(infineatColors.orange[colorIndex*nLines + 7])); - lv_obj_set_style_local_line_color(line8, LV_LINE_PART_MAIN, LV_STATE_DEFAULT, - lv_color_hex(infineatColors.orange[colorIndex*nLines + 8])); - lv_obj_set_style_local_line_color(lineBattery, LV_LINE_PART_MAIN, LV_STATE_DEFAULT, - lv_color_hex(infineatColors.orange[colorIndex*nLines + 4])); - lv_obj_set_style_local_bg_color(notificationIcon, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, - lv_color_hex(infineatColors.orange[colorIndex*nLines + 7])); + lv_obj_set_style_local_line_color(line0, + LV_LINE_PART_MAIN, + LV_STATE_DEFAULT, + lv_color_hex(infineatColors.orange[colorIndex * nLines + 0])); + lv_obj_set_style_local_line_color(line1, + LV_LINE_PART_MAIN, + LV_STATE_DEFAULT, + lv_color_hex(infineatColors.orange[colorIndex * nLines + 1])); + lv_obj_set_style_local_line_color(line2, + LV_LINE_PART_MAIN, + LV_STATE_DEFAULT, + lv_color_hex(infineatColors.orange[colorIndex * nLines + 2])); + lv_obj_set_style_local_line_color(line3, + LV_LINE_PART_MAIN, + LV_STATE_DEFAULT, + lv_color_hex(infineatColors.orange[colorIndex * nLines + 3])); + lv_obj_set_style_local_line_color(line4, + LV_LINE_PART_MAIN, + LV_STATE_DEFAULT, + lv_color_hex(infineatColors.orange[colorIndex * nLines + 4])); + lv_obj_set_style_local_line_color(line5, + LV_LINE_PART_MAIN, + LV_STATE_DEFAULT, + lv_color_hex(infineatColors.orange[colorIndex * nLines + 5])); + lv_obj_set_style_local_line_color(line6, + LV_LINE_PART_MAIN, + LV_STATE_DEFAULT, + lv_color_hex(infineatColors.orange[colorIndex * nLines + 6])); + lv_obj_set_style_local_line_color(line7, + LV_LINE_PART_MAIN, + LV_STATE_DEFAULT, + lv_color_hex(infineatColors.orange[colorIndex * nLines + 7])); + lv_obj_set_style_local_line_color(line8, + LV_LINE_PART_MAIN, + LV_STATE_DEFAULT, + lv_color_hex(infineatColors.orange[colorIndex * nLines + 8])); + lv_obj_set_style_local_line_color(lineBattery, + LV_LINE_PART_MAIN, + LV_STATE_DEFAULT, + lv_color_hex(infineatColors.orange[colorIndex * nLines + 4])); + lv_obj_set_style_local_bg_color(notificationIcon, + LV_BTN_PART_MAIN, + LV_STATE_DEFAULT, + lv_color_hex(infineatColors.orange[colorIndex * nLines + 7])); } } } @@ -516,7 +545,7 @@ void WatchFaceInfineat::Refresh() { // since Get() sets isUpdated to false. bool isBatteryUpdated = batteryPercentRemaining.IsUpdated(); bool isChargingUpdated = isCharging.IsUpdated(); - if (isCharging.Get()) { // Charging battery animation + if (isCharging.Get()) { // Charging battery animation chargingBatteryPercent += 1; if (chargingBatteryPercent > 100) { chargingBatteryPercent = batteryPercentRemaining.Get(); @@ -552,7 +581,7 @@ void WatchFaceInfineat::Refresh() { void WatchFaceInfineat::SetBatteryLevel(uint8_t batteryPercent) { // starting point (y) + Pine64 logo height * (100 - batteryPercent) / 100 - lineBatteryPoints[1] = {27, static_cast(105 + 32*(100-batteryPercent)/100)}; + lineBatteryPoints[1] = {27, static_cast(105 + 32 * (100 - batteryPercent) / 100)}; lv_line_set_points(lineBattery, lineBatteryPoints, 2); } @@ -564,9 +593,13 @@ void WatchFaceInfineat::ToggleBatteryIndicatorColor(bool showSideCover) { lv_obj_set_style_local_bg_color(notificationIcon, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_WHITE); } else { lv_obj_set_style_local_image_recolor_opa(logoPine, LV_IMG_PART_MAIN, LV_STATE_DEFAULT, LV_OPA_0); - lv_obj_set_style_local_line_color(lineBattery, LV_LINE_PART_MAIN, LV_STATE_DEFAULT, - lv_color_hex(infineatColors.orange[settingsController.GetInfineatColorIndex()*nLines + 4])); - lv_obj_set_style_local_bg_color(notificationIcon, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, - lv_color_hex(infineatColors.orange[settingsController.GetInfineatColorIndex()*nLines + 7])); + lv_obj_set_style_local_line_color(lineBattery, + LV_LINE_PART_MAIN, + LV_STATE_DEFAULT, + lv_color_hex(infineatColors.orange[settingsController.GetInfineatColorIndex() * nLines + 4])); + lv_obj_set_style_local_bg_color(notificationIcon, + LV_BTN_PART_MAIN, + LV_STATE_DEFAULT, + lv_color_hex(infineatColors.orange[settingsController.GetInfineatColorIndex() * nLines + 7])); } } diff --git a/src/displayapp/screens/WatchFaceInfineat.h b/src/displayapp/screens/WatchFaceInfineat.h index c71dfca3..c306b53c 100644 --- a/src/displayapp/screens/WatchFaceInfineat.h +++ b/src/displayapp/screens/WatchFaceInfineat.h @@ -34,7 +34,7 @@ namespace Pinetime { bool OnTouchEvent(TouchEvents event) override; bool OnButtonPushed() override; - void UpdateSelected(lv_obj_t *object, lv_event_t event); + void UpdateSelected(lv_obj_t* object, lv_event_t event); void CloseMenu(); void Refresh() override; @@ -47,8 +47,7 @@ namespace Pinetime { Pinetime::Controllers::DateTime::Days currentDayOfWeek = Pinetime::Controllers::DateTime::Days::Unknown; uint8_t currentDay = 0; uint32_t savedTick = 0; - uint8_t chargingBatteryPercent = 101; // not a mistake ;) - + uint8_t chargingBatteryPercent = 101; // not a mistake ;) DirtyValue batteryPercentRemaining {}; DirtyValue isCharging {}; diff --git a/src/displayapp/screens/settings/SettingWatchFace.cpp b/src/displayapp/screens/settings/SettingWatchFace.cpp index 788dd8e8..bd2f349c 100644 --- a/src/displayapp/screens/settings/SettingWatchFace.cpp +++ b/src/displayapp/screens/settings/SettingWatchFace.cpp @@ -17,14 +17,12 @@ SettingWatchFace::SettingWatchFace(Pinetime::Applications::DisplayApp* app, Pine settingsController {settingsController}, screens {app, settingsController.GetWatchfacesMenu(), - { - [this]() -> std::unique_ptr { - return CreateScreen1(); - }, - [this]() -> std::unique_ptr { - return CreateScreen2(); - } - }, + {[this]() -> std::unique_ptr { + return CreateScreen1(); + }, + [this]() -> std::unique_ptr { + return CreateScreen2(); + }}, Screens::ScreenListModes::UpDown} { } @@ -39,16 +37,26 @@ bool SettingWatchFace::OnTouchEvent(Pinetime::Applications::TouchEvents event) { std::unique_ptr SettingWatchFace::CreateScreen1() { std::array watchfaces {"Digital face", "Analog face", "PineTimeStyle", "Terminal"}; - return std::make_unique(0, 2, app, settingsController, title, - symbol, &Controllers::Settings::SetClockFace, + return std::make_unique(0, + 2, + app, + settingsController, + title, + symbol, + &Controllers::Settings::SetClockFace, &Controllers::Settings::GetClockFace, watchfaces); } std::unique_ptr SettingWatchFace::CreateScreen2() { std::array watchfaces {"Infineat face", "", "", ""}; - return std::make_unique(1, 2, app, settingsController, title, - symbol, &Controllers::Settings::SetClockFace, + return std::make_unique(1, + 2, + app, + settingsController, + title, + symbol, + &Controllers::Settings::SetClockFace, &Controllers::Settings::GetClockFace, watchfaces); } -- cgit v1.2.3