Rockbox open source high quality audio player as a Music Player Daemon
mpris rockbox mpd libadwaita audio rust zig deno
2
fork

Configure Feed

Select the types of activity you want to include in your feed.

added setting to retain file browser directory on reboots WIP

I added the setting keep_directory which automatically updates
the last directory visited and restores it on next boot

--added manual entry

Change-Id: I0ffe6531d591d693806ce0bf56fe22b99e3315e9

authored by

yegor chernyshov and committed by
William Wilgus
c86fd231 380b7b3e

+53 -1
+7
apps/filetree.c
··· 453 453 check_file_thumbnails(c); /* map .talk to ours */ 454 454 455 455 tree_unlock_cache(c); 456 + 457 + if (global_settings.keep_directory) 458 + { 459 + path_append(global_status.browse_last_folder, c->currdir, PA_SEP_HARD, 460 + sizeof(global_status.browse_last_folder)); 461 + } 462 + 456 463 return 0; 457 464 } 458 465 static void ft_load_font(char *file)
+14
apps/lang/english.lang
··· 17029 17029 general_purpose_led: "Use LED indicators" 17030 17030 </voice> 17031 17031 </phrase> 17032 + <phrase> 17033 + id: LANG_KEEP_DIRECTORY 17034 + desc: file browser setting 17035 + user: core 17036 + <source> 17037 + *: "Always remember last folder" 17038 + </source> 17039 + <dest> 17040 + *: "Always remember last folder" 17041 + </dest> 17042 + <voice> 17043 + *: "Always remember last folder" 17044 + </voice> 17045 + </phrase>
+2
apps/menus/settings_menu.c
··· 199 199 splash(HZ, ID2P(LANG_RESET_DONE_CLEAR)); 200 200 return false; 201 201 } 202 + MENUITEM_SETTING(keep_directory, &global_settings.keep_directory, NULL); 202 203 MENUITEM_FUNCTION(clear_start_directory_item, 0, ID2P(LANG_RESET_START_DIR), 203 204 clear_start_directory, NULL, Icon_file_view_menu); 204 205 ··· 209 210 &sort_case, &sort_dir, &sort_file, &interpret_numbers, 210 211 &dirfilter, &show_filename_ext, &browse_current, 211 212 &show_path_in_browser, 213 + &keep_directory, 212 214 &clear_start_directory_item 213 215 #ifdef HAVE_HOTKEY 214 216 ,&hotkey_tree_item
+6
apps/misc.c
··· 2039 2039 path_append(dirpath, PATH_ROOTSTR, 2040 2040 PA_SEP_HARD, sizeof(global_settings.start_directory)); 2041 2041 } 2042 + 2043 + if (!global_settings.keep_directory) /* reset to root / if !keep_directory */ 2044 + { 2045 + path_append(global_status.browse_last_folder, PATH_ROOTSTR, PA_SEP_HARD, 2046 + sizeof(global_status.browse_last_folder)); 2047 + } 2042 2048 } 2043 2049 2044 2050 #endif /* ndef __PCTOOL__ */
+3 -1
apps/root_menu.c
··· 118 118 int filter = SHOW_SUPPORTED; 119 119 char folder[MAX_PATH] = "/"; 120 120 /* stuff needed to remember position in file browser */ 121 - static char last_folder[MAX_PATH] = "/"; 121 + /*static char last_folder[MAX_PATH] = "/"*/ 122 + char *last_folder = global_status.browse_last_folder; 123 + 122 124 /* and stuff for the database browser */ 123 125 #ifdef HAVE_TAGCACHE 124 126 static int last_db_dirlevel = 0, last_db_selection = 0, last_ft_dirlevel = 0;
+5
apps/settings.c
··· 628 628 case SETTINGS_SAVE_RESUMEINFO: 629 629 if (!(setting->flags & F_RESUMESETTING)) 630 630 continue; 631 + if (setting->setting == &global_status.browse_last_folder 632 + && (!global_settings.keep_directory)) 633 + { 634 + continue; 635 + } 631 636 break; 632 637 case SETTINGS_SAVE_ALL: 633 638 {
+2
apps/settings.h
··· 365 365 int font_id[NB_SCREENS]; /* font id of the settings font for each screen */ 366 366 367 367 bool resume_modified; /* playlist is modified (=> warn before erase) */ 368 + char browse_last_folder[MAX_PATH];/* only saved if keep_directory = true */ 368 369 }; 369 370 370 371 struct user_settings ··· 893 894 894 895 char start_directory[MAX_PATHNAME+1]; 895 896 /* Has the root been customized from the .cfg file? false = no, true = loaded from cfg */ 897 + bool keep_directory; /* this saves the last path visited in the file browser */ 896 898 bool root_menu_customized; 897 899 #ifdef HAVE_QUICKSCREEN 898 900 bool shortcuts_replaces_qs;
+10
apps/settings_list.c
··· 148 148 #define SYSTEM_STATUS(flags,var,default,name) \ 149 149 {flags|F_RESUMESETTING|F_T_INT, &global_status.var,-1, \ 150 150 INT(default), name, UNUSED} 151 + 152 + #define SYSTEM_STATUS_TEXT_SETTING(flags,var,name,default,prefix,suffix) \ 153 + {flags|F_RESUMESETTING|F_T_UCHARPTR, &global_status.var,-1, \ 154 + CHARPTR(default),name, \ 155 + {.filename_setting= \ 156 + (struct filename_setting[]){ \ 157 + {prefix,suffix,sizeof(global_status.var)}}} } 151 158 /* system_status settings items will be saved to resume.cfg 152 159 Use for int which use the set_sound() function to set them 153 160 These items WILL be included in the users exported settings files ··· 1498 1505 #endif /* HAVE_DISK_STORAGE */ 1499 1506 /* browser */ 1500 1507 TEXT_SETTING(0, start_directory, "start directory", "/", NULL, NULL), 1508 + SYSTEM_STATUS_TEXT_SETTING(0, browse_last_folder, "last folder", "/", NULL, NULL), 1509 + OFFON_SETTING(0, keep_directory, LANG_KEEP_DIRECTORY, false, "keep directory", NULL), 1510 + 1501 1511 CHOICE_SETTING(0, dirfilter, LANG_FILTER, SHOW_SUPPORTED, "show files", 1502 1512 "all,supported,music,playlists", NULL, 4, ID2P(LANG_ALL), 1503 1513 ID2P(LANG_FILTER_SUPPORTED), ID2P(LANG_FILTER_MUSIC),
+1
docs/CREDITS
··· 756 756 Arin Kim 757 757 Ingmar Steen 758 758 Lourenço Soares 759 + Yegor Chernyshov 759 760 760 761 The libmad team 761 762 The wavpack team
+3
manual/rockbox_interface/browsing_and_playing.tex
··· 194 194 \item [Recording Directory.] 195 195 Save recordings in the selected directory. 196 196 } 197 + \item [Always remember last folder.] 198 + Saves the last position in the file browser on shutdown. 199 + This directory (and if applicable last file) will be restored next boot. 197 200 \item [Start Directory.] 198 201 Set as default start directory for the File Browser. 199 202 \note{If you have \setting{Auto-Change Directory} and