Compare commits
7 Commits
91289a6fe7
...
f2a770c85f
Author | SHA1 | Date | |
---|---|---|---|
|
f2a770c85f | ||
|
a370f6e3e2 | ||
|
8cf9926984 | ||
|
75b2dc5fc2 | ||
|
e315625e24 | ||
|
58955ee365 | ||
|
aba91095e9 |
10
README.md
10
README.md
@ -168,15 +168,15 @@ lv_font_conv -v
|
||||
python3, the **built_in_font_gen.py** script :
|
||||
```bash
|
||||
#Here are some font regeneration examples using the tool :
|
||||
python3 built_in_font_gen.py -s 14 --bpp 4 --font Montserrat-Medium.ttf -r 0x20-0x7F,0xB0,0x2022,0xC0,0xC4,0xC7,0xC8,0xC9,0xCA,0xCB,0xCE,0xD4,0xD6,0xD9,0xDC,0xDF,0xE0,0xE2,0xE4,0xE7-0xEB,0xEE,0xEF,0xF6,0xFC,0x153 -o lv_font_montserrat_14.c
|
||||
python3 built_in_font_gen.py -s 14 --bpp 4 --font Montserrat-Medium.ttf -r 0x20-0x7F,0xB0,0x2022,0xC0,0xC4,0xC7,0xC8,0xC9,0xCA,0xCB,0xCE,0xD4,0xD6,0xD9,0xDB,0xDC,0xDF,0xE0,0xE2,0xE4,0xE7-0xEB,0xEE,0xEF,0xF6,0xFB,0xFC,0x153 -o lv_font_montserrat_14.c
|
||||
|
||||
python3 built_in_font_gen.py -s 16 --bpp 4 --font Montserrat-Medium.ttf -r 0x20-0x7F,0xB0,0x2022,0xC0,0xC4,0xC7,0xC8,0xC9,0xCA,0xCB,0xCE,0xD4,0xD6,0xD9,0xDC,0xDF,0xE0,0xE2,0xE4,0xE7-0xEB,0xEE,0xEF,0xF6,0xFC,0x153 -o lv_font_montserrat_16.c
|
||||
python3 built_in_font_gen.py -s 16 --bpp 4 --font Montserrat-Medium.ttf -r 0x20-0x7F,0xB0,0x2022,0xC0,0xC4,0xC7,0xC8,0xC9,0xCA,0xCB,0xCE,0xD4,0xD6,0xD9,0xDB,0xDC,0xDF,0xE0,0xE2,0xE4,0xE7-0xEB,0xEE,0xEF,0xF6,0xFB,0xFC,0x153 -o lv_font_montserrat_16.c
|
||||
|
||||
python3 built_in_font_gen.py -s 24 --bpp 4 --font Montserrat-Medium.ttf -r 0x20-0x7F,0xB0,0x2022,0xC0,0xC4,0xC7,0xC8,0xC9,0xCA,0xCB,0xCE,0xD4,0xD6,0xD9,0xDC,0xDF,0xE0,0xE2,0xE4,0xE7-0xEB,0xEE,0xEF,0xF6,0xFC,0x153 -o lv_font_montserrat_24.c
|
||||
python3 built_in_font_gen.py -s 24 --bpp 4 --font Montserrat-Medium.ttf -r 0x20-0x7F,0xB0,0x2022,0xC0,0xC4,0xC7,0xC8,0xC9,0xCA,0xCB,0xCE,0xD4,0xD6,0xD9,0xDB,0xDC,0xDF,0xE0,0xE2,0xE4,0xE7-0xEB,0xEE,0xEF,0xF6,0xFB,0xFC,0x153 -o lv_font_montserrat_24.c
|
||||
|
||||
python3 built_in_font_gen.py -s 28 --bpp 4 --font Montserrat-Medium.ttf -r 0x20-0x7F,0xB0,0x2022,0xC0,0xC4,0xC7,0xC8,0xC9,0xCA,0xCB,0xCE,0xD4,0xD6,0xD9,0xDC,0xDF,0xE0,0xE2,0xE4,0xE7-0xEB,0xEE,0xEF,0xF6,0xFC,0x153 -o lv_font_montserrat_28.c
|
||||
python3 built_in_font_gen.py -s 28 --bpp 4 --font Montserrat-Medium.ttf -r 0x20-0x7F,0xB0,0x2022,0xC0,0xC4,0xC7,0xC8,0xC9,0xCA,0xCB,0xCE,0xD4,0xD6,0xD9,0xDB,0xDC,0xDF,0xE0,0xE2,0xE4,0xE7-0xEB,0xEE,0xEF,0xF6,0xFB,0xFC,0x153 -o lv_font_montserrat_28.c
|
||||
|
||||
python3 built_in_font_gen.py -s 30 --bpp 4 --font Montserrat-Medium.ttf -r 0x20-0x7F,0xB0,0x2022,0xC0,0xC4,0xC7,0xC8,0xC9,0xCA,0xCB,0xCE,0xD4,0xD6,0xD9,0xDC,0xDF,0xE0,0xE2,0xE4,0xE7-0xEB,0xEE,0xEF,0xF6,0xFC,0x153 -o lv_font_montserrat_30.c
|
||||
python3 built_in_font_gen.py -s 30 --bpp 4 --font Montserrat-Medium.ttf -r 0x20-0x7F,0xB0,0x2022,0xC0,0xC4,0xC7,0xC8,0xC9,0xCA,0xCB,0xCE,0xD4,0xD6,0xD9,0xDB,0xDC,0xDF,0xE0,0xE2,0xE4,0xE7-0xEB,0xEE,0xEF,0xF6,0xFB,0xFC,0x153 -o lv_font_montserrat_30.c
|
||||
```
|
||||
7) Once done, the new generated fonts file will be in the same folder (***src/W800_SDK_v1.00.10/lvlg/lvgl_v8.3/scripts/built_in_font***) named **lv_font_'font name'_'size'.c**
|
||||
like lv_font_monserrat_14.c, happy fonting !!!
|
||||
|
@ -98,11 +98,11 @@ float BMP280_get_temperature(void);
|
||||
float BMP280_get_pressure(float * const temperature);
|
||||
|
||||
/**
|
||||
* @brief Returns an approximation of the altitude using the measured atmospheric pressure.
|
||||
* @brief Returns an approximation of the altitude in meters using the measured atmospheric pressure.
|
||||
*
|
||||
* @param pressureAtSeeLevel the current atmospheric pressure at see level in hPa. Can be 0 if unknown and a default value of 1013.25 hPa will be used.
|
||||
* @param pressure the address of a float which will contain the measured pressure. If not needed, can be NULL.
|
||||
* @param temperature the address of a float which will contain the measured temperature. If not needed, can be NULL.
|
||||
* @param pressure the address of a float which will contain the measured pressure in Pa. If not needed, can be NULL.
|
||||
* @param temperature the address of a float which will contain the measured temperature in °C. If not needed, can be NULL.
|
||||
* @return float the altitude in meters
|
||||
*/
|
||||
float BMP280_get_altitude(float pressureAtSeeLevel, float * const pressure, float * const temperature);
|
||||
|
@ -2,9 +2,12 @@
|
||||
* @file altimeter_screen.c
|
||||
* @author Anatole SCHRAMM-HENRY
|
||||
* @brief Altimeter screen source file containing the application's implementations
|
||||
* @version 0.1
|
||||
* @version 0.2
|
||||
* @date 2024-01-16
|
||||
*
|
||||
* Updated on 2024-07-31 Added time and date on the altitude screen, added colors to texts and modified
|
||||
* the buttons presses which now require a long press to react.
|
||||
*
|
||||
* @copyright MIT
|
||||
*
|
||||
*/
|
||||
@ -22,8 +25,10 @@ static void _create_altitude_display(AltimeterScreen_t * const altimeterScreen);
|
||||
static void _create_altitude_setting_display(AltimeterScreen_t * const altimeterScreen);
|
||||
static void _update_min_and_max_pressure_data(AltimeterScreen_t * const altimeterScreen, float minPressure, float maxPressure);
|
||||
static void _update_pressure_chart(AltimeterScreen_t * const altimeterScreen);
|
||||
static void _update_pressure_info(AltimeterScreen_t * const altimeterScreen);
|
||||
static void _update_altitude_info(AltimeterScreen_t * const altimeterScreen);
|
||||
static void _update_temperature_info(AltimeterScreen_t * const altimeterScreen, float temperature);
|
||||
static void _update_date_time_info(AltimeterScreen_t * const altimeterScreen);
|
||||
|
||||
static void gesture_event_cb(lv_event_t *e)
|
||||
{
|
||||
@ -117,10 +122,19 @@ static void altitude_display_cleanup_event_cb(lv_event_t *e)
|
||||
altimeterScreen->altitudeUpdateTimer = NULL;
|
||||
}
|
||||
|
||||
if(altimeterScreen->dateTimeUpdateTimer)
|
||||
{
|
||||
lv_timer_del(altimeterScreen->dateTimeUpdateTimer);
|
||||
altimeterScreen->dateTimeUpdateTimer = NULL;
|
||||
}
|
||||
|
||||
altimeterScreen->altitudeValue.value = NULL;
|
||||
altimeterScreen->altitudeValue.unit = NULL;
|
||||
altimeterScreen->vsiValue.value_unit = NULL;
|
||||
altimeterScreen->temperatureValue.value = NULL;
|
||||
altimeterScreen->dateTimeValue.timeLabel = NULL;
|
||||
altimeterScreen->dateTimeValue.monthLabel = NULL;
|
||||
altimeterScreen->dateTimeValue.dayLabel = NULL;
|
||||
|
||||
LV_LOG_USER("Altitude display cleanup");
|
||||
}
|
||||
@ -138,27 +152,7 @@ static void altitude_setting_display_cleanup_event_cb(lv_event_t *e)
|
||||
static void pressure_update_timer_cb(lv_timer_t *timer)
|
||||
{
|
||||
AltimeterScreen_t *altimeterScreen = timer->user_data;
|
||||
|
||||
if(altimeterScreen->altimeterScreenMeasurementCb)
|
||||
{
|
||||
LV_LOG_USER("Updating pressure measurements");
|
||||
float pressure;
|
||||
|
||||
/* We don't need to retrieve the temperature nor the altitude in this view */
|
||||
altimeterScreen->altimeterScreenMeasurementCb(NULL, &pressure, NULL);
|
||||
sprintf(altimeterScreen->pressureValue.value_text, "%.2f", pressure);
|
||||
if(altimeterScreen->pressureValue.value)
|
||||
{
|
||||
lv_label_set_text_static(altimeterScreen->pressureValue.value, altimeterScreen->pressureValue.value_text);
|
||||
}
|
||||
|
||||
//Mock up part needs to be changed on embedded target
|
||||
altimeter_screen_shift_chart_pressure_measurement(altimeterScreen, pressure);
|
||||
}
|
||||
else
|
||||
{
|
||||
LV_LOG_USER("altimeterScreenMeasurementCb is NULL, be sure to register a callback !");
|
||||
}
|
||||
_update_pressure_info(altimeterScreen);
|
||||
}
|
||||
|
||||
static void altitude_update_timer_cb(lv_timer_t *timer)
|
||||
@ -188,6 +182,12 @@ static void altitude_update_timer_cb(lv_timer_t *timer)
|
||||
}
|
||||
}
|
||||
|
||||
static void date_time_update_timer_cb(lv_timer_t *timer)
|
||||
{
|
||||
AltimeterScreen_t *altimeterScreen = timer->user_data;
|
||||
_update_date_time_info(altimeterScreen);
|
||||
}
|
||||
|
||||
static void reset_pressure_event_cb(lv_event_t *e)
|
||||
{
|
||||
AltimeterScreen_t *altimeterScreen = lv_event_get_user_data(e);
|
||||
@ -280,17 +280,19 @@ static void apply_altitude_setting_event_cb(lv_event_t *e)
|
||||
{
|
||||
AltimeterScreen_t *altimeterScreen = lv_event_get_user_data(e);
|
||||
|
||||
bool apply_action = (bool)lv_obj_get_user_data(lv_event_get_target(e));
|
||||
|
||||
/* Call the user feedback function if one is registered */
|
||||
if(altimeterScreen->altimeterScreenUserFeedbackCb)altimeterScreen->altimeterScreenUserFeedbackCb();
|
||||
|
||||
altimeterScreen->altitudeOffset_spinbox.value = lv_spinbox_get_value(altimeterScreen->altitudeOffset_spinbox.spinbox);
|
||||
|
||||
altimeterScreen->altitudeOffset = altimeterScreen->lastReadAltitude - (altimeterScreen->altitudeOffset_spinbox.value / 10.0);
|
||||
|
||||
altimeterScreen->vsiFloat = altimeterScreen->lastReadAltitude;
|
||||
if(apply_action)
|
||||
{
|
||||
altimeterScreen->altitudeOffset_spinbox.value = lv_spinbox_get_value(altimeterScreen->altitudeOffset_spinbox.spinbox);
|
||||
altimeterScreen->altitudeOffset = altimeterScreen->lastReadAltitude - (altimeterScreen->altitudeOffset_spinbox.value / 10.0);
|
||||
altimeterScreen->vsiFloat = altimeterScreen->lastReadAltitude;
|
||||
}
|
||||
|
||||
altimeterScreen->altimeterScreenDisplayedView = ALTIMETER_SCREEN_ALTITUDE_VIEW;
|
||||
|
||||
lv_obj_t *display = _create_altimeter_display(altimeterScreen);
|
||||
if(display) lv_scr_load_anim(display, LV_SCR_LOAD_ANIM_MOVE_BOTTOM, 400, 0, true);
|
||||
|
||||
@ -341,6 +343,28 @@ void altimeter_screen_register_measurement_cb(AltimeterScreen_t * const altimete
|
||||
altimeterScreen->altimeterScreenMeasurementCb = altimeterScreenMeasurementCb;
|
||||
}
|
||||
|
||||
void altimeter_screen_register_date_time_cb(AltimeterScreen_t * const altimeterScreen, AltimeterScreenDateTimeCb_t altimeterScreenDateTimeCb)
|
||||
{
|
||||
if(!altimeterScreen)
|
||||
{
|
||||
LV_LOG_ERROR("NULL pointer given !");
|
||||
return;
|
||||
}
|
||||
|
||||
altimeterScreen->altimeterScreenDateTimeCb = altimeterScreenDateTimeCb;
|
||||
}
|
||||
|
||||
void altimeter_screen_set_displayed_hour_format(AltimeterScreen_t * const altimeterScreen, bool hour_24H_format)
|
||||
{
|
||||
if(!altimeterScreen)
|
||||
{
|
||||
LV_LOG_ERROR("NULL pointer given !");
|
||||
return;
|
||||
}
|
||||
|
||||
altimeterScreen->hour_24H_format = hour_24H_format;
|
||||
}
|
||||
|
||||
void altimeter_screen_shift_chart_pressure_measurement(AltimeterScreen_t * const altimeterScreen, float pressure)
|
||||
{
|
||||
if(!altimeterScreen)
|
||||
@ -438,7 +462,8 @@ static void _create_pressure_display(AltimeterScreen_t * const altimeterScreen)
|
||||
altimeterScreen->pressureValue.value = lv_label_create(inner_circle);
|
||||
lv_obj_set_style_text_font(altimeterScreen->pressureValue.value, &lv_font_montserrat_30, LV_PART_MAIN);
|
||||
lv_obj_align(altimeterScreen->pressureValue.value, LV_ALIGN_TOP_MID, 0, 15);
|
||||
lv_label_set_text_static(altimeterScreen->pressureValue.value, altimeterScreen->pressureValue.value_text);
|
||||
|
||||
_update_pressure_info(altimeterScreen);
|
||||
|
||||
if(altimeterScreen->pressureValue.unit)
|
||||
{
|
||||
@ -456,7 +481,8 @@ static void _create_pressure_display(AltimeterScreen_t * const altimeterScreen)
|
||||
lv_img_set_src(reset_btn, &altimeter_asset_reset_icon);
|
||||
lv_obj_align(reset_btn, LV_ALIGN_CENTER, 0 ,0);
|
||||
lv_obj_add_flag(reset_btn, LV_OBJ_FLAG_ADV_HITTEST | LV_OBJ_FLAG_CLICKABLE);
|
||||
lv_obj_add_event_cb(reset_btn, &(reset_pressure_event_cb), LV_EVENT_CLICKED, altimeterScreen);
|
||||
/* Using a long pressed event so that no missclicks trigger a reset */
|
||||
lv_obj_add_event_cb(reset_btn, &(reset_pressure_event_cb), LV_EVENT_LONG_PRESSED, altimeterScreen);
|
||||
|
||||
/* Set the min and max text */
|
||||
if(altimeterScreen->minValue.value_unit)
|
||||
@ -551,6 +577,47 @@ static void _create_altitude_display(AltimeterScreen_t * const altimeterScreen)
|
||||
lv_obj_set_style_border_color(inner_circle, lv_color_make(238, 82, 83), LV_PART_MAIN);
|
||||
lv_obj_set_scroll_dir(inner_circle, LV_DIR_NONE);
|
||||
|
||||
/* Let's create the month label */
|
||||
if(altimeterScreen->dateTimeValue.monthLabel)
|
||||
{
|
||||
LV_LOG_ERROR("monthLabel should be NULL here !");
|
||||
lv_obj_del(altimeterScreen->dateTimeValue.monthLabel);
|
||||
altimeterScreen->dateTimeValue.monthLabel = NULL;
|
||||
}
|
||||
altimeterScreen->dateTimeValue.monthLabel = lv_label_create(inner_circle);
|
||||
lv_obj_set_style_text_font(altimeterScreen->dateTimeValue.monthLabel, &lv_font_montserrat_16, LV_PART_MAIN);
|
||||
lv_obj_align_to(altimeterScreen->dateTimeValue.monthLabel, inner_circle, LV_ALIGN_TOP_LEFT, 30, 5);
|
||||
lv_obj_set_style_text_color(altimeterScreen->dateTimeValue.monthLabel, lv_color_make(158, 157, 36), LV_PART_MAIN);
|
||||
|
||||
/* Let's create the day label */
|
||||
if(altimeterScreen->dateTimeValue.dayLabel)
|
||||
{
|
||||
LV_LOG_ERROR("dayLabel should be NULL here !");
|
||||
lv_obj_del(altimeterScreen->dateTimeValue.dayLabel);
|
||||
altimeterScreen->dateTimeValue.dayLabel = NULL;
|
||||
}
|
||||
altimeterScreen->dateTimeValue.dayLabel = lv_label_create(inner_circle);
|
||||
lv_obj_set_style_text_font(altimeterScreen->dateTimeValue.dayLabel, &lv_font_montserrat_16, LV_PART_MAIN);
|
||||
lv_obj_align_to(altimeterScreen->dateTimeValue.dayLabel, inner_circle, LV_ALIGN_TOP_RIGHT, -15, 5);
|
||||
lv_obj_set_style_text_color(altimeterScreen->dateTimeValue.dayLabel, lv_color_make(142, 36, 170), LV_PART_MAIN);
|
||||
lv_obj_set_style_text_align(altimeterScreen->dateTimeValue.dayLabel, LV_TEXT_ALIGN_RIGHT, LV_PART_MAIN);
|
||||
|
||||
/* Let's create the time label */
|
||||
if(altimeterScreen->dateTimeValue.timeLabel)
|
||||
{
|
||||
LV_LOG_ERROR("timeLabel should be NULL here !");
|
||||
lv_obj_del(altimeterScreen->dateTimeValue.timeLabel);
|
||||
altimeterScreen->dateTimeValue.timeLabel = NULL;
|
||||
}
|
||||
altimeterScreen->dateTimeValue.timeLabel = lv_label_create(inner_circle);
|
||||
lv_obj_set_width(altimeterScreen->dateTimeValue.timeLabel, lv_pct(100));
|
||||
lv_obj_set_style_text_font(altimeterScreen->dateTimeValue.timeLabel, &lv_font_montserrat_24, LV_PART_MAIN);
|
||||
lv_obj_set_style_text_align(altimeterScreen->dateTimeValue.timeLabel, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN);
|
||||
lv_obj_align_to(altimeterScreen->dateTimeValue.timeLabel, inner_circle, LV_ALIGN_TOP_MID, 0, 20);
|
||||
lv_obj_set_style_text_color(altimeterScreen->dateTimeValue.timeLabel, lv_color_make(251, 140, 0), LV_PART_MAIN);
|
||||
|
||||
_update_date_time_info(altimeterScreen);
|
||||
|
||||
/* Let's create the altitude main and unit label */
|
||||
if(altimeterScreen->altitudeValue.value)
|
||||
{
|
||||
@ -560,7 +627,8 @@ static void _create_altitude_display(AltimeterScreen_t * const altimeterScreen)
|
||||
}
|
||||
altimeterScreen->altitudeValue.value = lv_label_create(inner_circle);
|
||||
lv_obj_set_style_text_font(altimeterScreen->altitudeValue.value, &lv_font_montserrat_30, LV_PART_MAIN);
|
||||
lv_obj_align(altimeterScreen->altitudeValue.value, LV_ALIGN_TOP_MID, 0, 15);
|
||||
lv_obj_align(altimeterScreen->altitudeValue.value, LV_ALIGN_TOP_MID, 0, 45);
|
||||
lv_obj_set_style_text_color(altimeterScreen->altitudeValue.value, lv_color_make(0, 105, 92), LV_PART_MAIN);
|
||||
lv_label_set_text_static(altimeterScreen->altitudeValue.value, altimeterScreen->altitudeValue.value_text);
|
||||
|
||||
if(altimeterScreen->altitudeValue.unit)
|
||||
@ -571,22 +639,9 @@ static void _create_altitude_display(AltimeterScreen_t * const altimeterScreen)
|
||||
}
|
||||
altimeterScreen->altitudeValue.unit = lv_label_create(inner_circle);
|
||||
lv_obj_set_style_text_font(altimeterScreen->altitudeValue.unit, &lv_font_montserrat_30, LV_PART_MAIN);
|
||||
lv_obj_set_style_text_color(altimeterScreen->altitudeValue.unit, lv_color_make(0, 105, 92), LV_PART_MAIN);
|
||||
lv_label_set_text_static(altimeterScreen->altitudeValue.unit, "m");
|
||||
lv_obj_align_to(altimeterScreen->altitudeValue.unit, altimeterScreen->altitudeValue.value, LV_ALIGN_CENTER, 0, 25);
|
||||
|
||||
/* Let's create the zeroing button */
|
||||
lv_obj_t *zeroing_btn = lv_img_create(inner_circle);
|
||||
lv_img_set_src(zeroing_btn, &altimeter_asset_calibration_icon);
|
||||
lv_obj_align(zeroing_btn, LV_ALIGN_CENTER, 75 ,5);
|
||||
lv_obj_add_flag(zeroing_btn, LV_OBJ_FLAG_ADV_HITTEST | LV_OBJ_FLAG_CLICKABLE);
|
||||
lv_obj_add_event_cb(zeroing_btn, &(zeroing_altitude_event_cb), LV_EVENT_CLICKED, altimeterScreen);
|
||||
|
||||
/* Let's create the settings button */
|
||||
lv_obj_t *setting_btn = lv_img_create(inner_circle);
|
||||
lv_img_set_src(setting_btn, &watch_menu_settings_icon);
|
||||
lv_obj_align(setting_btn, LV_ALIGN_CENTER, -75 ,5);
|
||||
lv_obj_add_flag(setting_btn, LV_OBJ_FLAG_ADV_HITTEST | LV_OBJ_FLAG_CLICKABLE);
|
||||
lv_obj_add_event_cb(setting_btn, &(set_altitude_settings_event_cb), LV_EVENT_CLICKED, altimeterScreen);
|
||||
lv_obj_align_to(altimeterScreen->altitudeValue.unit, altimeterScreen->altitudeValue.value, LV_ALIGN_OUT_BOTTOM_MID, 0, -13);
|
||||
|
||||
/* Let's create the temperature label */
|
||||
if(altimeterScreen->temperatureValue.value)
|
||||
@ -600,7 +655,24 @@ static void _create_altitude_display(AltimeterScreen_t * const altimeterScreen)
|
||||
lv_obj_set_style_text_font(altimeterScreen->temperatureValue.value, &lv_font_montserrat_24, LV_PART_MAIN);
|
||||
strcpy(altimeterScreen->temperatureValue.value_text, "°C");
|
||||
lv_label_set_text_static(altimeterScreen->temperatureValue.value, altimeterScreen->temperatureValue.value_text);
|
||||
lv_obj_align(altimeterScreen->temperatureValue.value, LV_ALIGN_CENTER, 0, 5);
|
||||
lv_obj_align(altimeterScreen->temperatureValue.value, LV_ALIGN_CENTER, 0, 20);
|
||||
lv_obj_set_style_text_color(altimeterScreen->temperatureValue.value, lv_color_make(93, 64, 55), LV_PART_MAIN);
|
||||
|
||||
/* Let's create the zeroing button */
|
||||
lv_obj_t *zeroing_btn = lv_img_create(inner_circle);
|
||||
lv_img_set_src(zeroing_btn, &altimeter_asset_calibration_icon);
|
||||
lv_obj_align_to(zeroing_btn, altimeterScreen->temperatureValue.value, LV_ALIGN_OUT_RIGHT_MID, 45, 0);
|
||||
lv_obj_add_flag(zeroing_btn, LV_OBJ_FLAG_ADV_HITTEST | LV_OBJ_FLAG_CLICKABLE);
|
||||
/* Using a long pressed event so that no missclicks trigger a reset */
|
||||
lv_obj_add_event_cb(zeroing_btn, &(zeroing_altitude_event_cb), LV_EVENT_LONG_PRESSED, altimeterScreen);
|
||||
|
||||
/* Let's create the settings button */
|
||||
lv_obj_t *setting_btn = lv_img_create(inner_circle);
|
||||
lv_img_set_src(setting_btn, &watch_menu_settings_icon);
|
||||
lv_obj_align_to(setting_btn, altimeterScreen->temperatureValue.value, LV_ALIGN_OUT_LEFT_MID, -45, 0);
|
||||
lv_obj_add_flag(setting_btn, LV_OBJ_FLAG_ADV_HITTEST | LV_OBJ_FLAG_CLICKABLE);
|
||||
/* Using a long pressed event so that no missclicks trigger a reset */
|
||||
lv_obj_add_event_cb(setting_btn, &(set_altitude_settings_event_cb), LV_EVENT_LONG_PRESSED, altimeterScreen);
|
||||
|
||||
/* Let's create the VSI label */
|
||||
if(altimeterScreen->vsiValue.value_unit)
|
||||
@ -625,10 +697,19 @@ static void _create_altitude_display(AltimeterScreen_t * const altimeterScreen)
|
||||
lv_timer_del(altimeterScreen->altitudeUpdateTimer);
|
||||
altimeterScreen->altitudeUpdateTimer = NULL;
|
||||
}
|
||||
|
||||
/* Update the pressure value on the screen every second */
|
||||
/* Update the pressure value on the screen at the defined refresh rate in Hz */
|
||||
altimeterScreen->altitudeUpdateTimer = lv_timer_create(&(altitude_update_timer_cb), 1000 / ALTITUDE_TIMER_UPDATE_RATE_HZ, altimeterScreen);
|
||||
|
||||
/* Let's create the time update timer */
|
||||
if(altimeterScreen->dateTimeUpdateTimer)
|
||||
{
|
||||
LV_LOG_ERROR("dateTimeUpdateTimer should be NULL here !");
|
||||
lv_timer_del(altimeterScreen->dateTimeUpdateTimer);
|
||||
altimeterScreen->dateTimeUpdateTimer = NULL;
|
||||
}
|
||||
/* Update the displayed time every 200 ms */
|
||||
altimeterScreen->dateTimeUpdateTimer = lv_timer_create(&(date_time_update_timer_cb), 500, altimeterScreen);
|
||||
|
||||
/* We register the event callback to handle gestures */
|
||||
lv_obj_add_event_cb(altimeterScreen->displays[ALTIMETER_SCREEN_ALTITUDE_VIEW], &(gesture_event_cb), LV_EVENT_GESTURE, altimeterScreen);
|
||||
/* We register the event callback to handle the cleanup */
|
||||
@ -672,8 +753,9 @@ static void _create_altitude_setting_display(AltimeterScreen_t * const altimeter
|
||||
}
|
||||
|
||||
altimeterScreen->altitudeOffset_spinbox.spinbox = lv_spinbox_create(inner_circle);
|
||||
lv_obj_set_align(altimeterScreen->altitudeOffset_spinbox.spinbox, LV_ALIGN_CENTER);
|
||||
lv_obj_align(altimeterScreen->altitudeOffset_spinbox.spinbox, LV_ALIGN_CENTER, 0, -10);
|
||||
lv_obj_set_width(altimeterScreen->altitudeOffset_spinbox.spinbox, lv_pct(50));
|
||||
lv_obj_set_style_text_font(altimeterScreen->altitudeOffset_spinbox.spinbox, &lv_font_montserrat_16, LV_PART_MAIN);
|
||||
lv_spinbox_set_digit_format(altimeterScreen->altitudeOffset_spinbox.spinbox, 5, 4);
|
||||
//Max 9000 and min -1000 since we have a digit after the comma
|
||||
lv_spinbox_set_range(altimeterScreen->altitudeOffset_spinbox.spinbox, -10000, 90000);
|
||||
@ -694,12 +776,25 @@ static void _create_altitude_setting_display(AltimeterScreen_t * const altimeter
|
||||
lv_obj_add_event_cb(dec_btn, &(lv_spinbox_decrement_event_cb), LV_EVENT_ALL, altimeterScreen);
|
||||
|
||||
lv_obj_t *apply_btn = lv_btn_create(inner_circle);
|
||||
lv_obj_align(apply_btn, LV_ALIGN_CENTER, 0, 50);
|
||||
lv_obj_set_user_data(apply_btn, (void *)true);
|
||||
lv_obj_set_width(apply_btn, 86);
|
||||
|
||||
lv_obj_t *apply_btn_lbl = lv_label_create(apply_btn);
|
||||
lv_label_set_text_static(apply_btn_lbl, translation_get_word(TRANSLATION_ALTIMETER_APPLY_BUTTON));
|
||||
lv_obj_center(apply_btn_lbl);
|
||||
lv_obj_add_event_cb(apply_btn, &(apply_altitude_setting_event_cb), LV_EVENT_CLICKED, altimeterScreen);
|
||||
lv_obj_align_to(apply_btn, dec_btn, LV_ALIGN_OUT_BOTTOM_LEFT, 0, 10);
|
||||
|
||||
|
||||
lv_obj_t *cancel_btn = lv_btn_create(inner_circle);
|
||||
lv_obj_set_user_data(cancel_btn, (void *)false);
|
||||
lv_obj_set_width(cancel_btn, 86);
|
||||
|
||||
lv_obj_t *cancel_btn_lbl = lv_label_create(cancel_btn);
|
||||
lv_label_set_text_static(cancel_btn_lbl, translation_get_word(TRANSLATION_ALTIMETER_CANCEL_BUTTON));
|
||||
lv_obj_center(cancel_btn_lbl);
|
||||
lv_obj_add_event_cb(cancel_btn, &(apply_altitude_setting_event_cb), LV_EVENT_CLICKED, altimeterScreen);
|
||||
lv_obj_align_to(cancel_btn, inc_btn, LV_ALIGN_OUT_BOTTOM_RIGHT, 0, 10);
|
||||
|
||||
/* We register the event callback to handle the cleanup */
|
||||
lv_obj_add_event_cb(altimeterScreen->displays[ALTIMETER_SCREEN_ALTITUDE_SETTING_VIEW], &(altitude_setting_display_cleanup_event_cb), LV_EVENT_DELETE, altimeterScreen);
|
||||
@ -753,6 +848,30 @@ static void _update_pressure_chart(AltimeterScreen_t * const altimeterScreen)
|
||||
_update_min_and_max_pressure_data(altimeterScreen, min, max);
|
||||
}
|
||||
|
||||
static void _update_pressure_info(AltimeterScreen_t * const altimeterScreen)
|
||||
{
|
||||
if(altimeterScreen->altimeterScreenMeasurementCb)
|
||||
{
|
||||
LV_LOG_USER("Updating pressure measurements");
|
||||
float pressure;
|
||||
|
||||
/* We don't need to retrieve the temperature nor the altitude in this view */
|
||||
altimeterScreen->altimeterScreenMeasurementCb(NULL, &pressure, NULL);
|
||||
sprintf(altimeterScreen->pressureValue.value_text, "%.2f", pressure);
|
||||
if(altimeterScreen->pressureValue.value)
|
||||
{
|
||||
lv_label_set_text_static(altimeterScreen->pressureValue.value, altimeterScreen->pressureValue.value_text);
|
||||
}
|
||||
|
||||
//Mock up part needs to be changed on embedded target
|
||||
altimeter_screen_shift_chart_pressure_measurement(altimeterScreen, pressure);
|
||||
}
|
||||
else
|
||||
{
|
||||
LV_LOG_USER("altimeterScreenMeasurementCb is NULL, be sure to register a callback !");
|
||||
}
|
||||
}
|
||||
|
||||
static void _update_altitude_info(AltimeterScreen_t * const altimeterScreen)
|
||||
{
|
||||
sprintf(altimeterScreen->altitudeValue.value_text, "%.1f", altimeterScreen->lastReadAltitude - altimeterScreen->altitudeOffset);
|
||||
@ -766,3 +885,41 @@ static void _update_temperature_info(AltimeterScreen_t * const altimeterScreen,
|
||||
sprintf(altimeterScreen->temperatureValue.value_text, "%.2f°C", temperature);
|
||||
lv_label_set_text_static(altimeterScreen->temperatureValue.value, altimeterScreen->temperatureValue.value_text);
|
||||
}
|
||||
|
||||
static void _update_date_time_info(AltimeterScreen_t * const altimeterScreen)
|
||||
{
|
||||
if(altimeterScreen->altimeterScreenDateTimeCb)
|
||||
{
|
||||
struct tm date_time = {0};
|
||||
altimeterScreen->altimeterScreenDateTimeCb(&date_time);
|
||||
if(altimeterScreen->hour_24H_format)
|
||||
{
|
||||
sprintf(altimeterScreen->dateTimeValue.time_text, "%s%d:%s%d:%s%d",
|
||||
date_time.tm_hour < 10 ? "0" : "", date_time.tm_hour,
|
||||
date_time.tm_min < 10 ? "0" : "", date_time.tm_min,
|
||||
date_time.tm_sec < 10 ? "0" : "", date_time.tm_sec);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Intermediate hour var to set it on a 12H format
|
||||
uint8_t hour = date_time.tm_hour;
|
||||
if(hour > 12)hour -= 12;
|
||||
|
||||
sprintf(altimeterScreen->dateTimeValue.time_text, "%d:%s%d:%s%d%s", hour,
|
||||
date_time.tm_min < 10 ? "0" : "", date_time.tm_min,
|
||||
date_time.tm_sec < 10 ? "0" : "", date_time.tm_sec,
|
||||
date_time.tm_hour < 13 ? "AM" : "PM");
|
||||
}
|
||||
|
||||
strncpy(altimeterScreen->dateTimeValue.month_text, translation_get_word(TRANSLATION_JANUARY_SHORT + date_time.tm_mon), sizeof(altimeterScreen->dateTimeValue.month_text)-1);
|
||||
sprintf(altimeterScreen->dateTimeValue.day_text, "%s%d", date_time.tm_mday < 10 ? "0":"", date_time.tm_mday);
|
||||
|
||||
lv_label_set_text_static(altimeterScreen->dateTimeValue.timeLabel, altimeterScreen->dateTimeValue.time_text);
|
||||
lv_label_set_text_static(altimeterScreen->dateTimeValue.monthLabel, altimeterScreen->dateTimeValue.month_text);
|
||||
lv_label_set_text_static(altimeterScreen->dateTimeValue.dayLabel, altimeterScreen->dateTimeValue.day_text);
|
||||
}
|
||||
else
|
||||
{
|
||||
LV_LOG_USER("altimeterScreenDateTimeCb is NULL, be sure to register a callback !");
|
||||
}
|
||||
}
|
||||
|
@ -2,9 +2,12 @@
|
||||
* @file altimeter_screen.h
|
||||
* @author Anatole SCHRAMM-HENRY
|
||||
* @brief Altimeter screen header file exposing the application's API.
|
||||
* @version 0.1
|
||||
* @version 0.2
|
||||
* @date 2024-01-16
|
||||
*
|
||||
* Updated on 2024-07-31 Added time and date on the altitude screen, added colors to texts and modified
|
||||
* the buttons presses which now require a long press to react.
|
||||
*
|
||||
* @copyright MIT
|
||||
*
|
||||
*/
|
||||
@ -13,6 +16,7 @@
|
||||
#define ALTIMETER_SCREEN_H
|
||||
|
||||
#include "lvgl.h"
|
||||
#include <time.h>
|
||||
|
||||
#define ALTITUDE_TIMER_UPDATE_RATE_HZ (20)
|
||||
|
||||
@ -46,6 +50,7 @@ typedef struct MinMaxVSIValue
|
||||
typedef void (*AltimeterScreenOnStateChangeCb_t)(AltimeterScreenState_e altimeterScreenState);
|
||||
typedef void(*AltimeterScreenMeasurementCb_t)(float * const temperature, float * const pressure, float * const altitude);
|
||||
typedef void (*AltimeterScreenUserFeedbackCb_t)(void);
|
||||
typedef void (*AltimeterScreenDateTimeCb_t)(struct tm * const dateTime);
|
||||
|
||||
typedef struct PressureChart
|
||||
{
|
||||
@ -58,6 +63,12 @@ typedef struct TemperatureValue
|
||||
char value_text[9];
|
||||
} TemperatureValue_t;
|
||||
|
||||
typedef struct DateTimeValue
|
||||
{
|
||||
lv_obj_t *timeLabel, *monthLabel, *dayLabel;
|
||||
char time_text[11], month_text[5], day_text[3];
|
||||
} DateTimeValue_t;
|
||||
|
||||
typedef struct SpinBox
|
||||
{
|
||||
lv_obj_t *spinbox;
|
||||
@ -73,12 +84,14 @@ typedef struct AltimeterScreen
|
||||
PressureChart_t pressureChart;
|
||||
lv_timer_t *pressureUpdateTimer;
|
||||
lv_timer_t *altitudeUpdateTimer;
|
||||
lv_timer_t *dateTimeUpdateTimer;
|
||||
MainValue_t pressureValue;
|
||||
MainValue_t altitudeValue;
|
||||
MinMaxVSIValue_t minValue;
|
||||
MinMaxVSIValue_t maxValue;
|
||||
MinMaxVSIValue_t vsiValue;
|
||||
TemperatureValue_t temperatureValue;
|
||||
DateTimeValue_t dateTimeValue;
|
||||
float vsiFloat;
|
||||
float lastReadAltitude;
|
||||
//Should not be erased attributes
|
||||
@ -86,13 +99,21 @@ typedef struct AltimeterScreen
|
||||
AltimeterScreenMeasurementCb_t altimeterScreenMeasurementCb;
|
||||
AltimeterScreenUserFeedbackCb_t altimeterScreenUserFeedbackCb;
|
||||
AltimeterScreenOnStateChangeCb_t altimeterScreenOnStateChangeCb;
|
||||
AltimeterScreenDateTimeCb_t altimeterScreenDateTimeCb;
|
||||
float minValueFloat;
|
||||
float maxValueFloat;
|
||||
float altitudeOffset;
|
||||
lv_coord_t pressure_data_points[10];
|
||||
float pressure_data_points_float[10];
|
||||
bool hour_24H_format : 1;
|
||||
} AltimeterScreen_t;
|
||||
|
||||
/**
|
||||
* @brief Initializes the altimeter screen context object
|
||||
* @note This function has to be called first before any others
|
||||
*
|
||||
* @param altimeterScreen a pointer to the altimeter screen context structure to initialize.
|
||||
*/
|
||||
void altimeter_screen_init(AltimeterScreen_t * const altimeterScreen);
|
||||
|
||||
/**
|
||||
@ -100,27 +121,62 @@ void altimeter_screen_init(AltimeterScreen_t * const altimeterScreen);
|
||||
* This callback should be used to initialize and deinitialize needed devices drivers like the pressure/temperature sensor.
|
||||
* @note The state of the application is passed as a parameter of the callback function.
|
||||
*
|
||||
* @param altimeterScreen a pointer to the altimeter screen object structure.
|
||||
* @param altimeterScreen a pointer to the previously initialized altimeter screen object structure using @ref altimeter_screen_init.
|
||||
* @param altimeterScreenOnStateChangeCb the callback of type @ref AltimeterScreenOnStateChangeCb_t to register.
|
||||
*/
|
||||
void altimeter_screen_register_on_state_change_cb(AltimeterScreen_t * const altimeterScreen, AltimeterScreenOnStateChangeCb_t altimeterScreenOnStateChangeCb);
|
||||
|
||||
/**
|
||||
* @brief Registers a callback functions which will be called every time a user feedback should
|
||||
* @brief Registers a callback function which will be called every time a user feedback should
|
||||
* be made. In this case, every time a button is clicked, the callback will be called.
|
||||
* This enables the app to react to this user event.
|
||||
*
|
||||
* @param menuScreen a pointer to the previously initialized menu screen's context structure.
|
||||
* @param menuScreenUserFeedbackCb a pointer to a function having the following signature : void(void).
|
||||
* @param altimeterScreen a pointer to the previously initialized altimeter screen object structure using @ref altimeter_screen_init.
|
||||
* @param altimeterScreenUserFeedbackCb a pointer to a function having the following signature : void(void) @ref AltimeterScreenUserFeedbackCb_t.
|
||||
*/
|
||||
void altimeter_screen_register_user_feedback_cb(AltimeterScreen_t * const altimeterScreen, AltimeterScreenUserFeedbackCb_t altimeterScreenUserFeedbackCb);
|
||||
|
||||
/**
|
||||
* @brief Registers the callback function used to retrieve the data displayed in the altimeter app.
|
||||
* The various data are : the temperature in °C, the pressure in hPa and the altitude in meters.
|
||||
*
|
||||
* @param altimeterScreen a pointer to the previously initialized altimeter screen object structure using @ref altimeter_screen_init.
|
||||
* @param altimeterScreenMeasurementCb the callback of type @ref AltimeterScreenMeasurementCb_t to register.
|
||||
* The function's signature is : void(float * const, float * const, float * const).
|
||||
*/
|
||||
void altimeter_screen_register_measurement_cb(AltimeterScreen_t * const altimeterScreen, AltimeterScreenMeasurementCb_t altimeterScreenMeasurementCb);
|
||||
|
||||
/**
|
||||
* @brief Registers the callback function used to retrieve the system time to be displayed on the altitude view.
|
||||
*
|
||||
* @param altimeterScreen a pointer to the previously initialized altimeter screen object structure using @ref altimeter_screen_init.
|
||||
* @param altimeterScreenDateTimeCb the callback of type @ref AltimeterScreenDateTimeCb_t to register.
|
||||
* The function's signature is : void(struct tm * const).
|
||||
*/
|
||||
void altimeter_screen_register_date_time_cb(AltimeterScreen_t * const altimeterScreen, AltimeterScreenDateTimeCb_t altimeterScreenDateTimeCb);
|
||||
|
||||
/**
|
||||
* @brief Sets the format used to display the time on the altitude screen, ie 12H or 24H hour format.
|
||||
*
|
||||
* @param altimeterScreen altimeterScreen a pointer to the previously initialized altimeter screen object structure using @ref altimeter_screen_init.
|
||||
* @param hour_24H_format a boolean value indicating if the hour format is 24H (true) or 12H (false).
|
||||
*/
|
||||
void altimeter_screen_set_displayed_hour_format(AltimeterScreen_t * const altimeterScreen, bool hour_24H_format);
|
||||
|
||||
void altimeter_screen_shift_chart_pressure_measurement(AltimeterScreen_t * const altimeterScreen, float pressure);
|
||||
|
||||
/**
|
||||
* @brief Graphically builds the altimeter screen.
|
||||
*
|
||||
* @param altimeterScreen a pointer to the previously initialized altimeter screen object structure using @ref altimeter_screen_init.
|
||||
*/
|
||||
void altimeter_screen_create(AltimeterScreen_t * const altimeterScreen);
|
||||
|
||||
/**
|
||||
* @brief Frees all resources used by the AltimeterScreen object.
|
||||
*
|
||||
* @param altimeterScreen a pointer to the previously initialized altimeter screen object structure using @ref altimeter_screen_init.
|
||||
*/
|
||||
void altimeter_screen_destroy(AltimeterScreen_t * const altimeterScreen);
|
||||
|
||||
#endif //ALTIMETER_SCREEN_H
|
||||
|
@ -153,6 +153,7 @@ static void setTimeFormatCb(bool *hour_24H_format, SettingMode_e mode)
|
||||
{
|
||||
watch_settings_time_and_date_set_hour_format(*hour_24H_format);
|
||||
notification_screen_set_displayed_hour_format(¬ificationScreen, *hour_24H_format);
|
||||
altimeter_screen_set_displayed_hour_format(&altimeterScreen, *hour_24H_format);
|
||||
}
|
||||
}
|
||||
|
||||
@ -791,6 +792,8 @@ void gfx_task(void *param)
|
||||
altimeter_screen_register_on_state_change_cb(&altimeterScreen, &(altimeter_screen_on_state_change_cb));
|
||||
altimeter_screen_register_user_feedback_cb(&altimeterScreen, &(watch_peripherals_vibrate_on_item_click));
|
||||
altimeter_screen_register_measurement_cb(&altimeterScreen, &(altimeter_screen_measurement_cb));
|
||||
altimeter_screen_register_date_time_cb(&altimeterScreen, &(date_time_cb));
|
||||
altimeter_screen_set_displayed_hour_format(&altimeterScreen, persistency_get_settings()->timeAndDate.time_and_date_hour_format);
|
||||
|
||||
find_my_phone_screen_init(&findMyPhoneScreen);
|
||||
find_my_phone_screen_register_BLE_command_send_cb(&findMyPhoneScreen, &(sendFindMyPhoneBLECommandCb));
|
||||
|
@ -1138,7 +1138,7 @@ static void update_menu_list_item_text(lv_obj_t *menu_list_item, const char *tex
|
||||
lv_obj_t *label = lv_obj_get_child(menu_list_item, 0);
|
||||
if(label)
|
||||
{
|
||||
lv_label_set_text(label, text);
|
||||
lv_label_set_text_static(label, text);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -194,6 +194,11 @@ static const char * const translation_dictionary[][TRANSLATED_LANGUAGES_COUNT] =
|
||||
[TRANSLATION_GERMAN] = "Bestätigen",
|
||||
[TRANSLATION_ENGLISH]= "Apply",
|
||||
},
|
||||
[TRANSLATION_ALTIMETER_CANCEL_BUTTON] = {
|
||||
[TRANSLATION_FRENCH] = "Annuler",
|
||||
[TRANSLATION_GERMAN] = "Abbrechen",
|
||||
[TRANSLATION_ENGLISH]= "Cancel",
|
||||
},
|
||||
[TRANSLATION_PHONE_NOT_CONNECTED] = {
|
||||
[TRANSLATION_FRENCH] = "Mobile\nnon\ncon-\nnecté !",
|
||||
[TRANSLATION_GERMAN] = "Keine\nVerbind-\nung zum\nHandy !",
|
||||
@ -223,7 +228,67 @@ static const char * const translation_dictionary[][TRANSLATED_LANGUAGES_COUNT] =
|
||||
[TRANSLATION_FRENCH] = "[Artiste inconnu]",
|
||||
[TRANSLATION_GERMAN] = "[Unbekannten Sanger]",
|
||||
[TRANSLATION_ENGLISH] = "[Unknown artist]",
|
||||
}
|
||||
},
|
||||
[TRANSLATION_JANUARY_SHORT] = {
|
||||
[TRANSLATION_FRENCH] = "JAN",
|
||||
[TRANSLATION_GERMAN] = "JAN",
|
||||
[TRANSLATION_ENGLISH] = "JAN",
|
||||
},
|
||||
[TRANSLATION_FEBRUARY_SHORT] = {
|
||||
[TRANSLATION_FRENCH] = "FÉV",
|
||||
[TRANSLATION_GERMAN] = "FEB",
|
||||
[TRANSLATION_ENGLISH] = "FEB",
|
||||
},
|
||||
[TRANSLATION_MARCH_SHORT] = {
|
||||
[TRANSLATION_FRENCH] = "MAR",
|
||||
[TRANSLATION_GERMAN] = "MÄR",
|
||||
[TRANSLATION_ENGLISH] = "MAR",
|
||||
},
|
||||
[TRANSLATION_APRIL_SHORT] = {
|
||||
[TRANSLATION_FRENCH] = "AVR",
|
||||
[TRANSLATION_GERMAN] = "APR",
|
||||
[TRANSLATION_ENGLISH] = "APR",
|
||||
},
|
||||
[TRANSLATION_MAY_SHORT] = {
|
||||
[TRANSLATION_FRENCH] = "MAI",
|
||||
[TRANSLATION_GERMAN] = "MAI",
|
||||
[TRANSLATION_ENGLISH] = "MAY",
|
||||
},
|
||||
[TRANSLATION_JUNE_SHORT] = {
|
||||
[TRANSLATION_FRENCH] = "JUI",
|
||||
[TRANSLATION_GERMAN] = "JUN",
|
||||
[TRANSLATION_ENGLISH] = "JUN",
|
||||
},
|
||||
[TRANSLATION_JULY_SHORT] = {
|
||||
[TRANSLATION_FRENCH] = "JUL",
|
||||
[TRANSLATION_GERMAN] = "JUL",
|
||||
[TRANSLATION_ENGLISH] = "JUL",
|
||||
},
|
||||
[TRANSLATION_AUGUST_SHORT] = {
|
||||
[TRANSLATION_FRENCH] = "AOÛ",
|
||||
[TRANSLATION_GERMAN] = "AUG",
|
||||
[TRANSLATION_ENGLISH] = "AUG",
|
||||
},
|
||||
[TRANSLATION_SEPTEMBER_SHORT] = {
|
||||
[TRANSLATION_FRENCH] = "SEP",
|
||||
[TRANSLATION_GERMAN] = "SEP",
|
||||
[TRANSLATION_ENGLISH] = "SEP",
|
||||
},
|
||||
[TRANSLATION_OCTOBER_SHORT] = {
|
||||
[TRANSLATION_FRENCH] = "OCT",
|
||||
[TRANSLATION_GERMAN] = "OKT",
|
||||
[TRANSLATION_ENGLISH] = "OCT",
|
||||
},
|
||||
[TRANSLATION_NOVEMBER_SHORT] = {
|
||||
[TRANSLATION_FRENCH] = "NOV",
|
||||
[TRANSLATION_GERMAN] = "NOV",
|
||||
[TRANSLATION_ENGLISH] = "NOV",
|
||||
},
|
||||
[TRANSLATION_DECEMBER_SHORT] = {
|
||||
[TRANSLATION_FRENCH] = "DÉC",
|
||||
[TRANSLATION_GERMAN] = "DEZ",
|
||||
[TRANSLATION_ENGLISH] = "DEC",
|
||||
},
|
||||
};
|
||||
|
||||
const char *translation_get_word(TranslationWord_e word)
|
||||
|
@ -53,6 +53,7 @@ typedef enum TranslationWord
|
||||
/* Altimeter screen app translations */
|
||||
TRANSLATION_ALTIMETER_SETTING_LABEL,
|
||||
TRANSLATION_ALTIMETER_APPLY_BUTTON,
|
||||
TRANSLATION_ALTIMETER_CANCEL_BUTTON,
|
||||
/* Find my phone app translation */
|
||||
TRANSLATION_PHONE_NOT_CONNECTED,
|
||||
TRANSLATION_FIND_MY_PHONE_BTN,
|
||||
@ -61,7 +62,19 @@ typedef enum TranslationWord
|
||||
TRANSLATION_PHONE_NOT_CONNECTED_2,
|
||||
TRANSLATION_NO_TRACK_TITLE,
|
||||
TRANSLATION_NO_TRACK_ARTIST,
|
||||
|
||||
/* Short month translations */
|
||||
TRANSLATION_JANUARY_SHORT,
|
||||
TRANSLATION_FEBRUARY_SHORT,
|
||||
TRANSLATION_MARCH_SHORT,
|
||||
TRANSLATION_APRIL_SHORT,
|
||||
TRANSLATION_MAY_SHORT,
|
||||
TRANSLATION_JUNE_SHORT,
|
||||
TRANSLATION_JULY_SHORT,
|
||||
TRANSLATION_AUGUST_SHORT,
|
||||
TRANSLATION_SEPTEMBER_SHORT,
|
||||
TRANSLATION_OCTOBER_SHORT,
|
||||
TRANSLATION_NOVEMBER_SHORT,
|
||||
TRANSLATION_DECEMBER_SHORT,
|
||||
} TranslationWord_e;
|
||||
|
||||
const char * translation_get_word(TranslationWord_e word);
|
||||
|
@ -1,7 +1,7 @@
|
||||
/*******************************************************************************
|
||||
* Size: 14 px
|
||||
* Bpp: 4
|
||||
* Opts: --no-compress --no-prefilter --bpp 4 --size 14 --font Montserrat-Medium.ttf -r 0x20-0x7F,0xB0,0x2022,0xC0,0xC4,0xC7,0xC8,0xC9,0xCA,0xCB,0xCE,0xD4,0xD6,0xD9,0xDC,0xDF,0xE0,0xE2,0xE4,0xE7-0xEB,0xEE,0xEF,0xF6,0xFC,0x153 --font FontAwesome5-Solid+Brands+Regular.woff -r 61441,61448,61451,61452,61452,61453,61457,61459,61461,61465,61468,61473,61478,61479,61480,61502,61507,61512,61515,61516,61517,61521,61522,61523,61524,61543,61544,61550,61552,61553,61556,61559,61560,61561,61563,61587,61589,61636,61637,61639,61641,61664,61671,61674,61683,61724,61732,61787,61931,62016,62017,62018,62019,62020,62087,62099,62212,62189,62810,63426,63650 --format lvgl -o lv_font_montserrat_14.c --force-fast-kern-format
|
||||
* Opts: --no-compress --no-prefilter --bpp 4 --size 14 --font Montserrat-Medium.ttf -r 0x20-0x7F,0xB0,0x2022,0xC0,0xC4,0xC7,0xC8,0xC9,0xCA,0xCB,0xCE,0xD4,0xD6,0xD9,0xDB,0xDC,0xDF,0xE0,0xE2,0xE4,0xE7-0xEB,0xEE,0xEF,0xF6,0xFB,0xFC,0x153 --font FontAwesome5-Solid+Brands+Regular.woff -r 61441,61448,61451,61452,61452,61453,61457,61459,61461,61465,61468,61473,61478,61479,61480,61502,61507,61512,61515,61516,61517,61521,61522,61523,61524,61543,61544,61550,61552,61553,61556,61559,61560,61561,61563,61587,61589,61636,61637,61639,61641,61664,61671,61674,61683,61724,61732,61787,61931,62016,62017,62018,62019,62020,62087,62099,62212,62189,62810,63426,63650 --format lvgl -o lv_font_montserrat_14.c --force-fast-kern-format
|
||||
******************************************************************************/
|
||||
|
||||
#ifdef LV_LVGL_H_INCLUDE_SIMPLE
|
||||
@ -809,6 +809,16 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
|
||||
0xd, 0x94, 0xf4, 0x0, 0x3, 0xf5, 0xc, 0xf8,
|
||||
0x68, 0xfd, 0x0, 0x9, 0xef, 0xe9, 0x10,
|
||||
|
||||
/* U+00DB "Û" */
|
||||
0x0, 0x2, 0x83, 0x0, 0x0, 0x2, 0xe8, 0xe2,
|
||||
0x0, 0x0, 0x54, 0x3, 0x60, 0x0, 0x0, 0x0,
|
||||
0x0, 0x0, 0x9c, 0x0, 0x0, 0xb, 0xa9, 0xc0,
|
||||
0x0, 0x0, 0xba, 0x9c, 0x0, 0x0, 0xb, 0xa9,
|
||||
0xc0, 0x0, 0x0, 0xba, 0x9c, 0x0, 0x0, 0xb,
|
||||
0xa9, 0xc0, 0x0, 0x0, 0xba, 0x8e, 0x0, 0x0,
|
||||
0xd, 0x94, 0xf4, 0x0, 0x3, 0xf5, 0xc, 0xf8,
|
||||
0x68, 0xfd, 0x0, 0x9, 0xef, 0xe9, 0x10,
|
||||
|
||||
/* U+00DC "Ü" */
|
||||
0x0, 0x4c, 0xb, 0x60, 0x0, 0x1, 0x50, 0x52,
|
||||
0x0, 0x0, 0x0, 0x0, 0x0, 0x9, 0xc0, 0x0,
|
||||
@ -912,6 +922,14 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
|
||||
0x0, 0x9f, 0x74, 0x8f, 0x70, 0x0, 0x7d, 0xfd,
|
||||
0x60, 0x0,
|
||||
|
||||
/* U+00FB "û" */
|
||||
0x0, 0x6e, 0xc0, 0x0, 0x5, 0xb1, 0x7a, 0x0,
|
||||
0x0, 0x0, 0x0, 0x0, 0xc8, 0x0, 0x2, 0xf3,
|
||||
0xc8, 0x0, 0x2, 0xf3, 0xc8, 0x0, 0x2, 0xf3,
|
||||
0xc8, 0x0, 0x2, 0xf3, 0xc9, 0x0, 0x3, 0xf3,
|
||||
0xab, 0x0, 0x7, 0xf3, 0x5f, 0x83, 0x7e, 0xf3,
|
||||
0x6, 0xdf, 0xc5, 0xf3,
|
||||
|
||||
/* U+00FC "ü" */
|
||||
0x2, 0xe0, 0x88, 0x0, 0x0, 0x60, 0x33, 0x0,
|
||||
0x0, 0x0, 0x0, 0x0, 0xc8, 0x0, 0x2, 0xf3,
|
||||
@ -1860,82 +1878,84 @@ static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = {
|
||||
{.bitmap_index = 4032, .adv_w = 188, .box_w = 12, .box_h = 14, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 4116, .adv_w = 188, .box_w = 12, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 4194, .adv_w = 177, .box_w = 9, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 4257, .adv_w = 177, .box_w = 9, .box_h = 13, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 4316, .adv_w = 151, .box_w = 8, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 4360, .adv_w = 134, .box_w = 8, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 4404, .adv_w = 134, .box_w = 8, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 4448, .adv_w = 134, .box_w = 8, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 4492, .adv_w = 128, .box_w = 8, .box_h = 11, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 4536, .adv_w = 137, .box_w = 8, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 4580, .adv_w = 137, .box_w = 8, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 4624, .adv_w = 137, .box_w = 8, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 4668, .adv_w = 137, .box_w = 8, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 4712, .adv_w = 62, .box_w = 6, .box_h = 11, .ofs_x = -1, .ofs_y = 0},
|
||||
{.bitmap_index = 4745, .adv_w = 62, .box_w = 4, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 4767, .adv_w = 142, .box_w = 9, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 4817, .adv_w = 152, .box_w = 8, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 4861, .adv_w = 239, .box_w = 15, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 4921, .adv_w = 70, .box_w = 4, .box_h = 3, .ofs_x = 0, .ofs_y = 3},
|
||||
{.bitmap_index = 4927, .adv_w = 224, .box_w = 15, .box_h = 15, .ofs_x = -1, .ofs_y = -2},
|
||||
{.bitmap_index = 5040, .adv_w = 224, .box_w = 14, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 5117, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 5208, .adv_w = 224, .box_w = 14, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 5285, .adv_w = 154, .box_w = 10, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 5340, .adv_w = 224, .box_w = 14, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 5445, .adv_w = 224, .box_w = 14, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 5550, .adv_w = 252, .box_w = 16, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 5654, .adv_w = 224, .box_w = 14, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 5759, .adv_w = 252, .box_w = 16, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 5847, .adv_w = 224, .box_w = 14, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 5952, .adv_w = 112, .box_w = 7, .box_h = 12, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 5994, .adv_w = 168, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 6060, .adv_w = 252, .box_w = 16, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 6172, .adv_w = 224, .box_w = 14, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 6249, .adv_w = 154, .box_w = 10, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 6324, .adv_w = 196, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
|
||||
{.bitmap_index = 6394, .adv_w = 196, .box_w = 13, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 6492, .adv_w = 196, .box_w = 13, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 6577, .adv_w = 196, .box_w = 13, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 6662, .adv_w = 196, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
|
||||
{.bitmap_index = 6732, .adv_w = 196, .box_w = 14, .box_h = 13, .ofs_x = -1, .ofs_y = -1},
|
||||
{.bitmap_index = 6823, .adv_w = 140, .box_w = 9, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 6882, .adv_w = 140, .box_w = 9, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 6941, .adv_w = 196, .box_w = 13, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 7026, .adv_w = 196, .box_w = 13, .box_h = 4, .ofs_x = 0, .ofs_y = 3},
|
||||
{.bitmap_index = 7052, .adv_w = 252, .box_w = 16, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 7140, .adv_w = 280, .box_w = 18, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 7275, .adv_w = 252, .box_w = 17, .box_h = 15, .ofs_x = -1, .ofs_y = -2},
|
||||
{.bitmap_index = 7403, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 7494, .adv_w = 196, .box_w = 13, .box_h = 8, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 7546, .adv_w = 196, .box_w = 13, .box_h = 8, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 7598, .adv_w = 280, .box_w = 18, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 7697, .adv_w = 224, .box_w = 14, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 7774, .adv_w = 224, .box_w = 14, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 7879, .adv_w = 224, .box_w = 15, .box_h = 15, .ofs_x = -1, .ofs_y = -2},
|
||||
{.bitmap_index = 7992, .adv_w = 196, .box_w = 13, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 8077, .adv_w = 196, .box_w = 13, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 8175, .adv_w = 196, .box_w = 13, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 8260, .adv_w = 196, .box_w = 13, .box_h = 12, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 8338, .adv_w = 224, .box_w = 14, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 8415, .adv_w = 140, .box_w = 10, .box_h = 15, .ofs_x = -1, .ofs_y = -2},
|
||||
{.bitmap_index = 8490, .adv_w = 196, .box_w = 13, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 8588, .adv_w = 196, .box_w = 13, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 8686, .adv_w = 252, .box_w = 16, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 8774, .adv_w = 224, .box_w = 16, .box_h = 15, .ofs_x = -1, .ofs_y = -2},
|
||||
{.bitmap_index = 8894, .adv_w = 168, .box_w = 11, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 8977, .adv_w = 280, .box_w = 18, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 9094, .adv_w = 280, .box_w = 18, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 9184, .adv_w = 280, .box_w = 18, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 9274, .adv_w = 280, .box_w = 18, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 9364, .adv_w = 280, .box_w = 18, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 9454, .adv_w = 280, .box_w = 18, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 9544, .adv_w = 280, .box_w = 18, .box_h = 12, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 9652, .adv_w = 196, .box_w = 12, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 9742, .adv_w = 196, .box_w = 13, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 9840, .adv_w = 224, .box_w = 15, .box_h = 15, .ofs_x = -1, .ofs_y = -2},
|
||||
{.bitmap_index = 9953, .adv_w = 280, .box_w = 18, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 10052, .adv_w = 168, .box_w = 11, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 10135, .adv_w = 225, .box_w = 15, .box_h = 10, .ofs_x = 0, .ofs_y = 0}
|
||||
{.bitmap_index = 4257, .adv_w = 177, .box_w = 9, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 4320, .adv_w = 177, .box_w = 9, .box_h = 13, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 4379, .adv_w = 151, .box_w = 8, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 4423, .adv_w = 134, .box_w = 8, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 4467, .adv_w = 134, .box_w = 8, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 4511, .adv_w = 134, .box_w = 8, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 4555, .adv_w = 128, .box_w = 8, .box_h = 11, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 4599, .adv_w = 137, .box_w = 8, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 4643, .adv_w = 137, .box_w = 8, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 4687, .adv_w = 137, .box_w = 8, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 4731, .adv_w = 137, .box_w = 8, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 4775, .adv_w = 62, .box_w = 6, .box_h = 11, .ofs_x = -1, .ofs_y = 0},
|
||||
{.bitmap_index = 4808, .adv_w = 62, .box_w = 4, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 4830, .adv_w = 142, .box_w = 9, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 4880, .adv_w = 152, .box_w = 8, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 4924, .adv_w = 152, .box_w = 8, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 4968, .adv_w = 239, .box_w = 15, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 5028, .adv_w = 70, .box_w = 4, .box_h = 3, .ofs_x = 0, .ofs_y = 3},
|
||||
{.bitmap_index = 5034, .adv_w = 224, .box_w = 15, .box_h = 15, .ofs_x = -1, .ofs_y = -2},
|
||||
{.bitmap_index = 5147, .adv_w = 224, .box_w = 14, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 5224, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 5315, .adv_w = 224, .box_w = 14, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 5392, .adv_w = 154, .box_w = 10, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 5447, .adv_w = 224, .box_w = 14, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 5552, .adv_w = 224, .box_w = 14, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 5657, .adv_w = 252, .box_w = 16, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 5761, .adv_w = 224, .box_w = 14, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 5866, .adv_w = 252, .box_w = 16, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 5954, .adv_w = 224, .box_w = 14, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 6059, .adv_w = 112, .box_w = 7, .box_h = 12, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 6101, .adv_w = 168, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 6167, .adv_w = 252, .box_w = 16, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 6279, .adv_w = 224, .box_w = 14, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 6356, .adv_w = 154, .box_w = 10, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 6431, .adv_w = 196, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
|
||||
{.bitmap_index = 6501, .adv_w = 196, .box_w = 13, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 6599, .adv_w = 196, .box_w = 13, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 6684, .adv_w = 196, .box_w = 13, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 6769, .adv_w = 196, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
|
||||
{.bitmap_index = 6839, .adv_w = 196, .box_w = 14, .box_h = 13, .ofs_x = -1, .ofs_y = -1},
|
||||
{.bitmap_index = 6930, .adv_w = 140, .box_w = 9, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 6989, .adv_w = 140, .box_w = 9, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 7048, .adv_w = 196, .box_w = 13, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 7133, .adv_w = 196, .box_w = 13, .box_h = 4, .ofs_x = 0, .ofs_y = 3},
|
||||
{.bitmap_index = 7159, .adv_w = 252, .box_w = 16, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 7247, .adv_w = 280, .box_w = 18, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 7382, .adv_w = 252, .box_w = 17, .box_h = 15, .ofs_x = -1, .ofs_y = -2},
|
||||
{.bitmap_index = 7510, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 7601, .adv_w = 196, .box_w = 13, .box_h = 8, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 7653, .adv_w = 196, .box_w = 13, .box_h = 8, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 7705, .adv_w = 280, .box_w = 18, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 7804, .adv_w = 224, .box_w = 14, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 7881, .adv_w = 224, .box_w = 14, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 7986, .adv_w = 224, .box_w = 15, .box_h = 15, .ofs_x = -1, .ofs_y = -2},
|
||||
{.bitmap_index = 8099, .adv_w = 196, .box_w = 13, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 8184, .adv_w = 196, .box_w = 13, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 8282, .adv_w = 196, .box_w = 13, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 8367, .adv_w = 196, .box_w = 13, .box_h = 12, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 8445, .adv_w = 224, .box_w = 14, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 8522, .adv_w = 140, .box_w = 10, .box_h = 15, .ofs_x = -1, .ofs_y = -2},
|
||||
{.bitmap_index = 8597, .adv_w = 196, .box_w = 13, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 8695, .adv_w = 196, .box_w = 13, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 8793, .adv_w = 252, .box_w = 16, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 8881, .adv_w = 224, .box_w = 16, .box_h = 15, .ofs_x = -1, .ofs_y = -2},
|
||||
{.bitmap_index = 9001, .adv_w = 168, .box_w = 11, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 9084, .adv_w = 280, .box_w = 18, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 9201, .adv_w = 280, .box_w = 18, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 9291, .adv_w = 280, .box_w = 18, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 9381, .adv_w = 280, .box_w = 18, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 9471, .adv_w = 280, .box_w = 18, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 9561, .adv_w = 280, .box_w = 18, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 9651, .adv_w = 280, .box_w = 18, .box_h = 12, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 9759, .adv_w = 196, .box_w = 12, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 9849, .adv_w = 196, .box_w = 13, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 9947, .adv_w = 224, .box_w = 15, .box_h = 15, .ofs_x = -1, .ofs_y = -2},
|
||||
{.bitmap_index = 10060, .adv_w = 280, .box_w = 18, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 10159, .adv_w = 168, .box_w = 11, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 10242, .adv_w = 225, .box_w = 15, .box_h = 10, .ofs_x = 0, .ofs_y = 0}
|
||||
};
|
||||
|
||||
/*---------------------
|
||||
@ -1944,16 +1964,17 @@ static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = {
|
||||
|
||||
static const uint16_t unicode_list_1[] = {
|
||||
0x0, 0x10, 0x14, 0x17, 0x18, 0x19, 0x1a, 0x1b,
|
||||
0x1e, 0x24, 0x26, 0x29, 0x2c, 0x2f, 0x30, 0x32,
|
||||
0x34, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3e, 0x3f,
|
||||
0x46, 0x4c, 0xa3, 0x1f72, 0xef51, 0xef58, 0xef5b, 0xef5c,
|
||||
0xef5d, 0xef61, 0xef63, 0xef65, 0xef69, 0xef6c, 0xef71, 0xef76,
|
||||
0xef77, 0xef78, 0xef8e, 0xef93, 0xef98, 0xef9b, 0xef9c, 0xef9d,
|
||||
0xefa1, 0xefa2, 0xefa3, 0xefa4, 0xefb7, 0xefb8, 0xefbe, 0xefc0,
|
||||
0xefc1, 0xefc4, 0xefc7, 0xefc8, 0xefc9, 0xefcb, 0xefe3, 0xefe5,
|
||||
0xf014, 0xf015, 0xf017, 0xf019, 0xf030, 0xf037, 0xf03a, 0xf043,
|
||||
0xf06c, 0xf074, 0xf0ab, 0xf13b, 0xf190, 0xf191, 0xf192, 0xf193,
|
||||
0xf194, 0xf1d7, 0xf1e3, 0xf23d, 0xf254, 0xf4aa, 0xf712, 0xf7f2
|
||||
0x1e, 0x24, 0x26, 0x29, 0x2b, 0x2c, 0x2f, 0x30,
|
||||
0x32, 0x34, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3e,
|
||||
0x3f, 0x46, 0x4b, 0x4c, 0xa3, 0x1f72, 0xef51, 0xef58,
|
||||
0xef5b, 0xef5c, 0xef5d, 0xef61, 0xef63, 0xef65, 0xef69, 0xef6c,
|
||||
0xef71, 0xef76, 0xef77, 0xef78, 0xef8e, 0xef93, 0xef98, 0xef9b,
|
||||
0xef9c, 0xef9d, 0xefa1, 0xefa2, 0xefa3, 0xefa4, 0xefb7, 0xefb8,
|
||||
0xefbe, 0xefc0, 0xefc1, 0xefc4, 0xefc7, 0xefc8, 0xefc9, 0xefcb,
|
||||
0xefe3, 0xefe5, 0xf014, 0xf015, 0xf017, 0xf019, 0xf030, 0xf037,
|
||||
0xf03a, 0xf043, 0xf06c, 0xf074, 0xf0ab, 0xf13b, 0xf190, 0xf191,
|
||||
0xf192, 0xf193, 0xf194, 0xf1d7, 0xf1e3, 0xf23d, 0xf254, 0xf4aa,
|
||||
0xf712, 0xf7f2
|
||||
};
|
||||
|
||||
/*Collect the unicode lists and glyph_id offsets*/
|
||||
@ -1965,7 +1986,7 @@ static const lv_font_fmt_txt_cmap_t cmaps[] =
|
||||
},
|
||||
{
|
||||
.range_start = 176, .range_length = 63475, .glyph_id_start = 96,
|
||||
.unicode_list = unicode_list_1, .glyph_id_ofs_list = NULL, .list_length = 88, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
|
||||
.unicode_list = unicode_list_1, .glyph_id_ofs_list = NULL, .list_length = 90, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
|
||||
}
|
||||
};
|
||||
|
||||
@ -1990,16 +2011,17 @@ static const uint8_t kern_left_class_mapping[] =
|
||||
46, 46, 54, 55, 56, 57, 51, 58,
|
||||
58, 59, 58, 60, 41, 0, 0, 9,
|
||||
61, 23, 23, 25, 26, 26, 26, 26,
|
||||
29, 22, 22, 30, 30, 46, 45, 45,
|
||||
45, 47, 49, 49, 49, 49, 62, 51,
|
||||
46, 51, 49, 9, 0, 0, 0, 0,
|
||||
29, 22, 22, 30, 30, 30, 46, 45,
|
||||
45, 45, 47, 49, 49, 49, 49, 62,
|
||||
51, 46, 51, 51, 49, 9, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0
|
||||
};
|
||||
|
||||
/*Map glyph_ids to kern right classes*/
|
||||
@ -2018,16 +2040,17 @@ static const uint8_t kern_right_class_mapping[] =
|
||||
39, 42, 39, 42, 43, 44, 45, 46,
|
||||
46, 47, 46, 48, 0, 0, 35, 9,
|
||||
49, 24, 24, 23, 25, 25, 25, 25,
|
||||
25, 23, 23, 28, 28, 38, 37, 37,
|
||||
37, 39, 39, 39, 39, 39, 50, 51,
|
||||
39, 45, 39, 9, 0, 0, 0, 0,
|
||||
25, 23, 23, 28, 28, 28, 38, 37,
|
||||
37, 37, 39, 39, 39, 39, 39, 50,
|
||||
51, 39, 45, 45, 39, 9, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0
|
||||
};
|
||||
|
||||
/*Kern values between classes*/
|
||||
|
@ -1,7 +1,7 @@
|
||||
/*******************************************************************************
|
||||
* Size: 16 px
|
||||
* Bpp: 4
|
||||
* Opts: --no-compress --no-prefilter --bpp 4 --size 16 --font Montserrat-Medium.ttf -r 0x20-0x7F,0xB0,0x2022,0xC0,0xC4,0xC7,0xC8,0xC9,0xCA,0xCB,0xCE,0xD4,0xD6,0xD9,0xDC,0xDF,0xE0,0xE2,0xE4,0xE7-0xEB,0xEE,0xEF,0xF6,0xFC,0x153 --font FontAwesome5-Solid+Brands+Regular.woff -r 61441,61448,61451,61452,61452,61453,61457,61459,61461,61465,61468,61473,61478,61479,61480,61502,61507,61512,61515,61516,61517,61521,61522,61523,61524,61543,61544,61550,61552,61553,61556,61559,61560,61561,61563,61587,61589,61636,61637,61639,61641,61664,61671,61674,61683,61724,61732,61787,61931,62016,62017,62018,62019,62020,62087,62099,62212,62189,62810,63426,63650 --format lvgl -o lv_font_montserrat_16.c --force-fast-kern-format
|
||||
* Opts: --no-compress --no-prefilter --bpp 4 --size 16 --font Montserrat-Medium.ttf -r 0x20-0x7F,0xB0,0x2022,0xC0,0xC4,0xC7,0xC8,0xC9,0xCA,0xCB,0xCE,0xD4,0xD6,0xD9,0xDB,0xDC,0xDF,0xE0,0xE2,0xE4,0xE7-0xEB,0xEE,0xEF,0xF6,0xFB,0xFC,0x153 --font FontAwesome5-Solid+Brands+Regular.woff -r 61441,61448,61451,61452,61452,61453,61457,61459,61461,61465,61468,61473,61478,61479,61480,61502,61507,61512,61515,61516,61517,61521,61522,61523,61524,61543,61544,61550,61552,61553,61556,61559,61560,61561,61563,61587,61589,61636,61637,61639,61641,61664,61671,61674,61683,61724,61732,61787,61931,62016,62017,62018,62019,62020,62087,62099,62212,62189,62810,63426,63650 --format lvgl -o lv_font_montserrat_16.c --force-fast-kern-format
|
||||
******************************************************************************/
|
||||
|
||||
#ifdef LV_LVGL_H_INCLUDE_SIMPLE
|
||||
@ -972,6 +972,19 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
|
||||
0x4f, 0xfa, 0x8b, 0xfd, 0x0, 0x0, 0x3b, 0xef,
|
||||
0xd8, 0x10, 0x0,
|
||||
|
||||
/* U+00DB "Û" */
|
||||
0x0, 0x1, 0xdf, 0x90, 0x0, 0x0, 0x2, 0xd7,
|
||||
0x1b, 0xa0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
||||
0x6, 0xf3, 0x0, 0x0, 0x8, 0xf1, 0x6f, 0x30,
|
||||
0x0, 0x0, 0x8f, 0x16, 0xf3, 0x0, 0x0, 0x8,
|
||||
0xf1, 0x6f, 0x30, 0x0, 0x0, 0x8f, 0x16, 0xf3,
|
||||
0x0, 0x0, 0x8, 0xf1, 0x6f, 0x30, 0x0, 0x0,
|
||||
0x8f, 0x16, 0xf3, 0x0, 0x0, 0x8, 0xf0, 0x5f,
|
||||
0x40, 0x0, 0x0, 0x9f, 0x3, 0xf7, 0x0, 0x0,
|
||||
0xc, 0xd0, 0xd, 0xe2, 0x0, 0x5, 0xf8, 0x0,
|
||||
0x4f, 0xfa, 0x8b, 0xfd, 0x0, 0x0, 0x3b, 0xef,
|
||||
0xd8, 0x10, 0x0,
|
||||
|
||||
/* U+00DC "Ü" */
|
||||
0x0, 0xc, 0x70, 0xc6, 0x0, 0x0, 0x0, 0x84,
|
||||
0x8, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
||||
@ -1094,6 +1107,15 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
|
||||
0xb, 0xf1, 0x4, 0xfd, 0x77, 0xcf, 0x60, 0x0,
|
||||
0x3b, 0xef, 0xc4, 0x0,
|
||||
|
||||
/* U+00FB "û" */
|
||||
0x0, 0x1d, 0xea, 0x0, 0x0, 0x1c, 0x70, 0x9a,
|
||||
0x0, 0x0, 0x0, 0x0, 0x0, 0xa, 0xe0, 0x0,
|
||||
0x2, 0xf5, 0xae, 0x0, 0x0, 0x2f, 0x5a, 0xe0,
|
||||
0x0, 0x2, 0xf5, 0xae, 0x0, 0x0, 0x2f, 0x5a,
|
||||
0xe0, 0x0, 0x2, 0xf5, 0x9f, 0x0, 0x0, 0x4f,
|
||||
0x56, 0xf3, 0x0, 0xa, 0xf5, 0x1e, 0xe7, 0x6b,
|
||||
0xff, 0x50, 0x2b, 0xef, 0xb3, 0xf5,
|
||||
|
||||
/* U+00FC "ü" */
|
||||
0x0, 0xb7, 0xb, 0x70, 0x0, 0x7, 0x40, 0x74,
|
||||
0x0, 0x0, 0x0, 0x0, 0x0, 0xa, 0xe0, 0x0,
|
||||
@ -2176,81 +2198,83 @@ static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = {
|
||||
{.bitmap_index = 5339, .adv_w = 215, .box_w = 13, .box_h = 15, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 5437, .adv_w = 202, .box_w = 11, .box_h = 15, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 5520, .adv_w = 202, .box_w = 11, .box_h = 15, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 5603, .adv_w = 173, .box_w = 10, .box_h = 12, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 5663, .adv_w = 153, .box_w = 9, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 5717, .adv_w = 153, .box_w = 9, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 5771, .adv_w = 153, .box_w = 9, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 5825, .adv_w = 146, .box_w = 9, .box_h = 12, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 5879, .adv_w = 157, .box_w = 10, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 5939, .adv_w = 157, .box_w = 10, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 5999, .adv_w = 157, .box_w = 10, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 6059, .adv_w = 157, .box_w = 10, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 6119, .adv_w = 71, .box_w = 6, .box_h = 12, .ofs_x = -1, .ofs_y = 0},
|
||||
{.bitmap_index = 6155, .adv_w = 71, .box_w = 5, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 6185, .adv_w = 163, .box_w = 10, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 6245, .adv_w = 173, .box_w = 9, .box_h = 12, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 6299, .adv_w = 273, .box_w = 17, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 6376, .adv_w = 80, .box_w = 3, .box_h = 4, .ofs_x = 1, .ofs_y = 3},
|
||||
{.bitmap_index = 6382, .adv_w = 256, .box_w = 16, .box_h = 17, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 6518, .adv_w = 256, .box_w = 16, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 6614, .adv_w = 256, .box_w = 16, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 6726, .adv_w = 256, .box_w = 16, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 6822, .adv_w = 176, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 6888, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 7016, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 7144, .adv_w = 288, .box_w = 18, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 7270, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 7398, .adv_w = 288, .box_w = 18, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 7506, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 7634, .adv_w = 128, .box_w = 8, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 7690, .adv_w = 192, .box_w = 12, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 7774, .adv_w = 288, .box_w = 18, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 7918, .adv_w = 256, .box_w = 16, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 8014, .adv_w = 176, .box_w = 11, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 8102, .adv_w = 224, .box_w = 10, .box_h = 16, .ofs_x = 2, .ofs_y = -2},
|
||||
{.bitmap_index = 8182, .adv_w = 224, .box_w = 14, .box_h = 18, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 8308, .adv_w = 224, .box_w = 14, .box_h = 15, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 8413, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 8511, .adv_w = 224, .box_w = 10, .box_h = 16, .ofs_x = 2, .ofs_y = -2},
|
||||
{.bitmap_index = 8591, .adv_w = 224, .box_w = 16, .box_h = 14, .ofs_x = -1, .ofs_y = -1},
|
||||
{.bitmap_index = 8703, .adv_w = 160, .box_w = 10, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 8773, .adv_w = 160, .box_w = 10, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 8843, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 8941, .adv_w = 224, .box_w = 14, .box_h = 4, .ofs_x = 0, .ofs_y = 4},
|
||||
{.bitmap_index = 8969, .adv_w = 288, .box_w = 18, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 9077, .adv_w = 320, .box_w = 20, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 9237, .adv_w = 288, .box_w = 20, .box_h = 16, .ofs_x = -1, .ofs_y = -2},
|
||||
{.bitmap_index = 9397, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 9525, .adv_w = 224, .box_w = 14, .box_h = 10, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 9595, .adv_w = 224, .box_w = 14, .box_h = 10, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 9665, .adv_w = 320, .box_w = 20, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 9805, .adv_w = 256, .box_w = 16, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 9901, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 10029, .adv_w = 256, .box_w = 17, .box_h = 17, .ofs_x = -1, .ofs_y = -2},
|
||||
{.bitmap_index = 10174, .adv_w = 224, .box_w = 15, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 10279, .adv_w = 224, .box_w = 14, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 10391, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 10489, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 10587, .adv_w = 256, .box_w = 16, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 10683, .adv_w = 160, .box_w = 12, .box_h = 16, .ofs_x = -1, .ofs_y = -2},
|
||||
{.bitmap_index = 10779, .adv_w = 224, .box_w = 14, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 10891, .adv_w = 224, .box_w = 14, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 11003, .adv_w = 288, .box_w = 18, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 11111, .adv_w = 256, .box_w = 18, .box_h = 18, .ofs_x = -1, .ofs_y = -3},
|
||||
{.bitmap_index = 11273, .adv_w = 192, .box_w = 12, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 11369, .adv_w = 320, .box_w = 20, .box_h = 15, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 11519, .adv_w = 320, .box_w = 20, .box_h = 10, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 11619, .adv_w = 320, .box_w = 20, .box_h = 10, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 11719, .adv_w = 320, .box_w = 20, .box_h = 10, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 11819, .adv_w = 320, .box_w = 20, .box_h = 10, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 11919, .adv_w = 320, .box_w = 20, .box_h = 10, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 12019, .adv_w = 320, .box_w = 21, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 12166, .adv_w = 224, .box_w = 12, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
|
||||
{.bitmap_index = 12262, .adv_w = 224, .box_w = 14, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 12374, .adv_w = 256, .box_w = 17, .box_h = 17, .ofs_x = -1, .ofs_y = -3},
|
||||
{.bitmap_index = 12519, .adv_w = 320, .box_w = 20, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 12639, .adv_w = 192, .box_w = 12, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 12735, .adv_w = 258, .box_w = 17, .box_h = 11, .ofs_x = 0, .ofs_y = 1}
|
||||
{.bitmap_index = 5603, .adv_w = 202, .box_w = 11, .box_h = 15, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 5686, .adv_w = 173, .box_w = 10, .box_h = 12, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 5746, .adv_w = 153, .box_w = 9, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 5800, .adv_w = 153, .box_w = 9, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 5854, .adv_w = 153, .box_w = 9, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 5908, .adv_w = 146, .box_w = 9, .box_h = 12, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 5962, .adv_w = 157, .box_w = 10, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 6022, .adv_w = 157, .box_w = 10, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 6082, .adv_w = 157, .box_w = 10, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 6142, .adv_w = 157, .box_w = 10, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 6202, .adv_w = 71, .box_w = 6, .box_h = 12, .ofs_x = -1, .ofs_y = 0},
|
||||
{.bitmap_index = 6238, .adv_w = 71, .box_w = 5, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 6268, .adv_w = 163, .box_w = 10, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 6328, .adv_w = 173, .box_w = 9, .box_h = 12, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 6382, .adv_w = 173, .box_w = 9, .box_h = 12, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 6436, .adv_w = 273, .box_w = 17, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 6513, .adv_w = 80, .box_w = 3, .box_h = 4, .ofs_x = 1, .ofs_y = 3},
|
||||
{.bitmap_index = 6519, .adv_w = 256, .box_w = 16, .box_h = 17, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 6655, .adv_w = 256, .box_w = 16, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 6751, .adv_w = 256, .box_w = 16, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 6863, .adv_w = 256, .box_w = 16, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 6959, .adv_w = 176, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 7025, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 7153, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 7281, .adv_w = 288, .box_w = 18, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 7407, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 7535, .adv_w = 288, .box_w = 18, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 7643, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 7771, .adv_w = 128, .box_w = 8, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 7827, .adv_w = 192, .box_w = 12, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 7911, .adv_w = 288, .box_w = 18, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 8055, .adv_w = 256, .box_w = 16, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 8151, .adv_w = 176, .box_w = 11, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 8239, .adv_w = 224, .box_w = 10, .box_h = 16, .ofs_x = 2, .ofs_y = -2},
|
||||
{.bitmap_index = 8319, .adv_w = 224, .box_w = 14, .box_h = 18, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 8445, .adv_w = 224, .box_w = 14, .box_h = 15, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 8550, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 8648, .adv_w = 224, .box_w = 10, .box_h = 16, .ofs_x = 2, .ofs_y = -2},
|
||||
{.bitmap_index = 8728, .adv_w = 224, .box_w = 16, .box_h = 14, .ofs_x = -1, .ofs_y = -1},
|
||||
{.bitmap_index = 8840, .adv_w = 160, .box_w = 10, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 8910, .adv_w = 160, .box_w = 10, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 8980, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 9078, .adv_w = 224, .box_w = 14, .box_h = 4, .ofs_x = 0, .ofs_y = 4},
|
||||
{.bitmap_index = 9106, .adv_w = 288, .box_w = 18, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 9214, .adv_w = 320, .box_w = 20, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 9374, .adv_w = 288, .box_w = 20, .box_h = 16, .ofs_x = -1, .ofs_y = -2},
|
||||
{.bitmap_index = 9534, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 9662, .adv_w = 224, .box_w = 14, .box_h = 10, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 9732, .adv_w = 224, .box_w = 14, .box_h = 10, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 9802, .adv_w = 320, .box_w = 20, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 9942, .adv_w = 256, .box_w = 16, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 10038, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 10166, .adv_w = 256, .box_w = 17, .box_h = 17, .ofs_x = -1, .ofs_y = -2},
|
||||
{.bitmap_index = 10311, .adv_w = 224, .box_w = 15, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 10416, .adv_w = 224, .box_w = 14, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 10528, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 10626, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 10724, .adv_w = 256, .box_w = 16, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 10820, .adv_w = 160, .box_w = 12, .box_h = 16, .ofs_x = -1, .ofs_y = -2},
|
||||
{.bitmap_index = 10916, .adv_w = 224, .box_w = 14, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 11028, .adv_w = 224, .box_w = 14, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 11140, .adv_w = 288, .box_w = 18, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 11248, .adv_w = 256, .box_w = 18, .box_h = 18, .ofs_x = -1, .ofs_y = -3},
|
||||
{.bitmap_index = 11410, .adv_w = 192, .box_w = 12, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 11506, .adv_w = 320, .box_w = 20, .box_h = 15, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 11656, .adv_w = 320, .box_w = 20, .box_h = 10, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 11756, .adv_w = 320, .box_w = 20, .box_h = 10, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 11856, .adv_w = 320, .box_w = 20, .box_h = 10, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 11956, .adv_w = 320, .box_w = 20, .box_h = 10, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 12056, .adv_w = 320, .box_w = 20, .box_h = 10, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 12156, .adv_w = 320, .box_w = 21, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 12303, .adv_w = 224, .box_w = 12, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
|
||||
{.bitmap_index = 12399, .adv_w = 224, .box_w = 14, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 12511, .adv_w = 256, .box_w = 17, .box_h = 17, .ofs_x = -1, .ofs_y = -3},
|
||||
{.bitmap_index = 12656, .adv_w = 320, .box_w = 20, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 12776, .adv_w = 192, .box_w = 12, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 12872, .adv_w = 258, .box_w = 17, .box_h = 11, .ofs_x = 0, .ofs_y = 1}
|
||||
};
|
||||
|
||||
/*---------------------
|
||||
@ -2259,16 +2283,17 @@ static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = {
|
||||
|
||||
static const uint16_t unicode_list_1[] = {
|
||||
0x0, 0x10, 0x14, 0x17, 0x18, 0x19, 0x1a, 0x1b,
|
||||
0x1e, 0x24, 0x26, 0x29, 0x2c, 0x2f, 0x30, 0x32,
|
||||
0x34, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3e, 0x3f,
|
||||
0x46, 0x4c, 0xa3, 0x1f72, 0xef51, 0xef58, 0xef5b, 0xef5c,
|
||||
0xef5d, 0xef61, 0xef63, 0xef65, 0xef69, 0xef6c, 0xef71, 0xef76,
|
||||
0xef77, 0xef78, 0xef8e, 0xef93, 0xef98, 0xef9b, 0xef9c, 0xef9d,
|
||||
0xefa1, 0xefa2, 0xefa3, 0xefa4, 0xefb7, 0xefb8, 0xefbe, 0xefc0,
|
||||
0xefc1, 0xefc4, 0xefc7, 0xefc8, 0xefc9, 0xefcb, 0xefe3, 0xefe5,
|
||||
0xf014, 0xf015, 0xf017, 0xf019, 0xf030, 0xf037, 0xf03a, 0xf043,
|
||||
0xf06c, 0xf074, 0xf0ab, 0xf13b, 0xf190, 0xf191, 0xf192, 0xf193,
|
||||
0xf194, 0xf1d7, 0xf1e3, 0xf23d, 0xf254, 0xf4aa, 0xf712, 0xf7f2
|
||||
0x1e, 0x24, 0x26, 0x29, 0x2b, 0x2c, 0x2f, 0x30,
|
||||
0x32, 0x34, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3e,
|
||||
0x3f, 0x46, 0x4b, 0x4c, 0xa3, 0x1f72, 0xef51, 0xef58,
|
||||
0xef5b, 0xef5c, 0xef5d, 0xef61, 0xef63, 0xef65, 0xef69, 0xef6c,
|
||||
0xef71, 0xef76, 0xef77, 0xef78, 0xef8e, 0xef93, 0xef98, 0xef9b,
|
||||
0xef9c, 0xef9d, 0xefa1, 0xefa2, 0xefa3, 0xefa4, 0xefb7, 0xefb8,
|
||||
0xefbe, 0xefc0, 0xefc1, 0xefc4, 0xefc7, 0xefc8, 0xefc9, 0xefcb,
|
||||
0xefe3, 0xefe5, 0xf014, 0xf015, 0xf017, 0xf019, 0xf030, 0xf037,
|
||||
0xf03a, 0xf043, 0xf06c, 0xf074, 0xf0ab, 0xf13b, 0xf190, 0xf191,
|
||||
0xf192, 0xf193, 0xf194, 0xf1d7, 0xf1e3, 0xf23d, 0xf254, 0xf4aa,
|
||||
0xf712, 0xf7f2
|
||||
};
|
||||
|
||||
/*Collect the unicode lists and glyph_id offsets*/
|
||||
@ -2280,7 +2305,7 @@ static const lv_font_fmt_txt_cmap_t cmaps[] =
|
||||
},
|
||||
{
|
||||
.range_start = 176, .range_length = 63475, .glyph_id_start = 96,
|
||||
.unicode_list = unicode_list_1, .glyph_id_ofs_list = NULL, .list_length = 88, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
|
||||
.unicode_list = unicode_list_1, .glyph_id_ofs_list = NULL, .list_length = 90, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
|
||||
}
|
||||
};
|
||||
|
||||
@ -2305,16 +2330,17 @@ static const uint8_t kern_left_class_mapping[] =
|
||||
46, 46, 54, 55, 56, 57, 51, 58,
|
||||
58, 59, 58, 60, 41, 0, 0, 9,
|
||||
61, 23, 23, 25, 26, 26, 26, 26,
|
||||
29, 22, 22, 30, 30, 46, 45, 45,
|
||||
45, 47, 49, 49, 49, 49, 62, 51,
|
||||
46, 51, 49, 9, 0, 0, 0, 0,
|
||||
29, 22, 22, 30, 30, 30, 46, 45,
|
||||
45, 45, 47, 49, 49, 49, 49, 62,
|
||||
51, 46, 51, 51, 49, 9, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0
|
||||
};
|
||||
|
||||
/*Map glyph_ids to kern right classes*/
|
||||
@ -2333,16 +2359,17 @@ static const uint8_t kern_right_class_mapping[] =
|
||||
39, 42, 39, 42, 43, 44, 45, 46,
|
||||
46, 47, 46, 48, 0, 0, 35, 9,
|
||||
49, 24, 24, 23, 25, 25, 25, 25,
|
||||
25, 23, 23, 28, 28, 38, 37, 37,
|
||||
37, 39, 39, 39, 39, 39, 50, 51,
|
||||
39, 45, 39, 9, 0, 0, 0, 0,
|
||||
25, 23, 23, 28, 28, 28, 38, 37,
|
||||
37, 37, 39, 39, 39, 39, 39, 50,
|
||||
51, 39, 45, 45, 39, 9, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0
|
||||
};
|
||||
|
||||
/*Kern values between classes*/
|
||||
|
@ -1,7 +1,7 @@
|
||||
/*******************************************************************************
|
||||
* Size: 24 px
|
||||
* Bpp: 4
|
||||
* Opts: --no-compress --no-prefilter --bpp 4 --size 24 --font Montserrat-Medium.ttf -r 0x20-0x7F,0xB0,0x2022,0xC0,0xC4,0xC7,0xC8,0xC9,0xCA,0xCB,0xCE,0xD4,0xD6,0xD9,0xDC,0xDF,0xE0,0xE2,0xE4,0xE7-0xEB,0xEE,0xEF,0xF6,0xFC,0x153 --font FontAwesome5-Solid+Brands+Regular.woff -r 61441,61448,61451,61452,61452,61453,61457,61459,61461,61465,61468,61473,61478,61479,61480,61502,61507,61512,61515,61516,61517,61521,61522,61523,61524,61543,61544,61550,61552,61553,61556,61559,61560,61561,61563,61587,61589,61636,61637,61639,61641,61664,61671,61674,61683,61724,61732,61787,61931,62016,62017,62018,62019,62020,62087,62099,62212,62189,62810,63426,63650 --format lvgl -o lv_font_montserrat_24.c --force-fast-kern-format
|
||||
* Opts: --no-compress --no-prefilter --bpp 4 --size 24 --font Montserrat-Medium.ttf -r 0x20-0x7F,0xB0,0x2022,0xC0,0xC4,0xC7,0xC8,0xC9,0xCA,0xCB,0xCE,0xD4,0xD6,0xD9,0xDB,0xDC,0xDF,0xE0,0xE2,0xE4,0xE7-0xEB,0xEE,0xEF,0xF6,0xFB,0xFC,0x153 --font FontAwesome5-Solid+Brands+Regular.woff -r 61441,61448,61451,61452,61452,61453,61457,61459,61461,61465,61468,61473,61478,61479,61480,61502,61507,61512,61515,61516,61517,61521,61522,61523,61524,61543,61544,61550,61552,61553,61556,61559,61560,61561,61563,61587,61589,61636,61637,61639,61641,61664,61671,61674,61683,61724,61732,61787,61931,62016,62017,62018,62019,62020,62087,62099,62212,62189,62810,63426,63650 --format lvgl -o lv_font_montserrat_24.c --force-fast-kern-format
|
||||
******************************************************************************/
|
||||
|
||||
#ifdef LV_LVGL_H_INCLUDE_SIMPLE
|
||||
@ -1689,6 +1689,29 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
|
||||
0xff, 0xff, 0xff, 0xfe, 0x40, 0x0, 0x0, 0x17,
|
||||
0xce, 0xfe, 0xc7, 0x10, 0x0,
|
||||
|
||||
/* U+00DB "Û" */
|
||||
0x0, 0x0, 0x0, 0x68, 0x60, 0x0, 0x0, 0x0,
|
||||
0x0, 0x0, 0xaf, 0xef, 0xa0, 0x0, 0x0, 0x0,
|
||||
0x0, 0xbf, 0x80, 0x8f, 0xb0, 0x0, 0x0, 0x0,
|
||||
0x48, 0x40, 0x0, 0x48, 0x40, 0x0, 0x0, 0x0,
|
||||
0x0, 0x0, 0x0, 0x0, 0x0, 0xa, 0xfc, 0x0,
|
||||
0x0, 0x0, 0x0, 0xc, 0xf9, 0xaf, 0xc0, 0x0,
|
||||
0x0, 0x0, 0x0, 0xcf, 0x9a, 0xfc, 0x0, 0x0,
|
||||
0x0, 0x0, 0xc, 0xf9, 0xaf, 0xc0, 0x0, 0x0,
|
||||
0x0, 0x0, 0xcf, 0x9a, 0xfc, 0x0, 0x0, 0x0,
|
||||
0x0, 0xc, 0xf9, 0xaf, 0xc0, 0x0, 0x0, 0x0,
|
||||
0x0, 0xcf, 0x9a, 0xfc, 0x0, 0x0, 0x0, 0x0,
|
||||
0xc, 0xf9, 0xaf, 0xc0, 0x0, 0x0, 0x0, 0x0,
|
||||
0xcf, 0x9a, 0xfc, 0x0, 0x0, 0x0, 0x0, 0xc,
|
||||
0xf9, 0x9f, 0xc0, 0x0, 0x0, 0x0, 0x0, 0xcf,
|
||||
0x99, 0xfd, 0x0, 0x0, 0x0, 0x0, 0xd, 0xf8,
|
||||
0x7f, 0xf0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x63,
|
||||
0xff, 0x50, 0x0, 0x0, 0x0, 0x5f, 0xf2, 0xd,
|
||||
0xfe, 0x10, 0x0, 0x0, 0x1e, 0xfc, 0x0, 0x3f,
|
||||
0xfe, 0x73, 0x23, 0x8e, 0xff, 0x30, 0x0, 0x4f,
|
||||
0xff, 0xff, 0xff, 0xfe, 0x40, 0x0, 0x0, 0x17,
|
||||
0xce, 0xfe, 0xc7, 0x10, 0x0,
|
||||
|
||||
/* U+00DC "Ü" */
|
||||
0x0, 0x0, 0x36, 0x0, 0x6, 0x30, 0x0, 0x0,
|
||||
0x0, 0xe, 0xf6, 0x6, 0xfe, 0x0, 0x0, 0x0,
|
||||
@ -1904,6 +1927,23 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
|
||||
0x0, 0x9f, 0xff, 0xff, 0xff, 0xc1, 0x0, 0x0,
|
||||
0x4, 0xad, 0xfe, 0xb5, 0x0, 0x0,
|
||||
|
||||
/* U+00FB "û" */
|
||||
0x0, 0x0, 0x8f, 0xfa, 0x0, 0x0, 0x0, 0x0,
|
||||
0x9f, 0xba, 0xfa, 0x0, 0x0, 0x0, 0x9f, 0x90,
|
||||
0x7, 0xfa, 0x0, 0x0, 0x2, 0x20, 0x0, 0x1,
|
||||
0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
||||
0xf, 0xf6, 0x0, 0x0, 0x0, 0x4f, 0xf0, 0xff,
|
||||
0x60, 0x0, 0x0, 0x4, 0xff, 0xf, 0xf6, 0x0,
|
||||
0x0, 0x0, 0x4f, 0xf0, 0xff, 0x60, 0x0, 0x0,
|
||||
0x4, 0xff, 0xf, 0xf6, 0x0, 0x0, 0x0, 0x4f,
|
||||
0xf0, 0xff, 0x60, 0x0, 0x0, 0x4, 0xff, 0xf,
|
||||
0xf6, 0x0, 0x0, 0x0, 0x4f, 0xf0, 0xef, 0x60,
|
||||
0x0, 0x0, 0x5, 0xff, 0xd, 0xf8, 0x0, 0x0,
|
||||
0x0, 0x8f, 0xf0, 0xaf, 0xe0, 0x0, 0x0, 0x1e,
|
||||
0xff, 0x3, 0xff, 0xb2, 0x0, 0x4d, 0xff, 0xf0,
|
||||
0x8, 0xff, 0xff, 0xff, 0xf9, 0xff, 0x0, 0x4,
|
||||
0xbe, 0xfe, 0xa3, 0x2f, 0xf0,
|
||||
|
||||
/* U+00FC "ü" */
|
||||
0x0, 0x2e, 0xb0, 0x9, 0xe3, 0x0, 0x0, 0x5,
|
||||
0xff, 0x0, 0xdf, 0x70, 0x0, 0x0, 0x6, 0x40,
|
||||
@ -4005,81 +4045,83 @@ static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = {
|
||||
{.bitmap_index = 10949, .adv_w = 323, .box_w = 19, .box_h = 22, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 11158, .adv_w = 304, .box_w = 15, .box_h = 22, .ofs_x = 2, .ofs_y = 0},
|
||||
{.bitmap_index = 11323, .adv_w = 304, .box_w = 15, .box_h = 22, .ofs_x = 2, .ofs_y = 0},
|
||||
{.bitmap_index = 11488, .adv_w = 260, .box_w = 14, .box_h = 18, .ofs_x = 2, .ofs_y = 0},
|
||||
{.bitmap_index = 11614, .adv_w = 230, .box_w = 12, .box_h = 18, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 11722, .adv_w = 230, .box_w = 12, .box_h = 18, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 11830, .adv_w = 230, .box_w = 12, .box_h = 18, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 11938, .adv_w = 219, .box_w = 12, .box_h = 19, .ofs_x = 1, .ofs_y = -6},
|
||||
{.bitmap_index = 12052, .adv_w = 235, .box_w = 13, .box_h = 18, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 12169, .adv_w = 235, .box_w = 13, .box_h = 18, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 12286, .adv_w = 235, .box_w = 13, .box_h = 18, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 12403, .adv_w = 235, .box_w = 13, .box_h = 18, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 12520, .adv_w = 107, .box_w = 9, .box_h = 18, .ofs_x = -1, .ofs_y = 0},
|
||||
{.bitmap_index = 12601, .adv_w = 107, .box_w = 7, .box_h = 18, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 12664, .adv_w = 244, .box_w = 14, .box_h = 18, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 12790, .adv_w = 260, .box_w = 13, .box_h = 18, .ofs_x = 2, .ofs_y = 0},
|
||||
{.bitmap_index = 12907, .adv_w = 410, .box_w = 24, .box_h = 13, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 13063, .adv_w = 121, .box_w = 5, .box_h = 5, .ofs_x = 1, .ofs_y = 4},
|
||||
{.bitmap_index = 13076, .adv_w = 384, .box_w = 24, .box_h = 25, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 13376, .adv_w = 384, .box_w = 24, .box_h = 18, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 13592, .adv_w = 384, .box_w = 24, .box_h = 22, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 13856, .adv_w = 384, .box_w = 24, .box_h = 18, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 14072, .adv_w = 264, .box_w = 17, .box_h = 18, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 14225, .adv_w = 384, .box_w = 24, .box_h = 24, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 14513, .adv_w = 384, .box_w = 24, .box_h = 24, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 14801, .adv_w = 432, .box_w = 27, .box_h = 22, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 15098, .adv_w = 384, .box_w = 24, .box_h = 24, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 15386, .adv_w = 432, .box_w = 27, .box_h = 18, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 15629, .adv_w = 384, .box_w = 24, .box_h = 26, .ofs_x = 0, .ofs_y = -4},
|
||||
{.bitmap_index = 15941, .adv_w = 192, .box_w = 12, .box_h = 19, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 16055, .adv_w = 288, .box_w = 18, .box_h = 19, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 16226, .adv_w = 432, .box_w = 27, .box_h = 24, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 16550, .adv_w = 384, .box_w = 24, .box_h = 18, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 16766, .adv_w = 264, .box_w = 17, .box_h = 24, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 16970, .adv_w = 336, .box_w = 15, .box_h = 22, .ofs_x = 3, .ofs_y = -2},
|
||||
{.bitmap_index = 17135, .adv_w = 336, .box_w = 21, .box_h = 26, .ofs_x = 0, .ofs_y = -4},
|
||||
{.bitmap_index = 17408, .adv_w = 336, .box_w = 21, .box_h = 22, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 17639, .adv_w = 336, .box_w = 21, .box_h = 22, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 17870, .adv_w = 336, .box_w = 15, .box_h = 22, .ofs_x = 3, .ofs_y = -2},
|
||||
{.bitmap_index = 18035, .adv_w = 336, .box_w = 23, .box_h = 22, .ofs_x = -1, .ofs_y = -2},
|
||||
{.bitmap_index = 18288, .adv_w = 240, .box_w = 13, .box_h = 22, .ofs_x = 1, .ofs_y = -2},
|
||||
{.bitmap_index = 18431, .adv_w = 240, .box_w = 13, .box_h = 22, .ofs_x = 1, .ofs_y = -2},
|
||||
{.bitmap_index = 18574, .adv_w = 336, .box_w = 21, .box_h = 22, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 18805, .adv_w = 336, .box_w = 21, .box_h = 6, .ofs_x = 0, .ofs_y = 6},
|
||||
{.bitmap_index = 18868, .adv_w = 432, .box_w = 27, .box_h = 18, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 19111, .adv_w = 480, .box_w = 31, .box_h = 24, .ofs_x = -1, .ofs_y = -3},
|
||||
{.bitmap_index = 19483, .adv_w = 432, .box_w = 29, .box_h = 24, .ofs_x = -1, .ofs_y = -3},
|
||||
{.bitmap_index = 19831, .adv_w = 384, .box_w = 24, .box_h = 22, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 20095, .adv_w = 336, .box_w = 21, .box_h = 14, .ofs_x = 0, .ofs_y = 2},
|
||||
{.bitmap_index = 20242, .adv_w = 336, .box_w = 21, .box_h = 14, .ofs_x = 0, .ofs_y = 2},
|
||||
{.bitmap_index = 20389, .adv_w = 480, .box_w = 31, .box_h = 19, .ofs_x = -1, .ofs_y = -1},
|
||||
{.bitmap_index = 20684, .adv_w = 384, .box_w = 24, .box_h = 18, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 20900, .adv_w = 384, .box_w = 24, .box_h = 24, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 21188, .adv_w = 384, .box_w = 25, .box_h = 25, .ofs_x = -1, .ofs_y = -3},
|
||||
{.bitmap_index = 21501, .adv_w = 336, .box_w = 22, .box_h = 22, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 21743, .adv_w = 336, .box_w = 21, .box_h = 24, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 21995, .adv_w = 336, .box_w = 21, .box_h = 22, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 22226, .adv_w = 336, .box_w = 21, .box_h = 20, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 22436, .adv_w = 384, .box_w = 24, .box_h = 18, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 22652, .adv_w = 240, .box_w = 17, .box_h = 24, .ofs_x = -1, .ofs_y = -3},
|
||||
{.bitmap_index = 22856, .adv_w = 336, .box_w = 21, .box_h = 24, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 23108, .adv_w = 336, .box_w = 21, .box_h = 24, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 23360, .adv_w = 432, .box_w = 27, .box_h = 18, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 23603, .adv_w = 384, .box_w = 26, .box_h = 26, .ofs_x = -1, .ofs_y = -4},
|
||||
{.bitmap_index = 23941, .adv_w = 288, .box_w = 18, .box_h = 24, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 24157, .adv_w = 480, .box_w = 30, .box_h = 23, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 24502, .adv_w = 480, .box_w = 30, .box_h = 16, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 24742, .adv_w = 480, .box_w = 30, .box_h = 16, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 24982, .adv_w = 480, .box_w = 30, .box_h = 16, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 25222, .adv_w = 480, .box_w = 30, .box_h = 16, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 25462, .adv_w = 480, .box_w = 30, .box_h = 16, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 25702, .adv_w = 480, .box_w = 31, .box_h = 20, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 26012, .adv_w = 336, .box_w = 19, .box_h = 24, .ofs_x = 1, .ofs_y = -3},
|
||||
{.bitmap_index = 26240, .adv_w = 336, .box_w = 21, .box_h = 24, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 26492, .adv_w = 384, .box_w = 25, .box_h = 25, .ofs_x = -1, .ofs_y = -4},
|
||||
{.bitmap_index = 26805, .adv_w = 480, .box_w = 30, .box_h = 18, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 27075, .adv_w = 288, .box_w = 18, .box_h = 24, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 27291, .adv_w = 386, .box_w = 25, .box_h = 16, .ofs_x = 0, .ofs_y = 1}
|
||||
{.bitmap_index = 11488, .adv_w = 304, .box_w = 15, .box_h = 22, .ofs_x = 2, .ofs_y = 0},
|
||||
{.bitmap_index = 11653, .adv_w = 260, .box_w = 14, .box_h = 18, .ofs_x = 2, .ofs_y = 0},
|
||||
{.bitmap_index = 11779, .adv_w = 230, .box_w = 12, .box_h = 18, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 11887, .adv_w = 230, .box_w = 12, .box_h = 18, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 11995, .adv_w = 230, .box_w = 12, .box_h = 18, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 12103, .adv_w = 219, .box_w = 12, .box_h = 19, .ofs_x = 1, .ofs_y = -6},
|
||||
{.bitmap_index = 12217, .adv_w = 235, .box_w = 13, .box_h = 18, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 12334, .adv_w = 235, .box_w = 13, .box_h = 18, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 12451, .adv_w = 235, .box_w = 13, .box_h = 18, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 12568, .adv_w = 235, .box_w = 13, .box_h = 18, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 12685, .adv_w = 107, .box_w = 9, .box_h = 18, .ofs_x = -1, .ofs_y = 0},
|
||||
{.bitmap_index = 12766, .adv_w = 107, .box_w = 7, .box_h = 18, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 12829, .adv_w = 244, .box_w = 14, .box_h = 18, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 12955, .adv_w = 260, .box_w = 13, .box_h = 18, .ofs_x = 2, .ofs_y = 0},
|
||||
{.bitmap_index = 13072, .adv_w = 260, .box_w = 13, .box_h = 18, .ofs_x = 2, .ofs_y = 0},
|
||||
{.bitmap_index = 13189, .adv_w = 410, .box_w = 24, .box_h = 13, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 13345, .adv_w = 121, .box_w = 5, .box_h = 5, .ofs_x = 1, .ofs_y = 4},
|
||||
{.bitmap_index = 13358, .adv_w = 384, .box_w = 24, .box_h = 25, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 13658, .adv_w = 384, .box_w = 24, .box_h = 18, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 13874, .adv_w = 384, .box_w = 24, .box_h = 22, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 14138, .adv_w = 384, .box_w = 24, .box_h = 18, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 14354, .adv_w = 264, .box_w = 17, .box_h = 18, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 14507, .adv_w = 384, .box_w = 24, .box_h = 24, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 14795, .adv_w = 384, .box_w = 24, .box_h = 24, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 15083, .adv_w = 432, .box_w = 27, .box_h = 22, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 15380, .adv_w = 384, .box_w = 24, .box_h = 24, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 15668, .adv_w = 432, .box_w = 27, .box_h = 18, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 15911, .adv_w = 384, .box_w = 24, .box_h = 26, .ofs_x = 0, .ofs_y = -4},
|
||||
{.bitmap_index = 16223, .adv_w = 192, .box_w = 12, .box_h = 19, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 16337, .adv_w = 288, .box_w = 18, .box_h = 19, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 16508, .adv_w = 432, .box_w = 27, .box_h = 24, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 16832, .adv_w = 384, .box_w = 24, .box_h = 18, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 17048, .adv_w = 264, .box_w = 17, .box_h = 24, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 17252, .adv_w = 336, .box_w = 15, .box_h = 22, .ofs_x = 3, .ofs_y = -2},
|
||||
{.bitmap_index = 17417, .adv_w = 336, .box_w = 21, .box_h = 26, .ofs_x = 0, .ofs_y = -4},
|
||||
{.bitmap_index = 17690, .adv_w = 336, .box_w = 21, .box_h = 22, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 17921, .adv_w = 336, .box_w = 21, .box_h = 22, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 18152, .adv_w = 336, .box_w = 15, .box_h = 22, .ofs_x = 3, .ofs_y = -2},
|
||||
{.bitmap_index = 18317, .adv_w = 336, .box_w = 23, .box_h = 22, .ofs_x = -1, .ofs_y = -2},
|
||||
{.bitmap_index = 18570, .adv_w = 240, .box_w = 13, .box_h = 22, .ofs_x = 1, .ofs_y = -2},
|
||||
{.bitmap_index = 18713, .adv_w = 240, .box_w = 13, .box_h = 22, .ofs_x = 1, .ofs_y = -2},
|
||||
{.bitmap_index = 18856, .adv_w = 336, .box_w = 21, .box_h = 22, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 19087, .adv_w = 336, .box_w = 21, .box_h = 6, .ofs_x = 0, .ofs_y = 6},
|
||||
{.bitmap_index = 19150, .adv_w = 432, .box_w = 27, .box_h = 18, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 19393, .adv_w = 480, .box_w = 31, .box_h = 24, .ofs_x = -1, .ofs_y = -3},
|
||||
{.bitmap_index = 19765, .adv_w = 432, .box_w = 29, .box_h = 24, .ofs_x = -1, .ofs_y = -3},
|
||||
{.bitmap_index = 20113, .adv_w = 384, .box_w = 24, .box_h = 22, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 20377, .adv_w = 336, .box_w = 21, .box_h = 14, .ofs_x = 0, .ofs_y = 2},
|
||||
{.bitmap_index = 20524, .adv_w = 336, .box_w = 21, .box_h = 14, .ofs_x = 0, .ofs_y = 2},
|
||||
{.bitmap_index = 20671, .adv_w = 480, .box_w = 31, .box_h = 19, .ofs_x = -1, .ofs_y = -1},
|
||||
{.bitmap_index = 20966, .adv_w = 384, .box_w = 24, .box_h = 18, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 21182, .adv_w = 384, .box_w = 24, .box_h = 24, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 21470, .adv_w = 384, .box_w = 25, .box_h = 25, .ofs_x = -1, .ofs_y = -3},
|
||||
{.bitmap_index = 21783, .adv_w = 336, .box_w = 22, .box_h = 22, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 22025, .adv_w = 336, .box_w = 21, .box_h = 24, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 22277, .adv_w = 336, .box_w = 21, .box_h = 22, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 22508, .adv_w = 336, .box_w = 21, .box_h = 20, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 22718, .adv_w = 384, .box_w = 24, .box_h = 18, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 22934, .adv_w = 240, .box_w = 17, .box_h = 24, .ofs_x = -1, .ofs_y = -3},
|
||||
{.bitmap_index = 23138, .adv_w = 336, .box_w = 21, .box_h = 24, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 23390, .adv_w = 336, .box_w = 21, .box_h = 24, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 23642, .adv_w = 432, .box_w = 27, .box_h = 18, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 23885, .adv_w = 384, .box_w = 26, .box_h = 26, .ofs_x = -1, .ofs_y = -4},
|
||||
{.bitmap_index = 24223, .adv_w = 288, .box_w = 18, .box_h = 24, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 24439, .adv_w = 480, .box_w = 30, .box_h = 23, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 24784, .adv_w = 480, .box_w = 30, .box_h = 16, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 25024, .adv_w = 480, .box_w = 30, .box_h = 16, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 25264, .adv_w = 480, .box_w = 30, .box_h = 16, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 25504, .adv_w = 480, .box_w = 30, .box_h = 16, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 25744, .adv_w = 480, .box_w = 30, .box_h = 16, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 25984, .adv_w = 480, .box_w = 31, .box_h = 20, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 26294, .adv_w = 336, .box_w = 19, .box_h = 24, .ofs_x = 1, .ofs_y = -3},
|
||||
{.bitmap_index = 26522, .adv_w = 336, .box_w = 21, .box_h = 24, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 26774, .adv_w = 384, .box_w = 25, .box_h = 25, .ofs_x = -1, .ofs_y = -4},
|
||||
{.bitmap_index = 27087, .adv_w = 480, .box_w = 30, .box_h = 18, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 27357, .adv_w = 288, .box_w = 18, .box_h = 24, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 27573, .adv_w = 386, .box_w = 25, .box_h = 16, .ofs_x = 0, .ofs_y = 1}
|
||||
};
|
||||
|
||||
/*---------------------
|
||||
@ -4088,16 +4130,17 @@ static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = {
|
||||
|
||||
static const uint16_t unicode_list_1[] = {
|
||||
0x0, 0x10, 0x14, 0x17, 0x18, 0x19, 0x1a, 0x1b,
|
||||
0x1e, 0x24, 0x26, 0x29, 0x2c, 0x2f, 0x30, 0x32,
|
||||
0x34, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3e, 0x3f,
|
||||
0x46, 0x4c, 0xa3, 0x1f72, 0xef51, 0xef58, 0xef5b, 0xef5c,
|
||||
0xef5d, 0xef61, 0xef63, 0xef65, 0xef69, 0xef6c, 0xef71, 0xef76,
|
||||
0xef77, 0xef78, 0xef8e, 0xef93, 0xef98, 0xef9b, 0xef9c, 0xef9d,
|
||||
0xefa1, 0xefa2, 0xefa3, 0xefa4, 0xefb7, 0xefb8, 0xefbe, 0xefc0,
|
||||
0xefc1, 0xefc4, 0xefc7, 0xefc8, 0xefc9, 0xefcb, 0xefe3, 0xefe5,
|
||||
0xf014, 0xf015, 0xf017, 0xf019, 0xf030, 0xf037, 0xf03a, 0xf043,
|
||||
0xf06c, 0xf074, 0xf0ab, 0xf13b, 0xf190, 0xf191, 0xf192, 0xf193,
|
||||
0xf194, 0xf1d7, 0xf1e3, 0xf23d, 0xf254, 0xf4aa, 0xf712, 0xf7f2
|
||||
0x1e, 0x24, 0x26, 0x29, 0x2b, 0x2c, 0x2f, 0x30,
|
||||
0x32, 0x34, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3e,
|
||||
0x3f, 0x46, 0x4b, 0x4c, 0xa3, 0x1f72, 0xef51, 0xef58,
|
||||
0xef5b, 0xef5c, 0xef5d, 0xef61, 0xef63, 0xef65, 0xef69, 0xef6c,
|
||||
0xef71, 0xef76, 0xef77, 0xef78, 0xef8e, 0xef93, 0xef98, 0xef9b,
|
||||
0xef9c, 0xef9d, 0xefa1, 0xefa2, 0xefa3, 0xefa4, 0xefb7, 0xefb8,
|
||||
0xefbe, 0xefc0, 0xefc1, 0xefc4, 0xefc7, 0xefc8, 0xefc9, 0xefcb,
|
||||
0xefe3, 0xefe5, 0xf014, 0xf015, 0xf017, 0xf019, 0xf030, 0xf037,
|
||||
0xf03a, 0xf043, 0xf06c, 0xf074, 0xf0ab, 0xf13b, 0xf190, 0xf191,
|
||||
0xf192, 0xf193, 0xf194, 0xf1d7, 0xf1e3, 0xf23d, 0xf254, 0xf4aa,
|
||||
0xf712, 0xf7f2
|
||||
};
|
||||
|
||||
/*Collect the unicode lists and glyph_id offsets*/
|
||||
@ -4109,7 +4152,7 @@ static const lv_font_fmt_txt_cmap_t cmaps[] =
|
||||
},
|
||||
{
|
||||
.range_start = 176, .range_length = 63475, .glyph_id_start = 96,
|
||||
.unicode_list = unicode_list_1, .glyph_id_ofs_list = NULL, .list_length = 88, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
|
||||
.unicode_list = unicode_list_1, .glyph_id_ofs_list = NULL, .list_length = 90, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
|
||||
}
|
||||
};
|
||||
|
||||
@ -4134,16 +4177,17 @@ static const uint8_t kern_left_class_mapping[] =
|
||||
46, 46, 54, 55, 56, 57, 51, 58,
|
||||
58, 59, 58, 60, 41, 0, 0, 9,
|
||||
61, 23, 23, 25, 26, 26, 26, 26,
|
||||
29, 22, 22, 30, 30, 46, 45, 45,
|
||||
45, 47, 49, 49, 49, 49, 62, 51,
|
||||
46, 51, 49, 9, 0, 0, 0, 0,
|
||||
29, 22, 22, 30, 30, 30, 46, 45,
|
||||
45, 45, 47, 49, 49, 49, 49, 62,
|
||||
51, 46, 51, 51, 49, 9, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0
|
||||
};
|
||||
|
||||
/*Map glyph_ids to kern right classes*/
|
||||
@ -4162,16 +4206,17 @@ static const uint8_t kern_right_class_mapping[] =
|
||||
39, 42, 39, 42, 43, 44, 45, 46,
|
||||
46, 47, 46, 48, 0, 0, 35, 9,
|
||||
49, 24, 24, 23, 25, 25, 25, 25,
|
||||
25, 23, 23, 28, 28, 38, 37, 37,
|
||||
37, 39, 39, 39, 39, 39, 50, 51,
|
||||
39, 45, 39, 9, 0, 0, 0, 0,
|
||||
25, 23, 23, 28, 28, 28, 38, 37,
|
||||
37, 37, 39, 39, 39, 39, 39, 50,
|
||||
51, 39, 45, 45, 39, 9, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0
|
||||
};
|
||||
|
||||
/*Kern values between classes*/
|
||||
|
@ -1,7 +1,7 @@
|
||||
/*******************************************************************************
|
||||
* Size: 28 px
|
||||
* Bpp: 4
|
||||
* Opts: --no-compress --no-prefilter --bpp 4 --size 28 --font Montserrat-Medium.ttf -r 0x20-0x7F,0xB0,0x2022,0xC0,0xC4,0xC7,0xC8,0xC9,0xCA,0xCB,0xCE,0xD4,0xD6,0xD9,0xDC,0xDF,0xE0,0xE2,0xE4,0xE7-0xEB,0xEE,0xEF,0xF6,0xFC,0x153 --font FontAwesome5-Solid+Brands+Regular.woff -r 61441,61448,61451,61452,61452,61453,61457,61459,61461,61465,61468,61473,61478,61479,61480,61502,61507,61512,61515,61516,61517,61521,61522,61523,61524,61543,61544,61550,61552,61553,61556,61559,61560,61561,61563,61587,61589,61636,61637,61639,61641,61664,61671,61674,61683,61724,61732,61787,61931,62016,62017,62018,62019,62020,62087,62099,62212,62189,62810,63426,63650 --format lvgl -o lv_font_montserrat_28.c --force-fast-kern-format
|
||||
* Opts: --no-compress --no-prefilter --bpp 4 --size 28 --font Montserrat-Medium.ttf -r 0x20-0x7F,0xB0,0x2022,0xC0,0xC4,0xC7,0xC8,0xC9,0xCA,0xCB,0xCE,0xD4,0xD6,0xD9,0xDB,0xDC,0xDF,0xE0,0xE2,0xE4,0xE7-0xEB,0xEE,0xEF,0xF6,0xFB,0xFC,0x153 --font FontAwesome5-Solid+Brands+Regular.woff -r 61441,61448,61451,61452,61452,61453,61457,61459,61461,61465,61468,61473,61478,61479,61480,61502,61507,61512,61515,61516,61517,61521,61522,61523,61524,61543,61544,61550,61552,61553,61556,61559,61560,61561,61563,61587,61589,61636,61637,61639,61641,61664,61671,61674,61683,61724,61732,61787,61931,62016,62017,62018,62019,62020,62087,62099,62212,62189,62810,63426,63650 --format lvgl -o lv_font_montserrat_28.c --force-fast-kern-format
|
||||
******************************************************************************/
|
||||
|
||||
#ifdef LV_LVGL_H_INCLUDE_SIMPLE
|
||||
@ -2188,6 +2188,37 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
|
||||
0x0, 0x0, 0x6, 0xae, 0xff, 0xeb, 0x60, 0x0,
|
||||
0x0,
|
||||
|
||||
/* U+00DB "Û" */
|
||||
0x0, 0x0, 0x0, 0xb, 0xff, 0xd1, 0x0, 0x0,
|
||||
0x0, 0x0, 0x0, 0x0, 0xbf, 0xdb, 0xfd, 0x10,
|
||||
0x0, 0x0, 0x0, 0x0, 0x1c, 0xfb, 0x0, 0x9f,
|
||||
0xe2, 0x0, 0x0, 0x0, 0x0, 0x58, 0x60, 0x0,
|
||||
0x5, 0x86, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
||||
0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, 0xf9, 0x0,
|
||||
0x0, 0x0, 0x0, 0x0, 0x6f, 0xf5, 0x3f, 0xf9,
|
||||
0x0, 0x0, 0x0, 0x0, 0x0, 0x6f, 0xf5, 0x3f,
|
||||
0xf9, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6f, 0xf5,
|
||||
0x3f, 0xf9, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6f,
|
||||
0xf5, 0x3f, 0xf9, 0x0, 0x0, 0x0, 0x0, 0x0,
|
||||
0x6f, 0xf5, 0x3f, 0xf9, 0x0, 0x0, 0x0, 0x0,
|
||||
0x0, 0x6f, 0xf5, 0x3f, 0xf9, 0x0, 0x0, 0x0,
|
||||
0x0, 0x0, 0x6f, 0xf5, 0x3f, 0xf9, 0x0, 0x0,
|
||||
0x0, 0x0, 0x0, 0x6f, 0xf5, 0x3f, 0xf9, 0x0,
|
||||
0x0, 0x0, 0x0, 0x0, 0x6f, 0xf5, 0x3f, 0xf9,
|
||||
0x0, 0x0, 0x0, 0x0, 0x0, 0x6f, 0xf5, 0x3f,
|
||||
0xf9, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6f, 0xf5,
|
||||
0x3f, 0xf9, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6f,
|
||||
0xf5, 0x2f, 0xfa, 0x0, 0x0, 0x0, 0x0, 0x0,
|
||||
0x7f, 0xf4, 0xf, 0xfd, 0x0, 0x0, 0x0, 0x0,
|
||||
0x0, 0xaf, 0xf2, 0xc, 0xff, 0x20, 0x0, 0x0,
|
||||
0x0, 0x0, 0xef, 0xe0, 0x7, 0xff, 0xa0, 0x0,
|
||||
0x0, 0x0, 0x7, 0xff, 0x90, 0x0, 0xef, 0xf9,
|
||||
0x0, 0x0, 0x0, 0x7f, 0xff, 0x20, 0x0, 0x4f,
|
||||
0xff, 0xea, 0x88, 0xae, 0xff, 0xf5, 0x0, 0x0,
|
||||
0x3, 0xef, 0xff, 0xff, 0xff, 0xfe, 0x40, 0x0,
|
||||
0x0, 0x0, 0x6, 0xae, 0xff, 0xeb, 0x60, 0x0,
|
||||
0x0,
|
||||
|
||||
/* U+00DC "Ü" */
|
||||
0x0, 0x0, 0x6, 0xd6, 0x0, 0x4d, 0x80, 0x0,
|
||||
0x0, 0x0, 0x0, 0xe, 0xfd, 0x0, 0xbf, 0xf1,
|
||||
@ -2467,6 +2498,28 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
|
||||
0x0, 0x1b, 0xff, 0xff, 0xff, 0xff, 0x80, 0x0,
|
||||
0x0, 0x0, 0x4a, 0xdf, 0xed, 0x92, 0x0, 0x0,
|
||||
|
||||
/* U+00FB "û" */
|
||||
0x0, 0x0, 0x6, 0xff, 0xf3, 0x0, 0x0, 0x0,
|
||||
0x0, 0x5, 0xff, 0xcf, 0xf3, 0x0, 0x0, 0x0,
|
||||
0x5, 0xff, 0x50, 0x7f, 0xf3, 0x0, 0x0, 0x2,
|
||||
0xcc, 0x30, 0x0, 0x5c, 0xb1, 0x0, 0x0, 0x0,
|
||||
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
||||
0x0, 0x0, 0x0, 0x0, 0x0, 0x9f, 0xf1, 0x0,
|
||||
0x0, 0x0, 0x5, 0xff, 0x69, 0xff, 0x10, 0x0,
|
||||
0x0, 0x0, 0x5f, 0xf6, 0x9f, 0xf1, 0x0, 0x0,
|
||||
0x0, 0x5, 0xff, 0x69, 0xff, 0x10, 0x0, 0x0,
|
||||
0x0, 0x5f, 0xf6, 0x9f, 0xf1, 0x0, 0x0, 0x0,
|
||||
0x5, 0xff, 0x69, 0xff, 0x10, 0x0, 0x0, 0x0,
|
||||
0x5f, 0xf6, 0x9f, 0xf1, 0x0, 0x0, 0x0, 0x5,
|
||||
0xff, 0x69, 0xff, 0x10, 0x0, 0x0, 0x0, 0x5f,
|
||||
0xf6, 0x9f, 0xf1, 0x0, 0x0, 0x0, 0x5, 0xff,
|
||||
0x68, 0xff, 0x30, 0x0, 0x0, 0x0, 0x8f, 0xf6,
|
||||
0x5f, 0xf7, 0x0, 0x0, 0x0, 0xe, 0xff, 0x61,
|
||||
0xff, 0xe2, 0x0, 0x0, 0xa, 0xff, 0xf6, 0x8,
|
||||
0xff, 0xe8, 0x44, 0x6d, 0xff, 0xff, 0x60, 0xa,
|
||||
0xff, 0xff, 0xff, 0xfe, 0x5f, 0xf6, 0x0, 0x4,
|
||||
0xae, 0xfe, 0xc7, 0x2, 0xff, 0x60,
|
||||
|
||||
/* U+00FC "ü" */
|
||||
0x0, 0x3, 0xeb, 0x0, 0x1d, 0xd1, 0x0, 0x0,
|
||||
0x0, 0x9f, 0xf2, 0x6, 0xff, 0x60, 0x0, 0x0,
|
||||
@ -5245,81 +5298,83 @@ static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = {
|
||||
{.bitmap_index = 14784, .adv_w = 376, .box_w = 22, .box_h = 25, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 15059, .adv_w = 354, .box_w = 18, .box_h = 25, .ofs_x = 2, .ofs_y = 0},
|
||||
{.bitmap_index = 15284, .adv_w = 354, .box_w = 18, .box_h = 25, .ofs_x = 2, .ofs_y = 0},
|
||||
{.bitmap_index = 15509, .adv_w = 303, .box_w = 16, .box_h = 21, .ofs_x = 2, .ofs_y = 0},
|
||||
{.bitmap_index = 15677, .adv_w = 268, .box_w = 14, .box_h = 21, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 15824, .adv_w = 268, .box_w = 14, .box_h = 21, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 15971, .adv_w = 268, .box_w = 14, .box_h = 21, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 16118, .adv_w = 256, .box_w = 15, .box_h = 21, .ofs_x = 1, .ofs_y = -6},
|
||||
{.bitmap_index = 16276, .adv_w = 274, .box_w = 15, .box_h = 21, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 16434, .adv_w = 274, .box_w = 15, .box_h = 21, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 16592, .adv_w = 274, .box_w = 15, .box_h = 21, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 16750, .adv_w = 274, .box_w = 15, .box_h = 21, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 16908, .adv_w = 125, .box_w = 10, .box_h = 21, .ofs_x = -1, .ofs_y = 0},
|
||||
{.bitmap_index = 17013, .adv_w = 125, .box_w = 8, .box_h = 21, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 17097, .adv_w = 284, .box_w = 16, .box_h = 21, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 17265, .adv_w = 303, .box_w = 15, .box_h = 21, .ofs_x = 2, .ofs_y = 0},
|
||||
{.bitmap_index = 17423, .adv_w = 478, .box_w = 28, .box_h = 15, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 17633, .adv_w = 141, .box_w = 6, .box_h = 6, .ofs_x = 1, .ofs_y = 5},
|
||||
{.bitmap_index = 17651, .adv_w = 448, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
|
||||
{.bitmap_index = 18057, .adv_w = 448, .box_w = 28, .box_h = 21, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 18351, .adv_w = 448, .box_w = 28, .box_h = 25, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 18701, .adv_w = 448, .box_w = 28, .box_h = 21, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 18995, .adv_w = 308, .box_w = 20, .box_h = 21, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 19205, .adv_w = 448, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
|
||||
{.bitmap_index = 19611, .adv_w = 448, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
|
||||
{.bitmap_index = 20003, .adv_w = 504, .box_w = 32, .box_h = 25, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 20403, .adv_w = 448, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
|
||||
{.bitmap_index = 20809, .adv_w = 504, .box_w = 32, .box_h = 21, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 21145, .adv_w = 448, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
|
||||
{.bitmap_index = 21551, .adv_w = 224, .box_w = 14, .box_h = 23, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 21712, .adv_w = 336, .box_w = 21, .box_h = 23, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 21954, .adv_w = 504, .box_w = 32, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 22386, .adv_w = 448, .box_w = 28, .box_h = 21, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 22680, .adv_w = 308, .box_w = 20, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
|
||||
{.bitmap_index = 22970, .adv_w = 392, .box_w = 18, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
|
||||
{.bitmap_index = 23204, .adv_w = 392, .box_w = 25, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
|
||||
{.bitmap_index = 23567, .adv_w = 392, .box_w = 25, .box_h = 25, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 23880, .adv_w = 392, .box_w = 25, .box_h = 25, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 24193, .adv_w = 392, .box_w = 18, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
|
||||
{.bitmap_index = 24427, .adv_w = 392, .box_w = 26, .box_h = 25, .ofs_x = -1, .ofs_y = -2},
|
||||
{.bitmap_index = 24752, .adv_w = 280, .box_w = 16, .box_h = 25, .ofs_x = 1, .ofs_y = -2},
|
||||
{.bitmap_index = 24952, .adv_w = 280, .box_w = 16, .box_h = 25, .ofs_x = 1, .ofs_y = -2},
|
||||
{.bitmap_index = 25152, .adv_w = 392, .box_w = 25, .box_h = 25, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 25465, .adv_w = 392, .box_w = 25, .box_h = 7, .ofs_x = 0, .ofs_y = 7},
|
||||
{.bitmap_index = 25553, .adv_w = 504, .box_w = 32, .box_h = 21, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 25889, .adv_w = 560, .box_w = 35, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
|
||||
{.bitmap_index = 26397, .adv_w = 504, .box_w = 33, .box_h = 29, .ofs_x = -1, .ofs_y = -4},
|
||||
{.bitmap_index = 26876, .adv_w = 448, .box_w = 28, .box_h = 25, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 27226, .adv_w = 392, .box_w = 25, .box_h = 15, .ofs_x = 0, .ofs_y = 3},
|
||||
{.bitmap_index = 27414, .adv_w = 392, .box_w = 25, .box_h = 15, .ofs_x = 0, .ofs_y = 3},
|
||||
{.bitmap_index = 27602, .adv_w = 560, .box_w = 35, .box_h = 22, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 27987, .adv_w = 448, .box_w = 28, .box_h = 21, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 28281, .adv_w = 448, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
|
||||
{.bitmap_index = 28687, .adv_w = 448, .box_w = 29, .box_h = 29, .ofs_x = -1, .ofs_y = -4},
|
||||
{.bitmap_index = 29108, .adv_w = 392, .box_w = 25, .box_h = 25, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 29421, .adv_w = 392, .box_w = 25, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
|
||||
{.bitmap_index = 29784, .adv_w = 392, .box_w = 25, .box_h = 25, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 30097, .adv_w = 392, .box_w = 25, .box_h = 23, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 30385, .adv_w = 448, .box_w = 28, .box_h = 21, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 30679, .adv_w = 280, .box_w = 19, .box_h = 29, .ofs_x = -1, .ofs_y = -4},
|
||||
{.bitmap_index = 30955, .adv_w = 392, .box_w = 25, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
|
||||
{.bitmap_index = 31318, .adv_w = 392, .box_w = 25, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
|
||||
{.bitmap_index = 31681, .adv_w = 504, .box_w = 32, .box_h = 21, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 32017, .adv_w = 448, .box_w = 30, .box_h = 29, .ofs_x = -1, .ofs_y = -4},
|
||||
{.bitmap_index = 32452, .adv_w = 336, .box_w = 21, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
|
||||
{.bitmap_index = 32757, .adv_w = 560, .box_w = 35, .box_h = 26, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 33212, .adv_w = 560, .box_w = 35, .box_h = 19, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 33545, .adv_w = 560, .box_w = 35, .box_h = 19, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 33878, .adv_w = 560, .box_w = 35, .box_h = 19, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 34211, .adv_w = 560, .box_w = 35, .box_h = 19, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 34544, .adv_w = 560, .box_w = 35, .box_h = 19, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 34877, .adv_w = 560, .box_w = 36, .box_h = 23, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 35291, .adv_w = 392, .box_w = 22, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
|
||||
{.bitmap_index = 35610, .adv_w = 392, .box_w = 25, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
|
||||
{.bitmap_index = 35973, .adv_w = 448, .box_w = 29, .box_h = 29, .ofs_x = -1, .ofs_y = -4},
|
||||
{.bitmap_index = 36394, .adv_w = 560, .box_w = 35, .box_h = 21, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 36762, .adv_w = 336, .box_w = 21, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
|
||||
{.bitmap_index = 37067, .adv_w = 451, .box_w = 29, .box_h = 19, .ofs_x = 0, .ofs_y = 1}
|
||||
{.bitmap_index = 15509, .adv_w = 354, .box_w = 18, .box_h = 25, .ofs_x = 2, .ofs_y = 0},
|
||||
{.bitmap_index = 15734, .adv_w = 303, .box_w = 16, .box_h = 21, .ofs_x = 2, .ofs_y = 0},
|
||||
{.bitmap_index = 15902, .adv_w = 268, .box_w = 14, .box_h = 21, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 16049, .adv_w = 268, .box_w = 14, .box_h = 21, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 16196, .adv_w = 268, .box_w = 14, .box_h = 21, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 16343, .adv_w = 256, .box_w = 15, .box_h = 21, .ofs_x = 1, .ofs_y = -6},
|
||||
{.bitmap_index = 16501, .adv_w = 274, .box_w = 15, .box_h = 21, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 16659, .adv_w = 274, .box_w = 15, .box_h = 21, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 16817, .adv_w = 274, .box_w = 15, .box_h = 21, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 16975, .adv_w = 274, .box_w = 15, .box_h = 21, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 17133, .adv_w = 125, .box_w = 10, .box_h = 21, .ofs_x = -1, .ofs_y = 0},
|
||||
{.bitmap_index = 17238, .adv_w = 125, .box_w = 8, .box_h = 21, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 17322, .adv_w = 284, .box_w = 16, .box_h = 21, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 17490, .adv_w = 303, .box_w = 15, .box_h = 21, .ofs_x = 2, .ofs_y = 0},
|
||||
{.bitmap_index = 17648, .adv_w = 303, .box_w = 15, .box_h = 21, .ofs_x = 2, .ofs_y = 0},
|
||||
{.bitmap_index = 17806, .adv_w = 478, .box_w = 28, .box_h = 15, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 18016, .adv_w = 141, .box_w = 6, .box_h = 6, .ofs_x = 1, .ofs_y = 5},
|
||||
{.bitmap_index = 18034, .adv_w = 448, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
|
||||
{.bitmap_index = 18440, .adv_w = 448, .box_w = 28, .box_h = 21, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 18734, .adv_w = 448, .box_w = 28, .box_h = 25, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 19084, .adv_w = 448, .box_w = 28, .box_h = 21, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 19378, .adv_w = 308, .box_w = 20, .box_h = 21, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 19588, .adv_w = 448, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
|
||||
{.bitmap_index = 19994, .adv_w = 448, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
|
||||
{.bitmap_index = 20386, .adv_w = 504, .box_w = 32, .box_h = 25, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 20786, .adv_w = 448, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
|
||||
{.bitmap_index = 21192, .adv_w = 504, .box_w = 32, .box_h = 21, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 21528, .adv_w = 448, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
|
||||
{.bitmap_index = 21934, .adv_w = 224, .box_w = 14, .box_h = 23, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 22095, .adv_w = 336, .box_w = 21, .box_h = 23, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 22337, .adv_w = 504, .box_w = 32, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 22769, .adv_w = 448, .box_w = 28, .box_h = 21, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 23063, .adv_w = 308, .box_w = 20, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
|
||||
{.bitmap_index = 23353, .adv_w = 392, .box_w = 18, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
|
||||
{.bitmap_index = 23587, .adv_w = 392, .box_w = 25, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
|
||||
{.bitmap_index = 23950, .adv_w = 392, .box_w = 25, .box_h = 25, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 24263, .adv_w = 392, .box_w = 25, .box_h = 25, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 24576, .adv_w = 392, .box_w = 18, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
|
||||
{.bitmap_index = 24810, .adv_w = 392, .box_w = 26, .box_h = 25, .ofs_x = -1, .ofs_y = -2},
|
||||
{.bitmap_index = 25135, .adv_w = 280, .box_w = 16, .box_h = 25, .ofs_x = 1, .ofs_y = -2},
|
||||
{.bitmap_index = 25335, .adv_w = 280, .box_w = 16, .box_h = 25, .ofs_x = 1, .ofs_y = -2},
|
||||
{.bitmap_index = 25535, .adv_w = 392, .box_w = 25, .box_h = 25, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 25848, .adv_w = 392, .box_w = 25, .box_h = 7, .ofs_x = 0, .ofs_y = 7},
|
||||
{.bitmap_index = 25936, .adv_w = 504, .box_w = 32, .box_h = 21, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 26272, .adv_w = 560, .box_w = 35, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
|
||||
{.bitmap_index = 26780, .adv_w = 504, .box_w = 33, .box_h = 29, .ofs_x = -1, .ofs_y = -4},
|
||||
{.bitmap_index = 27259, .adv_w = 448, .box_w = 28, .box_h = 25, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 27609, .adv_w = 392, .box_w = 25, .box_h = 15, .ofs_x = 0, .ofs_y = 3},
|
||||
{.bitmap_index = 27797, .adv_w = 392, .box_w = 25, .box_h = 15, .ofs_x = 0, .ofs_y = 3},
|
||||
{.bitmap_index = 27985, .adv_w = 560, .box_w = 35, .box_h = 22, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 28370, .adv_w = 448, .box_w = 28, .box_h = 21, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 28664, .adv_w = 448, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
|
||||
{.bitmap_index = 29070, .adv_w = 448, .box_w = 29, .box_h = 29, .ofs_x = -1, .ofs_y = -4},
|
||||
{.bitmap_index = 29491, .adv_w = 392, .box_w = 25, .box_h = 25, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 29804, .adv_w = 392, .box_w = 25, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
|
||||
{.bitmap_index = 30167, .adv_w = 392, .box_w = 25, .box_h = 25, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 30480, .adv_w = 392, .box_w = 25, .box_h = 23, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 30768, .adv_w = 448, .box_w = 28, .box_h = 21, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 31062, .adv_w = 280, .box_w = 19, .box_h = 29, .ofs_x = -1, .ofs_y = -4},
|
||||
{.bitmap_index = 31338, .adv_w = 392, .box_w = 25, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
|
||||
{.bitmap_index = 31701, .adv_w = 392, .box_w = 25, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
|
||||
{.bitmap_index = 32064, .adv_w = 504, .box_w = 32, .box_h = 21, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 32400, .adv_w = 448, .box_w = 30, .box_h = 29, .ofs_x = -1, .ofs_y = -4},
|
||||
{.bitmap_index = 32835, .adv_w = 336, .box_w = 21, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
|
||||
{.bitmap_index = 33140, .adv_w = 560, .box_w = 35, .box_h = 26, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 33595, .adv_w = 560, .box_w = 35, .box_h = 19, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 33928, .adv_w = 560, .box_w = 35, .box_h = 19, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 34261, .adv_w = 560, .box_w = 35, .box_h = 19, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 34594, .adv_w = 560, .box_w = 35, .box_h = 19, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 34927, .adv_w = 560, .box_w = 35, .box_h = 19, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 35260, .adv_w = 560, .box_w = 36, .box_h = 23, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 35674, .adv_w = 392, .box_w = 22, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
|
||||
{.bitmap_index = 35993, .adv_w = 392, .box_w = 25, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
|
||||
{.bitmap_index = 36356, .adv_w = 448, .box_w = 29, .box_h = 29, .ofs_x = -1, .ofs_y = -4},
|
||||
{.bitmap_index = 36777, .adv_w = 560, .box_w = 35, .box_h = 21, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 37145, .adv_w = 336, .box_w = 21, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
|
||||
{.bitmap_index = 37450, .adv_w = 451, .box_w = 29, .box_h = 19, .ofs_x = 0, .ofs_y = 1}
|
||||
};
|
||||
|
||||
/*---------------------
|
||||
@ -5328,16 +5383,17 @@ static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = {
|
||||
|
||||
static const uint16_t unicode_list_1[] = {
|
||||
0x0, 0x10, 0x14, 0x17, 0x18, 0x19, 0x1a, 0x1b,
|
||||
0x1e, 0x24, 0x26, 0x29, 0x2c, 0x2f, 0x30, 0x32,
|
||||
0x34, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3e, 0x3f,
|
||||
0x46, 0x4c, 0xa3, 0x1f72, 0xef51, 0xef58, 0xef5b, 0xef5c,
|
||||
0xef5d, 0xef61, 0xef63, 0xef65, 0xef69, 0xef6c, 0xef71, 0xef76,
|
||||
0xef77, 0xef78, 0xef8e, 0xef93, 0xef98, 0xef9b, 0xef9c, 0xef9d,
|
||||
0xefa1, 0xefa2, 0xefa3, 0xefa4, 0xefb7, 0xefb8, 0xefbe, 0xefc0,
|
||||
0xefc1, 0xefc4, 0xefc7, 0xefc8, 0xefc9, 0xefcb, 0xefe3, 0xefe5,
|
||||
0xf014, 0xf015, 0xf017, 0xf019, 0xf030, 0xf037, 0xf03a, 0xf043,
|
||||
0xf06c, 0xf074, 0xf0ab, 0xf13b, 0xf190, 0xf191, 0xf192, 0xf193,
|
||||
0xf194, 0xf1d7, 0xf1e3, 0xf23d, 0xf254, 0xf4aa, 0xf712, 0xf7f2
|
||||
0x1e, 0x24, 0x26, 0x29, 0x2b, 0x2c, 0x2f, 0x30,
|
||||
0x32, 0x34, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3e,
|
||||
0x3f, 0x46, 0x4b, 0x4c, 0xa3, 0x1f72, 0xef51, 0xef58,
|
||||
0xef5b, 0xef5c, 0xef5d, 0xef61, 0xef63, 0xef65, 0xef69, 0xef6c,
|
||||
0xef71, 0xef76, 0xef77, 0xef78, 0xef8e, 0xef93, 0xef98, 0xef9b,
|
||||
0xef9c, 0xef9d, 0xefa1, 0xefa2, 0xefa3, 0xefa4, 0xefb7, 0xefb8,
|
||||
0xefbe, 0xefc0, 0xefc1, 0xefc4, 0xefc7, 0xefc8, 0xefc9, 0xefcb,
|
||||
0xefe3, 0xefe5, 0xf014, 0xf015, 0xf017, 0xf019, 0xf030, 0xf037,
|
||||
0xf03a, 0xf043, 0xf06c, 0xf074, 0xf0ab, 0xf13b, 0xf190, 0xf191,
|
||||
0xf192, 0xf193, 0xf194, 0xf1d7, 0xf1e3, 0xf23d, 0xf254, 0xf4aa,
|
||||
0xf712, 0xf7f2
|
||||
};
|
||||
|
||||
/*Collect the unicode lists and glyph_id offsets*/
|
||||
@ -5349,7 +5405,7 @@ static const lv_font_fmt_txt_cmap_t cmaps[] =
|
||||
},
|
||||
{
|
||||
.range_start = 176, .range_length = 63475, .glyph_id_start = 96,
|
||||
.unicode_list = unicode_list_1, .glyph_id_ofs_list = NULL, .list_length = 88, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
|
||||
.unicode_list = unicode_list_1, .glyph_id_ofs_list = NULL, .list_length = 90, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
|
||||
}
|
||||
};
|
||||
|
||||
@ -5374,16 +5430,17 @@ static const uint8_t kern_left_class_mapping[] =
|
||||
46, 46, 54, 55, 56, 57, 51, 58,
|
||||
58, 59, 58, 60, 41, 0, 0, 9,
|
||||
61, 23, 23, 25, 26, 26, 26, 26,
|
||||
29, 22, 22, 30, 30, 46, 45, 45,
|
||||
45, 47, 49, 49, 49, 49, 62, 51,
|
||||
46, 51, 49, 9, 0, 0, 0, 0,
|
||||
29, 22, 22, 30, 30, 30, 46, 45,
|
||||
45, 45, 47, 49, 49, 49, 49, 62,
|
||||
51, 46, 51, 51, 49, 9, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0
|
||||
};
|
||||
|
||||
/*Map glyph_ids to kern right classes*/
|
||||
@ -5402,16 +5459,17 @@ static const uint8_t kern_right_class_mapping[] =
|
||||
39, 42, 39, 42, 43, 44, 45, 46,
|
||||
46, 47, 46, 48, 0, 0, 35, 9,
|
||||
49, 24, 24, 23, 25, 25, 25, 25,
|
||||
25, 23, 23, 28, 28, 38, 37, 37,
|
||||
37, 39, 39, 39, 39, 39, 50, 51,
|
||||
39, 45, 39, 9, 0, 0, 0, 0,
|
||||
25, 23, 23, 28, 28, 28, 38, 37,
|
||||
37, 37, 39, 39, 39, 39, 39, 50,
|
||||
51, 39, 45, 45, 39, 9, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0
|
||||
};
|
||||
|
||||
/*Kern values between classes*/
|
||||
|
@ -1,7 +1,7 @@
|
||||
/*******************************************************************************
|
||||
* Size: 30 px
|
||||
* Bpp: 4
|
||||
* Opts: --no-compress --no-prefilter --bpp 4 --size 30 --font Montserrat-Medium.ttf -r 0x20-0x7F,0xB0,0x2022,0xC0,0xC4,0xC7,0xC8,0xC9,0xCA,0xCB,0xCE,0xD4,0xD6,0xD9,0xDC,0xDF,0xE0,0xE2,0xE4,0xE7-0xEB,0xEE,0xEF,0xF6,0xFC,0x153 --font FontAwesome5-Solid+Brands+Regular.woff -r 61441,61448,61451,61452,61452,61453,61457,61459,61461,61465,61468,61473,61478,61479,61480,61502,61507,61512,61515,61516,61517,61521,61522,61523,61524,61543,61544,61550,61552,61553,61556,61559,61560,61561,61563,61587,61589,61636,61637,61639,61641,61664,61671,61674,61683,61724,61732,61787,61931,62016,62017,62018,62019,62020,62087,62099,62212,62189,62810,63426,63650 --format lvgl -o lv_font_montserrat_30.c --force-fast-kern-format
|
||||
* Opts: --no-compress --no-prefilter --bpp 4 --size 30 --font Montserrat-Medium.ttf -r 0x20-0x7F,0xB0,0x2022,0xC0,0xC4,0xC7,0xC8,0xC9,0xCA,0xCB,0xCE,0xD4,0xD6,0xD9,0xDB,0xDC,0xDF,0xE0,0xE2,0xE4,0xE7-0xEB,0xEE,0xEF,0xF6,0xFB,0xFC,0x153 --font FontAwesome5-Solid+Brands+Regular.woff -r 61441,61448,61451,61452,61452,61453,61457,61459,61461,61465,61468,61473,61478,61479,61480,61502,61507,61512,61515,61516,61517,61521,61522,61523,61524,61543,61544,61550,61552,61553,61556,61559,61560,61561,61563,61587,61589,61636,61637,61639,61641,61664,61671,61674,61683,61724,61732,61787,61931,62016,62017,62018,62019,62020,62087,62099,62212,62189,62810,63426,63650 --format lvgl -o lv_font_montserrat_30.c --force-fast-kern-format
|
||||
******************************************************************************/
|
||||
|
||||
#ifdef LV_LVGL_H_INCLUDE_SIMPLE
|
||||
@ -2416,6 +2416,41 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
|
||||
0x0, 0x2, 0x8c, 0xef, 0xfe, 0xa6, 0x0, 0x0,
|
||||
0x0,
|
||||
|
||||
/* U+00DB "Û" */
|
||||
0x0, 0x0, 0x0, 0x1, 0xdf, 0xfb, 0x0, 0x0,
|
||||
0x0, 0x0, 0x0, 0x0, 0x1, 0xdf, 0xef, 0xfb,
|
||||
0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xdf, 0xc1,
|
||||
0x3e, 0xfb, 0x0, 0x0, 0x0, 0x0, 0x1, 0xdf,
|
||||
0xa0, 0x0, 0x1d, 0xfb, 0x0, 0x0, 0x0, 0x0,
|
||||
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
||||
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
||||
0x0, 0xf, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0,
|
||||
0x3, 0xff, 0xb0, 0xff, 0xf0, 0x0, 0x0, 0x0,
|
||||
0x0, 0x0, 0x3f, 0xfb, 0xf, 0xff, 0x0, 0x0,
|
||||
0x0, 0x0, 0x0, 0x3, 0xff, 0xb0, 0xff, 0xf0,
|
||||
0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, 0xfb, 0xf,
|
||||
0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xff,
|
||||
0xb0, 0xff, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
||||
0x3f, 0xfb, 0xf, 0xff, 0x0, 0x0, 0x0, 0x0,
|
||||
0x0, 0x3, 0xff, 0xb0, 0xff, 0xf0, 0x0, 0x0,
|
||||
0x0, 0x0, 0x0, 0x3f, 0xfb, 0xf, 0xff, 0x0,
|
||||
0x0, 0x0, 0x0, 0x0, 0x3, 0xff, 0xb0, 0xff,
|
||||
0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, 0xfb,
|
||||
0xf, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3,
|
||||
0xff, 0xb0, 0xff, 0xf0, 0x0, 0x0, 0x0, 0x0,
|
||||
0x0, 0x3f, 0xfb, 0xf, 0xff, 0x0, 0x0, 0x0,
|
||||
0x0, 0x0, 0x3, 0xff, 0xa0, 0xef, 0xf1, 0x0,
|
||||
0x0, 0x0, 0x0, 0x0, 0x5f, 0xf9, 0xb, 0xff,
|
||||
0x50, 0x0, 0x0, 0x0, 0x0, 0x8, 0xff, 0x70,
|
||||
0x7f, 0xfb, 0x0, 0x0, 0x0, 0x0, 0x0, 0xef,
|
||||
0xf3, 0x1, 0xff, 0xf5, 0x0, 0x0, 0x0, 0x0,
|
||||
0x9f, 0xfc, 0x0, 0x8, 0xff, 0xf7, 0x0, 0x0,
|
||||
0x2, 0xaf, 0xff, 0x40, 0x0, 0xb, 0xff, 0xff,
|
||||
0xca, 0xbd, 0xff, 0xff, 0x70, 0x0, 0x0, 0x8,
|
||||
0xff, 0xff, 0xff, 0xff, 0xfe, 0x50, 0x0, 0x0,
|
||||
0x0, 0x2, 0x8c, 0xef, 0xfe, 0xa6, 0x0, 0x0,
|
||||
0x0,
|
||||
|
||||
/* U+00DC "Ü" */
|
||||
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
||||
0x0, 0x0, 0x0, 0x0, 0x1e, 0xf3, 0x0, 0x7f,
|
||||
@ -2730,6 +2765,30 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
|
||||
0xf7, 0x0, 0x0, 0x0, 0x1, 0x7c, 0xef, 0xfc,
|
||||
0x81, 0x0, 0x0,
|
||||
|
||||
/* U+00FB "û" */
|
||||
0x0, 0x0, 0x0, 0xcf, 0xfd, 0x10, 0x0, 0x0,
|
||||
0x0, 0x0, 0x1c, 0xfe, 0xdf, 0xe2, 0x0, 0x0,
|
||||
0x0, 0x1, 0xdf, 0xc1, 0xa, 0xfe, 0x30, 0x0,
|
||||
0x0, 0xa, 0xc9, 0x0, 0x0, 0x7c, 0xb1, 0x0,
|
||||
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
||||
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
||||
0x6f, 0xf7, 0x0, 0x0, 0x0, 0x0, 0x5f, 0xf8,
|
||||
0x6f, 0xf7, 0x0, 0x0, 0x0, 0x0, 0x5f, 0xf8,
|
||||
0x6f, 0xf7, 0x0, 0x0, 0x0, 0x0, 0x5f, 0xf8,
|
||||
0x6f, 0xf7, 0x0, 0x0, 0x0, 0x0, 0x5f, 0xf8,
|
||||
0x6f, 0xf7, 0x0, 0x0, 0x0, 0x0, 0x5f, 0xf8,
|
||||
0x6f, 0xf7, 0x0, 0x0, 0x0, 0x0, 0x5f, 0xf8,
|
||||
0x6f, 0xf7, 0x0, 0x0, 0x0, 0x0, 0x5f, 0xf8,
|
||||
0x6f, 0xf7, 0x0, 0x0, 0x0, 0x0, 0x5f, 0xf8,
|
||||
0x6f, 0xf7, 0x0, 0x0, 0x0, 0x0, 0x5f, 0xf8,
|
||||
0x6f, 0xf7, 0x0, 0x0, 0x0, 0x0, 0x7f, 0xf8,
|
||||
0x5f, 0xfa, 0x0, 0x0, 0x0, 0x0, 0xaf, 0xf8,
|
||||
0x1f, 0xfe, 0x0, 0x0, 0x0, 0x2, 0xff, 0xf8,
|
||||
0xc, 0xff, 0xa0, 0x0, 0x0, 0x2d, 0xff, 0xf8,
|
||||
0x3, 0xff, 0xfe, 0x86, 0x7a, 0xff, 0xef, 0xf8,
|
||||
0x0, 0x5f, 0xff, 0xff, 0xff, 0xfc, 0x4f, 0xf8,
|
||||
0x0, 0x1, 0x8c, 0xff, 0xeb, 0x50, 0x3f, 0xf8,
|
||||
|
||||
/* U+00FC "ü" */
|
||||
0x0, 0x0, 0xbf, 0x50, 0x3, 0xec, 0x10, 0x0,
|
||||
0x0, 0x3, 0xff, 0xc0, 0x9, 0xff, 0x50, 0x0,
|
||||
@ -5902,81 +5961,83 @@ static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = {
|
||||
{.bitmap_index = 16591, .adv_w = 403, .box_w = 23, .box_h = 27, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 16902, .adv_w = 380, .box_w = 19, .box_h = 27, .ofs_x = 2, .ofs_y = 0},
|
||||
{.bitmap_index = 17159, .adv_w = 380, .box_w = 19, .box_h = 27, .ofs_x = 2, .ofs_y = 0},
|
||||
{.bitmap_index = 17416, .adv_w = 324, .box_w = 17, .box_h = 22, .ofs_x = 2, .ofs_y = 0},
|
||||
{.bitmap_index = 17603, .adv_w = 287, .box_w = 15, .box_h = 22, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 17768, .adv_w = 287, .box_w = 15, .box_h = 22, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 17933, .adv_w = 287, .box_w = 15, .box_h = 22, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 18098, .adv_w = 274, .box_w = 16, .box_h = 23, .ofs_x = 1, .ofs_y = -7},
|
||||
{.bitmap_index = 18282, .adv_w = 294, .box_w = 17, .box_h = 22, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 18469, .adv_w = 294, .box_w = 17, .box_h = 22, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 18656, .adv_w = 294, .box_w = 17, .box_h = 22, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 18843, .adv_w = 294, .box_w = 17, .box_h = 22, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 19030, .adv_w = 134, .box_w = 10, .box_h = 22, .ofs_x = -1, .ofs_y = 0},
|
||||
{.bitmap_index = 19140, .adv_w = 134, .box_w = 8, .box_h = 22, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 19228, .adv_w = 305, .box_w = 17, .box_h = 22, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 19415, .adv_w = 325, .box_w = 16, .box_h = 22, .ofs_x = 2, .ofs_y = 0},
|
||||
{.bitmap_index = 19591, .adv_w = 512, .box_w = 30, .box_h = 16, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 19831, .adv_w = 151, .box_w = 7, .box_h = 6, .ofs_x = 1, .ofs_y = 6},
|
||||
{.bitmap_index = 19852, .adv_w = 480, .box_w = 31, .box_h = 31, .ofs_x = -1, .ofs_y = -4},
|
||||
{.bitmap_index = 20333, .adv_w = 480, .box_w = 30, .box_h = 23, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 20678, .adv_w = 480, .box_w = 30, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 21083, .adv_w = 480, .box_w = 30, .box_h = 23, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 21428, .adv_w = 330, .box_w = 21, .box_h = 22, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 21659, .adv_w = 480, .box_w = 30, .box_h = 31, .ofs_x = 0, .ofs_y = -4},
|
||||
{.bitmap_index = 22124, .adv_w = 480, .box_w = 30, .box_h = 31, .ofs_x = 0, .ofs_y = -4},
|
||||
{.bitmap_index = 22589, .adv_w = 540, .box_w = 34, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 23048, .adv_w = 480, .box_w = 30, .box_h = 31, .ofs_x = 0, .ofs_y = -4},
|
||||
{.bitmap_index = 23513, .adv_w = 540, .box_w = 34, .box_h = 23, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 23904, .adv_w = 480, .box_w = 30, .box_h = 31, .ofs_x = 0, .ofs_y = -4},
|
||||
{.bitmap_index = 24369, .adv_w = 240, .box_w = 15, .box_h = 24, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 24549, .adv_w = 360, .box_w = 23, .box_h = 24, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 24825, .adv_w = 540, .box_w = 34, .box_h = 29, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 25318, .adv_w = 480, .box_w = 30, .box_h = 23, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 25663, .adv_w = 330, .box_w = 21, .box_h = 31, .ofs_x = 0, .ofs_y = -4},
|
||||
{.bitmap_index = 25989, .adv_w = 420, .box_w = 20, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
|
||||
{.bitmap_index = 26269, .adv_w = 420, .box_w = 27, .box_h = 32, .ofs_x = 0, .ofs_y = -5},
|
||||
{.bitmap_index = 26701, .adv_w = 420, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 27066, .adv_w = 420, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 27431, .adv_w = 420, .box_w = 20, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
|
||||
{.bitmap_index = 27711, .adv_w = 420, .box_w = 28, .box_h = 27, .ofs_x = -1, .ofs_y = -2},
|
||||
{.bitmap_index = 28089, .adv_w = 300, .box_w = 17, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
|
||||
{.bitmap_index = 28319, .adv_w = 300, .box_w = 17, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
|
||||
{.bitmap_index = 28549, .adv_w = 420, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 28914, .adv_w = 420, .box_w = 27, .box_h = 7, .ofs_x = 0, .ofs_y = 8},
|
||||
{.bitmap_index = 29009, .adv_w = 540, .box_w = 34, .box_h = 23, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 29400, .adv_w = 600, .box_w = 38, .box_h = 31, .ofs_x = 0, .ofs_y = -4},
|
||||
{.bitmap_index = 29989, .adv_w = 540, .box_w = 36, .box_h = 31, .ofs_x = -1, .ofs_y = -4},
|
||||
{.bitmap_index = 30547, .adv_w = 480, .box_w = 30, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 30967, .adv_w = 420, .box_w = 26, .box_h = 17, .ofs_x = 0, .ofs_y = 3},
|
||||
{.bitmap_index = 31188, .adv_w = 420, .box_w = 26, .box_h = 17, .ofs_x = 0, .ofs_y = 3},
|
||||
{.bitmap_index = 31409, .adv_w = 600, .box_w = 38, .box_h = 24, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 31865, .adv_w = 480, .box_w = 30, .box_h = 23, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 32210, .adv_w = 480, .box_w = 30, .box_h = 31, .ofs_x = 0, .ofs_y = -4},
|
||||
{.bitmap_index = 32675, .adv_w = 480, .box_w = 31, .box_h = 31, .ofs_x = -1, .ofs_y = -4},
|
||||
{.bitmap_index = 33156, .adv_w = 420, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 33521, .adv_w = 420, .box_w = 27, .box_h = 31, .ofs_x = 0, .ofs_y = -4},
|
||||
{.bitmap_index = 33940, .adv_w = 420, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 34305, .adv_w = 420, .box_w = 27, .box_h = 24, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 34629, .adv_w = 480, .box_w = 30, .box_h = 23, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 34974, .adv_w = 300, .box_w = 20, .box_h = 31, .ofs_x = -1, .ofs_y = -4},
|
||||
{.bitmap_index = 35284, .adv_w = 420, .box_w = 27, .box_h = 31, .ofs_x = 0, .ofs_y = -4},
|
||||
{.bitmap_index = 35703, .adv_w = 420, .box_w = 27, .box_h = 31, .ofs_x = 0, .ofs_y = -4},
|
||||
{.bitmap_index = 36122, .adv_w = 540, .box_w = 34, .box_h = 23, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 36513, .adv_w = 480, .box_w = 32, .box_h = 31, .ofs_x = -1, .ofs_y = -4},
|
||||
{.bitmap_index = 37009, .adv_w = 360, .box_w = 23, .box_h = 31, .ofs_x = 0, .ofs_y = -4},
|
||||
{.bitmap_index = 37366, .adv_w = 600, .box_w = 38, .box_h = 28, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 37898, .adv_w = 600, .box_w = 38, .box_h = 20, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 38278, .adv_w = 600, .box_w = 38, .box_h = 20, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 38658, .adv_w = 600, .box_w = 38, .box_h = 20, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 39038, .adv_w = 600, .box_w = 38, .box_h = 20, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 39418, .adv_w = 600, .box_w = 38, .box_h = 20, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 39798, .adv_w = 600, .box_w = 38, .box_h = 24, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 40254, .adv_w = 420, .box_w = 24, .box_h = 31, .ofs_x = 1, .ofs_y = -4},
|
||||
{.bitmap_index = 40626, .adv_w = 420, .box_w = 27, .box_h = 31, .ofs_x = 0, .ofs_y = -4},
|
||||
{.bitmap_index = 41045, .adv_w = 480, .box_w = 31, .box_h = 31, .ofs_x = -1, .ofs_y = -4},
|
||||
{.bitmap_index = 41526, .adv_w = 600, .box_w = 38, .box_h = 23, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 41963, .adv_w = 360, .box_w = 23, .box_h = 31, .ofs_x = 0, .ofs_y = -4},
|
||||
{.bitmap_index = 42320, .adv_w = 483, .box_w = 31, .box_h = 20, .ofs_x = 0, .ofs_y = 1}
|
||||
{.bitmap_index = 17416, .adv_w = 380, .box_w = 19, .box_h = 27, .ofs_x = 2, .ofs_y = 0},
|
||||
{.bitmap_index = 17673, .adv_w = 324, .box_w = 17, .box_h = 22, .ofs_x = 2, .ofs_y = 0},
|
||||
{.bitmap_index = 17860, .adv_w = 287, .box_w = 15, .box_h = 22, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 18025, .adv_w = 287, .box_w = 15, .box_h = 22, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 18190, .adv_w = 287, .box_w = 15, .box_h = 22, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 18355, .adv_w = 274, .box_w = 16, .box_h = 23, .ofs_x = 1, .ofs_y = -7},
|
||||
{.bitmap_index = 18539, .adv_w = 294, .box_w = 17, .box_h = 22, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 18726, .adv_w = 294, .box_w = 17, .box_h = 22, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 18913, .adv_w = 294, .box_w = 17, .box_h = 22, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 19100, .adv_w = 294, .box_w = 17, .box_h = 22, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 19287, .adv_w = 134, .box_w = 10, .box_h = 22, .ofs_x = -1, .ofs_y = 0},
|
||||
{.bitmap_index = 19397, .adv_w = 134, .box_w = 8, .box_h = 22, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 19485, .adv_w = 305, .box_w = 17, .box_h = 22, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 19672, .adv_w = 325, .box_w = 16, .box_h = 22, .ofs_x = 2, .ofs_y = 0},
|
||||
{.bitmap_index = 19848, .adv_w = 325, .box_w = 16, .box_h = 22, .ofs_x = 2, .ofs_y = 0},
|
||||
{.bitmap_index = 20024, .adv_w = 512, .box_w = 30, .box_h = 16, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 20264, .adv_w = 151, .box_w = 7, .box_h = 6, .ofs_x = 1, .ofs_y = 6},
|
||||
{.bitmap_index = 20285, .adv_w = 480, .box_w = 31, .box_h = 31, .ofs_x = -1, .ofs_y = -4},
|
||||
{.bitmap_index = 20766, .adv_w = 480, .box_w = 30, .box_h = 23, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 21111, .adv_w = 480, .box_w = 30, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 21516, .adv_w = 480, .box_w = 30, .box_h = 23, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 21861, .adv_w = 330, .box_w = 21, .box_h = 22, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 22092, .adv_w = 480, .box_w = 30, .box_h = 31, .ofs_x = 0, .ofs_y = -4},
|
||||
{.bitmap_index = 22557, .adv_w = 480, .box_w = 30, .box_h = 31, .ofs_x = 0, .ofs_y = -4},
|
||||
{.bitmap_index = 23022, .adv_w = 540, .box_w = 34, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 23481, .adv_w = 480, .box_w = 30, .box_h = 31, .ofs_x = 0, .ofs_y = -4},
|
||||
{.bitmap_index = 23946, .adv_w = 540, .box_w = 34, .box_h = 23, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 24337, .adv_w = 480, .box_w = 30, .box_h = 31, .ofs_x = 0, .ofs_y = -4},
|
||||
{.bitmap_index = 24802, .adv_w = 240, .box_w = 15, .box_h = 24, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 24982, .adv_w = 360, .box_w = 23, .box_h = 24, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 25258, .adv_w = 540, .box_w = 34, .box_h = 29, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 25751, .adv_w = 480, .box_w = 30, .box_h = 23, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 26096, .adv_w = 330, .box_w = 21, .box_h = 31, .ofs_x = 0, .ofs_y = -4},
|
||||
{.bitmap_index = 26422, .adv_w = 420, .box_w = 20, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
|
||||
{.bitmap_index = 26702, .adv_w = 420, .box_w = 27, .box_h = 32, .ofs_x = 0, .ofs_y = -5},
|
||||
{.bitmap_index = 27134, .adv_w = 420, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 27499, .adv_w = 420, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 27864, .adv_w = 420, .box_w = 20, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
|
||||
{.bitmap_index = 28144, .adv_w = 420, .box_w = 28, .box_h = 27, .ofs_x = -1, .ofs_y = -2},
|
||||
{.bitmap_index = 28522, .adv_w = 300, .box_w = 17, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
|
||||
{.bitmap_index = 28752, .adv_w = 300, .box_w = 17, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
|
||||
{.bitmap_index = 28982, .adv_w = 420, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 29347, .adv_w = 420, .box_w = 27, .box_h = 7, .ofs_x = 0, .ofs_y = 8},
|
||||
{.bitmap_index = 29442, .adv_w = 540, .box_w = 34, .box_h = 23, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 29833, .adv_w = 600, .box_w = 38, .box_h = 31, .ofs_x = 0, .ofs_y = -4},
|
||||
{.bitmap_index = 30422, .adv_w = 540, .box_w = 36, .box_h = 31, .ofs_x = -1, .ofs_y = -4},
|
||||
{.bitmap_index = 30980, .adv_w = 480, .box_w = 30, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 31400, .adv_w = 420, .box_w = 26, .box_h = 17, .ofs_x = 0, .ofs_y = 3},
|
||||
{.bitmap_index = 31621, .adv_w = 420, .box_w = 26, .box_h = 17, .ofs_x = 0, .ofs_y = 3},
|
||||
{.bitmap_index = 31842, .adv_w = 600, .box_w = 38, .box_h = 24, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 32298, .adv_w = 480, .box_w = 30, .box_h = 23, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 32643, .adv_w = 480, .box_w = 30, .box_h = 31, .ofs_x = 0, .ofs_y = -4},
|
||||
{.bitmap_index = 33108, .adv_w = 480, .box_w = 31, .box_h = 31, .ofs_x = -1, .ofs_y = -4},
|
||||
{.bitmap_index = 33589, .adv_w = 420, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 33954, .adv_w = 420, .box_w = 27, .box_h = 31, .ofs_x = 0, .ofs_y = -4},
|
||||
{.bitmap_index = 34373, .adv_w = 420, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 34738, .adv_w = 420, .box_w = 27, .box_h = 24, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 35062, .adv_w = 480, .box_w = 30, .box_h = 23, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 35407, .adv_w = 300, .box_w = 20, .box_h = 31, .ofs_x = -1, .ofs_y = -4},
|
||||
{.bitmap_index = 35717, .adv_w = 420, .box_w = 27, .box_h = 31, .ofs_x = 0, .ofs_y = -4},
|
||||
{.bitmap_index = 36136, .adv_w = 420, .box_w = 27, .box_h = 31, .ofs_x = 0, .ofs_y = -4},
|
||||
{.bitmap_index = 36555, .adv_w = 540, .box_w = 34, .box_h = 23, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 36946, .adv_w = 480, .box_w = 32, .box_h = 31, .ofs_x = -1, .ofs_y = -4},
|
||||
{.bitmap_index = 37442, .adv_w = 360, .box_w = 23, .box_h = 31, .ofs_x = 0, .ofs_y = -4},
|
||||
{.bitmap_index = 37799, .adv_w = 600, .box_w = 38, .box_h = 28, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 38331, .adv_w = 600, .box_w = 38, .box_h = 20, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 38711, .adv_w = 600, .box_w = 38, .box_h = 20, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 39091, .adv_w = 600, .box_w = 38, .box_h = 20, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 39471, .adv_w = 600, .box_w = 38, .box_h = 20, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 39851, .adv_w = 600, .box_w = 38, .box_h = 20, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 40231, .adv_w = 600, .box_w = 38, .box_h = 24, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 40687, .adv_w = 420, .box_w = 24, .box_h = 31, .ofs_x = 1, .ofs_y = -4},
|
||||
{.bitmap_index = 41059, .adv_w = 420, .box_w = 27, .box_h = 31, .ofs_x = 0, .ofs_y = -4},
|
||||
{.bitmap_index = 41478, .adv_w = 480, .box_w = 31, .box_h = 31, .ofs_x = -1, .ofs_y = -4},
|
||||
{.bitmap_index = 41959, .adv_w = 600, .box_w = 38, .box_h = 23, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 42396, .adv_w = 360, .box_w = 23, .box_h = 31, .ofs_x = 0, .ofs_y = -4},
|
||||
{.bitmap_index = 42753, .adv_w = 483, .box_w = 31, .box_h = 20, .ofs_x = 0, .ofs_y = 1}
|
||||
};
|
||||
|
||||
/*---------------------
|
||||
@ -5985,16 +6046,17 @@ static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = {
|
||||
|
||||
static const uint16_t unicode_list_1[] = {
|
||||
0x0, 0x10, 0x14, 0x17, 0x18, 0x19, 0x1a, 0x1b,
|
||||
0x1e, 0x24, 0x26, 0x29, 0x2c, 0x2f, 0x30, 0x32,
|
||||
0x34, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3e, 0x3f,
|
||||
0x46, 0x4c, 0xa3, 0x1f72, 0xef51, 0xef58, 0xef5b, 0xef5c,
|
||||
0xef5d, 0xef61, 0xef63, 0xef65, 0xef69, 0xef6c, 0xef71, 0xef76,
|
||||
0xef77, 0xef78, 0xef8e, 0xef93, 0xef98, 0xef9b, 0xef9c, 0xef9d,
|
||||
0xefa1, 0xefa2, 0xefa3, 0xefa4, 0xefb7, 0xefb8, 0xefbe, 0xefc0,
|
||||
0xefc1, 0xefc4, 0xefc7, 0xefc8, 0xefc9, 0xefcb, 0xefe3, 0xefe5,
|
||||
0xf014, 0xf015, 0xf017, 0xf019, 0xf030, 0xf037, 0xf03a, 0xf043,
|
||||
0xf06c, 0xf074, 0xf0ab, 0xf13b, 0xf190, 0xf191, 0xf192, 0xf193,
|
||||
0xf194, 0xf1d7, 0xf1e3, 0xf23d, 0xf254, 0xf4aa, 0xf712, 0xf7f2
|
||||
0x1e, 0x24, 0x26, 0x29, 0x2b, 0x2c, 0x2f, 0x30,
|
||||
0x32, 0x34, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3e,
|
||||
0x3f, 0x46, 0x4b, 0x4c, 0xa3, 0x1f72, 0xef51, 0xef58,
|
||||
0xef5b, 0xef5c, 0xef5d, 0xef61, 0xef63, 0xef65, 0xef69, 0xef6c,
|
||||
0xef71, 0xef76, 0xef77, 0xef78, 0xef8e, 0xef93, 0xef98, 0xef9b,
|
||||
0xef9c, 0xef9d, 0xefa1, 0xefa2, 0xefa3, 0xefa4, 0xefb7, 0xefb8,
|
||||
0xefbe, 0xefc0, 0xefc1, 0xefc4, 0xefc7, 0xefc8, 0xefc9, 0xefcb,
|
||||
0xefe3, 0xefe5, 0xf014, 0xf015, 0xf017, 0xf019, 0xf030, 0xf037,
|
||||
0xf03a, 0xf043, 0xf06c, 0xf074, 0xf0ab, 0xf13b, 0xf190, 0xf191,
|
||||
0xf192, 0xf193, 0xf194, 0xf1d7, 0xf1e3, 0xf23d, 0xf254, 0xf4aa,
|
||||
0xf712, 0xf7f2
|
||||
};
|
||||
|
||||
/*Collect the unicode lists and glyph_id offsets*/
|
||||
@ -6006,7 +6068,7 @@ static const lv_font_fmt_txt_cmap_t cmaps[] =
|
||||
},
|
||||
{
|
||||
.range_start = 176, .range_length = 63475, .glyph_id_start = 96,
|
||||
.unicode_list = unicode_list_1, .glyph_id_ofs_list = NULL, .list_length = 88, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
|
||||
.unicode_list = unicode_list_1, .glyph_id_ofs_list = NULL, .list_length = 90, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
|
||||
}
|
||||
};
|
||||
|
||||
@ -6031,16 +6093,17 @@ static const uint8_t kern_left_class_mapping[] =
|
||||
46, 46, 54, 55, 56, 57, 51, 58,
|
||||
58, 59, 58, 60, 41, 0, 0, 9,
|
||||
61, 23, 23, 25, 26, 26, 26, 26,
|
||||
29, 22, 22, 30, 30, 46, 45, 45,
|
||||
45, 47, 49, 49, 49, 49, 62, 51,
|
||||
46, 51, 49, 9, 0, 0, 0, 0,
|
||||
29, 22, 22, 30, 30, 30, 46, 45,
|
||||
45, 45, 47, 49, 49, 49, 49, 62,
|
||||
51, 46, 51, 51, 49, 9, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0
|
||||
};
|
||||
|
||||
/*Map glyph_ids to kern right classes*/
|
||||
@ -6059,16 +6122,17 @@ static const uint8_t kern_right_class_mapping[] =
|
||||
39, 42, 39, 42, 43, 44, 45, 46,
|
||||
46, 47, 46, 48, 0, 0, 35, 9,
|
||||
49, 24, 24, 23, 25, 25, 25, 25,
|
||||
25, 23, 23, 28, 28, 38, 37, 37,
|
||||
37, 39, 39, 39, 39, 39, 50, 51,
|
||||
39, 45, 39, 9, 0, 0, 0, 0,
|
||||
25, 23, 23, 28, 28, 28, 38, 37,
|
||||
37, 37, 39, 39, 39, 39, 39, 50,
|
||||
51, 39, 45, 45, 39, 9, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0
|
||||
};
|
||||
|
||||
/*Kern values between classes*/
|
||||
|
@ -3,6 +3,21 @@
|
||||
#include "menu_screen.h"
|
||||
|
||||
#define ARRAY_SIZE(x) (sizeof(x)/sizeof(x[0]))
|
||||
const char * const MONTH[] =
|
||||
{
|
||||
"JAN",
|
||||
"FÉV",
|
||||
"MAR",
|
||||
"AVR",
|
||||
"MAI",
|
||||
"JUI",
|
||||
"JUL",
|
||||
"AOÛ",
|
||||
"SEP",
|
||||
"OCT",
|
||||
"NOV",
|
||||
"DÉC",
|
||||
};
|
||||
|
||||
static lv_obj_t *_create_altimeter_display(AltimeterScreen_t * const altimeterScreen);
|
||||
static void _create_pressure_display(AltimeterScreen_t * const altimeterScreen);
|
||||
@ -10,8 +25,10 @@ static void _create_altitude_display(AltimeterScreen_t * const altimeterScreen);
|
||||
static void _create_altitude_setting_display(AltimeterScreen_t * const altimeterScreen);
|
||||
static void _update_min_and_max_pressure_data(AltimeterScreen_t * const altimeterScreen, float minPressure, float maxPressure);
|
||||
static void _update_pressure_chart(AltimeterScreen_t * const altimeterScreen);
|
||||
static void _update_pressure_info(AltimeterScreen_t * const altimeterScreen);
|
||||
static void _update_altitude_info(AltimeterScreen_t * const altimeterScreen);
|
||||
static void _update_temperature_info(AltimeterScreen_t * const altimeterScreen, float temperature);
|
||||
static void _update_date_time_info(AltimeterScreen_t * const altimeterScreen);
|
||||
|
||||
static void gesture_event_cb(lv_event_t *e)
|
||||
{
|
||||
@ -105,10 +122,19 @@ static void altitude_display_cleanup_event_cb(lv_event_t *e)
|
||||
altimeterScreen->altitudeUpdateTimer = NULL;
|
||||
}
|
||||
|
||||
if(altimeterScreen->dateTimeUpdateTimer)
|
||||
{
|
||||
lv_timer_del(altimeterScreen->dateTimeUpdateTimer);
|
||||
altimeterScreen->dateTimeUpdateTimer = NULL;
|
||||
}
|
||||
|
||||
altimeterScreen->altitudeValue.value = NULL;
|
||||
altimeterScreen->altitudeValue.unit = NULL;
|
||||
altimeterScreen->vsiValue.value_unit = NULL;
|
||||
altimeterScreen->temperatureValue.value = NULL;
|
||||
altimeterScreen->dateTimeValue.timeLabel = NULL;
|
||||
altimeterScreen->dateTimeValue.monthLabel = NULL;
|
||||
altimeterScreen->dateTimeValue.dayLabel = NULL;
|
||||
|
||||
LV_LOG_USER("Altitude display cleanup");
|
||||
}
|
||||
@ -126,27 +152,7 @@ static void altitude_setting_display_cleanup_event_cb(lv_event_t *e)
|
||||
static void pressure_update_timer_cb(lv_timer_t *timer)
|
||||
{
|
||||
AltimeterScreen_t *altimeterScreen = timer->user_data;
|
||||
|
||||
if(altimeterScreen->altimeterScreenMeasurementCb)
|
||||
{
|
||||
LV_LOG_USER("Updating pressure measurements");
|
||||
float pressure;
|
||||
|
||||
/* We don't need to retrieve the temperature nor the altitude in this view */
|
||||
altimeterScreen->altimeterScreenMeasurementCb(NULL, &pressure, NULL);
|
||||
sprintf(altimeterScreen->pressureValue.value_text, "%.2f", pressure);
|
||||
if(altimeterScreen->pressureValue.value)
|
||||
{
|
||||
lv_label_set_text_static(altimeterScreen->pressureValue.value, altimeterScreen->pressureValue.value_text);
|
||||
}
|
||||
|
||||
//Mock up part needs to be changed on embedded target
|
||||
altimeter_screen_shift_chart_pressure_measurement(altimeterScreen, pressure);
|
||||
}
|
||||
else
|
||||
{
|
||||
LV_LOG_USER("altimeterScreenMeasurementCb is NULL, be sure to register a callback !");
|
||||
}
|
||||
_update_pressure_info(altimeterScreen);
|
||||
}
|
||||
|
||||
static void altitude_update_timer_cb(lv_timer_t *timer)
|
||||
@ -176,6 +182,12 @@ static void altitude_update_timer_cb(lv_timer_t *timer)
|
||||
}
|
||||
}
|
||||
|
||||
static void date_time_update_timer_cb(lv_timer_t *timer)
|
||||
{
|
||||
AltimeterScreen_t *altimeterScreen = timer->user_data;
|
||||
_update_date_time_info(altimeterScreen);
|
||||
}
|
||||
|
||||
static void reset_pressure_event_cb(lv_event_t *e)
|
||||
{
|
||||
AltimeterScreen_t *altimeterScreen = lv_event_get_user_data(e);
|
||||
@ -331,6 +343,28 @@ void altimeter_screen_register_measurement_cb(AltimeterScreen_t * const altimete
|
||||
altimeterScreen->altimeterScreenMeasurementCb = altimeterScreenMeasurementCb;
|
||||
}
|
||||
|
||||
void altimeter_screen_register_date_time_cb(AltimeterScreen_t * const altimeterScreen, AltimeterScreenDateTimeCb_t altimeterScreenDateTimeCb)
|
||||
{
|
||||
if(!altimeterScreen)
|
||||
{
|
||||
LV_LOG_ERROR("NULL pointer given !");
|
||||
return;
|
||||
}
|
||||
|
||||
altimeterScreen->altimeterScreenDateTimeCb = altimeterScreenDateTimeCb;
|
||||
}
|
||||
|
||||
void altimeter_screen_set_displayed_hour_format(AltimeterScreen_t * const altimeterScreen, bool hour_24H_format)
|
||||
{
|
||||
if(!altimeterScreen)
|
||||
{
|
||||
LV_LOG_ERROR("NULL pointer given !");
|
||||
return;
|
||||
}
|
||||
|
||||
altimeterScreen->hour_24H_format = hour_24H_format;
|
||||
}
|
||||
|
||||
void altimeter_screen_shift_chart_pressure_measurement(AltimeterScreen_t * const altimeterScreen, float pressure)
|
||||
{
|
||||
if(!altimeterScreen)
|
||||
@ -428,7 +462,8 @@ static void _create_pressure_display(AltimeterScreen_t * const altimeterScreen)
|
||||
altimeterScreen->pressureValue.value = lv_label_create(inner_circle);
|
||||
lv_obj_set_style_text_font(altimeterScreen->pressureValue.value, &lv_font_montserrat_30, LV_PART_MAIN);
|
||||
lv_obj_align(altimeterScreen->pressureValue.value, LV_ALIGN_TOP_MID, 0, 15);
|
||||
lv_label_set_text_static(altimeterScreen->pressureValue.value, altimeterScreen->pressureValue.value_text);
|
||||
|
||||
_update_pressure_info(altimeterScreen);
|
||||
|
||||
if(altimeterScreen->pressureValue.unit)
|
||||
{
|
||||
@ -542,6 +577,47 @@ static void _create_altitude_display(AltimeterScreen_t * const altimeterScreen)
|
||||
lv_obj_set_style_border_color(inner_circle, lv_color_make(238, 82, 83), LV_PART_MAIN);
|
||||
lv_obj_set_scroll_dir(inner_circle, LV_DIR_NONE);
|
||||
|
||||
/* Let's create the month label */
|
||||
if(altimeterScreen->dateTimeValue.monthLabel)
|
||||
{
|
||||
LV_LOG_ERROR("monthLabel should be NULL here !");
|
||||
lv_obj_del(altimeterScreen->dateTimeValue.monthLabel);
|
||||
altimeterScreen->dateTimeValue.monthLabel = NULL;
|
||||
}
|
||||
altimeterScreen->dateTimeValue.monthLabel = lv_label_create(inner_circle);
|
||||
lv_obj_set_style_text_font(altimeterScreen->dateTimeValue.monthLabel, &lv_font_montserrat_16, LV_PART_MAIN);
|
||||
lv_obj_align_to(altimeterScreen->dateTimeValue.monthLabel, inner_circle, LV_ALIGN_TOP_LEFT, 30, 5);
|
||||
lv_obj_set_style_text_color(altimeterScreen->dateTimeValue.monthLabel, lv_color_make(158, 157, 36), LV_PART_MAIN);
|
||||
|
||||
/* Let's create the day label */
|
||||
if(altimeterScreen->dateTimeValue.dayLabel)
|
||||
{
|
||||
LV_LOG_ERROR("dayLabel should be NULL here !");
|
||||
lv_obj_del(altimeterScreen->dateTimeValue.dayLabel);
|
||||
altimeterScreen->dateTimeValue.dayLabel = NULL;
|
||||
}
|
||||
altimeterScreen->dateTimeValue.dayLabel = lv_label_create(inner_circle);
|
||||
lv_obj_set_style_text_font(altimeterScreen->dateTimeValue.dayLabel, &lv_font_montserrat_16, LV_PART_MAIN);
|
||||
lv_obj_align_to(altimeterScreen->dateTimeValue.dayLabel, inner_circle, LV_ALIGN_TOP_RIGHT, -15, 5);
|
||||
lv_obj_set_style_text_color(altimeterScreen->dateTimeValue.dayLabel, lv_color_make(142, 36, 170), LV_PART_MAIN);
|
||||
lv_obj_set_style_text_align(altimeterScreen->dateTimeValue.dayLabel, LV_TEXT_ALIGN_RIGHT, LV_PART_MAIN);
|
||||
|
||||
/* Let's create the time label */
|
||||
if(altimeterScreen->dateTimeValue.timeLabel)
|
||||
{
|
||||
LV_LOG_ERROR("timeLabel should be NULL here !");
|
||||
lv_obj_del(altimeterScreen->dateTimeValue.timeLabel);
|
||||
altimeterScreen->dateTimeValue.timeLabel = NULL;
|
||||
}
|
||||
altimeterScreen->dateTimeValue.timeLabel = lv_label_create(inner_circle);
|
||||
lv_obj_set_width(altimeterScreen->dateTimeValue.timeLabel, lv_pct(100));
|
||||
lv_obj_set_style_text_font(altimeterScreen->dateTimeValue.timeLabel, &lv_font_montserrat_24, LV_PART_MAIN);
|
||||
lv_obj_set_style_text_align(altimeterScreen->dateTimeValue.timeLabel, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN);
|
||||
lv_obj_align_to(altimeterScreen->dateTimeValue.timeLabel, inner_circle, LV_ALIGN_TOP_MID, 0, 20);
|
||||
lv_obj_set_style_text_color(altimeterScreen->dateTimeValue.timeLabel, lv_color_make(251, 140, 0), LV_PART_MAIN);
|
||||
|
||||
_update_date_time_info(altimeterScreen);
|
||||
|
||||
/* Let's create the altitude main and unit label */
|
||||
if(altimeterScreen->altitudeValue.value)
|
||||
{
|
||||
@ -551,7 +627,8 @@ static void _create_altitude_display(AltimeterScreen_t * const altimeterScreen)
|
||||
}
|
||||
altimeterScreen->altitudeValue.value = lv_label_create(inner_circle);
|
||||
lv_obj_set_style_text_font(altimeterScreen->altitudeValue.value, &lv_font_montserrat_30, LV_PART_MAIN);
|
||||
lv_obj_align(altimeterScreen->altitudeValue.value, LV_ALIGN_TOP_MID, 0, 15);
|
||||
lv_obj_align(altimeterScreen->altitudeValue.value, LV_ALIGN_TOP_MID, 0, 45);
|
||||
lv_obj_set_style_text_color(altimeterScreen->altitudeValue.value, lv_color_make(0, 105, 92), LV_PART_MAIN);
|
||||
lv_label_set_text_static(altimeterScreen->altitudeValue.value, altimeterScreen->altitudeValue.value_text);
|
||||
|
||||
if(altimeterScreen->altitudeValue.unit)
|
||||
@ -562,23 +639,9 @@ static void _create_altitude_display(AltimeterScreen_t * const altimeterScreen)
|
||||
}
|
||||
altimeterScreen->altitudeValue.unit = lv_label_create(inner_circle);
|
||||
lv_obj_set_style_text_font(altimeterScreen->altitudeValue.unit, &lv_font_montserrat_30, LV_PART_MAIN);
|
||||
lv_obj_set_style_text_color(altimeterScreen->altitudeValue.unit, lv_color_make(0, 105, 92), LV_PART_MAIN);
|
||||
lv_label_set_text_static(altimeterScreen->altitudeValue.unit, "m");
|
||||
lv_obj_align_to(altimeterScreen->altitudeValue.unit, altimeterScreen->altitudeValue.value, LV_ALIGN_CENTER, 0, 25);
|
||||
|
||||
/* Let's create the zeroing button */
|
||||
lv_obj_t *zeroing_btn = lv_img_create(inner_circle);
|
||||
lv_img_set_src(zeroing_btn, &altimeter_asset_calibration_icon);
|
||||
lv_obj_align(zeroing_btn, LV_ALIGN_CENTER, 75 ,5);
|
||||
lv_obj_add_flag(zeroing_btn, LV_OBJ_FLAG_ADV_HITTEST | LV_OBJ_FLAG_CLICKABLE);
|
||||
/* Using a long pressed event so that no missclicks trigger a reset */
|
||||
lv_obj_add_event_cb(zeroing_btn, &(zeroing_altitude_event_cb), LV_EVENT_LONG_PRESSED, altimeterScreen);
|
||||
|
||||
/* Let's create the settings button */
|
||||
lv_obj_t *setting_btn = lv_img_create(inner_circle);
|
||||
lv_img_set_src(setting_btn, &watch_menu_settings_icon);
|
||||
lv_obj_align(setting_btn, LV_ALIGN_CENTER, -75 ,5);
|
||||
lv_obj_add_flag(setting_btn, LV_OBJ_FLAG_ADV_HITTEST | LV_OBJ_FLAG_CLICKABLE);
|
||||
lv_obj_add_event_cb(setting_btn, &(set_altitude_settings_event_cb), LV_EVENT_CLICKED, altimeterScreen);
|
||||
lv_obj_align_to(altimeterScreen->altitudeValue.unit, altimeterScreen->altitudeValue.value, LV_ALIGN_OUT_BOTTOM_MID, 0, -13);
|
||||
|
||||
/* Let's create the temperature label */
|
||||
if(altimeterScreen->temperatureValue.value)
|
||||
@ -592,7 +655,24 @@ static void _create_altitude_display(AltimeterScreen_t * const altimeterScreen)
|
||||
lv_obj_set_style_text_font(altimeterScreen->temperatureValue.value, &lv_font_montserrat_24, LV_PART_MAIN);
|
||||
strcpy(altimeterScreen->temperatureValue.value_text, "°C");
|
||||
lv_label_set_text_static(altimeterScreen->temperatureValue.value, altimeterScreen->temperatureValue.value_text);
|
||||
lv_obj_align(altimeterScreen->temperatureValue.value, LV_ALIGN_CENTER, 0, 5);
|
||||
lv_obj_align(altimeterScreen->temperatureValue.value, LV_ALIGN_CENTER, 0, 20);
|
||||
lv_obj_set_style_text_color(altimeterScreen->temperatureValue.value, lv_color_make(93, 64, 55), LV_PART_MAIN);
|
||||
|
||||
/* Let's create the zeroing button */
|
||||
lv_obj_t *zeroing_btn = lv_img_create(inner_circle);
|
||||
lv_img_set_src(zeroing_btn, &altimeter_asset_calibration_icon);
|
||||
lv_obj_align_to(zeroing_btn, altimeterScreen->temperatureValue.value, LV_ALIGN_OUT_RIGHT_MID, 45, 0);
|
||||
lv_obj_add_flag(zeroing_btn, LV_OBJ_FLAG_ADV_HITTEST | LV_OBJ_FLAG_CLICKABLE);
|
||||
/* Using a long pressed event so that no missclicks trigger a reset */
|
||||
lv_obj_add_event_cb(zeroing_btn, &(zeroing_altitude_event_cb), LV_EVENT_LONG_PRESSED, altimeterScreen);
|
||||
|
||||
/* Let's create the settings button */
|
||||
lv_obj_t *setting_btn = lv_img_create(inner_circle);
|
||||
lv_img_set_src(setting_btn, &watch_menu_settings_icon);
|
||||
lv_obj_align_to(setting_btn, altimeterScreen->temperatureValue.value, LV_ALIGN_OUT_LEFT_MID, -45, 0);
|
||||
lv_obj_add_flag(setting_btn, LV_OBJ_FLAG_ADV_HITTEST | LV_OBJ_FLAG_CLICKABLE);
|
||||
/* Using a long pressed event so that no missclicks trigger a reset */
|
||||
lv_obj_add_event_cb(setting_btn, &(set_altitude_settings_event_cb), LV_EVENT_LONG_PRESSED, altimeterScreen);
|
||||
|
||||
/* Let's create the VSI label */
|
||||
if(altimeterScreen->vsiValue.value_unit)
|
||||
@ -617,10 +697,19 @@ static void _create_altitude_display(AltimeterScreen_t * const altimeterScreen)
|
||||
lv_timer_del(altimeterScreen->altitudeUpdateTimer);
|
||||
altimeterScreen->altitudeUpdateTimer = NULL;
|
||||
}
|
||||
|
||||
/* Update the pressure value on the screen every second */
|
||||
/* Update the pressure value on the screen at the defined refresh rate in Hz */
|
||||
altimeterScreen->altitudeUpdateTimer = lv_timer_create(&(altitude_update_timer_cb), 1000 / ALTITUDE_TIMER_UPDATE_RATE_HZ, altimeterScreen);
|
||||
|
||||
/* Let's create the time update timer */
|
||||
if(altimeterScreen->dateTimeUpdateTimer)
|
||||
{
|
||||
LV_LOG_ERROR("dateTimeUpdateTimer should be NULL here !");
|
||||
lv_timer_del(altimeterScreen->dateTimeUpdateTimer);
|
||||
altimeterScreen->dateTimeUpdateTimer = NULL;
|
||||
}
|
||||
/* Update the displayed time every 200 ms */
|
||||
altimeterScreen->dateTimeUpdateTimer = lv_timer_create(&(date_time_update_timer_cb), 500, altimeterScreen);
|
||||
|
||||
/* We register the event callback to handle gestures */
|
||||
lv_obj_add_event_cb(altimeterScreen->displays[ALTIMETER_SCREEN_ALTITUDE_VIEW], &(gesture_event_cb), LV_EVENT_GESTURE, altimeterScreen);
|
||||
/* We register the event callback to handle the cleanup */
|
||||
@ -664,7 +753,7 @@ static void _create_altitude_setting_display(AltimeterScreen_t * const altimeter
|
||||
}
|
||||
|
||||
altimeterScreen->altitudeOffset_spinbox.spinbox = lv_spinbox_create(inner_circle);
|
||||
lv_obj_set_align(altimeterScreen->altitudeOffset_spinbox.spinbox, LV_ALIGN_CENTER);
|
||||
lv_obj_align(altimeterScreen->altitudeOffset_spinbox.spinbox, LV_ALIGN_CENTER, 0, -10);
|
||||
lv_obj_set_width(altimeterScreen->altitudeOffset_spinbox.spinbox, lv_pct(50));
|
||||
lv_obj_set_style_text_font(altimeterScreen->altitudeOffset_spinbox.spinbox, &lv_font_montserrat_16, LV_PART_MAIN);
|
||||
lv_spinbox_set_digit_format(altimeterScreen->altitudeOffset_spinbox.spinbox, 5, 4);
|
||||
@ -694,8 +783,7 @@ static void _create_altitude_setting_display(AltimeterScreen_t * const altimeter
|
||||
lv_label_set_text_static(apply_btn_lbl, "Apply");
|
||||
lv_obj_center(apply_btn_lbl);
|
||||
lv_obj_add_event_cb(apply_btn, &(apply_altitude_setting_event_cb), LV_EVENT_CLICKED, altimeterScreen);
|
||||
|
||||
lv_obj_align(apply_btn, LV_ALIGN_CENTER, -45, 45);
|
||||
lv_obj_align_to(apply_btn, dec_btn, LV_ALIGN_OUT_BOTTOM_LEFT, 0, 10);
|
||||
|
||||
|
||||
lv_obj_t *cancel_btn = lv_btn_create(inner_circle);
|
||||
@ -706,8 +794,7 @@ static void _create_altitude_setting_display(AltimeterScreen_t * const altimeter
|
||||
lv_label_set_text_static(cancel_btn_lbl, "Cancel");
|
||||
lv_obj_center(cancel_btn_lbl);
|
||||
lv_obj_add_event_cb(cancel_btn, &(apply_altitude_setting_event_cb), LV_EVENT_CLICKED, altimeterScreen);
|
||||
|
||||
lv_obj_align(cancel_btn, LV_ALIGN_CENTER, 45, 45);
|
||||
lv_obj_align_to(cancel_btn, inc_btn, LV_ALIGN_OUT_BOTTOM_RIGHT, 0, 10);
|
||||
|
||||
/* We register the event callback to handle the cleanup */
|
||||
lv_obj_add_event_cb(altimeterScreen->displays[ALTIMETER_SCREEN_ALTITUDE_SETTING_VIEW], &(altitude_setting_display_cleanup_event_cb), LV_EVENT_DELETE, altimeterScreen);
|
||||
@ -761,6 +848,30 @@ static void _update_pressure_chart(AltimeterScreen_t * const altimeterScreen)
|
||||
_update_min_and_max_pressure_data(altimeterScreen, min, max);
|
||||
}
|
||||
|
||||
static void _update_pressure_info(AltimeterScreen_t * const altimeterScreen)
|
||||
{
|
||||
if(altimeterScreen->altimeterScreenMeasurementCb)
|
||||
{
|
||||
LV_LOG_USER("Updating pressure measurements");
|
||||
float pressure;
|
||||
|
||||
/* We don't need to retrieve the temperature nor the altitude in this view */
|
||||
altimeterScreen->altimeterScreenMeasurementCb(NULL, &pressure, NULL);
|
||||
sprintf(altimeterScreen->pressureValue.value_text, "%.2f", pressure);
|
||||
if(altimeterScreen->pressureValue.value)
|
||||
{
|
||||
lv_label_set_text_static(altimeterScreen->pressureValue.value, altimeterScreen->pressureValue.value_text);
|
||||
}
|
||||
|
||||
//Mock up part needs to be changed on embedded target
|
||||
altimeter_screen_shift_chart_pressure_measurement(altimeterScreen, pressure);
|
||||
}
|
||||
else
|
||||
{
|
||||
LV_LOG_USER("altimeterScreenMeasurementCb is NULL, be sure to register a callback !");
|
||||
}
|
||||
}
|
||||
|
||||
static void _update_altitude_info(AltimeterScreen_t * const altimeterScreen)
|
||||
{
|
||||
sprintf(altimeterScreen->altitudeValue.value_text, "%.2f", altimeterScreen->lastReadAltitude - altimeterScreen->altitudeOffset);
|
||||
@ -774,3 +885,44 @@ static void _update_temperature_info(AltimeterScreen_t * const altimeterScreen,
|
||||
sprintf(altimeterScreen->temperatureValue.value_text, "%.2f°C", temperature);
|
||||
lv_label_set_text_static(altimeterScreen->temperatureValue.value, altimeterScreen->temperatureValue.value_text);
|
||||
}
|
||||
|
||||
static void _update_date_time_info(AltimeterScreen_t * const altimeterScreen)
|
||||
{
|
||||
if(altimeterScreen->altimeterScreenDateTimeCb)
|
||||
{
|
||||
struct tm date_time = {0};
|
||||
altimeterScreen->altimeterScreenDateTimeCb(&date_time);
|
||||
date_time.tm_hour = 23;
|
||||
if(altimeterScreen->hour_24H_format)
|
||||
{
|
||||
sprintf(altimeterScreen->dateTimeValue.time_text, "%s%d:%s%d:%s%d",
|
||||
date_time.tm_hour < 10 ? "0" : "", date_time.tm_hour,
|
||||
date_time.tm_min < 10 ? "0" : "", date_time.tm_min,
|
||||
date_time.tm_sec < 10 ? "0" : "", date_time.tm_sec);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Intermediate hour var to set it on a 12H format
|
||||
uint8_t hour = date_time.tm_hour;
|
||||
if(hour > 12)hour -= 12;
|
||||
|
||||
sprintf(altimeterScreen->dateTimeValue.time_text, "%d:%s%d:%s%d%s", hour,
|
||||
date_time.tm_min < 10 ? "0" : "", date_time.tm_min,
|
||||
date_time.tm_sec < 10 ? "0" : "", date_time.tm_sec,
|
||||
date_time.tm_hour < 13 ? "AM" : "PM");
|
||||
}
|
||||
|
||||
static uint8_t cnt = 0;
|
||||
strncpy(altimeterScreen->dateTimeValue.month_text, MONTH[cnt++ % 12], sizeof(altimeterScreen->dateTimeValue.month_text)-1);
|
||||
date_time.tm_mday = (cnt % 32)+1;
|
||||
sprintf(altimeterScreen->dateTimeValue.day_text, "%s%d", date_time.tm_mday < 10 ? "0":"", date_time.tm_mday);
|
||||
|
||||
lv_label_set_text_static(altimeterScreen->dateTimeValue.timeLabel, altimeterScreen->dateTimeValue.time_text);
|
||||
lv_label_set_text_static(altimeterScreen->dateTimeValue.monthLabel, altimeterScreen->dateTimeValue.month_text);
|
||||
lv_label_set_text_static(altimeterScreen->dateTimeValue.dayLabel, altimeterScreen->dateTimeValue.day_text);
|
||||
}
|
||||
else
|
||||
{
|
||||
LV_LOG_USER("altimeterScreenDateTimeCb is NULL, be sure to register a callback !");
|
||||
}
|
||||
}
|
||||
|
@ -3,6 +3,7 @@
|
||||
#define ALTIMETER_SCREEN_H
|
||||
|
||||
#include "lvgl.h"
|
||||
#include <time.h>
|
||||
|
||||
#define ALTITUDE_TIMER_UPDATE_RATE_HZ (10)
|
||||
|
||||
@ -36,6 +37,7 @@ typedef struct MinMaxVSIValue
|
||||
typedef void (*AltimeterScreenOnStateChangeCb_t)(AltimeterScreenState_e altimeterScreenState);
|
||||
typedef void(*AltimeterScreenMeasurementCb_t)(float * const temperature, float * const pressure, float * const altitude);
|
||||
typedef void (*AltimeterScreenUserFeedbackCb_t)(void);
|
||||
typedef void (*AltimeterScreenDateTimeCb_t)(struct tm * const dateTime);
|
||||
|
||||
typedef struct PressureChart
|
||||
{
|
||||
@ -48,6 +50,12 @@ typedef struct TemperatureValue
|
||||
char value_text[9];
|
||||
} TemperatureValue_t;
|
||||
|
||||
typedef struct DateTimeValue
|
||||
{
|
||||
lv_obj_t *timeLabel, *monthLabel, *dayLabel;
|
||||
char time_text[11], month_text[5], day_text[3];
|
||||
} DateTimeValue_t;
|
||||
|
||||
typedef struct SpinBox
|
||||
{
|
||||
lv_obj_t *spinbox;
|
||||
@ -63,12 +71,14 @@ typedef struct AltimeterScreen
|
||||
PressureChart_t pressureChart;
|
||||
lv_timer_t *pressureUpdateTimer;
|
||||
lv_timer_t *altitudeUpdateTimer;
|
||||
lv_timer_t *dateTimeUpdateTimer;
|
||||
MainValue_t pressureValue;
|
||||
MainValue_t altitudeValue;
|
||||
MinMaxVSIValue_t minValue;
|
||||
MinMaxVSIValue_t maxValue;
|
||||
MinMaxVSIValue_t vsiValue;
|
||||
TemperatureValue_t temperatureValue;
|
||||
DateTimeValue_t dateTimeValue;
|
||||
float vsiFloat;
|
||||
float lastReadAltitude;
|
||||
//Should not be erased attributes
|
||||
@ -76,13 +86,21 @@ typedef struct AltimeterScreen
|
||||
AltimeterScreenMeasurementCb_t altimeterScreenMeasurementCb;
|
||||
AltimeterScreenUserFeedbackCb_t altimeterScreenUserFeedbackCb;
|
||||
AltimeterScreenOnStateChangeCb_t altimeterScreenOnStateChangeCb;
|
||||
AltimeterScreenDateTimeCb_t altimeterScreenDateTimeCb;
|
||||
float minValueFloat;
|
||||
float maxValueFloat;
|
||||
float altitudeOffset;
|
||||
lv_coord_t pressure_data_points[10];
|
||||
float pressure_data_points_float[10];
|
||||
bool hour_24H_format : 1;
|
||||
} AltimeterScreen_t;
|
||||
|
||||
/**
|
||||
* @brief Initializes the altimeter screen context object
|
||||
* @note This function has to be called first before any others
|
||||
*
|
||||
* @param altimeterScreen a pointer to the altimeter screen context structure to initialize.
|
||||
*/
|
||||
void altimeter_screen_init(AltimeterScreen_t * const altimeterScreen);
|
||||
|
||||
/**
|
||||
@ -90,27 +108,62 @@ void altimeter_screen_init(AltimeterScreen_t * const altimeterScreen);
|
||||
* This callback should be used to initialize and deinitialize needed devices drivers like the pressure/temperature sensor.
|
||||
* @note The state of the application is passed as a parameter of the callback function.
|
||||
*
|
||||
* @param altimeterScreen a pointer to the altimeter screen object structure.
|
||||
* @param altimeterScreen a pointer to the previously initialized altimeter screen object structure using @ref altimeter_screen_init.
|
||||
* @param altimeterScreenOnStateChangeCb the callback of type @ref AltimeterScreenOnStateChangeCb_t to register.
|
||||
*/
|
||||
void altimeter_screen_register_on_state_change_cb(AltimeterScreen_t * const altimeterScreen, AltimeterScreenOnStateChangeCb_t altimeterScreenOnStateChangeCb);
|
||||
|
||||
/**
|
||||
* @brief Registers a callback functions which will be called every time a user feedback should
|
||||
* @brief Registers a callback function which will be called every time a user feedback should
|
||||
* be made. In this case, every time a button is clicked, the callback will be called.
|
||||
* This enables the app to react to this user event.
|
||||
*
|
||||
* @param menuScreen a pointer to the previously initialized menu screen's context structure.
|
||||
* @param menuScreenUserFeedbackCb a pointer to a function having the following signature : void(void).
|
||||
* @param altimeterScreen a pointer to the previously initialized altimeter screen object structure using @ref altimeter_screen_init.
|
||||
* @param altimeterScreenUserFeedbackCb a pointer to a function having the following signature : void(void) @ref AltimeterScreenUserFeedbackCb_t.
|
||||
*/
|
||||
void altimeter_screen_register_user_feedback_cb(AltimeterScreen_t * const altimeterScreen, AltimeterScreenUserFeedbackCb_t altimeterScreenUserFeedbackCb);
|
||||
|
||||
/**
|
||||
* @brief Registers the callback function used to retrieve the data displayed in the altimeter app.
|
||||
* The various data are : the temperature in °C, the pressure in hPa and the altitude in meters.
|
||||
*
|
||||
* @param altimeterScreen a pointer to the previously initialized altimeter screen object structure using @ref altimeter_screen_init.
|
||||
* @param altimeterScreenMeasurementCb the callback of type @ref AltimeterScreenMeasurementCb_t to register.
|
||||
* The function's signature is : void(float * const, float * const, float * const).
|
||||
*/
|
||||
void altimeter_screen_register_measurement_cb(AltimeterScreen_t * const altimeterScreen, AltimeterScreenMeasurementCb_t altimeterScreenMeasurementCb);
|
||||
|
||||
/**
|
||||
* @brief Registers the callback function used to retrieve the system time to be displayed on the altitude view.
|
||||
*
|
||||
* @param altimeterScreen a pointer to the previously initialized altimeter screen object structure using @ref altimeter_screen_init.
|
||||
* @param altimeterScreenDateTimeCb the callback of type @ref AltimeterScreenDateTimeCb_t to register.
|
||||
* The function's signature is : void(struct tm * const).
|
||||
*/
|
||||
void altimeter_screen_register_date_time_cb(AltimeterScreen_t * const altimeterScreen, AltimeterScreenDateTimeCb_t altimeterScreenDateTimeCb);
|
||||
|
||||
/**
|
||||
* @brief Sets the format used to display the time on the altitude screen, ie 12H or 24H hour format.
|
||||
*
|
||||
* @param altimeterScreen altimeterScreen a pointer to the previously initialized altimeter screen object structure using @ref altimeter_screen_init.
|
||||
* @param hour_24H_format a boolean value indicating if the hour format is 24H (true) or 12H (false).
|
||||
*/
|
||||
void altimeter_screen_set_displayed_hour_format(AltimeterScreen_t * const altimeterScreen, bool hour_24H_format);
|
||||
|
||||
void altimeter_screen_shift_chart_pressure_measurement(AltimeterScreen_t * const altimeterScreen, float pressure);
|
||||
|
||||
/**
|
||||
* @brief Graphically builds the altimeter screen.
|
||||
*
|
||||
* @param altimeterScreen a pointer to the previously initialized altimeter screen object structure using @ref altimeter_screen_init.
|
||||
*/
|
||||
void altimeter_screen_create(AltimeterScreen_t * const altimeterScreen);
|
||||
|
||||
/**
|
||||
* @brief Frees all resources used by the AltimeterScreen object.
|
||||
*
|
||||
* @param altimeterScreen a pointer to the previously initialized altimeter screen object structure using @ref altimeter_screen_init.
|
||||
*/
|
||||
void altimeter_screen_destroy(AltimeterScreen_t * const altimeterScreen);
|
||||
|
||||
#endif //ALTIMETER_SCREEN_H
|
||||
|
@ -120,7 +120,7 @@ static void alti_on_state_change_cb(AltimeterScreenState_e state)
|
||||
static void alti_meas_cb(float * const temperature, float * const pressure, float * const altitude)
|
||||
{
|
||||
static float a = 425.5;
|
||||
if(temperature) *temperature = (rand() % 20) + 10;
|
||||
if(temperature) *temperature = (rand() % 30) + -10;
|
||||
|
||||
if(pressure) *pressure = (float)rand()/(float)(RAND_MAX) * 50 + 980;
|
||||
a += 0.2;
|
||||
@ -187,6 +187,8 @@ int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR szCmdLi
|
||||
altimeter_screen_register_on_state_change_cb(&altimeterScreen, &(alti_on_state_change_cb));
|
||||
altimeter_screen_register_measurement_cb(&altimeterScreen, &(alti_meas_cb));
|
||||
altimeter_screen_register_user_feedback_cb(&altimeterScreen, &(user_feedback));
|
||||
altimeter_screen_register_date_time_cb(&altimeterScreen, &(date_time_cb));
|
||||
altimeter_screen_set_displayed_hour_format(&altimeterScreen, false);
|
||||
notification_screen_init(¬ificationScreen);
|
||||
notification_screen_register_on_state_change_cb(¬ificationScreen, &(notification_screen_on_state_change_cb));
|
||||
notification_screen_set_displayed_hour_format(¬ificationScreen, false);
|
||||
|
@ -802,7 +802,7 @@ static void update_menu_list_item_text(lv_obj_t *menu_list_item, const char *tex
|
||||
lv_obj_t *label = lv_obj_get_child(menu_list_item, 0);
|
||||
if(label)
|
||||
{
|
||||
lv_label_set_text(label, text);
|
||||
lv_label_set_text_static(label, text);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -245,7 +245,8 @@ static void hide_hour_and_minutes_hand_cb(lv_event_t *e)
|
||||
{
|
||||
WatchFace_t *watchFace = lv_event_get_user_data(e);
|
||||
|
||||
if(255 == lv_obj_get_style_opa(watchFace->hourHand.handImg, LV_PART_MAIN))
|
||||
// Consumes too much ram on embedded target :-(
|
||||
/*if(255 == lv_obj_get_style_opa(watchFace->hourHand.handImg, LV_PART_MAIN))
|
||||
{
|
||||
lv_obj_set_style_opa(watchFace->hourHand.handImg, 120, LV_PART_MAIN);
|
||||
lv_obj_set_style_opa(watchFace->minuteHand.handImg, 120, LV_PART_MAIN);
|
||||
@ -254,9 +255,9 @@ static void hide_hour_and_minutes_hand_cb(lv_event_t *e)
|
||||
{
|
||||
lv_obj_set_style_opa(watchFace->hourHand.handImg, 255, LV_PART_MAIN);
|
||||
lv_obj_set_style_opa(watchFace->minuteHand.handImg, 255, LV_PART_MAIN);
|
||||
}
|
||||
}*/
|
||||
|
||||
/*if(lv_obj_has_flag(watchFace->hourHand.handImg, LV_OBJ_FLAG_HIDDEN))
|
||||
if(lv_obj_has_flag(watchFace->hourHand.handImg, LV_OBJ_FLAG_HIDDEN))
|
||||
{
|
||||
lv_obj_clear_flag(watchFace->hourHand.handImg, LV_OBJ_FLAG_HIDDEN);
|
||||
lv_obj_clear_flag(watchFace->minuteHand.handImg, LV_OBJ_FLAG_HIDDEN);
|
||||
@ -265,7 +266,7 @@ static void hide_hour_and_minutes_hand_cb(lv_event_t *e)
|
||||
{
|
||||
lv_obj_add_flag(watchFace->hourHand.handImg, LV_OBJ_FLAG_HIDDEN);
|
||||
lv_obj_add_flag(watchFace->minuteHand.handImg, LV_OBJ_FLAG_HIDDEN);
|
||||
}*/
|
||||
}
|
||||
|
||||
//Just for testing purposes, create a new notification
|
||||
char *title = malloc(strlen("JoeJohny John")+1);
|
||||
@ -326,7 +327,7 @@ void watch_face_create(WatchFace_t * const watchFace)
|
||||
//Our display is the watch face image :
|
||||
watchFace->display = lv_img_create(NULL);
|
||||
lv_img_set_src(watchFace->display, watch_face_img);
|
||||
lv_obj_set_style_bg_color(watchFace->display, lv_color_black(), LV_PART_MAIN);
|
||||
lv_obj_set_style_bg_color(watchFace->display, lv_color_white(), LV_PART_MAIN);
|
||||
lv_obj_add_event_cb(watchFace->display, &(hide_hour_and_minutes_hand_cb), LV_EVENT_LONG_PRESSED, watchFace);
|
||||
|
||||
//Battery arc is created here
|
||||
|
Loading…
Reference in New Issue
Block a user