mirror of
https://github.com/InfiniTimeOrg/InfiniTime.git
synced 2024-10-22 15:11:51 +02:00
Add refreshing
This commit is contained in:
parent
e677d1cb42
commit
0faece9e4b
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
Loading…
Reference in a new issue