Skip to content

Commit e33da01

Browse files
authored
Merge pull request #592 from howard0su/timer_page
move static variables into struct pagemem.
2 parents 42f51ba + e42e29e commit e33da01

4 files changed

Lines changed: 46 additions & 41 deletions

File tree

src/pages/128x64x1/set_timer_page.c

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,8 @@ const char *settimer_select_cb(guiObject_t *obj, int dir, void *data)
3838
(void)dir;
3939
u8 changed = 0;
4040
if ((long)data == SELECT_HMS) {
41-
permanent.hms = GUI_TextSelectHelper(permanent.hms, TIMER_SECONDS, TIMER_HOURS, dir, 1, 1, &changed);
42-
switch (permanent.hms) {
41+
tp->hms = GUI_TextSelectHelper(tp->hms, TIMER_SECONDS, TIMER_HOURS, dir, 1, 1, &changed);
42+
switch (tp->hms) {
4343
case TIMER_SECONDS:
4444
return _tr("Second");
4545
case TIMER_MINUTES:
@@ -51,48 +51,48 @@ const char *settimer_select_cb(guiObject_t *obj, int dir, void *data)
5151
}
5252
if ((long)data == SELECT_VALUE) {
5353
tempstring[0] = '\0';
54-
switch (permanent.hms) {
54+
switch (tp->hms) {
5555
case TIMER_SECONDS:
56-
permanent.second = GUI_TextSelectHelper(permanent.second, 0, 59, dir, 1, 10, &changed);
57-
sprintf(tempstring, "%d", permanent.second);
56+
tp->second = GUI_TextSelectHelper(tp->second, 0, 59, dir, 1, 10, &changed);
57+
sprintf(tempstring, "%d", tp->second);
5858
break;
5959
case TIMER_MINUTES:
60-
permanent.minute = GUI_TextSelectHelper(permanent.minute, 0, 59, dir, 1, 10, &changed);
61-
sprintf(tempstring, "%d", permanent.minute);
60+
tp->minute = GUI_TextSelectHelper(tp->minute, 0, 59, dir, 1, 10, &changed);
61+
sprintf(tempstring, "%d", tp->minute);
6262
break;
6363
case TIMER_HOURS:
64-
permanent.hour = GUI_TextSelectHelper(permanent.hour, 0, 99, dir, 1, 10, &changed);
65-
sprintf(tempstring, "%d", permanent.hour);
64+
tp->hour = GUI_TextSelectHelper(tp->hour, 0, 99, dir, 1, 10, &changed);
65+
sprintf(tempstring, "%d", tp->hour);
6666
break;
6767
}
6868
if (changed) GUI_Redraw(&guiset->addtime);
6969
return tempstring;
7070
}
7171
if ((long)data == ADDSET_SELECT) {
72-
permanent.addset = GUI_TextSelectHelper(permanent.addset, SET_BUTTON, ADD_BUTTON, dir, 1, 1, NULL);
73-
return permanent.addset == SET_BUTTON ? _tr("Set") : _tr("Add");
72+
tp->addset = GUI_TextSelectHelper(tp->addset, SET_BUTTON, ADD_BUTTON, dir, 1, 1, NULL);
73+
return tp->addset == SET_BUTTON ? _tr("Set") : _tr("Add");
7474
}
7575
return "";
7676
}
7777

7878
void add_set_button_cb(struct guiObject *obj, void *data)
7979
{
8080
(void)obj;
81-
permanent.newvalue = ((permanent.hour * 60 + permanent.minute) * 60 + permanent.second) * 1000;
82-
if ((long)data == ADDSET_SELECT && permanent.addset == ADD_BUTTON)
83-
permanent.newvalue += permanent.oldvalue;
84-
if (permanent.newvalue > 100*60*60*1000) permanent.newvalue = 0;
81+
tp->newvalue = ((tp->hour * 60 + tp->minute) * 60 + tp->second) * 1000;
82+
if ((long)data == ADDSET_SELECT && tp->addset == ADD_BUTTON)
83+
tp->newvalue += tp->oldvalue;
84+
if (tp->newvalue > 100*60*60*1000) tp->newvalue = 0;
8585
GUI_Redraw(&guiset->newvalue);
8686
}
8787

8888
static void _show_settimer_page(u8 index)
8989
{
90-
memset(&permanent, 0, sizeof(permanent));
91-
permanent.index = index;
92-
permanent.oldvalue = TIMER_GetValue(permanent.index);
93-
permanent.newvalue = TIMER_GetValue(permanent.index); // set to original value since it is written anyway
94-
permanent.addset = ADD_BUTTON;
95-
permanent.hms = TIMER_HOURS;
90+
memset(tp, 0, sizeof(*tp));
91+
tp->index = index;
92+
tp->oldvalue = TIMER_GetValue(tp->index);
93+
tp->newvalue = TIMER_GetValue(tp->index); // set to original value since it is written anyway
94+
tp->addset = ADD_BUTTON;
95+
tp->hms = TIMER_HOURS;
9696

9797
snprintf(tempstring, sizeof(tempstring), "%s %d", _tr(PAGE_GetName(PAGEID_SETTIMER)), index + 1);
9898
PAGE_ShowHeader(tempstring);

src/pages/320x240x16/set_timer_page.c

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -30,14 +30,14 @@ const char * _timer_new_str_cb(guiObject_t *obj, int dir, void *data)
3030
u8 changed = 0;
3131
tempstring[0] = '\0';
3232
if (index == TIMER_SECONDS) {
33-
permanent.second = GUI_TextSelectHelper(permanent.second, 0, 59, dir, 1, 10, &changed);
34-
sprintf(tempstring, "%2d", permanent.second);
33+
tp->second = GUI_TextSelectHelper(tp->second, 0, 59, dir, 1, 10, &changed);
34+
sprintf(tempstring, "%2d", tp->second);
3535
} else if (index == TIMER_MINUTES) {
36-
permanent.minute = GUI_TextSelectHelper(permanent.minute, 0, 59, dir, 1, 10, &changed);
37-
sprintf(tempstring, "%2d", permanent.minute);
36+
tp->minute = GUI_TextSelectHelper(tp->minute, 0, 59, dir, 1, 10, &changed);
37+
sprintf(tempstring, "%2d", tp->minute);
3838
} else if (index == TIMER_HOURS) {
39-
permanent.hour = GUI_TextSelectHelper(permanent.hour, 0, 99, dir, 1, 10, &changed);
40-
sprintf(tempstring, "%2d", permanent.hour);
39+
tp->hour = GUI_TextSelectHelper(tp->hour, 0, 99, dir, 1, 10, &changed);
40+
sprintf(tempstring, "%2d", tp->hour);
4141
}
4242
if (changed) GUI_Redraw(&guiset->addvalue);
4343
return tempstring;
@@ -46,18 +46,19 @@ const char * _timer_new_str_cb(guiObject_t *obj, int dir, void *data)
4646
void add_set_button_cb(struct guiObject *obj, const void *data)
4747
{
4848
(void)obj;
49-
permanent.newvalue = ((permanent.hour * 60 + permanent.minute) * 60 + permanent.second) * 1000;
50-
if ((long)data == ADD_BUTTON) permanent.newvalue += permanent.oldvalue;
51-
if (permanent.newvalue > 100*60*60*1000) permanent.newvalue = 0;
49+
tp->newvalue = ((tp->hour * 60 + tp->minute) * 60 + tp->second) * 1000;
50+
if ((long)data == ADD_BUTTON) tp->newvalue += tp->oldvalue;
51+
if (tp->newvalue > 100*60*60*1000) tp->newvalue = 0;
5252
GUI_Redraw(&guiset->newvalue);
5353
}
5454

5555
static void _show_settimer_page(u8 index)
5656
{
57-
memset(&permanent, 0, sizeof(permanent));
58-
permanent.index = index;
59-
permanent.oldvalue = TIMER_GetValue(permanent.index);
60-
permanent.newvalue = TIMER_GetValue(permanent.index); // set to original value since it is written anyway
57+
memset(tp, 0, sizeof(*tp));
58+
tp->index = index;
59+
tp->oldvalue = TIMER_GetValue(tp->index);
60+
tp->newvalue = TIMER_GetValue(tp->index); // set to original value since it is written anyway
61+
6162

6263
firstObj = NULL;
6364
PAGE_ShowHeader(PAGE_GetName(PAGEID_SETTIMER));

src/pages/common/_set_timer_page.c

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,31 +24,29 @@ enum { OLD_TIMER=0, ADD_TIMER, NEW_TIMER, // only for readability
2424

2525
static void _show_settimer_page(u8 index);
2626

27-
static struct permanent_timer { u8 index; u8 second, minute, hour; u32 oldvalue; u32 newvalue; int hms; int addset; } permanent;
28-
2927
void PAGE_SetTimerInit(int index)
3028
{
3129
_show_settimer_page(index);
3230
}
3331

3432
void PAGE_SetTimerExit()
3533
{
36-
TIMER_SetValue(permanent.index, permanent.newvalue);
37-
Model.timer[permanent.index].val = permanent.newvalue;
34+
TIMER_SetValue(tp->index, tp->newvalue);
35+
Model.timer[tp->index].val = tp->newvalue;
3836
}
3937

4038
const char * timer_value_str_cb(guiObject_t *obj, const void *data)
4139
{
4240
(void)obj;
4341
switch ((long)data) {
4442
case OLD_TIMER:
45-
TIMER_SetString(tempstring, permanent.oldvalue);
43+
TIMER_SetString(tempstring, tp->oldvalue);
4644
return tempstring;
4745
case ADD_TIMER:
48-
TIMER_SetString(tempstring, ((permanent.hour * 60 + permanent.minute) * 60 + permanent.second) * 1000);
46+
TIMER_SetString(tempstring, ((tp->hour * 60 + tp->minute) * 60 + tp->second) * 1000);
4947
return tempstring;
5048
case NEW_TIMER:
51-
TIMER_SetString(tempstring, permanent.newvalue);
49+
TIMER_SetString(tempstring, tp->newvalue);
5250
return tempstring;
5351
case ADD_BUTTON:
5452
return _tr("Add");

src/pages/common/timer_page.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,11 @@
33
#include "timer.h"
44
struct timer_page {
55
char timer[9];
6+
u8 index;
7+
u8 second, minute, hour;
8+
u32 oldvalue;
9+
u32 newvalue;
10+
s32 hms;
11+
s32 addset;
612
};
713
#endif

0 commit comments

Comments
 (0)