summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBjörn Stenberg <bjorn@haxx.se>2003-04-23 11:26:25 +0000
committerBjörn Stenberg <bjorn@haxx.se>2003-04-23 11:26:25 +0000
commit942bc9449ea587fc3d50a468da56df32baf0748f (patch)
treeca3731dfb763dbb299fe0edb41fa019263b588a0
parent10fd7b6c3b3ed8bfd15ec1a6b67aaff3c4cf2a69 (diff)
downloadrockbox-942bc9449ea587fc3d50a468da56df32baf0748f.tar.gz
rockbox-942bc9449ea587fc3d50a468da56df32baf0748f.zip
Only redraw the status line when info actually changed.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3588 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--apps/menu.c4
-rw-r--r--apps/recorder/icons.c8
-rw-r--r--apps/recorder/recording.c2
-rw-r--r--apps/screens.c7
-rw-r--r--apps/settings.c6
-rw-r--r--apps/sleeptimer.c2
-rw-r--r--apps/sound_menu.c2
-rw-r--r--apps/status.c97
-rw-r--r--apps/status.h2
-rw-r--r--apps/tree.c12
-rw-r--r--apps/wps-display.c4
-rw-r--r--apps/wps.c12
12 files changed, 93 insertions, 65 deletions
diff --git a/apps/menu.c b/apps/menu.c
index 1c6be6f58a..023f6fbbfb 100644
--- a/apps/menu.c
+++ b/apps/menu.c
@@ -167,7 +167,7 @@ static void menu_draw(int m)
167 LCD_HEIGHT - SCROLLBAR_Y, menus[m].itemcount, menus[m].top, 167 LCD_HEIGHT - SCROLLBAR_Y, menus[m].itemcount, menus[m].top,
168 menus[m].top + menu_lines, VERTICAL); 168 menus[m].top + menu_lines, VERTICAL);
169#endif 169#endif
170 status_draw(); 170 status_draw(true);
171 lcd_update(); 171 lcd_update();
172} 172}
173 173
@@ -332,7 +332,7 @@ int menu_show(int m)
332 return MENU_ATTACHED_USB; 332 return MENU_ATTACHED_USB;
333 } 333 }
334 334
335 status_draw(); 335 status_draw(false);
336 } 336 }
337 return MENU_SELECTED_EXIT; 337 return MENU_SELECTED_EXIT;
338} 338}
diff --git a/apps/recorder/icons.c b/apps/recorder/icons.c
index c8fe622d6a..af0352094f 100644
--- a/apps/recorder/icons.c
+++ b/apps/recorder/icons.c
@@ -139,14 +139,6 @@ unsigned char rockbox112x37[]={
139}; 139};
140 140
141/* 141/*
142 * Wipe statusbar
143 */
144void statusbar_wipe(void)
145{
146 lcd_clearrect(0,0,LCD_WIDTH,8);
147}
148
149/*
150 * Print battery icon to status bar 142 * Print battery icon to status bar
151 */ 143 */
152void statusbar_icon_battery(int percent, bool charging) 144void statusbar_icon_battery(int percent, bool charging)
diff --git a/apps/recorder/recording.c b/apps/recorder/recording.c
index 14bd37d950..bff87735ff 100644
--- a/apps/recorder/recording.c
+++ b/apps/recorder/recording.c
@@ -416,7 +416,7 @@ bool recording_screen(void)
416 global_settings.rec_quality); 416 global_settings.rec_quality);
417 lcd_puts(0, 6, buf); 417 lcd_puts(0, 6, buf);
418 418
419 status_draw(); 419 status_draw(false);
420 420
421 lcd_update(); 421 lcd_update();
422 } 422 }
diff --git a/apps/screens.c b/apps/screens.c
index 2e120de4ab..87a9869196 100644
--- a/apps/screens.c
+++ b/apps/screens.c
@@ -85,14 +85,14 @@ void usb_display_info(void)
85 BMPWIDTH_usb_logo, 8, false); 85 BMPWIDTH_usb_logo, 8, false);
86 lcd_bitmap(usb_logo+BMPWIDTH_usb_logo*3, 6, 40, 86 lcd_bitmap(usb_logo+BMPWIDTH_usb_logo*3, 6, 40,
87 BMPWIDTH_usb_logo, 8, false); 87 BMPWIDTH_usb_logo, 8, false);
88 status_draw(); 88 status_draw(true);
89 lcd_update(); 89 lcd_update();
90#else 90#else
91 lcd_puts(0, 0, "[USB Mode]"); 91 lcd_puts(0, 0, "[USB Mode]");
92 status_set_param(false); 92 status_set_param(false);
93 status_set_audio(false); 93 status_set_audio(false);
94 status_set_usb(true); 94 status_set_usb(true);
95 status_draw(); 95 status_draw(false);
96#endif 96#endif
97} 97}
98 98
@@ -101,9 +101,10 @@ void usb_screen(void)
101#ifndef SIMULATOR 101#ifndef SIMULATOR
102 backlight_on(); 102 backlight_on();
103 usb_acknowledge(SYS_USB_CONNECTED_ACK); 103 usb_acknowledge(SYS_USB_CONNECTED_ACK);
104 usb_display_info();
104 while(usb_wait_for_disconnect_w_tmo(&button_queue, HZ)) { 105 while(usb_wait_for_disconnect_w_tmo(&button_queue, HZ)) {
105 if(usb_inserted()) { 106 if(usb_inserted()) {
106 usb_display_info(); 107 status_draw(false);
107 } 108 }
108 } 109 }
109#ifdef HAVE_LCD_CHARCELLS 110#ifdef HAVE_LCD_CHARCELLS
diff --git a/apps/settings.c b/apps/settings.c
index f4949416cd..5646a43b01 100644
--- a/apps/settings.c
+++ b/apps/settings.c
@@ -1609,7 +1609,7 @@ bool set_int(char* string,
1609 snprintf(str,sizeof str,"%d %s ", *variable, unit); 1609 snprintf(str,sizeof str,"%d %s ", *variable, unit);
1610 lcd_puts(0, 1, str); 1610 lcd_puts(0, 1, str);
1611#ifdef HAVE_LCD_BITMAP 1611#ifdef HAVE_LCD_BITMAP
1612 status_draw(); 1612 status_draw(true);
1613#endif 1613#endif
1614 lcd_update(); 1614 lcd_update();
1615 1615
@@ -1699,7 +1699,7 @@ bool set_option(char* string, int* variable, char* options[],
1699 while ( !done ) { 1699 while ( !done ) {
1700 lcd_puts(0, 1, options[*variable]); 1700 lcd_puts(0, 1, options[*variable]);
1701#ifdef HAVE_LCD_BITMAP 1701#ifdef HAVE_LCD_BITMAP
1702 status_draw(); 1702 status_draw(true);
1703#endif 1703#endif
1704 lcd_update(); 1704 lcd_update();
1705 1705
@@ -1932,7 +1932,7 @@ bool set_time(char* string, int timedate[])
1932 lcd_puts(0, 4, str(LANG_TIME_SET)); 1932 lcd_puts(0, 4, str(LANG_TIME_SET));
1933 lcd_puts(0, 5, str(LANG_TIME_REVERT)); 1933 lcd_puts(0, 5, str(LANG_TIME_REVERT));
1934#ifdef HAVE_LCD_BITMAP 1934#ifdef HAVE_LCD_BITMAP
1935 status_draw(); 1935 status_draw(true);
1936#endif 1936#endif
1937 lcd_update(); 1937 lcd_update();
1938 1938
diff --git a/apps/sleeptimer.c b/apps/sleeptimer.c
index bd9ccc359b..fb7630a241 100644
--- a/apps/sleeptimer.c
+++ b/apps/sleeptimer.c
@@ -147,7 +147,7 @@ bool sleeptimer_screen(void)
147 lcd_puts(0, 1, str(LANG_OFF)); 147 lcd_puts(0, 1, str(LANG_OFF));
148 } 148 }
149 149
150 status_draw(); 150 status_draw(true);
151 151
152 lcd_update(); 152 lcd_update();
153 } 153 }
diff --git a/apps/sound_menu.c b/apps/sound_menu.c
index 84d389a47a..26f37ea0e7 100644
--- a/apps/sound_menu.c
+++ b/apps/sound_menu.c
@@ -83,7 +83,7 @@ bool set_sound(char* string,
83 } 83 }
84 } 84 }
85 lcd_puts(0,1,str); 85 lcd_puts(0,1,str);
86 status_draw(); 86 status_draw(true);
87 lcd_update(); 87 lcd_update();
88 88
89 changed = false; 89 changed = false;
diff --git a/apps/status.c b/apps/status.c
index 5d4bba6aac..9773bc6356 100644
--- a/apps/status.c
+++ b/apps/status.c
@@ -16,6 +16,7 @@
16 * KIND, either express or implied. 16 * KIND, either express or implied.
17 * 17 *
18 ****************************************************************************/ 18 ****************************************************************************/
19#include "string.h"
19#include "lcd.h" 20#include "lcd.h"
20#include "debug.h" 21#include "debug.h"
21#include "kernel.h" 22#include "kernel.h"
@@ -44,6 +45,19 @@ static bool battery_state;
44#endif 45#endif
45#endif 46#endif
46 47
48struct status_info {
49 int battlevel;
50 int volume;
51 int hour;
52 int minute;
53 int playmode;
54 int repeat;
55 bool inserted;
56 bool shuffle;
57 bool keylock;
58 bool battery_safe;
59};
60
47void status_init(void) 61void status_init(void)
48{ 62{
49 status_set_playmode(STATUS_STOP); 63 status_set_playmode(STATUS_STOP);
@@ -52,7 +66,7 @@ void status_init(void)
52void status_set_playmode(enum playmode mode) 66void status_set_playmode(enum playmode mode)
53{ 67{
54 current_mode = mode; 68 current_mode = mode;
55 status_draw(); 69 status_draw(false);
56} 70}
57 71
58#if defined(HAVE_LCD_CHARCELLS) 72#if defined(HAVE_LCD_CHARCELLS)
@@ -83,36 +97,43 @@ void status_set_usb(bool b)
83 97
84#endif /* HAVE_LCD_CHARCELLS */ 98#endif /* HAVE_LCD_CHARCELLS */
85 99
86void status_draw(void) 100void status_draw(bool force_redraw)
87{ 101{
88 int battlevel = battery_level(); 102 struct status_info info;
89 int volume = mpeg_val2phys(SOUND_VOLUME, global_settings.volume); 103
90#if defined(HAVE_LCD_BITMAP) && defined(HAVE_RTC) 104#ifdef HAVE_LCD_BITMAP
105 static struct status_info lastinfo;
91 struct tm* tm; 106 struct tm* tm;
92#endif
93 107
94 if ( !global_settings.statusbar ) 108 if ( !global_settings.statusbar )
95 return; 109 return;
110#else
111 (void)force_redraw; /* players always "redraw" */
112#endif
113
114 info.battlevel = battery_level();
115 info.volume = mpeg_val2phys(SOUND_VOLUME, global_settings.volume);
116 info.inserted = charger_inserted();
96 117
97#if defined(HAVE_LCD_CHARCELLS) 118#if defined(HAVE_LCD_CHARCELLS)
98 lcd_icon(ICON_VOLUME, true); 119 lcd_icon(ICON_VOLUME, true);
99 if(volume > 10) 120 if(info.volume > 10)
100 lcd_icon(ICON_VOLUME_1, true); 121 lcd_icon(ICON_VOLUME_1, true);
101 else 122 else
102 lcd_icon(ICON_VOLUME_1, false); 123 lcd_icon(ICON_VOLUME_1, false);
103 if(volume > 30) 124 if(info.volume > 30)
104 lcd_icon(ICON_VOLUME_2, true); 125 lcd_icon(ICON_VOLUME_2, true);
105 else 126 else
106 lcd_icon(ICON_VOLUME_2, false); 127 lcd_icon(ICON_VOLUME_2, false);
107 if(volume > 50) 128 if(info.volume > 50)
108 lcd_icon(ICON_VOLUME_3, true); 129 lcd_icon(ICON_VOLUME_3, true);
109 else 130 else
110 lcd_icon(ICON_VOLUME_3, false); 131 lcd_icon(ICON_VOLUME_3, false);
111 if(volume > 70) 132 if(info.volume > 70)
112 lcd_icon(ICON_VOLUME_4, true); 133 lcd_icon(ICON_VOLUME_4, true);
113 else 134 else
114 lcd_icon(ICON_VOLUME_4, false); 135 lcd_icon(ICON_VOLUME_4, false);
115 if(volume > 90) 136 if(info.volume > 90)
116 lcd_icon(ICON_VOLUME_5, true); 137 lcd_icon(ICON_VOLUME_5, true);
117 else 138 else
118 lcd_icon(ICON_VOLUME_5, false); 139 lcd_icon(ICON_VOLUME_5, false);
@@ -137,7 +158,7 @@ void status_draw(void)
137 default: 158 default:
138 break; 159 break;
139 } 160 }
140 if(charger_inserted()) 161 if(info.inserted)
141 { 162 {
142 global_settings.runtime = 0; 163 global_settings.runtime = 0;
143 if(TIME_AFTER(current_tick, switch_tick)) 164 if(TIME_AFTER(current_tick, switch_tick))
@@ -174,15 +195,15 @@ void status_draw(void)
174 } 195 }
175 } else { 196 } else {
176 lcd_icon(ICON_BATTERY, true); 197 lcd_icon(ICON_BATTERY, true);
177 if(battlevel > 25) 198 if(info.battlevel > 25)
178 lcd_icon(ICON_BATTERY_1, true); 199 lcd_icon(ICON_BATTERY_1, true);
179 else 200 else
180 lcd_icon(ICON_BATTERY_1, false); 201 lcd_icon(ICON_BATTERY_1, false);
181 if(battlevel > 50) 202 if(info.battlevel > 50)
182 lcd_icon(ICON_BATTERY_2, true); 203 lcd_icon(ICON_BATTERY_2, true);
183 else 204 else
184 lcd_icon(ICON_BATTERY_2, false); 205 lcd_icon(ICON_BATTERY_2, false);
185 if(battlevel > 75) 206 if(info.battlevel > 75)
186 lcd_icon(ICON_BATTERY_3, true); 207 lcd_icon(ICON_BATTERY_3, true);
187 else 208 else
188 lcd_icon(ICON_BATTERY_3, false); 209 lcd_icon(ICON_BATTERY_3, false);
@@ -198,17 +219,31 @@ void status_draw(void)
198 219
199#endif 220#endif
200#ifdef HAVE_LCD_BITMAP 221#ifdef HAVE_LCD_BITMAP
201 if (global_settings.statusbar) { 222
202 statusbar_wipe(); 223 tm = get_time();
224 info.hour = tm->tm_hour;
225 info.minute = tm->tm_min;
226 info.shuffle = global_settings.playlist_shuffle;
227 info.keylock = keys_locked;
228 info.battery_safe = battery_level_safe();
229 info.repeat = global_settings.repeat_mode;
230
231 if (force_redraw ||
232 info.inserted ||
233 !info.battery_safe ||
234 memcmp(&info, &lastinfo, sizeof(struct status_info))) {
235 lcd_clearrect(0,0,LCD_WIDTH,8);
236
203#ifdef HAVE_CHARGE_CTRL /* Recorder */ 237#ifdef HAVE_CHARGE_CTRL /* Recorder */
204 if(charger_inserted()) { 238 if(info.inserted) {
205 battery_state = true; 239 battery_state = true;
206 plug_state = true; 240 plug_state = true;
207 if (charge_state > 0) /* charge || top off || trickle */ 241 if (charge_state > 0) /* charge || top off || trickle */
208 global_settings.runtime = 0; 242 global_settings.runtime = 0;
209 if (charge_state == 1) { /* animate battery if charging */ 243 if (charge_state == 1) { /* animate battery if charging */
210 battlevel = battery_charge_step * 34; /* 34 for a better look */ 244 info.battlevel = battery_charge_step * 34; /* 34 for a better look */
211 battlevel = battlevel > 100 ? 100 : battlevel; 245 if (info.battlevel > 100)
246 info.battlevel = 100;
212 if(TIME_AFTER(current_tick, switch_tick)) { 247 if(TIME_AFTER(current_tick, switch_tick)) {
213 battery_charge_step=(battery_charge_step+1)%4; 248 battery_charge_step=(battery_charge_step+1)%4;
214 switch_tick = current_tick + HZ; 249 switch_tick = current_tick + HZ;
@@ -217,7 +252,7 @@ void status_draw(void)
217 } 252 }
218 else { 253 else {
219 plug_state=false; 254 plug_state=false;
220 if(battery_level_safe()) 255 if(!info.battery_safe)
221 battery_state = true; 256 battery_state = true;
222 else /* blink battery if level is low */ 257 else /* blink battery if level is low */
223 if(TIME_AFTER(current_tick, switch_tick)) { 258 if(TIME_AFTER(current_tick, switch_tick)) {
@@ -226,18 +261,17 @@ void status_draw(void)
226 } 261 }
227 } 262 }
228 263
229 if (battery_state) 264 statusbar_icon_battery(info.battlevel, plug_state);
230 statusbar_icon_battery(battlevel, plug_state);
231#else 265#else
232#ifdef HAVE_FMADC /* FM */ 266#ifdef HAVE_FMADC /* FM */
233 statusbar_icon_battery(battlevel, charger_inserted()); 267 statusbar_icon_battery(info.battlevel, charger_inserted());
234#else /* Player */ 268#else /* Player */
235 statusbar_icon_battery(battlevel, false); 269 statusbar_icon_battery(info.battlevel, false);
236#endif /* HAVE_FMADC */ 270#endif /* HAVE_FMADC */
237#endif /* HAVE_CHARGE_CTRL */ 271#endif /* HAVE_CHARGE_CTRL */
238 statusbar_icon_volume(volume); 272 statusbar_icon_volume(info.volume);
239 statusbar_icon_play_state(current_mode + Icon_Play); 273 statusbar_icon_play_state(current_mode + Icon_Play);
240 switch (global_settings.repeat_mode) { 274 switch (info.repeat) {
241 case REPEAT_ONE: 275 case REPEAT_ONE:
242 statusbar_icon_play_mode(Icon_RepeatOne); 276 statusbar_icon_play_mode(Icon_RepeatOne);
243 break; 277 break;
@@ -246,16 +280,17 @@ void status_draw(void)
246 statusbar_icon_play_mode(Icon_Repeat); 280 statusbar_icon_play_mode(Icon_Repeat);
247 break; 281 break;
248 } 282 }
249 if(global_settings.playlist_shuffle) 283 if(info.shuffle)
250 statusbar_icon_shuffle(); 284 statusbar_icon_shuffle();
251 if (keys_locked) 285 if (info.keylock)
252 statusbar_icon_lock(); 286 statusbar_icon_lock();
253#ifdef HAVE_RTC 287#ifdef HAVE_RTC
254 tm = get_time(); 288 statusbar_time(info.hour, info.minute);
255 statusbar_time(tm->tm_hour, tm->tm_min);
256#endif 289#endif
257 290
258 lcd_update_rect(0, 0, LCD_WIDTH, STATUSBAR_HEIGHT); 291 lcd_update_rect(0, 0, LCD_WIDTH, STATUSBAR_HEIGHT);
259 } 292 }
293
294 lastinfo = info;
260#endif 295#endif
261} 296}
diff --git a/apps/status.h b/apps/status.h
index 34603656b6..203c7a80d7 100644
--- a/apps/status.h
+++ b/apps/status.h
@@ -35,7 +35,7 @@ void status_set_playmode(enum playmode mode);
35#ifdef HAVE_LCD_BITMAP 35#ifdef HAVE_LCD_BITMAP
36bool statusbar(bool state); 36bool statusbar(bool state);
37#endif 37#endif
38void status_draw(void); 38void status_draw(bool force_redraw);
39 39
40#if defined(HAVE_LCD_CHARCELLS) 40#if defined(HAVE_LCD_CHARCELLS)
41void status_set_record(bool b); 41void status_set_record(bool b);
diff --git a/apps/tree.c b/apps/tree.c
index 7abafe8f4a..1e10e51f80 100644
--- a/apps/tree.c
+++ b/apps/tree.c
@@ -494,7 +494,7 @@ static int showdir(char *path, int start)
494 LCD_HEIGHT - SCROLLBAR_Y, filesindir, start, 494 LCD_HEIGHT - SCROLLBAR_Y, filesindir, start,
495 start + tree_max_on_screen, VERTICAL); 495 start + tree_max_on_screen, VERTICAL);
496#endif 496#endif
497 status_draw(); 497 status_draw(false);
498 return filesindir; 498 return filesindir;
499} 499}
500 500
@@ -511,7 +511,7 @@ bool ask_resume(void)
511 lcd_clear_display(); 511 lcd_clear_display();
512 lcd_puts(0,0,str(LANG_RESUME_ASK)); 512 lcd_puts(0,0,str(LANG_RESUME_ASK));
513#ifdef HAVE_LCD_CHARCELLS 513#ifdef HAVE_LCD_CHARCELLS
514 status_draw(); 514 status_draw(false);
515 lcd_puts(0,1,str(LANG_RESUME_CONFIRM_PLAYER)); 515 lcd_puts(0,1,str(LANG_RESUME_CONFIRM_PLAYER));
516#else 516#else
517 lcd_puts(0,1,str(LANG_RESUME_CONFIRM_RECORDER)); 517 lcd_puts(0,1,str(LANG_RESUME_CONFIRM_RECORDER));
@@ -621,7 +621,7 @@ void start_resume(void)
621 } 621 }
622 622
623 status_set_playmode(STATUS_PLAY); 623 status_set_playmode(STATUS_PLAY);
624 status_draw(); 624 status_draw(true);
625 wps_show(); 625 wps_show();
626 } 626 }
627} 627}
@@ -839,7 +839,7 @@ bool dirbrowse(char *root)
839 case BUTTON_OFF: 839 case BUTTON_OFF:
840 mpeg_stop(); 840 mpeg_stop();
841 status_set_playmode(STATUS_STOP); 841 status_set_playmode(STATUS_STOP);
842 status_draw(); 842 status_draw(false);
843 restore = true; 843 restore = true;
844 break; 844 break;
845 845
@@ -996,7 +996,7 @@ bool dirbrowse(char *root)
996 } 996 }
997 997
998 status_set_playmode(STATUS_PLAY); 998 status_set_playmode(STATUS_PLAY);
999 status_draw(); 999 status_draw(false);
1000 lcd_stop_scroll(); 1000 lcd_stop_scroll();
1001 if ( wps_show() == SYS_USB_CONNECTED ) { 1001 if ( wps_show() == SYS_USB_CONNECTED ) {
1002 reload_root = true; 1002 reload_root = true;
@@ -1136,7 +1136,7 @@ bool dirbrowse(char *root)
1136 break; 1136 break;
1137 1137
1138 case BUTTON_NONE: 1138 case BUTTON_NONE:
1139 status_draw(); 1139 status_draw(false);
1140 break; 1140 break;
1141 } 1141 }
1142 1142
diff --git a/apps/wps-display.c b/apps/wps-display.c
index e6cf65a260..c35ba8675c 100644
--- a/apps/wps-display.c
+++ b/apps/wps-display.c
@@ -801,7 +801,7 @@ bool wps_display(struct mp3entry* id3)
801#endif 801#endif
802 global_settings.resume_index = -1; 802 global_settings.resume_index = -1;
803 status_set_playmode(STATUS_STOP); 803 status_set_playmode(STATUS_STOP);
804 status_draw(); 804 status_draw(true);
805 sleep(HZ); 805 sleep(HZ);
806 return true; 806 return true;
807 } 807 }
@@ -827,7 +827,7 @@ bool wps_display(struct mp3entry* id3)
827 } 827 }
828 yield(); 828 yield();
829 wps_refresh(id3, 0, WPS_REFRESH_ALL); 829 wps_refresh(id3, 0, WPS_REFRESH_ALL);
830 status_draw(); 830 status_draw(true);
831 lcd_update(); 831 lcd_update();
832 return false; 832 return false;
833} 833}
diff --git a/apps/wps.c b/apps/wps.c
index edc876e506..187f244775 100644
--- a/apps/wps.c
+++ b/apps/wps.c
@@ -103,7 +103,7 @@ void player_change_volume(int button)
103 if (!exit) 103 if (!exit)
104 button = button_get(true); 104 button = button_get(true);
105 } 105 }
106 status_draw(); 106 status_draw(false);
107 wps_refresh(id3,0, WPS_REFRESH_ALL); 107 wps_refresh(id3,0, WPS_REFRESH_ALL);
108} 108}
109#endif 109#endif
@@ -443,7 +443,7 @@ static bool update(void)
443 if (id3) 443 if (id3)
444 wps_refresh(id3, 0, WPS_REFRESH_NON_STATIC); 444 wps_refresh(id3, 0, WPS_REFRESH_NON_STATIC);
445 445
446 status_draw(); 446 status_draw(false);
447 447
448 /* save resume data */ 448 /* save resume data */
449 if ( id3 && 449 if ( id3 &&
@@ -488,7 +488,7 @@ static bool keylock(void)
488#endif 488#endif
489 return false; 489 return false;
490 } 490 }
491 status_draw(); 491 status_draw(false);
492 while (button_get(false)); /* clear button queue */ 492 while (button_get(false)); /* clear button queue */
493 493
494 while (!exit) { 494 while (!exit) {
@@ -560,7 +560,7 @@ static bool menu(void)
560 560
561#ifdef HAVE_LCD_CHARCELLS 561#ifdef HAVE_LCD_CHARCELLS
562 status_set_param(true); 562 status_set_param(true);
563 status_draw(); 563 status_draw(false);
564#endif 564#endif
565 565
566 while (!exit) { 566 while (!exit) {
@@ -896,7 +896,7 @@ int wps_show(void)
896 if(global_settings.volume > mpeg_sound_max(SOUND_VOLUME)) 896 if(global_settings.volume > mpeg_sound_max(SOUND_VOLUME))
897 global_settings.volume = mpeg_sound_max(SOUND_VOLUME); 897 global_settings.volume = mpeg_sound_max(SOUND_VOLUME);
898 mpeg_sound_set(SOUND_VOLUME, global_settings.volume); 898 mpeg_sound_set(SOUND_VOLUME, global_settings.volume);
899 status_draw(); 899 status_draw(false);
900 settings_save(); 900 settings_save();
901 break; 901 break;
902 902
@@ -910,7 +910,7 @@ int wps_show(void)
910 if(global_settings.volume < mpeg_sound_min(SOUND_VOLUME)) 910 if(global_settings.volume < mpeg_sound_min(SOUND_VOLUME))
911 global_settings.volume = mpeg_sound_min(SOUND_VOLUME); 911 global_settings.volume = mpeg_sound_min(SOUND_VOLUME);
912 mpeg_sound_set(SOUND_VOLUME, global_settings.volume); 912 mpeg_sound_set(SOUND_VOLUME, global_settings.volume);
913 status_draw(); 913 status_draw(false);
914 settings_save(); 914 settings_save();
915 break; 915 break;
916 916