summaryrefslogtreecommitdiffstats
path: root/apps/status.c
diff options
context:
space:
mode:
authorLinus Nielsen Feltzing <linus@haxx.se>2004-07-13 06:59:11 +0000
committerLinus Nielsen Feltzing <linus@haxx.se>2004-07-13 06:59:11 +0000
commit3dc50b0d74ff0eb1ef92d41ffc21a1f948c50051 (patch)
tree2e8f46f9fefa017644d0e626c1446905badeb0e1 /apps/status.c
parentea598c7b667057ad42c21eda8f57f368b897495d (diff)
downloadrockbox-3dc50b0d74ff0eb1ef92d41ffc21a1f948c50051.tar.gz
rockbox-3dc50b0d74ff0eb1ef92d41ffc21a1f948c50051.zip
Fixed the slow status bar update in bug report #727790.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4868 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/status.c')
-rw-r--r--apps/status.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/apps/status.c b/apps/status.c
index af6eaa4e2a..8c4a7ef809 100644
--- a/apps/status.c
+++ b/apps/status.c
@@ -54,6 +54,7 @@ struct status_info {
bool shuffle;
bool keylock;
bool battery_safe;
+ bool redraw_volume; /* true if the volume gauge needs updating */
};
void status_init(void)
@@ -158,7 +159,8 @@ void status_draw(bool force_redraw)
/* only redraw if forced to, or info has changed */
if (force_redraw ||
info.inserted ||
- !info.battery_safe ||
+ !info.battery_safe ||
+ info.redraw_volume ||
memcmp(&info, &lastinfo, sizeof(struct status_info)))
{
lcd_clearrect(0,0,LCD_WIDTH,8);
@@ -213,7 +215,7 @@ void status_draw(bool force_redraw)
if (battery_state)
statusbar_icon_battery(info.battlevel, plug_state);
- statusbar_icon_volume(info.volume);
+ info.redraw_volume = statusbar_icon_volume(info.volume);
statusbar_icon_play_state(current_playmode() + Icon_Play);
switch (info.repeat) {
case REPEAT_ONE: