summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcoen Hirschberg <marcoen@gmail.com>2005-12-09 01:11:14 +0000
committerMarcoen Hirschberg <marcoen@gmail.com>2005-12-09 01:11:14 +0000
commit53a56c159383ad608e9f76e49c164d10be850b69 (patch)
tree1fd102fddd5bda4286047ab56af23b6bf6cd5869
parent8e44d4bdc7c5d3f8afe98ad70e1de533c9df9bbe (diff)
downloadrockbox-53a56c159383ad608e9f76e49c164d10be850b69.tar.gz
rockbox-53a56c159383ad608e9f76e49c164d10be850b69.zip
don't display the WPS after loading, it made rockbox crash with some WPS'
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8209 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--apps/filetree.c4
-rw-r--r--apps/gui/gwps-common.c6
-rw-r--r--apps/gui/gwps.c43
-rw-r--r--apps/gui/gwps.h3
-rw-r--r--apps/settings.c8
5 files changed, 11 insertions, 53 deletions
diff --git a/apps/filetree.c b/apps/filetree.c
index b870f969b5..cb21b71eec 100644
--- a/apps/filetree.c
+++ b/apps/filetree.c
@@ -381,7 +381,7 @@ int ft_enter(struct tree_context* c)
381 381
382 /* wps config file */ 382 /* wps config file */
383 case TREE_ATTR_WPS: 383 case TREE_ATTR_WPS:
384 wps_data_load(gui_wps[0].data, buf, true, true); 384 wps_data_load(gui_wps[0].data, buf, true);
385 set_file(buf, (char *)global_settings.wps_file, 385 set_file(buf, (char *)global_settings.wps_file,
386 MAX_FILENAME); 386 MAX_FILENAME);
387 break; 387 break;
@@ -389,7 +389,7 @@ int ft_enter(struct tree_context* c)
389#if defined(HAVE_REMOTE_LCD) && (NB_SCREENS > 1) 389#if defined(HAVE_REMOTE_LCD) && (NB_SCREENS > 1)
390 /* remote-wps config file */ 390 /* remote-wps config file */
391 case TREE_ATTR_RWPS: 391 case TREE_ATTR_RWPS:
392 wps_data_load(gui_wps[1].data, buf, true, true); 392 wps_data_load(gui_wps[1].data, buf, true);
393 set_file(buf, (char *)global_settings.rwps_file, 393 set_file(buf, (char *)global_settings.rwps_file,
394 MAX_FILENAME); 394 MAX_FILENAME);
395 break; 395 break;
diff --git a/apps/gui/gwps-common.c b/apps/gui/gwps-common.c
index 699635df1d..87c6a9ce63 100644
--- a/apps/gui/gwps-common.c
+++ b/apps/gui/gwps-common.c
@@ -2083,11 +2083,11 @@ bool gui_wps_display(void)
2083 "%al%pc/%pt%ar[%pp:%pe]\n" 2083 "%al%pc/%pt%ar[%pp:%pe]\n"
2084 "%fbkBit %?fv<avg|> %?iv<(id3v%iv)|(no id3)>\n" 2084 "%fbkBit %?fv<avg|> %?iv<(id3v%iv)|(no id3)>\n"
2085 "%pb\n" 2085 "%pb\n"
2086 "%pm\n", false, false); 2086 "%pm\n", false);
2087#else 2087#else
2088 wps_data_load(gui_wps[i].data, 2088 wps_data_load(gui_wps[i].data,
2089 "%s%pp/%pe: %?it<%it|%fn> - %?ia<%ia|%d2> - %?id<%id|%d1>\n" 2089 "%s%pp/%pe: %?it<%it|%fn> - %?ia<%ia|%d2> - %?id<%id|%d1>\n"
2090 "%pc%?ps<*|/>%pt\n", false, false); 2090 "%pc%?ps<*|/>%pt\n", false);
2091#endif 2091#endif
2092 } 2092 }
2093#if NB_SCREENS == 2 2093#if NB_SCREENS == 2
@@ -2099,7 +2099,7 @@ bool gui_wps_display(void)
2099 "%s%?it<%?in<%in. |>%it|%fn>\n" 2099 "%s%?it<%?in<%in. |>%it|%fn>\n"
2100 "%al%pc/%pt%ar[%pp:%pe]\n" 2100 "%al%pc/%pt%ar[%pp:%pe]\n"
2101 "%fbkBit %?fv<avg|> %?iv<(id3v%iv)|(no id3)>\n" 2101 "%fbkBit %?fv<avg|> %?iv<(id3v%iv)|(no id3)>\n"
2102 "%pb", false, false); 2102 "%pb", false);
2103 } 2103 }
2104#endif 2104#endif
2105 } 2105 }
diff --git a/apps/gui/gwps.c b/apps/gui/gwps.c
index bd7591fb37..efe207f94a 100644
--- a/apps/gui/gwps.c
+++ b/apps/gui/gwps.c
@@ -752,10 +752,8 @@ static void wps_reset(struct wps_data *data)
752 from a (wps-)file (isfile = true)*/ 752 from a (wps-)file (isfile = true)*/
753bool wps_data_load(struct wps_data *wps_data, 753bool wps_data_load(struct wps_data *wps_data,
754 const char *buf, 754 const char *buf,
755 bool isfile, 755 bool isfile)
756 bool display)
757{ 756{
758 int i, s;
759 int fd; 757 int fd;
760 758
761 if(!wps_data || !buf) 759 if(!wps_data || !buf)
@@ -832,45 +830,6 @@ bool wps_data_load(struct wps_data *wps_data,
832 830
833 close(fd); 831 close(fd);
834 832
835 if ( display ) {
836 bool any_defined_line;
837 int z;
838 FOR_NB_SCREENS(z)
839 screens[z].clear_display();
840#ifdef HAVE_LCD_BITMAP
841 FOR_NB_SCREENS(z)
842 screens[z].setmargins(0,0);
843#endif
844 for (s=0; s<WPS_MAX_SUBLINES; s++)
845 {
846 any_defined_line = false;
847 for (i=0; i<WPS_MAX_LINES; i++)
848 {
849 if (wps_data->format_lines[i][s] &&
850 wps_data->format_lines[i][s][0])
851 {
852 FOR_NB_SCREENS(z)
853 screens[z].puts(0, i,
854 wps_data->
855 format_lines[i][s]);
856 any_defined_line = true;
857 }
858 else
859 {
860 FOR_NB_SCREENS(z)
861 screens[z].puts(0, i, " ");
862 }
863 }
864 if (any_defined_line)
865 {
866#ifdef HAVE_LCD_BITMAP
867 FOR_NB_SCREENS(z)
868 screens[z].update();
869#endif
870 sleep(HZ/2);
871 }
872 }
873 }
874 wps_data->wps_loaded = true; 833 wps_data->wps_loaded = true;
875 834
876 return start > 0; 835 return start > 0;
diff --git a/apps/gui/gwps.h b/apps/gui/gwps.h
index 4072e17cfa..54b3d1ec64 100644
--- a/apps/gui/gwps.h
+++ b/apps/gui/gwps.h
@@ -282,8 +282,7 @@ void wps_data_init(struct wps_data *wps_data);
282 from a (wps-)file (isfile = true)*/ 282 from a (wps-)file (isfile = true)*/
283bool wps_data_load(struct wps_data *wps_data, 283bool wps_data_load(struct wps_data *wps_data,
284 const char *buf, 284 const char *buf,
285 bool isfile, 285 bool isfile);
286 bool display);
287 286
288/* wps_data end */ 287/* wps_data end */
289 288
diff --git a/apps/settings.c b/apps/settings.c
index da17695120..22bfc9b60f 100644
--- a/apps/settings.c
+++ b/apps/settings.c
@@ -923,7 +923,7 @@ void settings_apply(void)
923 global_settings.wps_file[0] != 0xff ) { 923 global_settings.wps_file[0] != 0xff ) {
924 snprintf(buf, sizeof buf, WPS_DIR "/%s.wps", 924 snprintf(buf, sizeof buf, WPS_DIR "/%s.wps",
925 global_settings.wps_file); 925 global_settings.wps_file);
926 wps_data_load(gui_wps[0].data, buf, true, false); 926 wps_data_load(gui_wps[0].data, buf, true);
927 } 927 }
928 else 928 else
929 wps_data_init(gui_wps[0].data); 929 wps_data_init(gui_wps[0].data);
@@ -933,7 +933,7 @@ void settings_apply(void)
933 global_settings.rwps_file[0] != 0xff ) { 933 global_settings.rwps_file[0] != 0xff ) {
934 snprintf(buf, sizeof buf, WPS_DIR "/%s.rwps", 934 snprintf(buf, sizeof buf, WPS_DIR "/%s.rwps",
935 global_settings.rwps_file); 935 global_settings.rwps_file);
936 wps_data_load(gui_wps[1].data, buf, true, false); 936 wps_data_load(gui_wps[1].data, buf, true);
937 } 937 }
938 else 938 else
939 wps_data_init(gui_wps[1].data); 939 wps_data_init(gui_wps[1].data);
@@ -1205,12 +1205,12 @@ bool settings_load_config(const char* file)
1205 1205
1206 /* check for the string values */ 1206 /* check for the string values */
1207 if (!strcasecmp(name, "wps")) { 1207 if (!strcasecmp(name, "wps")) {
1208 if (wps_data_load(gui_wps[0].data,value,true, false)) 1208 if (wps_data_load(gui_wps[0].data, value, true))
1209 set_file(value, (char *)global_settings.wps_file, MAX_FILENAME); 1209 set_file(value, (char *)global_settings.wps_file, MAX_FILENAME);
1210 } 1210 }
1211#if defined(HAVE_REMOTE_LCD) && (NB_SCREENS > 1) 1211#if defined(HAVE_REMOTE_LCD) && (NB_SCREENS > 1)
1212 else if (!strcasecmp(name, "rwps")) { 1212 else if (!strcasecmp(name, "rwps")) {
1213 if (wps_data_load(gui_wps[1].data,value,true, false)) 1213 if (wps_data_load(gui_wps[1].data, value, true))
1214 set_file(value, (char *)global_settings.rwps_file, MAX_FILENAME); 1214 set_file(value, (char *)global_settings.rwps_file, MAX_FILENAME);
1215 } 1215 }
1216#endif 1216#endif