summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apps/lang/english.lang16
-rw-r--r--apps/screen_access.c27
-rw-r--r--apps/screen_access.h9
-rw-r--r--apps/settings.c15
-rw-r--r--apps/settings.h12
-rw-r--r--apps/settings_menu.c57
6 files changed, 89 insertions, 47 deletions
diff --git a/apps/lang/english.lang b/apps/lang/english.lang
index 2a54a6d79f..8c551b443d 100644
--- a/apps/lang/english.lang
+++ b/apps/lang/english.lang
@@ -8514,4 +8514,18 @@
8514 <voice> 8514 <voice>
8515 *: "Invalid Filename" 8515 *: "Invalid Filename"
8516 </voice> 8516 </voice>
8517</phrase> \ No newline at end of file 8517</phrase>
8518<phrase>
8519 id: LANG_REMOTE_SCROLL_SETS
8520 desc: "Remote Scrolling Options" Submenu in "Scrolling Options" menu
8521 user:
8522 <source>
8523 *: "Remote Scrolling Options"
8524 </source>
8525 <dest>
8526 *: "Remote Scrolling Options"
8527 </dest>
8528 <voice>
8529 *: "Remote Scrolling Options"
8530 </voice>
8531</phrase>
diff --git a/apps/screen_access.c b/apps/screen_access.c
index 1dc8734462..5e3dfd8505 100644
--- a/apps/screen_access.c
+++ b/apps/screen_access.c
@@ -147,6 +147,8 @@ void screen_init(struct screen * screen, enum screen_type screen_type)
147 screen->drawline=&lcd_drawline; 147 screen->drawline=&lcd_drawline;
148 screen->vline=&lcd_vline; 148 screen->vline=&lcd_vline;
149 screen->hline=&lcd_hline; 149 screen->hline=&lcd_hline;
150 screen->scroll_speed=&lcd_scroll_speed;
151 screen->scroll_delay=&lcd_scroll_delay;
150 screen->scroll_step=&lcd_scroll_step; 152 screen->scroll_step=&lcd_scroll_step;
151 screen->invertscroll=&lcd_invertscroll; 153 screen->invertscroll=&lcd_invertscroll;
152 screen->puts_offset=&lcd_puts_offset; 154 screen->puts_offset=&lcd_puts_offset;
@@ -173,8 +175,6 @@ void screen_init(struct screen * screen, enum screen_type screen_type)
173 screen->init=&lcd_init; 175 screen->init=&lcd_init;
174 screen->puts_scroll=&lcd_puts_scroll; 176 screen->puts_scroll=&lcd_puts_scroll;
175 screen->stop_scroll=&lcd_stop_scroll; 177 screen->stop_scroll=&lcd_stop_scroll;
176 screen->scroll_speed=&lcd_scroll_speed;
177 screen->scroll_delay=&lcd_scroll_delay;
178 screen->clear_display=&lcd_clear_display; 178 screen->clear_display=&lcd_clear_display;
179#if defined(HAVE_LCD_BITMAP) || defined(SIMULATOR) 179#if defined(HAVE_LCD_BITMAP) || defined(SIMULATOR)
180 screen->update=&lcd_update; 180 screen->update=&lcd_update;
@@ -207,26 +207,3 @@ void screen_access_init(void)
207 FOR_NB_SCREENS(i) 207 FOR_NB_SCREENS(i)
208 screen_init(&screens[i], i); 208 screen_init(&screens[i], i);
209} 209}
210
211void screen_lcd_scroll_speed(int speed)
212{
213 int i;
214 FOR_NB_SCREENS(i)
215 screens[i].scroll_speed(speed);
216}
217
218void screen_lcd_scroll_delay(int ms)
219{
220 int i;
221 FOR_NB_SCREENS(i)
222 screens[i].scroll_delay(ms);
223}
224
225#ifdef HAVE_LCD_BITMAP
226void screen_lcd_scroll_step(int pixels)
227{
228 int i;
229 FOR_NB_SCREENS(i)
230 screens[i].scroll_step(pixels);
231}
232#endif
diff --git a/apps/screen_access.h b/apps/screen_access.h
index c739c6cb1f..ae0a962015 100644
--- a/apps/screen_access.h
+++ b/apps/screen_access.h
@@ -185,13 +185,4 @@ extern void screen_access_init(void);
185 */ 185 */
186extern struct screen screens[NB_SCREENS]; 186extern struct screen screens[NB_SCREENS];
187 187
188
189/*
190 * Functions to apply LCD settings across all screens
191 */
192void screen_lcd_scroll_speed(int speed);
193void screen_lcd_scroll_delay(int ms);
194void screen_lcd_scroll_step(int pixels);
195
196
197#endif /*_SCREEN_ACCESS_H_*/ 188#endif /*_SCREEN_ACCESS_H_*/
diff --git a/apps/settings.c b/apps/settings.c
index 1a6b4c3199..8122c58aa8 100644
--- a/apps/settings.c
+++ b/apps/settings.c
@@ -94,7 +94,7 @@ const char rec_base_directory[] = REC_BASE_DIR;
94#include "dsp.h" 94#include "dsp.h"
95#endif 95#endif
96 96
97#define CONFIG_BLOCK_VERSION 43 97#define CONFIG_BLOCK_VERSION 44
98#define CONFIG_BLOCK_SIZE 512 98#define CONFIG_BLOCK_SIZE 512
99#define RTC_BLOCK_SIZE 44 99#define RTC_BLOCK_SIZE 44
100 100
@@ -359,6 +359,13 @@ static const struct bit_entry hd_bits[] =
359 {4, S_O(scroll_speed), 9, "scroll speed", NULL }, /* 0...15 */ 359 {4, S_O(scroll_speed), 9, "scroll speed", NULL }, /* 0...15 */
360 {8, S_O(scroll_delay), 100, "scroll delay", NULL }, /* 0...250 */ 360 {8, S_O(scroll_delay), 100, "scroll delay", NULL }, /* 0...250 */
361 {8, S_O(bidir_limit), 50, "bidir limit", NULL }, /* 0...200 */ 361 {8, S_O(bidir_limit), 50, "bidir limit", NULL }, /* 0...200 */
362
363#ifdef HAVE_REMOTE_LCD
364 {4, S_O(remote_scroll_speed), 9, "remote scroll speed", NULL }, /* 0...15 */
365 {8, S_O(remote_scroll_step), 6, "remote scroll step", NULL }, /* 1...160 */
366 {8, S_O(remote_scroll_delay), 100, "remote scroll delay", NULL }, /* 0...250 */
367#endif
368
362#ifdef HAVE_LCD_BITMAP 369#ifdef HAVE_LCD_BITMAP
363 {1, S_O(offset_out_of_view), false, "Screen Scrolls Out Of View", off_on }, 370 {1, S_O(offset_out_of_view), false, "Screen Scrolls Out Of View", off_on },
364#if LCD_WIDTH > 255 371#if LCD_WIDTH > 255
@@ -1004,9 +1011,9 @@ void settings_apply(void)
1004 lcd_remote_set_contrast(global_settings.remote_contrast); 1011 lcd_remote_set_contrast(global_settings.remote_contrast);
1005 lcd_remote_set_invert_display(global_settings.remote_invert); 1012 lcd_remote_set_invert_display(global_settings.remote_invert);
1006 lcd_remote_set_flip(global_settings.remote_flip_display); 1013 lcd_remote_set_flip(global_settings.remote_flip_display);
1007 lcd_remote_scroll_speed(global_settings.scroll_speed); 1014 lcd_remote_scroll_speed(global_settings.remote_scroll_speed);
1008 lcd_remote_scroll_step(global_settings.scroll_step); 1015 lcd_remote_scroll_step(global_settings.remote_scroll_step);
1009 lcd_remote_scroll_delay(global_settings.scroll_delay * (HZ/10)); 1016 lcd_remote_scroll_delay(global_settings.remote_scroll_delay * (HZ/10));
1010#ifdef HAVE_REMOTE_LCD_TICKING 1017#ifdef HAVE_REMOTE_LCD_TICKING
1011 lcd_remote_emireduce(global_settings.remote_reduce_ticking); 1018 lcd_remote_emireduce(global_settings.remote_reduce_ticking);
1012#endif 1019#endif
diff --git a/apps/settings.h b/apps/settings.h
index fd03d93f43..ca8e88a75b 100644
--- a/apps/settings.h
+++ b/apps/settings.h
@@ -301,7 +301,6 @@ struct user_settings
301 int volume_type; /* how volume is displayed: 0=graphic, 1=percent */ 301 int volume_type; /* how volume is displayed: 0=graphic, 1=percent */
302 int battery_display; /* how battery is displayed: 0=graphic, 1=percent */ 302 int battery_display; /* how battery is displayed: 0=graphic, 1=percent */
303 int timeformat; /* time format: 0=24 hour clock, 1=12 hour clock */ 303 int timeformat; /* time format: 0=24 hour clock, 1=12 hour clock */
304 int scroll_speed; /* long texts scrolling speed: 1-30 */
305 bool playlist_shuffle; 304 bool playlist_shuffle;
306 bool play_selected; /* Plays selected file even in shuffle mode */ 305 bool play_selected; /* Plays selected file even in shuffle mode */
307 int ff_rewind_min_step; /* FF/Rewind minimum step size */ 306 int ff_rewind_min_step; /* FF/Rewind minimum step size */
@@ -333,11 +332,18 @@ struct user_settings
333 332
334 int runtime; /* current runtime since last charge */ 333 int runtime; /* current runtime since last charge */
335 int topruntime; /* top known runtime */ 334 int topruntime; /* top known runtime */
336 335
336 int scroll_speed; /* long texts scrolling speed: 1-30 */
337 int bidir_limit; /* bidir scroll length limit */ 337 int bidir_limit; /* bidir scroll length limit */
338 int scroll_delay; /* delay (in 1/10s) before starting scroll */ 338 int scroll_delay; /* delay (in 1/10s) before starting scroll */
339 int scroll_step; /* pixels to advance per update */ 339 int scroll_step; /* pixels to advance per update */
340#ifdef HAVE_LCD_BITMAP 340#ifdef HAVE_REMOTE_LCD
341 int remote_scroll_speed; /* long texts scrolling speed: 1-30 */
342 int remote_scroll_delay; /* delay (in 1/10s) before starting scroll */
343 int remote_scroll_step; /* pixels to advance per update */
344#endif
345
346#ifdef HAVE_LCD_BITMAP
341 bool offset_out_of_view; 347 bool offset_out_of_view;
342 int screen_scroll_step; 348 int screen_scroll_step;
343#endif 349#endif
diff --git a/apps/settings_menu.c b/apps/settings_menu.c
index c15eb6cf91..5aa861a88e 100644
--- a/apps/settings_menu.c
+++ b/apps/settings_menu.c
@@ -55,7 +55,6 @@
55#include "yesno.h" 55#include "yesno.h"
56#include "list.h" 56#include "list.h"
57#include "color_picker.h" 57#include "color_picker.h"
58#include "screen_access.h"
59 58
60#ifdef HAVE_LCD_BITMAP 59#ifdef HAVE_LCD_BITMAP
61#include "peakmeter.h" 60#include "peakmeter.h"
@@ -840,10 +839,10 @@ static bool sleep_timer(void)
840} 839}
841 840
842static bool scroll_speed(void) 841static bool scroll_speed(void)
843{ 842{
844 return set_int(str(LANG_SCROLL), "", UNIT_INT, 843 return set_int(str(LANG_SCROLL), "", UNIT_INT,
845 &global_settings.scroll_speed, 844 &global_settings.scroll_speed,
846 &screen_lcd_scroll_speed, 1, 0, 15, NULL ); 845 &lcd_scroll_speed, 1, 0, 15, NULL );
847} 846}
848 847
849static bool scroll_delay(void) 848static bool scroll_delay(void)
@@ -851,11 +850,37 @@ static bool scroll_delay(void)
851 int dummy = global_settings.scroll_delay * (HZ/10); 850 int dummy = global_settings.scroll_delay * (HZ/10);
852 int rc = set_int(str(LANG_SCROLL_DELAY), "ms", UNIT_MS, 851 int rc = set_int(str(LANG_SCROLL_DELAY), "ms", UNIT_MS,
853 &dummy, 852 &dummy,
854 &screen_lcd_scroll_delay, 100, 0, 2500, NULL ); 853 &lcd_scroll_delay, 100, 0, 2500, NULL );
855 global_settings.scroll_delay = dummy / (HZ/10); 854 global_settings.scroll_delay = dummy / (HZ/10);
856 return rc; 855 return rc;
857} 856}
858 857
858#ifdef HAVE_REMOTE_LCD
859static bool remote_scroll_speed(void)
860{
861 return set_int(str(LANG_SCROLL), "", UNIT_INT,
862 &global_settings.remote_scroll_speed,
863 &lcd_remote_scroll_speed, 1, 0, 15, NULL );
864}
865
866static bool remote_scroll_step(void)
867{
868 return set_int(str(LANG_SCROLL_STEP_EXAMPLE), str(LANG_PIXELS), UNIT_PIXEL,
869 &global_settings.remote_scroll_step,
870 &lcd_remote_scroll_step, 1, 1, LCD_WIDTH, NULL );
871}
872
873static bool remote_scroll_delay(void)
874{
875 int dummy = global_settings.remote_scroll_delay * (HZ/10);
876 int rc = set_int(str(LANG_SCROLL_DELAY), "ms", UNIT_MS,
877 &dummy,
878 &lcd_remote_scroll_delay, 100, 0, 2500, NULL );
879 global_settings.remote_scroll_delay = dummy / (HZ/10);
880 return rc;
881}
882#endif
883
859#ifdef HAVE_LCD_BITMAP 884#ifdef HAVE_LCD_BITMAP
860static bool screen_scroll(void) 885static bool screen_scroll(void)
861{ 886{
@@ -875,7 +900,7 @@ static bool scroll_step(void)
875{ 900{
876 return set_int(str(LANG_SCROLL_STEP_EXAMPLE), str(LANG_PIXELS), UNIT_PIXEL, 901 return set_int(str(LANG_SCROLL_STEP_EXAMPLE), str(LANG_PIXELS), UNIT_PIXEL,
877 &global_settings.scroll_step, 902 &global_settings.scroll_step,
878 &screen_lcd_scroll_step, 1, 1, LCD_WIDTH, NULL ); 903 &lcd_scroll_step, 1, 1, LCD_WIDTH, NULL );
879} 904}
880#endif 905#endif
881 906
@@ -1645,6 +1670,25 @@ static bool fileview_settings_menu(void)
1645 return result; 1670 return result;
1646} 1671}
1647 1672
1673#ifdef HAVE_REMOTE_LCD
1674static bool remote_scroll_sets(void)
1675{
1676 int m;
1677 bool result;
1678
1679 static const struct menu_item items[] = {
1680 { ID2P(LANG_SCROLL_SPEED), remote_scroll_speed },
1681 { ID2P(LANG_SCROLL_DELAY), remote_scroll_delay },
1682 { ID2P(LANG_SCROLL_STEP), remote_scroll_step },
1683 };
1684
1685 m=menu_init( items, sizeof(items) / sizeof(*items), NULL,
1686 NULL, NULL, NULL);
1687 result = menu_run(m);
1688 menu_exit(m);
1689 return result;
1690}
1691#endif
1648 1692
1649static bool scroll_settings_menu(void) 1693static bool scroll_settings_menu(void)
1650{ 1694{
@@ -1657,6 +1701,9 @@ static bool scroll_settings_menu(void)
1657#ifdef HAVE_LCD_BITMAP 1701#ifdef HAVE_LCD_BITMAP
1658 { ID2P(LANG_SCROLL_STEP), scroll_step }, 1702 { ID2P(LANG_SCROLL_STEP), scroll_step },
1659#endif 1703#endif
1704#ifdef HAVE_REMOTE_LCD
1705 { ID2P(LANG_REMOTE_SCROLL_SETS), remote_scroll_sets },
1706#endif
1660 { ID2P(LANG_BIDIR_SCROLL), bidir_limit }, 1707 { ID2P(LANG_BIDIR_SCROLL), bidir_limit },
1661#ifdef HAVE_LCD_CHARCELLS 1708#ifdef HAVE_LCD_CHARCELLS
1662 { ID2P(LANG_JUMP_SCROLL), jump_scroll }, 1709 { ID2P(LANG_JUMP_SCROLL), jump_scroll },