a bit nicer: delay of the disk activity indicator is supplied by app layer
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@6019 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
9828f08d9b
commit
2e429ff762
3 changed files with 12 additions and 11 deletions
|
@ -160,7 +160,7 @@ void status_draw(bool force_redraw)
|
|||
info.repeat = global_settings.repeat_mode;
|
||||
info.playmode = current_playmode();
|
||||
#ifndef HAVE_LED
|
||||
info.led = led_read();
|
||||
info.led = led_read(HZ/2); /* delay should match polling interval */
|
||||
#endif
|
||||
|
||||
/* only redraw if forced to, or info has changed */
|
||||
|
@ -241,8 +241,8 @@ void status_draw(bool force_redraw)
|
|||
statusbar_time(info.hour, info.minute);
|
||||
#endif
|
||||
#ifndef HAVE_LED
|
||||
if (info.led)
|
||||
statusbar_led();
|
||||
if (info.led)
|
||||
statusbar_led();
|
||||
#endif
|
||||
lcd_update_rect(0, 0, LCD_WIDTH, STATUSBAR_HEIGHT);
|
||||
lastinfo = info;
|
||||
|
|
|
@ -63,14 +63,14 @@ void invert_led(bool on)
|
|||
|
||||
#else /* no LED, just status update */
|
||||
|
||||
static long delay;
|
||||
static long last_on; /* timestamp of switching off */
|
||||
|
||||
void led(bool on)
|
||||
{
|
||||
if (current && !on) /* switching off */
|
||||
{
|
||||
delay = current_tick + HZ/2; /* delay the "off" status a bit */
|
||||
}
|
||||
if (current && !on) /* switching off */
|
||||
{
|
||||
last_on = current_tick; /* remember for off delay */
|
||||
}
|
||||
current = on;
|
||||
}
|
||||
|
||||
|
@ -79,9 +79,10 @@ void invert_led(bool on)
|
|||
(void)on; /* no invert feature */
|
||||
}
|
||||
|
||||
bool led_read(void) /* read by status bar update */
|
||||
bool led_read(int delayticks) /* read by status bar update */
|
||||
{
|
||||
return (current || TIME_BEFORE(current_tick, delay));
|
||||
/* reading "off" is delayed by user-supplied monoflop value */
|
||||
return (current || TIME_BEFORE(current_tick, last_on+delayticks));
|
||||
}
|
||||
|
||||
#endif // #ifdef HAVE_LED
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
extern void led( bool on );
|
||||
extern void invert_led( bool on );
|
||||
#ifndef HAVE_LED
|
||||
extern bool led_read(void); /* read for status bar */
|
||||
extern bool led_read(int delayticks); /* read for status bar */
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in a new issue