From 3181f68eff2951029e56293e6003eff34c499584 Mon Sep 17 00:00:00 2001 From: Markus Braun Date: Fri, 9 Aug 2002 12:38:45 +0000 Subject: Added a time/date setting git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1645 a1c6a512-1295-4272-9138-f99709370657 --- apps/settings.c | 117 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 117 insertions(+) (limited to 'apps/settings.c') diff --git a/apps/settings.c b/apps/settings.c index cda65aa9d6..826d87ab60 100644 --- a/apps/settings.c +++ b/apps/settings.c @@ -549,3 +549,120 @@ void set_option(char* string, int* variable, char* options[], int numoptions ) } lcd_stop_scroll(); } + +#ifdef HAVE_RTC +#define INDEX_X 0 +#define INDEX_Y 1 +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 daysinmonth[]={31,28,31,30,31,30,31,31,30,31,30,31}; + +void set_time(char* string, int timedate[]) +{ + bool done = false; + int button; + int min=0,steps=0; + int cursorpos=0; + int lastcursorpos=!cursorpos; + unsigned char buffer[19]; + int realyear; + int julianday; + int i; + + lcd_clear_display(); + lcd_puts_scroll(0,0,string); + + while ( !done ) { + /* calculate the number of days in febuary */ + realyear=timedate[5]+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]