diff options
Diffstat (limited to 'apps')
-rw-r--r-- | apps/main_menu.c | 34 |
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[]; | |||
151 | bool show_info(void) | 151 | bool 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 | */ | ||