diff options
author | Björn Stenberg <bjorn@haxx.se> | 2002-08-30 00:39:31 +0000 |
---|---|---|
committer | Björn Stenberg <bjorn@haxx.se> | 2002-08-30 00:39:31 +0000 |
commit | b847a7b296328a08eef4c74492dbd0056dff1318 (patch) | |
tree | 9ca1c5e311ace2dc9ae42229367065c6d0176040 /apps/recorder | |
parent | 924b5313ac2fe15d13b662ff762094ffb6f4ab5d (diff) | |
download | rockbox-b847a7b296328a08eef4c74492dbd0056dff1318.tar.gz rockbox-b847a7b296328a08eef4c74492dbd0056dff1318.zip |
Added status_draw() to set_playmode().
Moved rtc reading from icons.c code to status.c
Added boundary checks for time display values.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@2066 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/recorder')
-rw-r--r-- | apps/recorder/icons.c | 28 | ||||
-rw-r--r-- | apps/recorder/icons.h | 2 |
2 files changed, 20 insertions, 10 deletions
diff --git a/apps/recorder/icons.c b/apps/recorder/icons.c index d1ee11dbed..3f6518903f 100644 --- a/apps/recorder/icons.c +++ b/apps/recorder/icons.c @@ -290,23 +290,33 @@ void statusbar_icon_lock(void) /* * Print time to status bar */ -void statusbar_time(void) +void statusbar_time(int minutes) { - int hour,minute; unsigned char buffer[6]; unsigned int width, height; #if defined(LOADABLE_FONTS) unsigned char *font; #endif - hour = rtc_read(0x03); - minute = rtc_read(0x02); + int hour = minutes / 60; + int minute = minutes % 60; + + if ( hour >= 0 && + hour <= 23 && + minute >= 0 && + minute <= 59 ) + { + snprintf(buffer, sizeof(buffer), "%d%d:%d%d", + (hour & 0x30) >> 4, + hour & 0x0f, + (minute & 0xf0) >> 4, + minute & 0x0f); + } + else + { + strncpy(buffer, "--:--", sizeof buffer); + } - snprintf(buffer, sizeof(buffer), "%d%d:%d%d", - (hour & 0x30) >> 4, - hour & 0x0f, - (minute & 0xf0) >> 4, - minute & 0x0f); #if defined(LCD_PROPFONTS) lcd_getstringsize(buffer, 0, &width, &height); #elif defined(LOADABLE_FONTS) diff --git a/apps/recorder/icons.h b/apps/recorder/icons.h index ff6a011b98..cebff7ca2c 100644 --- a/apps/recorder/icons.h +++ b/apps/recorder/icons.h @@ -86,6 +86,6 @@ extern void statusbar_icon_play_mode(int mode); extern void statusbar_icon_shuffle(void); extern void statusbar_icon_lock(void); #ifdef HAVE_RTC -extern void statusbar_time(void); +extern void statusbar_time(int minutes); #endif #endif /* End HAVE_LCD_BITMAP */ |