diff options
author | Linus Nielsen Feltzing <linus@haxx.se> | 2004-07-13 06:59:11 +0000 |
---|---|---|
committer | Linus Nielsen Feltzing <linus@haxx.se> | 2004-07-13 06:59:11 +0000 |
commit | 3dc50b0d74ff0eb1ef92d41ffc21a1f948c50051 (patch) | |
tree | 2e8f46f9fefa017644d0e626c1446905badeb0e1 /apps/status.c | |
parent | ea598c7b667057ad42c21eda8f57f368b897495d (diff) | |
download | rockbox-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.c | 6 |
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: |