forked from len0rd/rockbox
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 */
|
||||
|
|
|
@ -63,13 +63,13 @@ 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 */
|
||||
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…
Add table
Add a link
Reference in a new issue