summaryrefslogtreecommitdiff
path: root/apps/settings.c
diff options
context:
space:
mode:
authorMarkus Braun <markus.braun@krawel.de>2002-08-09 13:50:58 +0000
committerMarkus Braun <markus.braun@krawel.de>2002-08-09 13:50:58 +0000
commit2012acf0a805793d970621ec0ab32bdb2b6ebd61 (patch)
treecc5c47180458aa83df42ba905bcb8dfc9c9f74d0 /apps/settings.c
parent3181f68eff2951029e56293e6003eff34c499584 (diff)
downloadrockbox-2012acf0a805793d970621ec0ab32bdb2b6ebd61.zip
rockbox-2012acf0a805793d970621ec0ab32bdb2b6ebd61.tar.gz
rockbox-2012acf0a805793d970621ec0ab32bdb2b6ebd61.tar.bz2
rockbox-2012acf0a805793d970621ec0ab32bdb2b6ebd61.tar.xz
changed display format for time/date setting menu
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1646 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/settings.c')
-rw-r--r--apps/settings.c30
1 files changed, 16 insertions, 14 deletions
diff --git a/apps/settings.c b/apps/settings.c
index 826d87a..274a124 100644
--- a/apps/settings.c
+++ b/apps/settings.c
@@ -553,8 +553,10 @@ void set_option(char* string, int* variable, char* options[], int numoptions )
#ifdef HAVE_RTC
#define INDEX_X 0
#define INDEX_Y 1
+#define INDEX_WIDTH 2
char *dayname[]={"Sun","Mon","Tue","Wed","Thu","Fri","Sat"};
-char cursor[][2]={{9, 1}, {12, 1}, {15, 1}, {9, 2}, {12, 2}, {15, 2}};
+char *monthname[]={"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"};
+char cursor[][3]={{0, 1, 2}, {3, 1, 2}, {6, 1, 2}, {4, 2, 4}, {9, 2, 3}, {13, 2, 2}};
char daysinmonth[]={31,28,31,30,31,30,31,31,30,31,30,31};
void set_time(char* string, int timedate[])
@@ -574,36 +576,36 @@ void set_time(char* string, int timedate[])
while ( !done ) {
/* calculate the number of days in febuary */
- realyear=timedate[5]+2000;
+ realyear=timedate[3]+2000;
if((realyear%4==0 && !(realyear%100 == 0)) || realyear%400 == 0) /* for february depends on year */
daysinmonth[1]=29;
else
daysinmonth[1]=28;
/* fix day if month or year changed */
- timedate[3]=timedate[3]<daysinmonth[timedate[4]-1]?timedate[3]:daysinmonth[timedate[4]-1];
+ timedate[5]=timedate[5]<daysinmonth[timedate[4]-1]?timedate[5]:daysinmonth[timedate[4]-1];
/* calculate day of week */
julianday=0;
for(i=0;i<timedate[4]-1;i++) {
julianday+=daysinmonth[i];
}
- julianday+=timedate[3];
+ julianday+=timedate[5];
timedate[6]=(realyear+julianday+(realyear-1)/4-(realyear-1)/100+(realyear-1)/400+7-1)%7;
- snprintf(buffer, sizeof(buffer), "Time %02d:%02d:%02d",
+ snprintf(buffer, sizeof(buffer), "%02d:%02d:%02d",
timedate[0],
timedate[1],
timedate[2]);
lcd_puts(0,1,buffer);
- snprintf(buffer, sizeof(buffer), "Date %s %02d.%02d.%02d",
+ snprintf(buffer, sizeof(buffer), "%s 20%02d %s %02d",
dayname[timedate[6]],
timedate[3],
- timedate[4],
+ monthname[timedate[4]-1],
timedate[5]);
lcd_puts(0,2,buffer);
- lcd_invertrect(cursor[cursorpos][INDEX_X]*6,cursor[cursorpos][INDEX_Y]*8,12,8);
+ lcd_invertrect(cursor[cursorpos][INDEX_X]*6,cursor[cursorpos][INDEX_Y]*8,cursor[cursorpos][INDEX_WIDTH]*6,8);
lcd_puts(0,4,"ON to set");
lcd_puts(0,5,"OFF to revert");
lcd_update();
@@ -621,17 +623,17 @@ void set_time(char* string, int timedate[])
min=0;
steps=60;
break;
- case 3: /* day */
- min=1;
- steps=daysinmonth[timedate[4]-1];
+ case 3: /* year */
+ min=0;
+ steps=100;
break;
case 4: /* month */
min=1;
steps=12;
break;
- case 5: /* year */
- min=0;
- steps=100;
+ case 5: /* day */
+ min=1;
+ steps=daysinmonth[timedate[4]-1];
break;
}
}