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->drawline=&lcd_drawline;
|
||||||
screen->vline=&lcd_vline;
|
screen->vline=&lcd_vline;
|
||||||
screen->hline=&lcd_hline;
|
screen->hline=&lcd_hline;
|
||||||
screen->scroll_speed=&lcd_scroll_speed;
|
|
||||||
screen->scroll_delay=&lcd_scroll_delay;
|
|
||||||
screen->scroll_step=&lcd_scroll_step;
|
screen->scroll_step=&lcd_scroll_step;
|
||||||
screen->invertscroll=&lcd_invertscroll;
|
screen->invertscroll=&lcd_invertscroll;
|
||||||
screen->puts_offset=&lcd_puts_offset;
|
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->init=&lcd_init;
|
||||||
screen->puts_scroll=&lcd_puts_scroll;
|
screen->puts_scroll=&lcd_puts_scroll;
|
||||||
screen->stop_scroll=&lcd_stop_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;
|
screen->clear_display=&lcd_clear_display;
|
||||||
#if defined(HAVE_LCD_BITMAP) || defined(SIMULATOR)
|
#if defined(HAVE_LCD_BITMAP) || defined(SIMULATOR)
|
||||||
screen->update=&lcd_update;
|
screen->update=&lcd_update;
|
||||||
|
|
@ -207,3 +207,26 @@ void screen_access_init(void)
|
||||||
FOR_NB_SCREENS(i)
|
FOR_NB_SCREENS(i)
|
||||||
screen_init(&screens[i], 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];
|
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_*/
|
#endif /*_SCREEN_ACCESS_H_*/
|
||||||
|
|
|
||||||
|
|
@ -55,6 +55,7 @@
|
||||||
#include "yesno.h"
|
#include "yesno.h"
|
||||||
#include "list.h"
|
#include "list.h"
|
||||||
#include "color_picker.h"
|
#include "color_picker.h"
|
||||||
|
#include "screen_access.h"
|
||||||
|
|
||||||
#ifdef HAVE_LCD_BITMAP
|
#ifdef HAVE_LCD_BITMAP
|
||||||
#include "peakmeter.h"
|
#include "peakmeter.h"
|
||||||
|
|
@ -837,7 +838,7 @@ static bool scroll_speed(void)
|
||||||
{
|
{
|
||||||
return set_int(str(LANG_SCROLL), "", UNIT_INT,
|
return set_int(str(LANG_SCROLL), "", UNIT_INT,
|
||||||
&global_settings.scroll_speed,
|
&global_settings.scroll_speed,
|
||||||
&lcd_scroll_speed, 1, 0, 15, NULL );
|
&screen_lcd_scroll_speed, 1, 0, 15, NULL );
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool scroll_delay(void)
|
static bool scroll_delay(void)
|
||||||
|
|
@ -845,7 +846,7 @@ static bool scroll_delay(void)
|
||||||
int dummy = global_settings.scroll_delay * (HZ/10);
|
int dummy = global_settings.scroll_delay * (HZ/10);
|
||||||
int rc = set_int(str(LANG_SCROLL_DELAY), "ms", UNIT_MS,
|
int rc = set_int(str(LANG_SCROLL_DELAY), "ms", UNIT_MS,
|
||||||
&dummy,
|
&dummy,
|
||||||
&lcd_scroll_delay, 100, 0, 2500, NULL );
|
&screen_lcd_scroll_delay, 100, 0, 2500, NULL );
|
||||||
global_settings.scroll_delay = dummy / (HZ/10);
|
global_settings.scroll_delay = dummy / (HZ/10);
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
@ -869,7 +870,7 @@ static bool scroll_step(void)
|
||||||
{
|
{
|
||||||
return set_int(str(LANG_SCROLL_STEP_EXAMPLE), str(LANG_PIXELS), UNIT_PIXEL,
|
return set_int(str(LANG_SCROLL_STEP_EXAMPLE), str(LANG_PIXELS), UNIT_PIXEL,
|
||||||
&global_settings.scroll_step,
|
&global_settings.scroll_step,
|
||||||
&lcd_scroll_step, 1, 1, LCD_WIDTH, NULL );
|
&screen_lcd_scroll_step, 1, 1, LCD_WIDTH, NULL );
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue