forked from len0rd/rockbox
Logarithmic scroll speed setting: speed doubles every 3 steps.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@5288 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
672305f0a1
commit
566eae2e11
4 changed files with 24 additions and 12 deletions
|
|
@ -94,7 +94,7 @@ static volatile int scrolling_lines=0; /* Bitpattern of which lines are scrollin
|
|||
static void scroll_thread(void);
|
||||
static char scroll_stack[DEFAULT_STACK_SIZE];
|
||||
static const char scroll_name[] = "scroll";
|
||||
static char scroll_speed = 8; /* updates per second */
|
||||
static char scroll_ticks = 12; /* # of ticks between updates*/
|
||||
static int scroll_delay = HZ/2; /* ticks delay before start */
|
||||
static char scroll_step = 6; /* pixels per scroll step */
|
||||
static int bidir_limit = 50; /* percent */
|
||||
|
|
@ -856,9 +856,15 @@ void lcd_stop_scroll(void)
|
|||
scrolling_lines=0;
|
||||
}
|
||||
|
||||
static const char scroll_tick_table[16] = {
|
||||
/* Hz values:
|
||||
1, 1.25, 1.55, 2, 2.5, 3.12, 4, 5, 6.25, 8.33, 10, 12.5, 16.7, 20, 25, 33 */
|
||||
100, 80, 64, 50, 40, 32, 25, 20, 16, 12, 10, 8, 6, 5, 4, 3
|
||||
};
|
||||
|
||||
void lcd_scroll_speed(int speed)
|
||||
{
|
||||
scroll_speed = speed;
|
||||
scroll_ticks = scroll_tick_table[speed];
|
||||
}
|
||||
|
||||
void lcd_scroll_step(int step)
|
||||
|
|
@ -933,7 +939,7 @@ static void scroll_thread(void)
|
|||
lcd_update_rect(xpos, ypos, LCD_WIDTH - xpos, pf->height);
|
||||
}
|
||||
|
||||
sleep(HZ/scroll_speed);
|
||||
sleep(scroll_ticks);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue