summaryrefslogtreecommitdiff
path: root/apps/main_menu.c
diff options
context:
space:
mode:
authorBjörn Stenberg <bjorn@haxx.se>2002-11-12 11:32:26 +0000
committerBjörn Stenberg <bjorn@haxx.se>2002-11-12 11:32:26 +0000
commit6fb512aba58bf221cdfcfc2a3df2148e8527883c (patch)
treee8ee8149ecf862068b7d70b2ec28ca04678227c6 /apps/main_menu.c
parent8a727cecdbb6f4efcea3a1b98cc1463825bdc499 (diff)
downloadrockbox-6fb512aba58bf221cdfcfc2a3df2148e8527883c.zip
rockbox-6fb512aba58bf221cdfcfc2a3df2148e8527883c.tar.gz
rockbox-6fb512aba58bf221cdfcfc2a3df2148e8527883c.tar.bz2
rockbox-6fb512aba58bf221cdfcfc2a3df2148e8527883c.tar.xz
Added disk space to Info menu item. (Players press + to see it.)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@2837 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/main_menu.c')
-rw-r--r--apps/main_menu.c98
1 files changed, 63 insertions, 35 deletions
diff --git a/apps/main_menu.c b/apps/main_menu.c
index 12bd227..49ad9c9 100644
--- a/apps/main_menu.c
+++ b/apps/main_menu.c
@@ -38,6 +38,7 @@
#include "powermgmt.h"
#include "sound_menu.h"
#include "status.h"
+#include "fat.h"
#include "lang.h"
@@ -158,60 +159,87 @@ bool show_info(void)
int integer, decimal;
bool done = false;
int key;
- int state=0;
+ int state = 1;
while(!done)
{
+ int y=0;
lcd_clear_display();
- lcd_puts(0, 0, str(LANG_ROCKBOX_INFO));
-
- integer = buflen / 1000;
- decimal = buflen % 1000;
+#ifdef HAVE_LCD_BITMAP
+ lcd_puts(0, y++, str(LANG_ROCKBOX_INFO));
+ y++;
+ state = 3;
+#endif
+
+ if (state & 1) {
+ integer = buflen / 1000;
+ decimal = buflen % 1000;
#ifdef HAVE_LCD_CHARCELLS
- snprintf(s, sizeof(s), str(LANG_BUFFER_STAT_PLAYER), integer, decimal);
- lcd_puts(0, 0, s);
+ snprintf(s, sizeof(s), str(LANG_BUFFER_STAT_PLAYER),
+ integer, decimal);
#else
- snprintf(s, sizeof(s), str(LANG_BUFFER_STAT_RECORDER), integer,
- decimal);
- lcd_puts(0, 2, s);
+ snprintf(s, sizeof(s), str(LANG_BUFFER_STAT_RECORDER),
+ integer, decimal);
#endif
-
+ lcd_puts(0, y++, s);
+
#ifdef HAVE_LCD_CHARCELLS
- snprintf(s, sizeof(s), str(LANG_BATTERY_LEVEL_PLAYER),
- battery_level(), battery_level_safe() ? "" : "!");
- lcd_puts(0, 1, s);
+ snprintf(s, sizeof(s), str(LANG_BATTERY_LEVEL_PLAYER),
+ battery_level(), battery_level_safe() ? "" : "!");
#else
#ifdef HAVE_CHARGE_CTRL
- if (charger_enabled)
- snprintf(s, sizeof(s), str(LANG_BATTERY_CHARGE));
- else
+ if (charger_enabled)
+ snprintf(s, sizeof(s), str(LANG_BATTERY_CHARGE));
+ else
+ snprintf(s, sizeof(s), str(LANG_BATTERY_LEVEL_RECORDER),
+ battery_level(), battery_level_safe() ? "" : " !!");
+#else
snprintf(s, sizeof(s), str(LANG_BATTERY_LEVEL_RECORDER),
battery_level(), battery_level_safe() ? "" : " !!");
- lcd_puts(0, 3, s);
-#else
- snprintf(s, sizeof(s), str(LANG_BATTERY_LEVEL_RECORDER),
- battery_level(), battery_level_safe() ? "" : " !!");
- lcd_puts(0, 3, s);
#endif
#endif
-
+ lcd_puts(0, y++, s);
+ }
+
+ if (state & 2) {
+ unsigned int size, free;
+ fat_size( &size, &free );
+
+ size /= 1024;
+ integer = size / 1024;
+ decimal = size % 1024 / 100;
+ snprintf(s, sizeof s, str(LANG_DISK_STAT), integer, decimal);
+ lcd_puts(0, y++, s);
+
+ free /= 1024;
+ integer = free / 1024;
+ decimal = free % 1024 / 100;
+ snprintf(s, sizeof s, str(LANG_DISK_FREE_STAT), integer, decimal);
+ lcd_puts(0, y++, s);
+ }
lcd_update();
/* Wait for a key to be pushed */
- key = button_get_w_tmo(HZ/2);
- if(key) {
- switch(state) {
- case 0:
- /* first, a non-release event */
- if(!(key&BUTTON_REL))
- state++;
+ key = button_get_w_tmo(HZ*5);
+ switch(key) {
+#ifdef HAVE_PLAYER_KEYPAD
+ case BUTTON_STOP | BUTTON_REL:
+#else
+ case BUTTON_LEFT | BUTTON_REL:
+ case BUTTON_OFF | BUTTON_REL:
+#endif
+ done = true;
break;
- case 1:
- /* then a release-event */
- if(key&BUTTON_REL)
- done = true;
+
+#ifdef HAVE_PLAYER_KEYPAD
+ case BUTTON_LEFT:
+ case BUTTON_RIGHT:
+ if (state == 1)
+ state = 2;
+ else
+ state = 1;
break;
- }
+#endif
}
}