summaryrefslogtreecommitdiff
path: root/apps/settings.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/settings.c')
-rw-r--r--apps/settings.c36
1 files changed, 9 insertions, 27 deletions
diff --git a/apps/settings.c b/apps/settings.c
index 85b0489c09..848c7c14f2 100644
--- a/apps/settings.c
+++ b/apps/settings.c
@@ -118,9 +118,7 @@ static bool read_nvram_data(char* buf, int max_len)
118 unsigned crc32 = 0xffffffff; 118 unsigned crc32 = 0xffffffff;
119 int var_count = 0, i = 0, buf_pos = 0; 119 int var_count = 0, i = 0, buf_pos = 0;
120#ifndef HAVE_RTC_RAM 120#ifndef HAVE_RTC_RAM
121 char path[MAX_PATH]; 121 int fd = open(NVRAM_FILE, O_RDONLY);
122 int fd = open(get_user_file_path(NVRAM_FILE, IS_FILE|NEED_WRITE,
123 path, sizeof(path)), O_RDONLY);
124 int bytes; 122 int bytes;
125 if (fd < 0) 123 if (fd < 0)
126 return false; 124 return false;
@@ -174,7 +172,6 @@ static bool write_nvram_data(char* buf, int max_len)
174 char var_count = 0; 172 char var_count = 0;
175#ifndef HAVE_RTC_RAM 173#ifndef HAVE_RTC_RAM
176 int fd; 174 int fd;
177 char path[MAX_PATH];
178#endif 175#endif
179 memset(buf,0,max_len); 176 memset(buf,0,max_len);
180 /* magic, version */ 177 /* magic, version */
@@ -198,8 +195,7 @@ static bool write_nvram_data(char* buf, int max_len)
198 max_len-NVRAM_DATA_START-1,0xffffffff); 195 max_len-NVRAM_DATA_START-1,0xffffffff);
199 memcpy(&buf[4],&crc32,4); 196 memcpy(&buf[4],&crc32,4);
200#ifndef HAVE_RTC_RAM 197#ifndef HAVE_RTC_RAM
201 fd = open(get_user_file_path(NVRAM_FILE, IS_FILE|NEED_WRITE, 198 fd = open(NVRAM_FILE,O_CREAT|O_TRUNC|O_WRONLY, 0666);
202 path, sizeof(path)),O_CREAT|O_TRUNC|O_WRONLY, 0666);
203 if (fd >= 0) 199 if (fd >= 0)
204 { 200 {
205 int len = write(fd,buf,max_len); 201 int len = write(fd,buf,max_len);
@@ -230,12 +226,8 @@ void settings_load(int which)
230 read_nvram_data(nvram_buffer,NVRAM_BLOCK_SIZE); 226 read_nvram_data(nvram_buffer,NVRAM_BLOCK_SIZE);
231 if (which&SETTINGS_HD) 227 if (which&SETTINGS_HD)
232 { 228 {
233 const char *file; 229 settings_load_config(CONFIGFILE, false);
234 char path[MAX_PATH]; 230 settings_load_config(FIXEDSETTINGSFILE, false);
235 file = get_user_file_path(CONFIGFILE, IS_FILE|NEED_WRITE, path, sizeof(path));
236 settings_load_config(file, false);
237 file = get_user_file_path(FIXEDSETTINGSFILE, IS_FILE, path, sizeof(path));
238 settings_load_config(file, false);
239 } 231 }
240} 232}
241 233
@@ -596,11 +588,8 @@ static void flush_global_status_callback(void *data)
596static void flush_config_block_callback(void *data) 588static void flush_config_block_callback(void *data)
597{ 589{
598 (void)data; 590 (void)data;
599 char path[MAX_PATH];
600 write_nvram_data(nvram_buffer,NVRAM_BLOCK_SIZE); 591 write_nvram_data(nvram_buffer,NVRAM_BLOCK_SIZE);
601 settings_write_config( 592 settings_write_config(CONFIGFILE, SETTINGS_SAVE_CHANGED);
602 get_user_file_path(CONFIGFILE, IS_FILE|NEED_WRITE, path, sizeof(path)),
603 SETTINGS_SAVE_CHANGED);
604} 593}
605 594
606/* 595/*
@@ -644,7 +633,7 @@ int settings_save(void)
644 633
645bool settings_save_config(int options) 634bool settings_save_config(int options)
646{ 635{
647 char filename[MAX_PATH], path[MAX_PATH]; 636 char filename[MAX_PATH];
648 const char *folder, *namebase; 637 const char *folder, *namebase;
649 switch (options) 638 switch (options)
650 { 639 {
@@ -673,8 +662,6 @@ bool settings_save_config(int options)
673 namebase = "config"; 662 namebase = "config";
674 break; 663 break;
675 } 664 }
676
677 folder = get_user_file_path(folder, NEED_WRITE, path, sizeof(path));
678 create_numbered_filename(filename, folder, namebase, ".cfg", 2 665 create_numbered_filename(filename, folder, namebase, ".cfg", 2
679 IF_CNFN_NUM_(, NULL)); 666 IF_CNFN_NUM_(, NULL));
680 667
@@ -884,13 +871,11 @@ void settings_apply(bool read_disk)
884 { 871 {
885 char buf[MAX_PATH]; 872 char buf[MAX_PATH];
886#ifdef HAVE_LCD_BITMAP 873#ifdef HAVE_LCD_BITMAP
887 char dir[MAX_PATH];
888 const char *font_path = get_user_file_path(FONT_DIR, 0, dir, sizeof(dir));
889 /* fonts need to be loaded before the WPS */ 874 /* fonts need to be loaded before the WPS */
890 if (global_settings.font_file[0] 875 if (global_settings.font_file[0]
891 && global_settings.font_file[0] != '-') { 876 && global_settings.font_file[0] != '-') {
892 877
893 snprintf(buf, sizeof buf, "%s/%s.fnt", font_path, 878 snprintf(buf, sizeof buf, FONT_DIR "/%s.fnt",
894 global_settings.font_file); 879 global_settings.font_file);
895 CHART2(">font_load ", global_settings.font_file); 880 CHART2(">font_load ", global_settings.font_file);
896 rc = font_load(NULL, buf); 881 rc = font_load(NULL, buf);
@@ -903,7 +888,7 @@ void settings_apply(bool read_disk)
903#ifdef HAVE_REMOTE_LCD 888#ifdef HAVE_REMOTE_LCD
904 if ( global_settings.remote_font_file[0] 889 if ( global_settings.remote_font_file[0]
905 && global_settings.remote_font_file[0] != '-') { 890 && global_settings.remote_font_file[0] != '-') {
906 snprintf(buf, sizeof buf, "%s/%s.fnt", font_path, 891 snprintf(buf, sizeof buf, FONT_DIR "%s.fnt",
907 global_settings.remote_font_file); 892 global_settings.remote_font_file);
908 CHART2(">font_load_remoteui ", global_settings.remote_font_file); 893 CHART2(">font_load_remoteui ", global_settings.remote_font_file);
909 rc = font_load_remoteui(buf); 894 rc = font_load_remoteui(buf);
@@ -915,8 +900,7 @@ void settings_apply(bool read_disk)
915 font_load_remoteui(NULL); 900 font_load_remoteui(NULL);
916#endif 901#endif
917 if ( global_settings.kbd_file[0]) { 902 if ( global_settings.kbd_file[0]) {
918 snprintf(buf, sizeof buf, "%s/%s.kbd", 903 snprintf(buf, sizeof buf, ROCKBOX_DIR "/%s.kbd",
919 get_user_file_path(ROCKBOX_DIR, 0, dir, sizeof(dir)),
920 global_settings.kbd_file); 904 global_settings.kbd_file);
921 CHART(">load_kbd"); 905 CHART(">load_kbd");
922 load_kbd(buf); 906 load_kbd(buf);
@@ -925,8 +909,6 @@ void settings_apply(bool read_disk)
925 else 909 else
926 load_kbd(NULL); 910 load_kbd(NULL);
927#endif /* HAVE_LCD_BITMAP */ 911#endif /* HAVE_LCD_BITMAP */
928 /* no get_user_file_path() here because we don't really support
929 * langs that don't come with rockbox */
930 if ( global_settings.lang_file[0]) { 912 if ( global_settings.lang_file[0]) {
931 snprintf(buf, sizeof buf, LANG_DIR "/%s.lng", 913 snprintf(buf, sizeof buf, LANG_DIR "/%s.lng",
932 global_settings.lang_file); 914 global_settings.lang_file);