Add refreshing

This commit is contained in:
Felipe Martinez 2024-07-07 16:36:59 +00:00
parent e677d1cb42
commit 0faece9e4b
2 changed files with 33 additions and 0 deletions

View file

@ -127,6 +127,19 @@ void ASM::run() {
ptr = pop_uint32();
break;
case StartPeriodicRefresh:
if (taskRefresh == nullptr) {
taskRefresh = lv_task_create(RefreshTaskCallback, LV_DISP_DEF_REFR_PERIOD, LV_TASK_PRIO_MID, this);
}
break;
case StopPeriodicRefresh:
if (taskRefresh != nullptr) {
lv_task_del(taskRefresh);
taskRefresh = nullptr;
}
break;
case SetLabelText: {
Value str = pop(String);
Value obj = pop(LvglObject);

View file

@ -54,6 +54,21 @@ namespace Pinetime {
data.s = s;
data.cap = cap;
}
~Value() {
switch (type) {
case String:
delete[] data.s;
break;
case LvglObject:
lv_obj_del(data.obj);
break;
default:
break;
}
}
} __packed;
enum OpcodeShort : uint8_t {
@ -69,6 +84,9 @@ namespace Pinetime {
Duplicate,
LoadString,
StartPeriodicRefresh,
StopPeriodicRefresh,
SetLabelText,
SetObjectAlign,
CreateLabel,
@ -103,6 +121,8 @@ namespace Pinetime {
Value stack[stack_size];
uint8_t stack_pointer = 0;
lv_task_t* taskRefresh = nullptr;
void run();
void asm_assert(bool condition);