From dea31222b8318cd992f97cfe81b9c2239233f884 Mon Sep 17 00:00:00 2001 From: Björn Stenberg Date: Tue, 8 Oct 2002 15:42:40 +0000 Subject: Added persistence of last .wps, .fnt and .lng file played in /.rockbox git-svn-id: svn://svn.rockbox.org/rockbox/trunk@2535 a1c6a512-1295-4272-9138-f99709370657 --- apps/tree.c | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) (limited to 'apps/tree.c') diff --git a/apps/tree.c b/apps/tree.c index e5c515f06b..6e52942b45 100644 --- a/apps/tree.c +++ b/apps/tree.c @@ -658,6 +658,26 @@ bool pageupdown(int* ds, int* dc, int numentries, int tree_max_on_screen ) } #endif +static void storefile(char* filename, char* setting, int maxlen) +{ + int len = strlen(filename); + int extlen = 0; + char* ptr = filename + len; + + while (*ptr != '.') { + extlen++; + ptr--; + } + + if (strcmp(ROCKBOX_DIR, currdir) || (len > maxlen-extlen)) + return; + + strncpy(setting, filename, len-extlen); + setting[len-extlen]=0; + + settings_save(); +} + bool dirbrowse(char *root) { int numentries=0; @@ -771,6 +791,7 @@ bool dirbrowse(char *root) int seed = current_tick; bool play = false; int start_index=0; + lcd_stop_scroll(); switch ( file->attr & TREE_ATTR_MASK ) { case TREE_ATTR_M3U: @@ -802,7 +823,9 @@ bool dirbrowse(char *root) case TREE_ATTR_WPS: snprintf(buf, sizeof buf, "%s/%s", currdir, file->name); - wps_load_custom(buf); + wps_load(buf,true); + storefile(file->name, global_settings.wps_file, + MAX_FILENAME); restore = true; break; @@ -824,6 +847,10 @@ bool dirbrowse(char *root) snprintf(buf, sizeof buf, "%s/%s", currdir, file->name); if(!lang_load(buf)) { + storefile(file->name, + global_settings.lang_file, + MAX_FILENAME); + lcd_clear_display(); #ifdef HAVE_LCD_CHARCELLS lcd_puts(0, 0, str(LANG_LANGUAGE_LOADED)); @@ -849,6 +876,9 @@ bool dirbrowse(char *root) snprintf(buf, sizeof buf, "%s/%s", currdir, file->name); font_load(buf); + storefile(file->name, global_settings.font_file, + MAX_FILENAME); + lcd_getstringsize("A", &fw, &fh); tree_max_on_screen = (LCD_HEIGHT - MARGIN_Y) / fh; /* make sure cursor is on screen */ -- cgit v1.2.3