summaryrefslogtreecommitdiff
path: root/apps/main_menu.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/main_menu.c')
-rw-r--r--apps/main_menu.c34
1 files changed, 27 insertions, 7 deletions
diff --git a/apps/main_menu.c b/apps/main_menu.c
index aa87ed39a3..de51b57701 100644
--- a/apps/main_menu.c
+++ b/apps/main_menu.c
@@ -151,17 +151,19 @@ extern unsigned char mp3end[];
151bool show_info(void) 151bool show_info(void)
152{ 152{
153 char s[32]; 153 char s[32];
154 int buflen = ((mp3end - mp3buf) * 100) / 0x100000; 154 int buflen = ((mp3end - mp3buf) * 1000) / 0x100000;
155 int integer, decimal; 155 int integer, decimal;
156 bool done = false; 156 bool done = false;
157 int key;
158 int state=0;
157 159
158 while(!done) 160 while(!done)
159 { 161 {
160 lcd_clear_display(); 162 lcd_clear_display();
161 lcd_puts(0, 0, str(LANG_ROCKBOX_INFO)); 163 lcd_puts(0, 0, str(LANG_ROCKBOX_INFO));
162 164
163 integer = buflen / 100; 165 integer = buflen / 1000;
164 decimal = buflen % 100; 166 decimal = buflen % 1000;
165#ifdef HAVE_LCD_CHARCELLS 167#ifdef HAVE_LCD_CHARCELLS
166 snprintf(s, sizeof(s), str(LANG_BUFFER_STAT_PLAYER), integer, decimal); 168 snprintf(s, sizeof(s), str(LANG_BUFFER_STAT_PLAYER), integer, decimal);
167 lcd_puts(0, 0, s); 169 lcd_puts(0, 0, s);
@@ -192,11 +194,22 @@ bool show_info(void)
192 194
193 lcd_update(); 195 lcd_update();
194 196
195 sleep(HZ/2);
196
197 /* Wait for a key to be pushed */ 197 /* Wait for a key to be pushed */
198 if(button_get(false) & ~BUTTON_REL) 198 key = button_get_w_tmo(HZ/2);
199 done = true; 199 if(key) {
200 switch(state) {
201 case 0:
202 /* first, a non-release event */
203 if(!(key&BUTTON_REL))
204 state++;
205 break;
206 case 1:
207 /* then a release-event */
208 if(key&BUTTON_REL)
209 done = true;
210 break;
211 }
212 }
200 } 213 }
201 214
202 return false; 215 return false;
@@ -242,3 +255,10 @@ bool main_menu(void)
242 255
243 return result; 256 return result;
244} 257}
258
259/* -----------------------------------------------------------------
260 * local variables:
261 * eval: (load-file "../firmware/rockbox-mode.el")
262 * end:
263 * vim: et sw=4 ts=8 sts=4 tw=78
264 */