forked from len0rd/rockbox
Apply changes to scroll_delay, scroll_speed and scroll_step settings across all screens when changing them in the settings menu. Fixes bug #5348.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9965 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
d49b112fd8
commit
1c9dacd600
3 changed files with 38 additions and 5 deletions
|
|
@ -147,8 +147,6 @@ void screen_init(struct screen * screen, enum screen_type screen_type)
|
|||
screen->drawline=&lcd_drawline;
|
||||
screen->vline=&lcd_vline;
|
||||
screen->hline=&lcd_hline;
|
||||
screen->scroll_speed=&lcd_scroll_speed;
|
||||
screen->scroll_delay=&lcd_scroll_delay;
|
||||
screen->scroll_step=&lcd_scroll_step;
|
||||
screen->invertscroll=&lcd_invertscroll;
|
||||
screen->puts_offset=&lcd_puts_offset;
|
||||
|
|
@ -175,6 +173,8 @@ void screen_init(struct screen * screen, enum screen_type screen_type)
|
|||
screen->init=&lcd_init;
|
||||
screen->puts_scroll=&lcd_puts_scroll;
|
||||
screen->stop_scroll=&lcd_stop_scroll;
|
||||
screen->scroll_speed=&lcd_scroll_speed;
|
||||
screen->scroll_delay=&lcd_scroll_delay;
|
||||
screen->clear_display=&lcd_clear_display;
|
||||
#if defined(HAVE_LCD_BITMAP) || defined(SIMULATOR)
|
||||
screen->update=&lcd_update;
|
||||
|
|
@ -207,3 +207,26 @@ void screen_access_init(void)
|
|||
FOR_NB_SCREENS(i)
|
||||
screen_init(&screens[i], i);
|
||||
}
|
||||
|
||||
void screen_lcd_scroll_speed(int speed)
|
||||
{
|
||||
int i;
|
||||
FOR_NB_SCREENS(i)
|
||||
screens[i].scroll_speed(speed);
|
||||
}
|
||||
|
||||
void screen_lcd_scroll_delay(int ms)
|
||||
{
|
||||
int i;
|
||||
FOR_NB_SCREENS(i)
|
||||
screens[i].scroll_delay(ms);
|
||||
}
|
||||
|
||||
#ifdef HAVE_LCD_BITMAP
|
||||
void screen_lcd_scroll_step(int pixels)
|
||||
{
|
||||
int i;
|
||||
FOR_NB_SCREENS(i)
|
||||
screens[i].scroll_step(pixels);
|
||||
}
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -185,4 +185,13 @@ extern void screen_access_init(void);
|
|||
*/
|
||||
extern struct screen screens[NB_SCREENS];
|
||||
|
||||
|
||||
/*
|
||||
* Functions to apply LCD settings across all screens
|
||||
*/
|
||||
void screen_lcd_scroll_speed(int speed);
|
||||
void screen_lcd_scroll_delay(int ms);
|
||||
void screen_lcd_scroll_step(int pixels);
|
||||
|
||||
|
||||
#endif /*_SCREEN_ACCESS_H_*/
|
||||
|
|
|
|||
|
|
@ -55,6 +55,7 @@
|
|||
#include "yesno.h"
|
||||
#include "list.h"
|
||||
#include "color_picker.h"
|
||||
#include "screen_access.h"
|
||||
|
||||
#ifdef HAVE_LCD_BITMAP
|
||||
#include "peakmeter.h"
|
||||
|
|
@ -837,7 +838,7 @@ static bool scroll_speed(void)
|
|||
{
|
||||
return set_int(str(LANG_SCROLL), "", UNIT_INT,
|
||||
&global_settings.scroll_speed,
|
||||
&lcd_scroll_speed, 1, 0, 15, NULL );
|
||||
&screen_lcd_scroll_speed, 1, 0, 15, NULL );
|
||||
}
|
||||
|
||||
static bool scroll_delay(void)
|
||||
|
|
@ -845,7 +846,7 @@ static bool scroll_delay(void)
|
|||
int dummy = global_settings.scroll_delay * (HZ/10);
|
||||
int rc = set_int(str(LANG_SCROLL_DELAY), "ms", UNIT_MS,
|
||||
&dummy,
|
||||
&lcd_scroll_delay, 100, 0, 2500, NULL );
|
||||
&screen_lcd_scroll_delay, 100, 0, 2500, NULL );
|
||||
global_settings.scroll_delay = dummy / (HZ/10);
|
||||
return rc;
|
||||
}
|
||||
|
|
@ -869,7 +870,7 @@ static bool scroll_step(void)
|
|||
{
|
||||
return set_int(str(LANG_SCROLL_STEP_EXAMPLE), str(LANG_PIXELS), UNIT_PIXEL,
|
||||
&global_settings.scroll_step,
|
||||
&lcd_scroll_step, 1, 1, LCD_WIDTH, NULL );
|
||||
&screen_lcd_scroll_step, 1, 1, LCD_WIDTH, NULL );
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue