summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apps/onplay.c6
-rw-r--r--apps/playlist.c50
-rw-r--r--apps/playlist_viewer.c6
-rw-r--r--apps/plugin.c16
-rw-r--r--apps/plugin.h2
-rw-r--r--apps/plugins/clock.c10
-rw-r--r--apps/plugins/favorites.c4
-rw-r--r--apps/plugins/firmware_flash.c14
-rw-r--r--apps/plugins/helloworld.c2
-rw-r--r--apps/plugins/rockbox_flash.c12
-rw-r--r--apps/plugins/sokoban.c4
-rw-r--r--apps/plugins/video.c2
-rw-r--r--apps/plugins/viewer.c36
-rw-r--r--apps/recorder/recording.c2
-rw-r--r--apps/screens.c22
-rw-r--r--apps/screens.h1
-rw-r--r--apps/tree.c4
-rw-r--r--apps/wps.c2
18 files changed, 95 insertions, 100 deletions
diff --git a/apps/onplay.c b/apps/onplay.c
index 7598aa3125..3e085cea59 100644
--- a/apps/onplay.c
+++ b/apps/onplay.c
@@ -330,7 +330,7 @@ static int insert_data_in_file(char *fname, int fpos, char *buf, int num_bytes)
330 330
331static void fileerror(int rc) 331static void fileerror(int rc)
332{ 332{
333 splash(HZ*2, 0, true, "File error: %d", rc); 333 splash(HZ*2, true, "File error: %d", rc);
334} 334}
335 335
336static const unsigned char empty_id3_header[] = 336static const unsigned char empty_id3_header[] =
@@ -352,7 +352,7 @@ static bool vbr_fix(void)
352 int unused_space; 352 int unused_space;
353 353
354 if(mpeg_status()) { 354 if(mpeg_status()) {
355 splash(HZ*2, 0, true, str(LANG_VBRFIX_STOP_PLAY)); 355 splash(HZ*2, true, str(LANG_VBRFIX_STOP_PLAY));
356 return onplay_result; 356 return onplay_result;
357 } 357 }
358 358
@@ -473,7 +473,7 @@ static bool vbr_fix(void)
473 { 473 {
474 /* Not a VBR file */ 474 /* Not a VBR file */
475 DEBUGF("Not a VBR file\n"); 475 DEBUGF("Not a VBR file\n");
476 splash(HZ*2, 0, true, str(LANG_VBRFIX_NOT_VBR)); 476 splash(HZ*2, true, str(LANG_VBRFIX_NOT_VBR));
477 } 477 }
478 478
479 return false; 479 return false;
diff --git a/apps/playlist.c b/apps/playlist.c
index 31e3040b60..1b6c65245d 100644
--- a/apps/playlist.c
+++ b/apps/playlist.c
@@ -238,7 +238,7 @@ static int add_indices_to_playlist(void)
238 lcd_setmargins(0, 0); 238 lcd_setmargins(0, 0);
239#endif 239#endif
240 240
241 splash(0, 0, true, str(LANG_PLAYLIST_LOAD)); 241 splash(0, true, str(LANG_PLAYLIST_LOAD));
242 242
243 /* use mp3 buffer for maximum load speed */ 243 /* use mp3 buffer for maximum load speed */
244 buflen = (mp3end - mp3buf); 244 buflen = (mp3end - mp3buf);
@@ -404,7 +404,7 @@ static int add_track_to_playlist(char *filename, int position, bool queue,
404 404
405 if (result < 0) 405 if (result < 0)
406 { 406 {
407 splash(HZ*2, 0, true, str(LANG_PLAYLIST_CONTROL_UPDATE_ERROR)); 407 splash(HZ*2, true, str(LANG_PLAYLIST_CONTROL_UPDATE_ERROR));
408 return result; 408 return result;
409 } 409 }
410 } 410 }
@@ -437,7 +437,7 @@ static int add_directory_to_playlist(char *dirname, int *position, bool queue,
437 437
438 if(!files) 438 if(!files)
439 { 439 {
440 splash(HZ*2, 0, true, str(LANG_PLAYLIST_DIRECTORY_ACCESS_ERROR)); 440 splash(HZ*2, true, str(LANG_PLAYLIST_DIRECTORY_ACCESS_ERROR));
441 return 0; 441 return 0;
442 } 442 }
443 443
@@ -578,7 +578,7 @@ static int remove_track_from_playlist(int position, bool write)
578 578
579 if (result < 0) 579 if (result < 0)
580 { 580 {
581 splash(HZ*2, 0, true, str(LANG_PLAYLIST_CONTROL_UPDATE_ERROR)); 581 splash(HZ*2, true, str(LANG_PLAYLIST_CONTROL_UPDATE_ERROR));
582 return result; 582 return result;
583 } 583 }
584 } 584 }
@@ -824,10 +824,10 @@ static int get_filename(int seek, bool control_file, char *buf,
824 if (max < 0) 824 if (max < 0)
825 { 825 {
826 if (control_file) 826 if (control_file)
827 splash(HZ*2, 0, true, 827 splash(HZ*2, true,
828 str(LANG_PLAYLIST_CONTROL_ACCESS_ERROR)); 828 str(LANG_PLAYLIST_CONTROL_ACCESS_ERROR));
829 else 829 else
830 splash(HZ*2, 0, true, str(LANG_PLAYLIST_ACCESS_ERROR)); 830 splash(HZ*2, true, str(LANG_PLAYLIST_ACCESS_ERROR));
831 831
832 return max; 832 return max;
833 } 833 }
@@ -919,11 +919,13 @@ static void display_playlist_count(int count, char *fmt)
919 lcd_setmargins(0, 0); 919 lcd_setmargins(0, 0);
920#endif 920#endif
921 921
922 splash(0, true, fmt, count,
922#ifdef HAVE_PLAYER_KEYPAD 923#ifdef HAVE_PLAYER_KEYPAD
923 splash(0, 0, true, fmt, count, str(LANG_STOP_ABORT)); 924 str(LANG_STOP_ABORT)
924#else 925#else
925 splash(0, 0, true, fmt, count, str(LANG_OFF_ABORT)); 926 str(LANG_OFF_ABORT)
926#endif 927#endif
928 );
927} 929}
928 930
929/* 931/*
@@ -981,7 +983,7 @@ static int flush_pending_control(void)
981 983
982 if (result < 0) 984 if (result < 0)
983 { 985 {
984 splash(HZ*2, 0, true, str(LANG_PLAYLIST_CONTROL_UPDATE_ERROR)); 986 splash(HZ*2, true, str(LANG_PLAYLIST_CONTROL_UPDATE_ERROR));
985 return result; 987 return result;
986 } 988 }
987 } 989 }
@@ -1026,7 +1028,7 @@ int playlist_create(char *dir, char *file)
1026 1028
1027 playlist.control_fd = open(PLAYLIST_CONTROL_FILE, O_RDWR); 1029 playlist.control_fd = open(PLAYLIST_CONTROL_FILE, O_RDWR);
1028 if (playlist.control_fd < 0) 1030 if (playlist.control_fd < 0)
1029 splash(HZ*2, 0, true, str(LANG_PLAYLIST_CONTROL_ACCESS_ERROR)); 1031 splash(HZ*2, true, str(LANG_PLAYLIST_CONTROL_ACCESS_ERROR));
1030 1032
1031 if (!file) 1033 if (!file)
1032 { 1034 {
@@ -1046,7 +1048,7 @@ int playlist_create(char *dir, char *file)
1046 PLAYLIST_CONTROL_FILE_VERSION, dir, file) > 0) 1048 PLAYLIST_CONTROL_FILE_VERSION, dir, file) > 0)
1047 fsync(playlist.control_fd); 1049 fsync(playlist.control_fd);
1048 else 1050 else
1049 splash(HZ*2, 0, true, str(LANG_PLAYLIST_CONTROL_UPDATE_ERROR)); 1051 splash(HZ*2, true, str(LANG_PLAYLIST_CONTROL_UPDATE_ERROR));
1050 } 1052 }
1051 1053
1052 /* load the playlist file */ 1054 /* load the playlist file */
@@ -1091,7 +1093,7 @@ int playlist_resume(void)
1091 playlist.control_fd = open(PLAYLIST_CONTROL_FILE, O_RDWR); 1093 playlist.control_fd = open(PLAYLIST_CONTROL_FILE, O_RDWR);
1092 if (playlist.control_fd < 0) 1094 if (playlist.control_fd < 0)
1093 { 1095 {
1094 splash(HZ*2, 0, true, str(LANG_PLAYLIST_CONTROL_ACCESS_ERROR)); 1096 splash(HZ*2, true, str(LANG_PLAYLIST_CONTROL_ACCESS_ERROR));
1095 return -1; 1097 return -1;
1096 } 1098 }
1097 1099
@@ -1100,7 +1102,7 @@ int playlist_resume(void)
1100 PLAYLIST_COMMAND_SIZE<buflen?PLAYLIST_COMMAND_SIZE:buflen); 1102 PLAYLIST_COMMAND_SIZE<buflen?PLAYLIST_COMMAND_SIZE:buflen);
1101 if(nread <= 0) 1103 if(nread <= 0)
1102 { 1104 {
1103 splash(HZ*2, 0, true, str(LANG_PLAYLIST_CONTROL_ACCESS_ERROR)); 1105 splash(HZ*2, true, str(LANG_PLAYLIST_CONTROL_ACCESS_ERROR));
1104 return -1; 1106 return -1;
1105 } 1107 }
1106 1108
@@ -1375,7 +1377,7 @@ int playlist_resume(void)
1375 1377
1376 if (result < 0) 1378 if (result < 0)
1377 { 1379 {
1378 splash(HZ*2, 0, true, str(LANG_PLAYLIST_CONTROL_INVALID)); 1380 splash(HZ*2, true, str(LANG_PLAYLIST_CONTROL_INVALID));
1379 return result; 1381 return result;
1380 } 1382 }
1381 1383
@@ -1458,7 +1460,7 @@ int playlist_insert_track(char *filename, int position, bool queue)
1458 1460
1459 if (playlist.control_fd < 0) 1461 if (playlist.control_fd < 0)
1460 { 1462 {
1461 splash(HZ*2, 0, true, str(LANG_PLAYLIST_CONTROL_ACCESS_ERROR)); 1463 splash(HZ*2, true, str(LANG_PLAYLIST_CONTROL_ACCESS_ERROR));
1462 return -1; 1464 return -1;
1463 } 1465 }
1464 1466
@@ -1485,7 +1487,7 @@ int playlist_insert_directory(char *dirname, int position, bool queue,
1485 1487
1486 if (playlist.control_fd < 0) 1488 if (playlist.control_fd < 0)
1487 { 1489 {
1488 splash(HZ*2, 0, true, str(LANG_PLAYLIST_CONTROL_ACCESS_ERROR)); 1490 splash(HZ*2, true, str(LANG_PLAYLIST_CONTROL_ACCESS_ERROR));
1489 return -1; 1491 return -1;
1490 } 1492 }
1491 1493
@@ -1523,14 +1525,14 @@ int playlist_insert_playlist(char *filename, int position, bool queue)
1523 1525
1524 if (playlist.control_fd < 0) 1526 if (playlist.control_fd < 0)
1525 { 1527 {
1526 splash(HZ*2, 0, true, str(LANG_PLAYLIST_CONTROL_ACCESS_ERROR)); 1528 splash(HZ*2, true, str(LANG_PLAYLIST_CONTROL_ACCESS_ERROR));
1527 return -1; 1529 return -1;
1528 } 1530 }
1529 1531
1530 fd = open(filename, O_RDONLY); 1532 fd = open(filename, O_RDONLY);
1531 if (fd < 0) 1533 if (fd < 0)
1532 { 1534 {
1533 splash(HZ*2, 0, true, str(LANG_PLAYLIST_ACCESS_ERROR)); 1535 splash(HZ*2, true, str(LANG_PLAYLIST_ACCESS_ERROR));
1534 return -1; 1536 return -1;
1535 } 1537 }
1536 1538
@@ -1623,7 +1625,7 @@ int playlist_delete(int index)
1623 1625
1624 if (playlist.control_fd < 0) 1626 if (playlist.control_fd < 0)
1625 { 1627 {
1626 splash(HZ*2, 0, true, str(LANG_PLAYLIST_CONTROL_ACCESS_ERROR)); 1628 splash(HZ*2, true, str(LANG_PLAYLIST_CONTROL_ACCESS_ERROR));
1627 return -1; 1629 return -1;
1628 } 1630 }
1629 1631
@@ -1730,7 +1732,7 @@ int playlist_shuffle(int random_seed, int start_index)
1730 start_current = true; 1732 start_current = true;
1731 } 1733 }
1732 1734
1733 splash(0, 0, true, str(LANG_PLAYLIST_SHUFFLE)); 1735 splash(0, true, str(LANG_PLAYLIST_SHUFFLE));
1734 1736
1735 randomise_playlist(random_seed, start_current, true); 1737 randomise_playlist(random_seed, start_current, true);
1736 1738
@@ -1885,7 +1887,7 @@ int playlist_next(int steps)
1885 1887
1886 if (result < 0) 1888 if (result < 0)
1887 { 1889 {
1888 splash(HZ*2, 0, true, 1890 splash(HZ*2, true,
1889 str(LANG_PLAYLIST_CONTROL_UPDATE_ERROR)); 1891 str(LANG_PLAYLIST_CONTROL_UPDATE_ERROR));
1890 return result; 1892 return result;
1891 } 1893 }
@@ -1990,7 +1992,7 @@ int playlist_save(char *filename)
1990 1992
1991 if (playlist.control_fd < 0) 1993 if (playlist.control_fd < 0)
1992 { 1994 {
1993 splash(HZ*2, 0, true, str(LANG_PLAYLIST_CONTROL_ACCESS_ERROR)); 1995 splash(HZ*2, true, str(LANG_PLAYLIST_CONTROL_ACCESS_ERROR));
1994 return -1; 1996 return -1;
1995 } 1997 }
1996 1998
@@ -2005,7 +2007,7 @@ int playlist_save(char *filename)
2005 fd = open(tmp_buf, O_CREAT|O_WRONLY|O_TRUNC); 2007 fd = open(tmp_buf, O_CREAT|O_WRONLY|O_TRUNC);
2006 if (fd < 0) 2008 if (fd < 0)
2007 { 2009 {
2008 splash(HZ*2, 0, true, str(LANG_PLAYLIST_ACCESS_ERROR)); 2010 splash(HZ*2, true, str(LANG_PLAYLIST_ACCESS_ERROR));
2009 return -1; 2011 return -1;
2010 } 2012 }
2011 2013
@@ -2041,7 +2043,7 @@ int playlist_save(char *filename)
2041 2043
2042 if (fprintf(fd, "%s\n", tmp_buf) < 0) 2044 if (fprintf(fd, "%s\n", tmp_buf) < 0)
2043 { 2045 {
2044 splash(HZ*2, 0, true, 2046 splash(HZ*2, true,
2045 str(LANG_PLAYLIST_CONTROL_UPDATE_ERROR)); 2047 str(LANG_PLAYLIST_CONTROL_UPDATE_ERROR));
2046 result = -1; 2048 result = -1;
2047 break; 2049 break;
diff --git a/apps/playlist_viewer.c b/apps/playlist_viewer.c
index ee34d3edb6..fe792e9bbb 100644
--- a/apps/playlist_viewer.c
+++ b/apps/playlist_viewer.c
@@ -652,9 +652,9 @@ bool playlist_viewer(void)
652 { 652 {
653 /* Play has stopped */ 653 /* Play has stopped */
654#ifdef HAVE_LCD_CHARCELLS 654#ifdef HAVE_LCD_CHARCELLS
655 splash(HZ, 0, true, str(LANG_END_PLAYLIST_PLAYER)); 655 splash(HZ, true, str(LANG_END_PLAYLIST_PLAYER));
656#else 656#else
657 splash(HZ, 0, true, str(LANG_END_PLAYLIST_RECORDER)); 657 splash(HZ, true, str(LANG_END_PLAYLIST_RECORDER));
658#endif 658#endif
659 status_set_playmode(STATUS_STOP); 659 status_set_playmode(STATUS_STOP);
660 return false;; 660 return false;;
@@ -772,7 +772,7 @@ bool playlist_viewer(void)
772 ret = playlist_move(viewer.move_track, 772 ret = playlist_move(viewer.move_track,
773 tracks[INDEX(viewer.cursor_pos)].index); 773 tracks[INDEX(viewer.cursor_pos)].index);
774 if (ret < 0) 774 if (ret < 0)
775 splash(HZ, 0, true, str(LANG_MOVE_FAILED)); 775 splash(HZ, true, str(LANG_MOVE_FAILED));
776 776
777 update_playlist(true); 777 update_playlist(true);
778 viewer.move_track = -1; 778 viewer.move_track = -1;
diff --git a/apps/plugin.c b/apps/plugin.c
index d71102701a..b31988e9b4 100644
--- a/apps/plugin.c
+++ b/apps/plugin.c
@@ -191,7 +191,7 @@ int plugin_load(char* plugin, void* parameter)
191 pd = dlopen(path, RTLD_NOW); 191 pd = dlopen(path, RTLD_NOW);
192 if (!pd) { 192 if (!pd) {
193 snprintf(buf, sizeof buf, "Can't open %s", plugin); 193 snprintf(buf, sizeof buf, "Can't open %s", plugin);
194 splash(HZ*2, 0, true, buf); 194 splash(HZ*2, true, buf);
195 DEBUGF("dlopen(%s): %s\n",path,dlerror()); 195 DEBUGF("dlopen(%s): %s\n",path,dlerror());
196 dlclose(pd); 196 dlclose(pd);
197 return -1; 197 return -1;
@@ -201,7 +201,7 @@ int plugin_load(char* plugin, void* parameter)
201 if (!plugin_start) { 201 if (!plugin_start) {
202 plugin_start = dlsym(pd, "_plugin_start"); 202 plugin_start = dlsym(pd, "_plugin_start");
203 if (!plugin_start) { 203 if (!plugin_start) {
204 splash(HZ*2, 0, true, "Can't find entry point"); 204 splash(HZ*2, true, "Can't find entry point");
205 dlclose(pd); 205 dlclose(pd);
206 return -1; 206 return -1;
207 } 207 }
@@ -210,7 +210,7 @@ int plugin_load(char* plugin, void* parameter)
210 fd = open(plugin, O_RDONLY); 210 fd = open(plugin, O_RDONLY);
211 if (fd < 0) { 211 if (fd < 0) {
212 snprintf(buf, sizeof buf, str(LANG_PLUGIN_CANT_OPEN), plugin); 212 snprintf(buf, sizeof buf, str(LANG_PLUGIN_CANT_OPEN), plugin);
213 splash(HZ*2, 0, true, buf); 213 splash(HZ*2, true, buf);
214 return fd; 214 return fd;
215 } 215 }
216 216
@@ -220,12 +220,12 @@ int plugin_load(char* plugin, void* parameter)
220 if (plugin_size < 0) { 220 if (plugin_size < 0) {
221 /* read error */ 221 /* read error */
222 snprintf(buf, sizeof buf, str(LANG_READ_FAILED), plugin); 222 snprintf(buf, sizeof buf, str(LANG_READ_FAILED), plugin);
223 splash(HZ*2, 0, true, buf); 223 splash(HZ*2, true, buf);
224 return -1; 224 return -1;
225 } 225 }
226 if (plugin_size == 0) { 226 if (plugin_size == 0) {
227 /* loaded a 0-byte plugin, implying it's not for this model */ 227 /* loaded a 0-byte plugin, implying it's not for this model */
228 splash(HZ*2, 0, true, str(LANG_PLUGIN_WRONG_MODEL)); 228 splash(HZ*2, true, str(LANG_PLUGIN_WRONG_MODEL));
229 return -1; 229 return -1;
230 } 230 }
231#endif 231#endif
@@ -242,15 +242,15 @@ int plugin_load(char* plugin, void* parameter)
242 return PLUGIN_USB_CONNECTED; 242 return PLUGIN_USB_CONNECTED;
243 243
244 case PLUGIN_WRONG_API_VERSION: 244 case PLUGIN_WRONG_API_VERSION:
245 splash(HZ*2, 0, true, str(LANG_PLUGIN_WRONG_VERSION)); 245 splash(HZ*2, true, str(LANG_PLUGIN_WRONG_VERSION));
246 break; 246 break;
247 247
248 case PLUGIN_WRONG_MODEL: 248 case PLUGIN_WRONG_MODEL:
249 splash(HZ*2, 0, true, str(LANG_PLUGIN_WRONG_MODEL)); 249 splash(HZ*2, true, str(LANG_PLUGIN_WRONG_MODEL));
250 break; 250 break;
251 251
252 default: 252 default:
253 splash(HZ*2, 0, true, str(LANG_PLUGIN_ERROR)); 253 splash(HZ*2, true, str(LANG_PLUGIN_ERROR));
254 break; 254 break;
255 } 255 }
256 256
diff --git a/apps/plugin.h b/apps/plugin.h
index 819d75dc24..20e8feeb58 100644
--- a/apps/plugin.h
+++ b/apps/plugin.h
@@ -173,7 +173,7 @@ struct plugin_api {
173 /* misc */ 173 /* misc */
174 void (*srand)(unsigned int seed); 174 void (*srand)(unsigned int seed);
175 int (*rand)(void); 175 int (*rand)(void);
176 void (*splash)(int ticks, int keymask, bool center, char *fmt, ...); 176 void (*splash)(int ticks, bool center, char *fmt, ...);
177 void (*qsort)(void *base, size_t nmemb, size_t size, 177 void (*qsort)(void *base, size_t nmemb, size_t size,
178 int(*compar)(const void *, const void *)); 178 int(*compar)(const void *, const void *));
179 int (*kbd_input)(char* buffer, int buflen); 179 int (*kbd_input)(char* buffer, int buflen);
diff --git a/apps/plugins/clock.c b/apps/plugins/clock.c
index fa910efee2..1df0f709d4 100644
--- a/apps/plugins/clock.c
+++ b/apps/plugins/clock.c
@@ -65,7 +65,7 @@ void save_settings(void)
65 } 65 }
66 else 66 else
67 { 67 {
68 rb->splash(HZ, 0, true, "Setting save failed"); 68 rb->splash(HZ, true, "Setting save failed");
69 } 69 }
70} 70}
71 71
@@ -83,7 +83,7 @@ void load_settings(void)
83 /* Else, loading failed */ 83 /* Else, loading failed */
84 else 84 else
85 { 85 {
86 rb->splash(HZ, 0, true, "Setting load failed, using default settings."); 86 rb->splash(HZ, true, "Setting load failed, using default settings.");
87 } 87 }
88} 88}
89 89
@@ -121,7 +121,7 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
121 load_settings(); 121 load_settings();
122 122
123 rb->lcd_clear_display(); 123 rb->lcd_clear_display();
124 rb->splash(HZ, 0, true, "F1 for INFO"); 124 rb->splash(HZ, true, "F1 for INFO");
125 125
126 while (!PLUGIN_OK) 126 while (!PLUGIN_OK)
127 { 127 {
@@ -324,11 +324,11 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
324 324
325 /* Tell the user what's going on */ 325 /* Tell the user what's going on */
326 rb->lcd_clear_display(); 326 rb->lcd_clear_display();
327 rb->splash(HZ/2, 0, true, "Saving settings..."); 327 rb->splash(HZ/2, true, "Saving settings...");
328 /* Save to disk */ 328 /* Save to disk */
329 save_settings(); 329 save_settings();
330 rb->lcd_clear_display(); 330 rb->lcd_clear_display();
331 rb->splash(HZ, 0, true, "Saved!"); 331 rb->splash(HZ, true, "Saved!");
332 /* ...and exit. */ 332 /* ...and exit. */
333 return PLUGIN_OK; 333 return PLUGIN_OK;
334 break; 334 break;
diff --git a/apps/plugins/favorites.c b/apps/plugins/favorites.c
index 3ee597e3ef..949eeeae31 100644
--- a/apps/plugins/favorites.c
+++ b/apps/plugins/favorites.c
@@ -22,7 +22,7 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
22 22
23 id3 = rb->mpeg_current_track(); 23 id3 = rb->mpeg_current_track();
24 if (!id3) { 24 if (!id3) {
25 rb->splash(HZ*2, 0, true, "Nothing To Save"); 25 rb->splash(HZ*2, true, "Nothing To Save");
26 return PLUGIN_OK; 26 return PLUGIN_OK;
27 } 27 }
28 28
@@ -45,7 +45,7 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
45 rb->close(fd); 45 rb->close(fd);
46 } 46 }
47 47
48 rb->splash(HZ*2, 0, true, "Saved Favorite"); 48 rb->splash(HZ*2, true, "Saved Favorite");
49 49
50 return PLUGIN_OK; 50 return PLUGIN_OK;
51} 51}
diff --git a/apps/plugins/firmware_flash.c b/apps/plugins/firmware_flash.c
index c609f5ddad..c146b34544 100644
--- a/apps/plugins/firmware_flash.c
+++ b/apps/plugins/firmware_flash.c
@@ -611,7 +611,7 @@ void DoUserDialog(char* filename)
611 /* test if the user is running the correct plugin for this box */ 611 /* test if the user is running the correct plugin for this box */
612 if (!CheckPlatform(PLATFORM_ID, *(UINT16*)(FB + VERSION_ADR))) 612 if (!CheckPlatform(PLATFORM_ID, *(UINT16*)(FB + VERSION_ADR)))
613 { 613 {
614 rb->splash(HZ*3, 0, true, "Wrong plugin"); 614 rb->splash(HZ*3, true, "Wrong plugin");
615 return; /* exit */ 615 return; /* exit */
616 } 616 }
617 617
@@ -619,7 +619,7 @@ void DoUserDialog(char* filename)
619 result = CheckBootROM(); 619 result = CheckBootROM();
620 if (result == eUnknown) 620 if (result == eUnknown)
621 { /* no support for any other yet */ 621 { /* no support for any other yet */
622 rb->splash(HZ*3, 0, true, "Wrong boot ROM"); 622 rb->splash(HZ*3, true, "Wrong boot ROM");
623 return; /* exit */ 623 return; /* exit */
624 } 624 }
625 is_romless = (result == eROMless); 625 is_romless = (result == eROMless);
@@ -640,7 +640,7 @@ void DoUserDialog(char* filename)
640 sector = rb->plugin_get_buffer(&memleft); 640 sector = rb->plugin_get_buffer(&memleft);
641 if (memleft < SEC_SIZE) /* need buffer for a flash sector */ 641 if (memleft < SEC_SIZE) /* need buffer for a flash sector */
642 { 642 {
643 rb->splash(HZ*3, 0, true, "Out of memory"); 643 rb->splash(HZ*3, true, "Out of memory");
644 return; /* exit */ 644 return; /* exit */
645 } 645 }
646 646
@@ -648,7 +648,7 @@ void DoUserDialog(char* filename)
648 ShowFlashInfo(&FlashInfo); 648 ShowFlashInfo(&FlashInfo);
649 if (FlashInfo.size == 0) /* no valid chip */ 649 if (FlashInfo.size == 0) /* no valid chip */
650 { 650 {
651 rb->splash(HZ*3, 0, true, "Sorry!"); 651 rb->splash(HZ*3, true, "Sorry!");
652 return; /* exit */ 652 return; /* exit */
653 } 653 }
654 654
@@ -832,7 +832,7 @@ void DoUserDialog(char* filename)
832 /* test if the user is running the correct plugin for this box */ 832 /* test if the user is running the correct plugin for this box */
833 if (!CheckPlatform(PLATFORM_ID, *(UINT16*)(FB + VERSION_ADR))) 833 if (!CheckPlatform(PLATFORM_ID, *(UINT16*)(FB + VERSION_ADR)))
834 { 834 {
835 rb->splash(HZ*3, 0, true, "Wrong version"); 835 rb->splash(HZ*3, true, "Wrong version");
836 return; /* exit */ 836 return; /* exit */
837 } 837 }
838 838
@@ -840,7 +840,7 @@ void DoUserDialog(char* filename)
840 result = CheckBootROM(); 840 result = CheckBootROM();
841 if (result == eUnknown) 841 if (result == eUnknown)
842 { /* no support for any other yet */ 842 { /* no support for any other yet */
843 rb->splash(HZ*3, 0, true, "Wrong boot ROM"); 843 rb->splash(HZ*3, true, "Wrong boot ROM");
844 return; /* exit */ 844 return; /* exit */
845 } 845 }
846 is_romless = (result == eROMless); 846 is_romless = (result == eROMless);
@@ -861,7 +861,7 @@ void DoUserDialog(char* filename)
861 sector = rb->plugin_get_buffer(&memleft); 861 sector = rb->plugin_get_buffer(&memleft);
862 if (memleft < SEC_SIZE) /* need buffer for a flash sector */ 862 if (memleft < SEC_SIZE) /* need buffer for a flash sector */
863 { 863 {
864 rb->splash(HZ*3, 0, true, "Out of memory"); 864 rb->splash(HZ*3, true, "Out of memory");
865 return; /* exit */ 865 return; /* exit */
866 } 866 }
867 867
diff --git a/apps/plugins/helloworld.c b/apps/plugins/helloworld.c
index ea347fbf79..d0fecba169 100644
--- a/apps/plugins/helloworld.c
+++ b/apps/plugins/helloworld.c
@@ -42,7 +42,7 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
42 rb = api; 42 rb = api;
43 43
44 /* now go ahead and have fun! */ 44 /* now go ahead and have fun! */
45 rb->splash(HZ*2, 0, true, "Hello world!"); 45 rb->splash(HZ*2, true, "Hello world!");
46 46
47 return PLUGIN_OK; 47 return PLUGIN_OK;
48} 48}
diff --git a/apps/plugins/rockbox_flash.c b/apps/plugins/rockbox_flash.c
index 9dc4b3a663..661203b8b8 100644
--- a/apps/plugins/rockbox_flash.c
+++ b/apps/plugins/rockbox_flash.c
@@ -525,7 +525,7 @@ void DoUserDialog(char* filename, bool show_greet)
525 sector = rb->plugin_get_buffer(&memleft); 525 sector = rb->plugin_get_buffer(&memleft);
526 if (memleft < SECTORSIZE) /* need buffer for a flash sector */ 526 if (memleft < SECTORSIZE) /* need buffer for a flash sector */
527 { 527 {
528 rb->splash(HZ*3, 0, true, "Out of memory"); 528 rb->splash(HZ*3, true, "Out of memory");
529 return; /* exit */ 529 return; /* exit */
530 } 530 }
531 531
@@ -537,12 +537,12 @@ void DoUserDialog(char* filename, bool show_greet)
537 537
538 if (FlashInfo.size == 0) /* no valid chip */ 538 if (FlashInfo.size == 0) /* no valid chip */
539 { 539 {
540 rb->splash(HZ*3, 0, true, "Not flashable"); 540 rb->splash(HZ*3, true, "Not flashable");
541 return; /* exit */ 541 return; /* exit */
542 } 542 }
543 else if (pos == 0) 543 else if (pos == 0)
544 { 544 {
545 rb->splash(HZ*3, 0, true, "No image"); 545 rb->splash(HZ*3, true, "No image");
546 return; /* exit */ 546 return; /* exit */
547 } 547 }
548 548
@@ -701,7 +701,7 @@ void DoUserDialog(char* filename, bool show_greet)
701 sector = rb->plugin_get_buffer(&memleft); 701 sector = rb->plugin_get_buffer(&memleft);
702 if (memleft < SECTORSIZE) /* need buffer for a flash sector */ 702 if (memleft < SECTORSIZE) /* need buffer for a flash sector */
703 { 703 {
704 rb->splash(HZ*3, 0, true, "Out of memory"); 704 rb->splash(HZ*3, true, "Out of memory");
705 return; /* exit */ 705 return; /* exit */
706 } 706 }
707 707
@@ -716,12 +716,12 @@ void DoUserDialog(char* filename, bool show_greet)
716 716
717 if (FlashInfo.size == 0) /* no valid chip */ 717 if (FlashInfo.size == 0) /* no valid chip */
718 { 718 {
719 rb->splash(HZ*3, 0, true, "Not flashable"); 719 rb->splash(HZ*3, true, "Not flashable");
720 return; /* exit */ 720 return; /* exit */
721 } 721 }
722 else if (pos == 0) 722 else if (pos == 0)
723 { 723 {
724 rb->splash(HZ*3, 0, true, "No image"); 724 rb->splash(HZ*3, true, "No image");
725 return; /* exit */ 725 return; /* exit */
726 } 726 }
727 727
diff --git a/apps/plugins/sokoban.c b/apps/plugins/sokoban.c
index 2387fa9517..47ae64c18f 100644
--- a/apps/plugins/sokoban.c
+++ b/apps/plugins/sokoban.c
@@ -241,7 +241,7 @@ static int get_level_count(void)
241 char buffer[COLS + 3]; /* COLS plus CR/LF and \0 */ 241 char buffer[COLS + 3]; /* COLS plus CR/LF and \0 */
242 242
243 if ((fd = rb->open(LEVELS_FILE, O_RDONLY)) < 0) { 243 if ((fd = rb->open(LEVELS_FILE, O_RDONLY)) < 0) {
244 rb->splash(0, 0, true, "Unable to open %s", LEVELS_FILE); 244 rb->splash(0, true, "Unable to open %s", LEVELS_FILE);
245 return -1; 245 return -1;
246 } 246 }
247 247
@@ -858,7 +858,7 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
858 init_boards(); 858 init_boards();
859 859
860 if (get_level_count() != 0) { 860 if (get_level_count() != 0) {
861 rb->splash(HZ*2,0,true,"Failed loading levels!"); 861 rb->splash(HZ*2, true, "Failed loading levels!");
862 return PLUGIN_OK; 862 return PLUGIN_OK;
863 } 863 }
864 864
diff --git a/apps/plugins/video.c b/apps/plugins/video.c
index 5620253d59..c07519ed3d 100644
--- a/apps/plugins/video.c
+++ b/apps/plugins/video.c
@@ -340,7 +340,7 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
340 340
341 if (parameter == NULL) 341 if (parameter == NULL)
342 { 342 {
343 rb->splash(HZ*2, 0, true, "Play .rvf file!"); 343 rb->splash(HZ*2, true, "Play .rvf file!");
344 return PLUGIN_ERROR; 344 return PLUGIN_ERROR;
345 } 345 }
346 346
diff --git a/apps/plugins/viewer.c b/apps/plugins/viewer.c
index 6f2c5840fd..d8d6b516bd 100644
--- a/apps/plugins/viewer.c
+++ b/apps/plugins/viewer.c
@@ -662,8 +662,9 @@ static int viewer_recorder_on_button(int col)
662 if (++page_mode == PAGE_MODES) 662 if (++page_mode == PAGE_MODES)
663 page_mode = 0; 663 page_mode = 0;
664 664
665 rb->splash(HZ, 0, true, "%s %s", 665 rb->splash(HZ, true, "%s %s",
666 page_mode_str[page_mode], page_mode_str[PAGE_MODES]); 666 page_mode_str[page_mode],
667 page_mode_str[PAGE_MODES]);
667 668
668 viewer_draw(col); 669 viewer_draw(col);
669 break; 670 break;
@@ -677,10 +678,11 @@ static int viewer_recorder_on_button(int col)
677 init_need_scrollbar(); 678 init_need_scrollbar();
678 viewer_draw(col); 679 viewer_draw(col);
679 680
680 rb->splash(HZ, 0, true, "%s %s (%s %s)", 681 rb->splash(HZ, true, "%s %s (%s %s)",
681 scrollbar_mode_str[SCROLLBAR_MODES], 682 scrollbar_mode_str[SCROLLBAR_MODES],
682 scrollbar_mode_str[scrollbar_mode[view_mode]], 683 scrollbar_mode_str[scrollbar_mode[view_mode]],
683 view_mode_str[view_mode], view_mode_str[VIEW_MODES]); 684 view_mode_str[view_mode],
685 view_mode_str[VIEW_MODES]);
684 } 686 }
685 viewer_draw(col); 687 viewer_draw(col);
686 break; 688 break;
@@ -744,7 +746,7 @@ enum plugin_status plugin_start(struct plugin_api* api, void* file)
744 746
745 ok = viewer_init(file); 747 ok = viewer_init(file);
746 if (!ok) { 748 if (!ok) {
747 rb->splash(HZ, 0, false, "Error"); 749 rb->splash(HZ, false, "Error");
748 viewer_exit(); 750 viewer_exit();
749 return PLUGIN_OK; 751 return PLUGIN_OK;
750 } 752 }
@@ -776,8 +778,9 @@ enum plugin_status plugin_start(struct plugin_api* api, void* file)
776#endif 778#endif
777 viewer_draw(col); 779 viewer_draw(col);
778 780
779 rb->splash(HZ, 0, true, "%s %s", 781 rb->splash(HZ, true, "%s %s",
780 word_mode_str[word_mode], word_mode_str[WORD_MODES]); 782 word_mode_str[word_mode],
783 word_mode_str[WORD_MODES]);
781 784
782 viewer_draw(col); 785 viewer_draw(col);
783 break; 786 break;
@@ -801,8 +804,9 @@ enum plugin_status plugin_start(struct plugin_api* api, void* file)
801#endif 804#endif
802 viewer_draw(col); 805 viewer_draw(col);
803 806
804 rb->splash(HZ, 0, true, "%s %s", 807 rb->splash(HZ, true, "%s %s",
805 line_mode_str[line_mode], line_mode_str[LINE_MODES]); 808 line_mode_str[line_mode],
809 line_mode_str[LINE_MODES]);
806 810
807 viewer_draw(col); 811 viewer_draw(col);
808 break; 812 break;
@@ -814,8 +818,9 @@ enum plugin_status plugin_start(struct plugin_api* api, void* file)
814#endif 818#endif
815 /* View-width mode: NARROW or WIDE */ 819 /* View-width mode: NARROW or WIDE */
816 if (line_mode == JOIN) 820 if (line_mode == JOIN)
817 rb->splash(HZ, 0, true, "(no %s %s)", 821 rb->splash(HZ, true, "(no %s %s)",
818 view_mode_str[WIDE], line_mode_str[JOIN]); 822 view_mode_str[WIDE],
823 line_mode_str[JOIN]);
819 else 824 else
820 if (++view_mode == VIEW_MODES) 825 if (++view_mode == VIEW_MODES)
821 view_mode = 0; 826 view_mode = 0;
@@ -840,8 +845,9 @@ enum plugin_status plugin_start(struct plugin_api* api, void* file)
840#endif 845#endif
841 viewer_draw(col); 846 viewer_draw(col);
842 847
843 rb->splash(HZ, 0, true, "%s %s", 848 rb->splash(HZ, true, "%s %s",
844 view_mode_str[view_mode], view_mode_str[VIEW_MODES]); 849 view_mode_str[view_mode],
850 view_mode_str[VIEW_MODES]);
845 851
846 viewer_draw(col); 852 viewer_draw(col);
847 break; 853 break;
diff --git a/apps/recorder/recording.c b/apps/recorder/recording.c
index c1a5f96ab6..b98a4579f7 100644
--- a/apps/recorder/recording.c
+++ b/apps/recorder/recording.c
@@ -504,7 +504,7 @@ bool recording_screen(void)
504 if(mpeg_status() & MPEG_STATUS_ERROR) 504 if(mpeg_status() & MPEG_STATUS_ERROR)
505 { 505 {
506 status_set_playmode(STATUS_STOP); 506 status_set_playmode(STATUS_STOP);
507 splash(0, 0, true, str(LANG_DISK_FULL)); 507 splash(0, true, str(LANG_DISK_FULL));
508 status_draw(true); 508 status_draw(true);
509 lcd_update(); 509 lcd_update();
510 mpeg_error_clear(); 510 mpeg_error_clear();
diff --git a/apps/screens.c b/apps/screens.c
index 1b269d93bc..c2ffb44f3c 100644
--- a/apps/screens.c
+++ b/apps/screens.c
@@ -673,8 +673,7 @@ bool f3_screen(void)
673#define MAXLINES 2 673#define MAXLINES 2
674#endif 674#endif
675 675
676void splash(int ticks, /* how long */ 676void splash(int ticks, /* how long the splash is displayed */
677 int keymask, /* what keymask aborts the waiting (if any) */
678 bool center, /* FALSE means left-justified, TRUE means 677 bool center, /* FALSE means left-justified, TRUE means
679 horizontal and vertical center */ 678 horizontal and vertical center */
680 char *fmt, /* what to say *printf style */ 679 char *fmt, /* what to say *printf style */
@@ -813,24 +812,13 @@ void splash(int ticks, /* how long */
813 } 812 }
814 lcd_update(); 813 lcd_update();
815 814
816 if(ticks) { 815 if(ticks)
817 if(keymask) { 816 /* unbreakable! */
818 int start = current_tick; 817 sleep(ticks);
819 int done = ticks + current_tick + 1;
820 while (TIME_BEFORE( current_tick, done)) {
821 int button = button_get_w_tmo(ticks - (current_tick-start));
822 if((button & keymask) == keymask)
823 break;
824 }
825 }
826 else
827 /* unbreakable! */
828 sleep(ticks);
829 }
830} 818}
831 819
832void charging_splash(void) 820void charging_splash(void)
833{ 821{
834 splash(2*HZ, 0, true, str(LANG_BATTERY_CHARGE)); 822 splash(2*HZ, true, str(LANG_BATTERY_CHARGE));
835 while (button_get(false)); 823 while (button_get(false));
836} 824}
diff --git a/apps/screens.h b/apps/screens.h
index 89bd3c39d8..fdd5df1c68 100644
--- a/apps/screens.h
+++ b/apps/screens.h
@@ -31,7 +31,6 @@ bool f3_screen(void);
31#endif 31#endif
32 32
33void splash(int ticks, /* how long */ 33void splash(int ticks, /* how long */
34 int keymask,/* what keymask aborts the waiting (if any) */
35 bool center, /* FALSE means left-justified, TRUE means 34 bool center, /* FALSE means left-justified, TRUE means
36 horizontal and vertical center */ 35 horizontal and vertical center */
37 char *fmt, /* what to say *printf style */ 36 char *fmt, /* what to say *printf style */
diff --git a/apps/tree.c b/apps/tree.c
index a016aff05a..3c9827d685 100644
--- a/apps/tree.c
+++ b/apps/tree.c
@@ -861,7 +861,7 @@ static bool dirbrowse(char *root, int *dirfilter)
861 861
862 if (*dirfilter > NUM_FILTER_MODES && numentries==0) 862 if (*dirfilter > NUM_FILTER_MODES && numentries==0)
863 { 863 {
864 splash(HZ*2, 0, true, str(LANG_NO_FILES)); 864 splash(HZ*2, true, str(LANG_NO_FILES));
865 return false; /* No files found for rockbox_browser() */ 865 return false; /* No files found for rockbox_browser() */
866 } 866 }
867 867
@@ -1060,7 +1060,7 @@ static bool dirbrowse(char *root, int *dirfilter)
1060 if(!lang_load(buf)) { 1060 if(!lang_load(buf)) {
1061 set_file(buf, global_settings.lang_file, 1061 set_file(buf, global_settings.lang_file,
1062 MAX_FILENAME); 1062 MAX_FILENAME);
1063 splash(HZ, 0, true, str(LANG_LANGUAGE_LOADED)); 1063 splash(HZ, true, str(LANG_LANGUAGE_LOADED));
1064 restore = true; 1064 restore = true;
1065 } 1065 }
1066 break; 1066 break;
diff --git a/apps/wps.c b/apps/wps.c
index 9e988d3721..777894d535 100644
--- a/apps/wps.c
+++ b/apps/wps.c
@@ -125,7 +125,7 @@ void display_keylock_text(bool locked)
125 else 125 else
126 s = str(LANG_KEYLOCK_OFF_RECORDER); 126 s = str(LANG_KEYLOCK_OFF_RECORDER);
127#endif 127#endif
128 splash(HZ, 0, true, s); 128 splash(HZ, true, s);
129} 129}
130 130
131void display_mute_text(bool muted) 131void display_mute_text(bool muted)